feat(build): Add modular build system and fix package dependencies

Build System:
- Add image/lib/common.sh with shared build functions
- Add profiles for vm-x64, x64-live, rpi400, espressobin-v7
- Add BUILD-SYSTEM.md documentation
- Add splash screens (boot.png, tui-splash.sh, kiosk-loading.sh)
- Add Plymouth theme for boot splash

Package Dependencies:
- Fix python3-uvicorn -> python3-uvicorn | python3-pip
- Fix python3-fastapi -> python3-fastapi | python3-pip
- Fix python3-httpx -> python3-httpx | python3-pip
- Allows packages to install when pip-provided deps are used

Documentation:
- Add Build-System.md wiki page
- Update _Sidebar.md with build system links
- Add VM-Testing.md improvements

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
CyberMind-FR 2026-04-10 17:31:24 +02:00
parent f9628d8aef
commit de77a1aa4e
78 changed files with 1708 additions and 77 deletions

173
docs/wiki/Build-System.md Normal file
View File

@ -0,0 +1,173 @@
# SecuBox-DEB Build System
Build SecuBox images for various hardware targets using the modular build system.
## Quick Start
```bash
# Build x64 VM image with SecuBox packages
sudo bash image/build-image.sh --board vm-x64 --slipstream
# Build x64 Live USB with kiosk
sudo bash image/build-live-usb.sh
# Build Raspberry Pi 400 image
sudo bash image/build-rpi-usb.sh --slipstream
# Build ESPRESSObin v7 image
sudo bash image/build-image.sh --board espressobin-v7 --slipstream
```
## Build Targets
| Target | Script | Architecture | Features |
|--------|--------|--------------|----------|
| x64 VM | `build-image.sh --board vm-x64` | amd64 | Minimal, server-oriented |
| x64 Live USB | `build-live-usb.sh` | amd64 | Full, kiosk, live boot |
| RPi 400 | `build-rpi-usb.sh` | arm64 | Full, kiosk, USB boot |
| ESPRESSObin v7 | `build-image.sh --board espressobin-v7` | arm64 | Headless, network-focused |
## Build Options
### build-image.sh
```bash
sudo bash image/build-image.sh [OPTIONS]
Options:
--board BOARD Target board: vm-x64, mochabin, espressobin-v7, espressobin-ultra
--suite SUITE Debian suite (default: bookworm)
--out DIR Output directory (default: ./output)
--size SIZE Image size (default: 4G)
--vdi Also generate VirtualBox VDI image
--local-cache Use local APT cache
--slipstream Include SecuBox .deb packages
--keep-rootfs Keep unpacked rootfs after build
```
### build-live-usb.sh
```bash
sudo bash image/build-live-usb.sh [OPTIONS]
Options:
--suite SUITE Debian suite (default: bookworm)
--out DIR Output directory (default: ./output)
--size SIZE Image size (default: 8G)
--local-cache Use local APT cache
--no-kiosk Disable kiosk mode
```
### build-rpi-usb.sh
```bash
sudo bash image/build-rpi-usb.sh [OPTIONS]
Options:
--suite SUITE Debian suite (default: bookworm)
--size SIZE Image size (default: 8G)
--slipstream Include SecuBox .deb packages
```
## Prerequisites
```bash
# Install build dependencies
sudo apt install debootstrap qemu-user-static binfmt-support \
parted dosfstools e2fsprogs qemu-utils
# For ARM64 cross-compilation
sudo apt install qemu-system-arm
# Enable binfmt for ARM64 emulation
sudo systemctl enable --now binfmt-support
```
## Package Management
### Building Packages
```bash
# Build all SecuBox packages
bash scripts/build-packages.sh
# Packages output to: output/debs/
```
### Slipstream Installation
The `--slipstream` option includes SecuBox packages directly in the image:
1. Packages from `output/packages/` are copied to the rootfs
2. Python dependencies are installed via pip
3. Packages are installed with `dpkg -i --force-depends`
4. Broken dependencies are resolved with `apt-get -f install`
## Output Files
After a successful build:
```
output/
├── secubox-vm-x64-bookworm.img # Raw disk image
├── secubox-vm-x64-bookworm.img.gz # Compressed image
├── secubox-vm-x64-bookworm.img.sha256
├── secubox-vm-x64-bookworm.vdi # VirtualBox format (if --vdi)
└── packages/ # SecuBox .deb packages
```
## Build Process
1. **Image Creation** - Allocate sparse disk image
2. **Partitioning** - GPT/MBR with EFI and rootfs partitions
3. **Debootstrap** - Install minimal Debian base system
4. **Configuration** - APT sources, locales, network
5. **Package Installation** - apt, pip, slipstream SecuBox
6. **Kiosk Setup** (optional) - X11, Chromium, nodm
7. **Bootloader** - GRUB EFI or RPi firmware
8. **Compression** - gzip and checksum
## Modular Architecture
```
image/
├── lib/
│ └── common.sh # Shared functions
├── profiles/
│ ├── x64-vm.conf # VM profile
│ ├── x64-live.conf # Live USB profile
│ ├── rpi400.conf # Raspberry Pi profile
│ └── espressobin-v7.conf # ESPRESSObin profile
├── splash/
│ ├── boot.png # Plymouth splash
│ ├── tui-splash.sh # Terminal splash
│ └── kiosk-loading.sh # Kiosk loading animation
└── plymouth/
└── secubox/ # Plymouth theme
```
## Troubleshooting
### Loop Device Errors
```bash
# Create additional loop devices if needed
sudo mknod -m 660 /dev/loop3 b 7 3
sudo mknod -m 660 /dev/loop4 b 7 4
```
### Debootstrap Hangs
For ARM64 builds under QEMU emulation, initramfs generation is slow.
Allow 10-15 minutes for kernel configuration.
### Package Dependency Issues
Ensure Python packages use `| python3-pip` alternatives in control files:
```
Depends: python3-uvicorn | python3-pip
```
---
*SecuBox-DEB v1.6.0 - CyberMind*

220
docs/wiki/VM-Testing.md Normal file
View File

@ -0,0 +1,220 @@
# SecuBox-DEB VM Testing Guide
Test SecuBox images in QEMU or VirtualBox before deploying to hardware.
## Available Images
| Image | Size | Format | Use Case |
|-------|------|--------|----------|
| `secubox-vm-x64-bookworm.img` | 4GB | RAW | QEMU direct boot |
| `secubox-vm-x64-bookworm.vdi` | ~1.3GB | VDI | VirtualBox |
| `secubox-live-amd64-bookworm.img` | 8GB | RAW | USB Live boot |
## QEMU Testing
### Prerequisites
```bash
# Debian/Ubuntu
sudo apt install qemu-system-x86 ovmf
# Check KVM support
lsmod | grep kvm
```
### With KVM (Hardware Acceleration)
```bash
qemu-system-x86_64 \
-m 4096 \
-enable-kvm \
-cpu host \
-smp 4 \
-drive file=output/secubox-vm-x64-bookworm.img,format=raw,if=virtio \
-bios /usr/share/ovmf/OVMF.fd \
-net nic,model=virtio \
-net user,hostfwd=tcp::9443-:443,hostfwd=tcp::2222-:22 \
-vga virtio \
-display gtk \
-name "SecuBox-DEB"
```
### Without KVM (Software Emulation)
For nested virtualization or systems without KVM:
```bash
qemu-system-x86_64 \
-m 2048 \
-cpu qemu64 \
-smp 2 \
-drive file=output/secubox-vm-x64-bookworm.img,format=raw,if=virtio \
-bios /usr/share/ovmf/OVMF.fd \
-net nic,model=virtio \
-net user,hostfwd=tcp::9443-:443,hostfwd=tcp::2222-:22 \
-vga std \
-display gtk \
-name "SecuBox-DEB (TCG)"
```
### Headless Mode (Server)
```bash
qemu-system-x86_64 \
-m 4096 \
-enable-kvm \
-cpu host \
-smp 4 \
-drive file=output/secubox-vm-x64-bookworm.img,format=raw,if=virtio \
-bios /usr/share/ovmf/OVMF.fd \
-net nic,model=virtio \
-net user,hostfwd=tcp::9443-:443,hostfwd=tcp::2222-:22 \
-nographic \
-serial mon:stdio
```
### Access Points
Once booted:
| Service | URL/Command |
|---------|-------------|
| Web UI | https://localhost:9443 |
| SSH | `ssh -p 2222 root@localhost` |
**Default credentials:** `root` / `secubox`
## VirtualBox Testing
### Convert Image to VDI
```bash
qemu-img convert -f raw -O vdi \
output/secubox-vm-x64-bookworm.img \
output/secubox-vm-x64-bookworm.vdi
```
### Create VM via CLI
```bash
# Create VM
VBoxManage createvm --name "SecuBox-DEB" --ostype "Debian_64" --register
# Configure VM
VBoxManage modifyvm "SecuBox-DEB" \
--memory 4096 \
--cpus 4 \
--firmware efi \
--nic1 nat \
--natpf1 "ssh,tcp,,2222,,22" \
--natpf1 "https,tcp,,9443,,443"
# Attach storage
VBoxManage storagectl "SecuBox-DEB" --name "SATA" --add sata --controller IntelAhci
VBoxManage storageattach "SecuBox-DEB" --storagectl "SATA" --port 0 --device 0 \
--type hdd --medium output/secubox-vm-x64-bookworm.vdi
# Start VM
VBoxManage startvm "SecuBox-DEB"
```
### Create VM via GUI
1. **New VM**: Name: `SecuBox-DEB`, Type: Linux, Version: Debian (64-bit)
2. **Memory**: 4096 MB minimum
3. **Hard disk**: Use existing - select `secubox-vm-x64-bookworm.vdi`
4. **Settings > System**: Enable EFI
5. **Settings > Network**: NAT with port forwarding:
- SSH: Host 2222 → Guest 22
- HTTPS: Host 9443 → Guest 443
## ARM Images (QEMU)
### ESPRESSObin v7 / Generic ARM64
```bash
qemu-system-aarch64 \
-M virt \
-cpu cortex-a72 \
-m 2048 \
-smp 4 \
-drive file=output/secubox-espressobin-v7-bookworm.img,format=raw,if=virtio \
-bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd \
-net nic,model=virtio \
-net user,hostfwd=tcp::9443-:443,hostfwd=tcp::2222-:22 \
-nographic
```
### Raspberry Pi 400
```bash
qemu-system-aarch64 \
-M raspi4b \
-m 4096 \
-drive file=output/secubox-rpi-arm64-bookworm.img,format=raw,if=sd \
-net nic -net user,hostfwd=tcp::9443-:443,hostfwd=tcp::2222-:22 \
-nographic
```
## Verification Checklist
After boot, verify:
```bash
# Connect via SSH
ssh -p 2222 root@localhost
# Check SecuBox services
systemctl status nginx
systemctl status secubox-*
# Check web UI
curl -sk https://localhost:9443 | head -20
# Check version
cat /etc/secubox/version
```
## Troubleshooting
### KVM Not Available
```
Could not access KVM kernel module: No such file or directory
```
**Solution**: Use TCG mode (remove `-enable-kvm -cpu host`) or enable virtualization in BIOS.
### EFI Boot Fails
```
No bootable device
```
**Solution**: Ensure OVMF/UEFI firmware is installed:
```bash
sudo apt install ovmf # x86_64
sudo apt install qemu-efi-aarch64 # ARM64
```
### Port Already in Use
```
Could not set up host forwarding rule 'tcp::9443-:443'
```
**Solution**: Use different host ports:
```bash
-net user,hostfwd=tcp::19443-:443,hostfwd=tcp::12222-:22
```
## Performance Tips
1. **Use KVM** when available (10-100x faster)
2. **virtio drivers** for disk and network
3. **Allocate sufficient RAM** (4GB recommended)
4. **Use SSD** for image storage
---
*SecuBox-DEB v1.6.0 - CyberMind*

34
docs/wiki/_Sidebar.md Normal file
View File

@ -0,0 +1,34 @@
# SecuBox-DEB Wiki
**Version:** 1.6.0
## Getting Started
- [Home](Home)
- [Build System](Build-System)
- [VM Testing](VM-Testing)
## Modules
- [Modules (EN)](MODULES-EN)
- [Modules (FR)](MODULES-FR)
- [Modules (DE)](MODULES-DE)
- [Modules (ZH)](MODULES-ZH)
## Build System
- [Quick Start](Build-System#quick-start)
- [Build Targets](Build-System#build-targets)
- [Build Options](Build-System#build-options)
- [Package Management](Build-System#package-management)
## VM Testing
- [QEMU Testing](VM-Testing#qemu-testing)
- [VirtualBox Setup](VM-Testing#virtualbox-testing)
- [ARM Images](VM-Testing#arm-images-qemu)
- [Troubleshooting](VM-Testing#troubleshooting)
## UI Reference
- [UI Comparison](UI-COMPARISON)
- [SecuBox Debian UI](secubox-debian-ui)
- [SecuBox OpenWrt UI](secubox-openwrt-ui)
---
*CyberMind - https://cybermind.fr*

164
image/BUILD-SYSTEM.md Normal file
View File

@ -0,0 +1,164 @@
# SecuBox-DEB Modular Build System
## Architecture Overview
```
image/
├── build-secubox.sh # Unified entry point
├── lib/
│ ├── common.sh # Core utilities, logging, cleanup
│ ├── debootstrap.sh # Base system installation
│ ├── packages.sh # Package installation (apt, pip, slipstream)
│ ├── kiosk.sh # Kiosk/X11 setup
│ └── bootloader.sh # GRUB/U-Boot configuration
├── profiles/
│ ├── x64-vm.conf # VM image profile
│ ├── x64-live.conf # Live USB with kiosk
│ ├── rpi400.conf # Raspberry Pi 400
│ ├── espressobin-v7.conf # ESPRESSObin v7
│ └── mochabin.conf # MOCHAbin (future)
└── splash/
├── boot.png # Plymouth/X11 splash
├── tui-splash.sh # Terminal ANSI splash
└── kiosk-loading.sh # Kiosk loading animation
```
## Usage
```bash
# Build specific profile
./image/build-secubox.sh --profile x64-vm
# Build with options
./image/build-secubox.sh --profile x64-live --kiosk --slipstream
# Build with custom SecuBox modules
SECUBOX_PROFILE=network ./image/build-secubox.sh --profile rpi400
# Build without compression
./image/build-secubox.sh --profile espressobin-v7 --no-compress
```
## Profile Variables
### Required
| Variable | Description | Example |
|----------|-------------|---------|
| `PROFILE_NAME` | Unique identifier | `x64-live` |
| `TARGET_ARCH` | CPU architecture | `amd64`, `arm64` |
| `IMAGE_NAME` | Output filename | `secubox-live.img` |
| `IMAGE_SIZE` | Disk size | `8G` |
| `PARTITION_TYPE` | Partition scheme | `efi`, `rpi` |
### Optional
| Variable | Default | Description |
|----------|---------|-------------|
| `INCLUDE_KIOSK` | `0` | Install X11/Chromium kiosk |
| `INCLUDE_SLIPSTREAM` | `0` | Install SecuBox .deb packages |
| `SECUBOX_PROFILE` | `full` | Module selection: `full`, `lite`, `network`, `custom` |
| `GRUB_TIMEOUT` | `3` | Boot menu timeout |
### Hooks
- `post_install_hook()` - Called after base system install
- `pre_package_hook()` - Called before package installation
- `post_package_hook()` - Called after package installation
## SecuBox Module Profiles
### full (default)
All 120+ SecuBox modules. Best for full-featured deployments.
### lite
Essential modules only:
- secubox-core
- secubox-hub
- secubox-crowdsec
- secubox-netdata
- secubox-wireguard
- secubox-system
### network
Network security focused:
- All lite modules plus:
- secubox-nac
- secubox-netmodes
- secubox-dpi
- secubox-waf
- secubox-dns
- secubox-qos
### custom
Use `SECUBOX_MODULES` environment variable:
```bash
SECUBOX_MODULES="secubox-core secubox-hub secubox-crowdsec" \
./image/build-secubox.sh --profile x64-vm
```
## Quality Checklist
### Pre-Build
- [ ] All SecuBox packages built without errors
- [ ] Package dependencies use `| python3-pip` alternatives
- [ ] Splash screens present in `image/splash/`
- [ ] Profile exists for target
### Post-Build
- [ ] Image boots in QEMU/target hardware
- [ ] SSH accessible (root/secubox)
- [ ] nginx running
- [ ] SecuBox web UI accessible at https://localhost/
- [ ] All requested modules installed (`dpkg -l | grep secubox`)
### Verification Commands
```bash
# Check packages installed in image
sudo losetup -fP output/secubox-*.img
sudo mount /dev/loop0p2 /mnt
ls /mnt/var/lib/dpkg/info/secubox*.list | wc -l
sudo umount /mnt
sudo losetup -D
# Test in QEMU
qemu-system-x86_64 -m 4096 -enable-kvm -cpu host -smp 4 \
-drive file=output/secubox-vm-x64-bookworm.img,format=raw,if=virtio \
-bios /usr/share/ovmf/OVMF.fd \
-net nic,model=virtio \
-net user,hostfwd=tcp::9443-:443,hostfwd=tcp::2222-:22 \
-display gtk
# SSH verification
ssh -p 2222 root@localhost "dpkg -l | grep secubox | wc -l"
```
## Dependency Resolution
Python packages not in Debian repos:
- `python3-fastapi` → pip install fastapi
- `python3-uvicorn` → pip install uvicorn[standard]
- `python3-httpx` → pip install httpx
Package `control` files should use:
```
Depends: python3-uvicorn | python3-pip
```
This allows installation to succeed when pip-installed packages satisfy the dependency.
## Build Phases
1. **Initialize** - Parse options, load profile, setup cleanup
2. **Create Image** - Allocate disk, partition, format
3. **Debootstrap** - Install minimal Debian base
4. **Configure Base** - APT sources, locales, network
5. **Install Packages** - apt, pip, slipstream SecuBox
6. **Configure Services** - nginx, systemd units
7. **Install Kiosk** (optional) - X11, Chromium, nodm
8. **Install Bootloader** - GRUB or RPi firmware
9. **Finalize** - Cleanup, compress, checksum
## Error Handling
- All operations use `|| die "message"` pattern
- Cleanup stack ensures proper resource release
- Loop devices and mounts tracked for cleanup
- Build logs written to `/tmp/build-${PROFILE_NAME}.log`

View File

@ -329,8 +329,10 @@ ok "Python dependencies installed"
# Slipstream: intégrer les .deb locaux directement
if [[ $SLIPSTREAM_DEBS -eq 1 ]]; then
# Check both output/ and output/debs/ for packages
if [[ -d "${REPO_DIR}/output" ]] && ls "${REPO_DIR}/output"/secubox-*.deb >/dev/null 2>&1; then
# Check output/debs/ first (fresh builds), then output/
if [[ -d "${REPO_DIR}/output/debs" ]] && ls "${REPO_DIR}/output/debs"/secubox-*.deb >/dev/null 2>&1; then
DEBS_DIR="${REPO_DIR}/output/debs"
elif [[ -d "${REPO_DIR}/output" ]] && ls "${REPO_DIR}/output"/secubox-*.deb >/dev/null 2>&1; then
DEBS_DIR="${REPO_DIR}/output"
else
DEBS_DIR="${REPO_DIR}/output/debs"

346
image/lib/common.sh Normal file
View File

@ -0,0 +1,346 @@
#!/bin/bash
# ══════════════════════════════════════════════════════════════════
# SecuBox-DEB Build Library - Common Functions
# Shared utilities for all build scripts
# ══════════════════════════════════════════════════════════════════
# ── Colors and Logging ─────────────────────────────────────────────
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
CYAN='\033[0;36m'
BOLD='\033[1m'
RESET='\033[0m'
# Logging prefix (set by each profile)
LOG_PREFIX="${LOG_PREFIX:-build}"
log() { echo -e "${CYAN}[$LOG_PREFIX]${RESET} $*"; }
ok() { echo -e "${GREEN}[ OK ]${RESET} $*"; }
warn() { echo -e "${YELLOW}[ WARN ]${RESET} $*"; }
err() { echo -e "${RED}[ERROR!]${RESET} $*" >&2; }
die() { err "$*"; cleanup; exit 1; }
# ── Build Configuration ────────────────────────────────────────────
# These can be overridden by profiles
BUILD_VERSION="${BUILD_VERSION:-1.6.0}"
BUILD_DATE=$(date +%Y%m%d)
DEBIAN_RELEASE="${DEBIAN_RELEASE:-bookworm}"
DEBIAN_MIRROR="${DEBIAN_MIRROR:-http://deb.debian.org/debian}"
DEBIAN_SECURITY="${DEBIAN_SECURITY:-http://security.debian.org/debian-security}"
# Output paths
OUTPUT_DIR="${OUTPUT_DIR:-output}"
PACKAGES_DIR="${PACKAGES_DIR:-output/packages}"
# Feature flags
INCLUDE_KIOSK="${INCLUDE_KIOSK:-0}"
INCLUDE_SLIPSTREAM="${INCLUDE_SLIPSTREAM:-0}"
VERBOSE="${VERBOSE:-0}"
# ── Cleanup Stack ──────────────────────────────────────────────────
CLEANUP_STACK=()
LOOP_DEV=""
MOUNT_POINT=""
push_cleanup() {
CLEANUP_STACK+=("$1")
}
cleanup() {
log "Cleaning up..."
# Execute cleanup stack in reverse order
for (( i=${#CLEANUP_STACK[@]}-1; i>=0; i-- )); do
eval "${CLEANUP_STACK[i]}" 2>/dev/null || true
done
# Standard cleanup
[[ -n "$MOUNT_POINT" && -d "$MOUNT_POINT" ]] && {
umount -R "$MOUNT_POINT" 2>/dev/null || true
rmdir "$MOUNT_POINT" 2>/dev/null || true
}
[[ -n "$LOOP_DEV" && -b "$LOOP_DEV" ]] && {
losetup -d "$LOOP_DEV" 2>/dev/null || true
}
}
trap cleanup EXIT INT TERM
# ── Utility Functions ──────────────────────────────────────────────
# Check if running as root
require_root() {
[[ $EUID -eq 0 ]] || die "This script must be run as root"
}
# Check required commands
check_commands() {
local cmds=("$@")
for cmd in "${cmds[@]}"; do
command -v "$cmd" &>/dev/null || die "Missing required command: $cmd"
done
}
# Find free loop device
find_loop_device() {
losetup -f 2>/dev/null || die "No free loop devices available"
}
# Setup loop device with partitions
setup_loop() {
local img="$1"
LOOP_DEV=$(losetup -fP --show "$img") || die "Failed to setup loop device for $img"
push_cleanup "losetup -d $LOOP_DEV"
echo "$LOOP_DEV"
}
# Mount partition
mount_partition() {
local device="$1"
local mount_point="$2"
local options="${3:-}"
mkdir -p "$mount_point"
if [[ -n "$options" ]]; then
mount -o "$options" "$device" "$mount_point" || die "Failed to mount $device"
else
mount "$device" "$mount_point" || die "Failed to mount $device"
fi
push_cleanup "umount $mount_point"
}
# Create temporary mount point
create_temp_mount() {
MOUNT_POINT=$(mktemp -d) || die "Failed to create temp directory"
push_cleanup "rmdir $MOUNT_POINT"
echo "$MOUNT_POINT"
}
# Run command in chroot
run_chroot() {
local root="$1"
shift
chroot "$root" /bin/bash -c "$*"
}
# Run command in chroot with proper mounts
run_chroot_mounted() {
local root="$1"
shift
# Bind mount essential filesystems
for fs in proc sys dev dev/pts; do
mount --bind "/$fs" "$root/$fs" 2>/dev/null || true
done
# Copy resolv.conf for network access
cp /etc/resolv.conf "$root/etc/resolv.conf" 2>/dev/null || true
# Run command
chroot "$root" /bin/bash -c "$*"
local ret=$?
# Unmount
for fs in dev/pts dev sys proc; do
umount "$root/$fs" 2>/dev/null || true
done
return $ret
}
# Copy packages to chroot for slipstream
copy_packages_for_slipstream() {
local root="$1"
local pkgdir="${2:-$PACKAGES_DIR}"
local destdir="$root/tmp/secubox-debs"
mkdir -p "$destdir"
if [[ -d "$pkgdir" ]]; then
local count=$(ls "$pkgdir"/*.deb 2>/dev/null | wc -l)
if [[ $count -gt 0 ]]; then
cp "$pkgdir"/*.deb "$destdir/"
log "Copied $count packages for slipstream"
return 0
fi
fi
warn "No packages found in $pkgdir"
return 1
}
# Install slipstream packages in chroot
install_slipstream_packages() {
local root="$1"
local destdir="$root/tmp/secubox-debs"
[[ -d "$destdir" ]] || return 1
run_chroot_mounted "$root" "
cd /tmp/secubox-debs
# Install with --force-depends to handle pip-installed Python packages
dpkg -i --force-depends *.deb 2>/dev/null || true
# Fix any broken dependencies
apt-get -f install -y --no-install-recommends 2>/dev/null || true
rm -rf /tmp/secubox-debs
"
}
# Install Python packages via pip
install_pip_packages() {
local root="$1"
shift
local packages=("$@")
run_chroot_mounted "$root" "
pip3 install --break-system-packages ${packages[*]} 2>/dev/null || \
pip3 install ${packages[*]}
"
}
# ── Image Creation ─────────────────────────────────────────────────
# Create raw disk image
create_disk_image() {
local img="$1"
local size="$2" # e.g., 4G, 8G
log "Creating ${size} disk image: $img"
dd if=/dev/zero of="$img" bs=1M count=0 seek="${size%G}000" 2>/dev/null || \
fallocate -l "$size" "$img" || \
truncate -s "$size" "$img" || \
die "Failed to create disk image"
}
# Partition disk image (GPT with ESP + rootfs)
partition_gpt_efi() {
local img="$1"
local esp_size="${2:-512M}"
log "Partitioning disk image (GPT + EFI)"
parted -s "$img" \
mklabel gpt \
mkpart ESP fat32 1MiB "$esp_size" \
set 1 esp on \
mkpart rootfs ext4 "$esp_size" 100% \
|| die "Failed to partition disk"
}
# Partition disk image for RPi (MBR with fat32 boot + ext4 root)
partition_rpi() {
local img="$1"
local boot_size="${2:-512M}"
log "Partitioning disk image (MBR for RPi)"
parted -s "$img" \
mklabel msdos \
mkpart primary fat32 4MiB "$boot_size" \
set 1 boot on \
mkpart primary ext4 "$boot_size" 100% \
|| die "Failed to partition disk"
}
# Format partitions
format_partitions() {
local loop="$1"
local type="$2" # efi or rpi
case "$type" in
efi)
mkfs.vfat -F32 -n ESP "${loop}p1" || die "Failed to format ESP"
mkfs.ext4 -L rootfs "${loop}p2" || die "Failed to format rootfs"
;;
rpi)
mkfs.vfat -F32 -n boot "${loop}p1" || die "Failed to format boot"
mkfs.ext4 -L rootfs "${loop}p2" || die "Failed to format rootfs"
;;
*)
die "Unknown partition type: $type"
;;
esac
}
# ── Debootstrap ────────────────────────────────────────────────────
# Run debootstrap for architecture
run_debootstrap() {
local root="$1"
local arch="$2"
local suite="${3:-$DEBIAN_RELEASE}"
local mirror="${4:-$DEBIAN_MIRROR}"
local include="${5:-}"
local debootstrap_opts=(
--arch="$arch"
--variant=minbase
)
[[ -n "$include" ]] && debootstrap_opts+=(--include="$include")
# For ARM64 cross-debootstrap
if [[ "$arch" == "arm64" && "$(dpkg --print-architecture)" != "arm64" ]]; then
debootstrap_opts+=(--foreign)
fi
log "Running debootstrap for $arch..."
debootstrap "${debootstrap_opts[@]}" "$suite" "$root" "$mirror" || \
die "Debootstrap failed"
# Second stage for foreign arch
if [[ "$arch" == "arm64" && "$(dpkg --print-architecture)" != "arm64" ]]; then
log "Running debootstrap second stage..."
run_chroot "$root" "/debootstrap/debootstrap --second-stage"
fi
}
# Configure APT sources
configure_apt_sources() {
local root="$1"
local suite="${2:-$DEBIAN_RELEASE}"
cat > "$root/etc/apt/sources.list" << EOF
deb $DEBIAN_MIRROR $suite main contrib non-free non-free-firmware
deb $DEBIAN_MIRROR $suite-updates main contrib non-free non-free-firmware
deb $DEBIAN_SECURITY ${suite}-security main contrib non-free non-free-firmware
EOF
}
# ── Compression and Finalization ───────────────────────────────────
# Compress image with gzip
compress_image() {
local img="$1"
local out="${2:-${img}.gz}"
log "Compressing image..."
gzip -9 -c "$img" > "$out" || die "Failed to compress image"
ok "Created compressed image: $(du -h "$out" | cut -f1)"
}
# Generate SHA256 checksum
generate_checksum() {
local file="$1"
local sum_file="${file}.sha256"
sha256sum "$file" | sed "s|.*/||" > "$sum_file"
ok "Generated checksum: $sum_file"
}
# ── Splash Screen Installation ─────────────────────────────────────
install_splash_screens() {
local root="$1"
local splash_dir="${2:-image/splash}"
[[ -d "$splash_dir" ]] || return 0
mkdir -p "$root/usr/share/secubox/splash"
cp "$splash_dir"/* "$root/usr/share/secubox/splash/" 2>/dev/null || true
# Make scripts executable
chmod +x "$root/usr/share/secubox/splash"/*.sh 2>/dev/null || true
ok "Installed splash screens"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1,8 @@
[Plymouth Theme]
Name=SecuBox
Description=SecuBox Debian Cybersecurity Platform boot theme
ModuleName=script
[script]
ImageDir=/usr/share/plymouth/themes/secubox
ScriptFile=/usr/share/plymouth/themes/secubox/secubox.script

View File

@ -0,0 +1,32 @@
# SecuBox Plymouth Boot Theme
# CyberMind - https://cybermind.fr
# Window settings
Window.SetBackgroundTopColor(0.04, 0.04, 0.06); // cosmos-black
Window.SetBackgroundBottomColor(0.10, 0.10, 0.16);
# Logo
logo.image = Image("logo.png");
logo.sprite = Sprite(logo.image);
logo.sprite.SetX(Window.GetWidth() / 2 - logo.image.GetWidth() / 2);
logo.sprite.SetY(Window.GetHeight() / 2 - logo.image.GetHeight() / 2 - 50);
# Progress indicator
progress = 0;
fun refresh_callback ()
{
progress++;
if (progress > 100) progress = 0;
}
Plymouth.SetRefreshFunction(refresh_callback);
# Message display
message_sprite = Sprite();
fun message_callback(text) {
if (text == "") {
message_sprite.SetOpacity(0);
} else {
message_sprite.SetOpacity(1);
}
}
Plymouth.SetMessageFunction(message_callback);

View File

@ -0,0 +1,142 @@
# ══════════════════════════════════════════════════════════════════
# SecuBox-DEB Build Profile: ESPRESSObin v7
# Target: Marvell Armada 3720 (ESPRESSObin, MOCHAbin)
# ══════════════════════════════════════════════════════════════════
# Profile identification
PROFILE_NAME="espressobin-v7"
PROFILE_DESC="ESPRESSObin v7 ARM64 Image"
LOG_PREFIX="ebin-v7"
# Architecture
TARGET_ARCH="arm64"
TARGET_KERNEL="linux-image-arm64"
# Image settings
IMAGE_NAME="secubox-espressobin-v7-${DEBIAN_RELEASE}.img"
IMAGE_SIZE="3584M" # 3.5GB
PARTITION_TYPE="efi"
# Feature flags
INCLUDE_KIOSK=0 # Headless server
INCLUDE_DESKTOP=0
INCLUDE_SLIPSTREAM=1
# SecuBox profile - network security focused for router use
SECUBOX_PROFILE="${SECUBOX_PROFILE:-full}"
# Base packages (minimal headless)
BASE_PACKAGES="
linux-image-arm64
grub-efi-arm64
systemd
systemd-sysv
dbus
openssh-server
sudo
curl
wget
ca-certificates
gnupg
nginx
python3
python3-pip
python3-venv
nftables
iproute2
netplan.io
locales
console-setup
vim-tiny
rsync
jq
ethtool
dnsmasq
"
# Network packages (ESPRESSObin is a network device)
NETWORK_PACKAGES="
bridge-utils
vlan
hostapd
tcpdump
iperf3
"
# Python packages (pip)
PIP_PACKAGES="
fastapi
uvicorn[standard]
httpx
python-jose
toml
pyyaml
aiofiles
psutil
netifaces
pyroute2
"
# Bootloader
BOOTLOADER="grub-efi-arm64"
GRUB_DEFAULT="SecuBox GNU/Linux"
GRUB_TIMEOUT=3
# Network configuration - ESPRESSObin has multiple ethernet ports
NETWORK_TYPE="bridge"
LAN_INTERFACE="lan0"
WAN_INTERFACE="wan0"
HOSTNAME_PREFIX="secubox-ebin"
# Console configuration (serial)
SERIAL_CONSOLE="ttyMV0,115200n8"
# Post-install hooks
post_install_hook() {
local root="$1"
# Enable serial console
run_chroot "$root" "systemctl enable serial-getty@ttyMV0"
# Configure network bridges for ESPRESSObin
cat > "$root/etc/netplan/00-secubox.yaml" << 'EOF'
network:
version: 2
renderer: networkd
ethernets:
wan:
match:
driver: mvneta
macaddress: "00:51:82:*"
set-name: wan0
dhcp4: true
lan0:
match:
driver: dsa
set-name: lan0
dhcp4: false
lan1:
match:
driver: dsa
set-name: lan1
dhcp4: false
bridges:
br-lan:
interfaces: [lan0, lan1]
addresses: [192.168.1.1/24]
dhcp4: false
EOF
# Add dnsmasq config for DHCP server
cat > "$root/etc/dnsmasq.d/secubox.conf" << 'EOF'
interface=br-lan
bind-interfaces
dhcp-range=192.168.1.100,192.168.1.250,24h
dhcp-option=option:router,192.168.1.1
dhcp-option=option:dns-server,192.168.1.1
EOF
}

157
image/profiles/rpi400.conf Normal file
View File

@ -0,0 +1,157 @@
# ══════════════════════════════════════════════════════════════════
# SecuBox-DEB Build Profile: Raspberry Pi 400
# Target: Raspberry Pi 3B+, 4, 400, CM4
# ══════════════════════════════════════════════════════════════════
# Profile identification
PROFILE_NAME="rpi400"
PROFILE_DESC="Raspberry Pi 400 ARM64 Image"
LOG_PREFIX="rpi-usb"
# Architecture
TARGET_ARCH="arm64"
TARGET_KERNEL="linux-image-arm64"
# Image settings
IMAGE_NAME="secubox-rpi-arm64-${DEBIAN_RELEASE}.img"
IMAGE_SIZE="8G"
PARTITION_TYPE="rpi"
# Feature flags
INCLUDE_KIOSK=1
INCLUDE_DESKTOP=1
INCLUDE_SLIPSTREAM=1
# SecuBox profile
SECUBOX_PROFILE="${SECUBOX_PROFILE:-full}"
# Base packages
BASE_PACKAGES="
linux-image-arm64
systemd
systemd-sysv
dbus
openssh-server
sudo
curl
wget
ca-certificates
gnupg
nginx
python3
python3-pip
python3-venv
nftables
iproute2
netplan.io
locales
console-setup
vim-tiny
rsync
parted
fdisk
jq
firmware-brcm80211
wpasupplicant
"
# Raspberry Pi specific packages
RPI_PACKAGES="
raspi-firmware
linux-image-arm64
"
# Kiosk packages (Wayland for Pi 4/400)
KIOSK_PACKAGES="
xserver-xorg
xserver-xorg-video-fbdev
xserver-xorg-input-all
x11-xserver-utils
xinit
chromium
nodm
feh
fonts-dejavu
fonts-liberation
"
# Python packages (pip)
PIP_PACKAGES="
fastapi
uvicorn[standard]
httpx
python-jose
toml
pyyaml
aiofiles
psutil
netifaces
"
# Bootloader - RPi uses config.txt
BOOTLOADER="rpi-firmware"
# Network configuration
NETWORK_TYPE="dhcp"
HOSTNAME_PREFIX="secubox-rpi"
# Kiosk configuration
KIOSK_USER="kiosk"
KIOSK_URL="https://localhost/"
# Post-install hooks
post_install_hook() {
local root="$1"
# Configure RPi boot
cat > "$root/boot/firmware/config.txt" << 'EOF'
# SecuBox Raspberry Pi Configuration
arm_64bit=1
kernel=vmlinuz
initramfs initrd.img followkernel
disable_overscan=1
# GPU memory split (minimal for server use)
gpu_mem=128
# Enable hardware features
dtparam=audio=on
dtparam=i2c_arm=on
dtparam=spi=on
# HDMI settings
hdmi_force_hotplug=1
hdmi_drive=2
# USB power (for drives)
max_usb_current=1
# Temperature management
temp_soft_limit=70
# Enable camera/display
camera_auto_detect=1
display_auto_detect=1
# Boot options
boot_delay=0
disable_splash=1
EOF
# Create cmdline.txt
echo "console=tty1 root=LABEL=rootfs rootfstype=ext4 fsck.repair=yes rootwait quiet splash" \
> "$root/boot/firmware/cmdline.txt"
# Copy kernel and initramfs to boot partition
local kernel=$(ls "$root/boot/vmlinuz-"* 2>/dev/null | tail -1)
local initrd=$(ls "$root/boot/initrd.img-"* 2>/dev/null | tail -1)
[[ -f "$kernel" ]] && cp "$kernel" "$root/boot/firmware/vmlinuz"
[[ -f "$initrd" ]] && cp "$initrd" "$root/boot/firmware/initrd.img"
# Copy DTBs
local dtb_src="$root/usr/lib/linux-image-"*"/broadcom"
if [[ -d $dtb_src ]]; then
cp "$dtb_src"/bcm27*.dtb "$root/boot/firmware/" 2>/dev/null || true
cp "$dtb_src"/bcm2711*.dtb "$root/boot/firmware/" 2>/dev/null || true
fi
}

View File

@ -0,0 +1,179 @@
# ══════════════════════════════════════════════════════════════════
# SecuBox-DEB Build Profile: x64 Live USB
# Target: Bootable USB drives with full SecuBox modules
# ══════════════════════════════════════════════════════════════════
# Profile identification
PROFILE_NAME="x64-live"
PROFILE_DESC="x86_64 Live USB Image with Kiosk"
LOG_PREFIX="live-usb"
# Architecture
TARGET_ARCH="amd64"
TARGET_KERNEL="linux-image-amd64"
# Image settings
IMAGE_NAME="secubox-live-amd64-${DEBIAN_RELEASE}.img"
IMAGE_SIZE="8G"
PARTITION_TYPE="efi"
# Feature flags
INCLUDE_KIOSK=1
INCLUDE_DESKTOP=1
INCLUDE_SLIPSTREAM=1
# SecuBox module profiles
# full: All modules (default)
# lite: Minimal essential modules
# network: Networking and security modules
# custom: User-defined selection
SECUBOX_PROFILE="${SECUBOX_PROFILE:-full}"
# Base packages
BASE_PACKAGES="
linux-image-amd64
grub-efi-amd64
systemd
systemd-sysv
dbus
openssh-server
sudo
curl
wget
ca-certificates
gnupg
nginx
python3
python3-pip
python3-venv
nftables
iproute2
netplan.io
locales
console-setup
vim-tiny
rsync
parted
fdisk
jq
"
# Kiosk packages (X11 + Chromium)
KIOSK_PACKAGES="
xserver-xorg
xserver-xorg-video-all
xserver-xorg-input-all
x11-xserver-utils
xinit
chromium
chromium-sandbox
nodm
feh
fonts-dejavu
fonts-liberation
fonts-cantarell
"
# Plymouth boot splash
PLYMOUTH_PACKAGES="
plymouth
plymouth-themes
"
# Python packages (pip)
PIP_PACKAGES="
fastapi
uvicorn[standard]
httpx
python-jose
toml
pyyaml
aiofiles
psutil
netifaces
"
# SecuBox modules by profile
get_secubox_modules() {
case "$SECUBOX_PROFILE" in
full)
# All available modules
echo "secubox-full"
;;
lite)
# Essential modules for low-RAM devices
echo "secubox-lite"
;;
network)
# Network security focused
echo "secubox-core secubox-hub secubox-crowdsec secubox-netdata"
echo "secubox-wireguard secubox-nac secubox-netmodes secubox-dpi"
echo "secubox-waf secubox-dns secubox-firewall"
;;
custom)
# Read from SECUBOX_MODULES environment variable
echo "${SECUBOX_MODULES:-secubox-core secubox-hub}"
;;
*)
echo "secubox-full"
;;
esac
}
# Bootloader
BOOTLOADER="grub-efi"
GRUB_DEFAULT="SecuBox Kiosk Mode"
GRUB_TIMEOUT=3
# Network configuration
NETWORK_TYPE="dummy"
DUMMY_IP="192.168.255.1"
HOSTNAME_PREFIX="secubox-live"
# Kiosk configuration
KIOSK_USER="kiosk"
KIOSK_URL="https://localhost/"
KIOSK_FULLSCREEN=1
# Post-install hooks
post_install_hook() {
local root="$1"
# Configure kiosk user
if [[ $INCLUDE_KIOSK -eq 1 ]]; then
run_chroot "$root" "
useradd -m -s /bin/bash $KIOSK_USER 2>/dev/null || true
echo '$KIOSK_USER ALL=(ALL) NOPASSWD: /sbin/poweroff, /sbin/reboot' >> /etc/sudoers.d/kiosk
"
# Configure nodm for autologin
cat > "$root/etc/default/nodm" << EOF
NODM_ENABLED=true
NODM_USER=$KIOSK_USER
NODM_FIRST_VT=7
NODM_XSESSION=/etc/X11/Xsession
NODM_X_OPTIONS='-nolisten tcp'
NODM_MIN_SESSION_TIME=60
EOF
fi
# Install Plymouth theme
if [[ -d "$root/usr/share/plymouth/themes/secubox" ]]; then
run_chroot "$root" "plymouth-set-default-theme secubox"
fi
# Create dummy network interface for kiosk
cat > "$root/etc/systemd/network/10-dummy.netdev" << EOF
[NetDev]
Name=dummy0
Kind=dummy
EOF
cat > "$root/etc/systemd/network/20-dummy.network" << EOF
[Match]
Name=dummy0
[Network]
Address=$DUMMY_IP/24
EOF
}

View File

@ -0,0 +1,85 @@
# ══════════════════════════════════════════════════════════════════
# SecuBox-DEB Build Profile: x64 VM
# Target: Virtual machines (QEMU, VirtualBox, VMware)
# ══════════════════════════════════════════════════════════════════
# Profile identification
PROFILE_NAME="x64-vm"
PROFILE_DESC="x86_64 Virtual Machine Image"
LOG_PREFIX="vm-x64"
# Architecture
TARGET_ARCH="amd64"
TARGET_KERNEL="linux-image-amd64"
# Image settings
IMAGE_NAME="secubox-vm-x64-${DEBIAN_RELEASE}.img"
IMAGE_SIZE="4G"
PARTITION_TYPE="efi"
# Feature flags
INCLUDE_KIOSK=0
INCLUDE_DESKTOP=0
INCLUDE_SLIPSTREAM=1
# Base packages (minimal for VM)
BASE_PACKAGES="
linux-image-amd64
grub-efi-amd64
systemd
systemd-sysv
dbus
openssh-server
sudo
curl
wget
ca-certificates
gnupg
nginx
python3
python3-pip
python3-venv
nftables
iproute2
netplan.io
locales
console-setup
"
# Additional packages for VM
EXTRA_PACKAGES="
qemu-guest-agent
open-vm-tools
cloud-init
"
# Python packages (pip)
PIP_PACKAGES="
fastapi
uvicorn[standard]
httpx
python-jose
toml
pyyaml
"
# Bootloader
BOOTLOADER="grub-efi"
GRUB_DEFAULT="SecuBox GNU/Linux"
# Network configuration
NETWORK_TYPE="dhcp"
HOSTNAME_PREFIX="secubox-vm"
# Post-install hooks
post_install_hook() {
local root="$1"
# Enable serial console for headless operation
run_chroot "$root" "systemctl enable serial-getty@ttyS0"
# Configure cloud-init for VM provisioning
if [[ -f "$root/etc/cloud/cloud.cfg" ]]; then
sed -i 's/disable_root: true/disable_root: false/' "$root/etc/cloud/cloud.cfg"
fi
}

BIN
image/splash/boot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 333 KiB

49
image/splash/kiosk-loading.sh Executable file
View File

@ -0,0 +1,49 @@
#!/bin/bash
# SecuBox Kiosk Loading Splash
# Shows animated loading progress
# Colors
G='\033[38;5;40m' # Green
GO='\033[38;5;178m' # Gold
CY='\033[38;5;51m' # Cyan
GR='\033[38;5;240m' # Gray
RS='\033[0m'
spinner="⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏"
progress_bar() {
local width=40
local percent=$1
local filled=$((percent * width / 100))
local empty=$((width - filled))
printf "\r ${GO}[${G}"
printf "%0.s█" $(seq 1 $filled)
printf "%0.s░" $(seq 1 $empty)
printf "${GO}]${RS} ${percent}%%"
}
clear
cat << SPLASH
${GO}╔══════════════════════════════════════════════════════════════╗${RS}
${GO}${RS} ${GO}${RS}
${GO}${RS} ${G}SecuBox${RS} ${CY}Kiosk Mode${RS} ${GO}${RS}
${GO}${RS} ${GO}${RS}
${GO}╚══════════════════════════════════════════════════════════════╝${RS}
SPLASH
stages=(
"Initializing X11 display..."
"Configuring network interface..."
"Starting nginx web server..."
"Loading SecuBox services..."
"Launching browser..."
)
for i in "${!stages[@]}"; do
echo -e "\n ${CY}${spinner:i%10:1}${RS} ${stages[$i]}"
progress_bar $((20 + i * 20))
sleep 0.5
done
echo -e "\n\n ${G}${RS} ${GO}Kiosk ready${RS}\n"

11
image/splash/loading.txt Normal file
View File

@ -0,0 +1,11 @@
┌──────────────────────────────────────────┐
│ │
│ ████ SecuBox ████ │
│ │
│ Loading secure environment... │
│ │
│ Please wait │
│ │
└──────────────────────────────────────────┘

29
image/splash/tui-splash.sh Executable file
View File

@ -0,0 +1,29 @@
#!/bin/bash
# SecuBox TUI Splash - ANSI colors
clear
# P31 Green colors
G1='\033[38;5;34m' # Green
G2='\033[38;5;40m' # Bright green
GO='\033[38;5;178m' # Gold
CY='\033[38;5;51m' # Cyan
GR='\033[38;5;240m' # Gray
RS='\033[0m' # Reset
cat << SPLASH
${GO}╔════════════════════════════════════════════════════════════════════════╗${RS}
${GO}${RS} ${GO}${RS}
${GO}${RS} ${G1}███████╗${G2}███████╗ ██████╗${G1}██╗ ██╗${G2}██████╗ ██████╗ ██╗ ██╗${RS} ${GO}${RS}
${GO}${RS} ${G1}██╔════╝${G2}██╔════╝██╔════╝${G1}██║ ██║${G2}██╔══██╗██╔═══██╗╚██╗██╔╝${RS} ${GO}${RS}
${GO}${RS} ${G1}███████╗${G2}█████╗ ██║ ${G1}██║ ██║${G2}██████╔╝██║ ██║ ╚███╔╝${RS} ${GO}${RS}
${GO}${RS} ${G1}╚════██║${G2}██╔══╝ ██║ ${G1}██║ ██║${G2}██╔══██╗██║ ██║ ██╔██╗${RS} ${GO}${RS}
${GO}${RS} ${G1}███████║${G2}███████╗╚██████╗${G1}╚██████╔╝${G2}██████╔╝╚██████╔╝██╔╝ ██╗${RS} ${GO}${RS}
${GO}${RS} ${G1}╚══════╝${G2}╚══════╝ ╚═════╝${G1} ╚═════╝ ${G2}╚═════╝ ╚═════╝ ╚═╝ ╚═╝${RS} ${GO}${RS}
${GO}${RS} ${GO}${RS}
${GO}${RS} ${CY}Debian Cybersecurity Platform v1.6.0${RS} ${GO}${RS}
${GO}${RS} ${GO}${RS}
${GO}${RS} ${GR}CyberMind — cybermind.fr${RS} ${GO}${RS}
${GO}${RS} ${GO}${RS}
${GO}╚════════════════════════════════════════════════════════════════════════╝${RS}
SPLASH

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-ad-guard
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0.0), python3-httpx
Depends: ${misc:Depends}, secubox-core (>= 1.0.0), python3-httpx | python3-pip
Description: SecuBox Ad Guard Module
Ad and tracker detection with per-device statistics.
Features blocklist management, delayed blacklisting workflow,

View File

@ -9,7 +9,7 @@ Rules-Requires-Root: no
Package: secubox-avatar
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-fastapi, python3-pil
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-fastapi | python3-pip, python3-pil
Description: SecuBox Identity and Avatar Manager
Identity and avatar management module for SecuBox services.
Provides unified identity management across Gitea, Nextcloud, Mail, Matrix.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.0
Package: secubox-cloner
Architecture: all
Depends: ${misc:Depends}, python3, python3-fastapi, python3-uvicorn, secubox-core
Depends: ${misc:Depends}, python3, python3-fastapi | python3-pip, python3-uvicorn | python3-pip, secubox-core
Description: SecuBox Cloner - System backup and restore
System backup and restore for SecuBox.
Create, manage, and restore compressed backups

View File

@ -11,7 +11,7 @@ Package: secubox-console
Architecture: all
Depends: ${misc:Depends},
python3 (>= 3.11),
python3-httpx,
python3-httpx | python3-pip,
python3-rich
Recommends: secubox-core (>= 1.1.0),
python3-pip

View File

@ -10,8 +10,8 @@ Package: secubox-cookies
Architecture: all
Depends: ${misc:Depends},
python3,
python3-fastapi,
python3-uvicorn,
python3-fastapi | python3-pip,
python3-uvicorn | python3-pip,
secubox-core
Recommends: secubox-mitmproxy
Description: SecuBox Cookie Tracker

View File

@ -13,7 +13,7 @@ Depends: ${misc:Depends}, ${python3:Depends},
python3-fastapi | python3-pip,
python3-uvicorn | python3-pip,
python3-jose,
python3-httpx,
python3-httpx | python3-pip,
nginx,
nftables,
openssl

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-cyberfeed
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0.0), python3-httpx
Depends: ${misc:Depends}, secubox-core (>= 1.0.0), python3-httpx | python3-pip
Description: SecuBox CyberFeed - Threat Intelligence Feed Aggregator
Aggregates threat feeds from multiple sources (abuse.ch, Spamhaus, etc.)
and provides unified blocklist management for IPs, domains, and IoCs.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-dns-provider
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0.0), python3-httpx
Depends: ${misc:Depends}, secubox-core (>= 1.0.0), python3-httpx | python3-pip
Description: SecuBox DNS Provider Module
Multi-provider DNS API management for SecuBox.
Supports OVH, Gandi, Cloudflare, and AWS Route53.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-domoticz
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn, python3-httpx
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn | python3-pip, python3-httpx | python3-pip
Description: Domoticz Home Automation for SecuBox
Debian bookworm port providing Domoticz home automation management.
Provides FastAPI backend on /api/v1/domoticz/ via Unix socket.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-droplet
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn, python3-aiofiles
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn | python3-pip, python3-aiofiles
Description: SecuBox Droplet File Publisher
Dashboard pour la publication de fichiers et sites statiques.
Port Debian bookworm de luci-app-droplet (SecuBox OpenWrt).

View File

@ -10,8 +10,8 @@ Package: secubox-exposure
Architecture: all
Depends: ${misc:Depends},
python3,
python3-fastapi,
python3-uvicorn,
python3-fastapi | python3-pip,
python3-uvicorn | python3-pip,
secubox-core
Recommends: tor
Description: SecuBox Exposure Manager

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-gotosocial
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn | python3-pip
Recommends: docker.io | podman
Description: GoToSocial Fediverse server management
SecuBox module for managing GoToSocial ActivityPub server via Docker/Podman.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-haproxy
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn, python3-httpx
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn | python3-pip, python3-httpx | python3-pip
Recommends: haproxy, secubox-waf
Description: SecuBox HAProxy Dashboard
Dashboard HAProxy avec gestion des vhosts et backends.

View File

@ -10,8 +10,8 @@ Package: secubox-hardening
Architecture: all
Depends: ${misc:Depends}, ${python3:Depends},
secubox-core,
python3-fastapi,
python3-uvicorn
python3-fastapi | python3-pip,
python3-uvicorn | python3-pip
Recommends: auditd
Description: SecuBox Kernel and System Hardening
Kernel and system hardening for SecuBox appliances.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-hexo
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn | python3-pip
Recommends: docker.io | podman
Description: Hexo static blog generator management
SecuBox module for managing Hexo static site generator via Docker.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-homeassistant
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn, python3-httpx
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn | python3-pip, python3-httpx | python3-pip
Recommends: docker.io | podman, lxc
Description: Home Assistant IoT Hub for SecuBox
Debian bookworm port of Home Assistant integration module.

View File

@ -10,8 +10,8 @@ Package: secubox-interceptor
Architecture: all
Depends: ${misc:Depends},
python3,
python3-fastapi,
python3-uvicorn,
python3-fastapi | python3-pip,
python3-uvicorn | python3-pip,
secubox-core
Recommends: secubox-mitmproxy, secubox-waf, openssl
Description: SecuBox Traffic Interceptor

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.0
Package: secubox-jabber
Architecture: all
Depends: secubox-core, python3, python3-uvicorn, python3-fastapi, nginx
Depends: secubox-core, python3, python3-uvicorn | python3-pip, python3-fastapi | python3-pip, nginx
Recommends: prosody
Description: SecuBox Jabber XMPP Server
Prosody XMPP server management for SecuBox.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-jellyfin
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn | python3-pip
Recommends: docker.io | podman
Description: Jellyfin media server management
SecuBox module for managing Jellyfin media server via Docker.

View File

@ -10,7 +10,7 @@ Package: secubox-jitsi
Architecture: all
Depends: ${misc:Depends},
secubox-core (>= 1.0),
python3-uvicorn
python3-uvicorn | python3-pip
Recommends: docker.io | podman, docker-compose | podman-compose, nginx
Description: SecuBox Jitsi Meet - Video Conferencing
Docker-based Jitsi Meet video conferencing for SecuBox.

View File

@ -9,7 +9,7 @@ Rules-Requires-Root: no
Package: secubox-ksm
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-fastapi
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-fastapi | python3-pip
Description: SecuBox KSM Memory Optimization Dashboard
Kernel Same-page Merging (KSM) management module.
Provides web UI and API for KSM controls to optimize memory

View File

@ -10,9 +10,9 @@ Architecture: all
Depends: ${misc:Depends},
secubox-core,
python3,
python3-fastapi,
python3-uvicorn,
python3-httpx,
python3-fastapi | python3-pip,
python3-uvicorn | python3-pip,
python3-httpx | python3-pip,
nginx,
lxc,
lxc-templates

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-lyrion
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn, python3-httpx
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn | python3-pip, python3-httpx | python3-pip
Description: Lyrion Music Server (LMS) for SecuBox
Debian bookworm port of the OpenWRT luci-app-lyrion module.
Provides FastAPI backend on /api/v1/lyrion/ via Unix socket.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.0
Package: secubox-magicmirror
Architecture: all
Depends: ${misc:Depends}, python3, python3-fastapi, python3-uvicorn, secubox-core
Depends: ${misc:Depends}, python3, python3-fastapi | python3-pip, python3-uvicorn | python3-pip, secubox-core
Recommends: nodejs, npm, xserver-xorg, chromium
Description: SecuBox MagicMirror management
Smart display platform management for SecuBox.

View File

@ -10,8 +10,8 @@ Package: secubox-matrix
Architecture: all
Depends: ${misc:Depends},
secubox-core (>= 1.0),
python3-uvicorn,
python3-httpx,
python3-uvicorn | python3-pip,
python3-httpx | python3-pip,
lxc,
lxc-templates
Recommends: nginx

View File

@ -7,6 +7,6 @@ Standards-Version: 4.6.2
Package: secubox-mesh
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3, python3-fastapi, python3-uvicorn
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3, python3-fastapi | python3-pip, python3-uvicorn | python3-pip
Description: SecuBox Mesh DNS - Meshname DNS for mesh networks
Meshname DNS management for Yggdrasil and mesh networks.

View File

@ -9,7 +9,7 @@ Rules-Requires-Root: no
Package: secubox-metabolizer
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-fastapi, python3-uvicorn
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-fastapi | python3-pip, python3-uvicorn | python3-pip
Description: SecuBox Metabolizer - Log processor and analyzer
Log processing module that analyzes journalctl logs, extracts patterns,
calculates statistics, and monitors log rotation for SecuBox.

View File

@ -9,7 +9,7 @@ Rules-Requires-Root: no
Package: secubox-metacatalog
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-fastapi, python3-uvicorn
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-fastapi | python3-pip, python3-uvicorn | python3-pip
Description: SecuBox Metacatalog - Service catalog and registry
SecuBox module for discovering and monitoring installed SecuBox services.
Provides a centralized view of all services, their health status,

View File

@ -11,8 +11,8 @@ Architecture: all
Depends: ${misc:Depends},
secubox-core,
python3,
python3-fastapi,
python3-uvicorn
python3-fastapi | python3-pip,
python3-uvicorn | python3-pip
Description: SecuBox Metrics Dashboard
Real-time system metrics dashboard with caching.
Provides overview stats, WAF metrics, connection counts,

View File

@ -9,7 +9,7 @@ Rules-Requires-Root: no
Package: secubox-mirror
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), nginx, python3-fastapi, python3-uvicorn, curl
Depends: ${misc:Depends}, secubox-core (>= 1.0), nginx, python3-fastapi | python3-pip, python3-uvicorn | python3-pip, curl
Description: SecuBox Mirror/CDN Cache
Local mirror and CDN caching service for APT repositories and other content.
Features nginx caching proxy, mirror sync status, cache statistics, and

View File

@ -10,8 +10,8 @@ Package: secubox-mitmproxy
Architecture: all
Depends: ${misc:Depends},
python3,
python3-fastapi,
python3-uvicorn,
python3-fastapi | python3-pip,
python3-uvicorn | python3-pip,
secubox-core
Recommends: lxc, nftables, crowdsec
Description: SecuBox MITMProxy WAF

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.0
Package: secubox-mmpm
Architecture: all
Depends: ${misc:Depends}, python3, python3-fastapi, python3-uvicorn, secubox-core
Depends: ${misc:Depends}, python3, python3-fastapi | python3-pip, python3-uvicorn | python3-pip, secubox-core
Recommends: git, secubox-magicmirror
Description: SecuBox MMPM - MagicMirror Package Manager
Package manager for MagicMirror modules.

View File

@ -9,7 +9,7 @@ Rules-Requires-Root: no
Package: secubox-nettweak
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-fastapi, procps
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-fastapi | python3-pip, procps
Description: SecuBox Network Tuning Dashboard
Network tuning module for sysctl and TCP/IP stack optimization.
Provides web UI and API for managing kernel network parameters.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-newsbin
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn | python3-pip
Recommends: docker.io | podman
Description: Usenet downloader management for SecuBox
SecuBox module for managing SABnzbd Usenet downloader via Docker.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-ollama
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn, python3-httpx
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn | python3-pip, python3-httpx | python3-pip
Recommends: docker.io | podman
Description: Local AI inference with Ollama
SecuBox module for managing local LLM inference via Ollama.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.0
Package: secubox-ossec
Architecture: all
Depends: ${misc:Depends}, python3, python3-fastapi, python3-uvicorn, secubox-core
Depends: ${misc:Depends}, python3, python3-fastapi | python3-pip, python3-uvicorn | python3-pip, secubox-core
Recommends: ossec-hids | ossec-hids-agent
Description: SecuBox OSSEC HIDS integration
OSSEC Host-based Intrusion Detection System integration.

View File

@ -7,6 +7,6 @@ Standards-Version: 4.6.2
Package: secubox-p2p
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3, python3-fastapi, python3-uvicorn, avahi-daemon, avahi-utils
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3, python3-fastapi | python3-pip, python3-uvicorn | python3-pip, avahi-daemon, avahi-utils
Description: SecuBox P2P - Peer-to-Peer Network Hub
P2P network management with peers, services, mesh visualization, and threat intel.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-peertube
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn | python3-pip
Recommends: docker.io | podman
Description: PeerTube federated video platform management
SecuBox module for managing PeerTube video hosting via Docker/Podman.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-photoprism
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn | python3-pip
Recommends: docker.io | podman
Description: PhotoPrism photo management for SecuBox
SecuBox module for managing PhotoPrism photo server via Docker.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-picobrew
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn | python3-pip
Description: Homebrew/Fermentation Controller for SecuBox
SecuBox-DEB Phase 9 IoT module for homebrewing and fermentation.
Provides FastAPI backend on /api/v1/picobrew/ via Unix socket.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-portal
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn, python3-jwt
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn | python3-pip, python3-jwt
Description: SecuBox Portal - Web Authentication
Centralized web authentication for all SecuBox modules.
.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-publish
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0.0), python3-httpx
Depends: ${misc:Depends}, secubox-core (>= 1.0.0), python3-httpx | python3-pip
Recommends: secubox-streamlit, secubox-streamforge, secubox-droplet, secubox-metablogizer
Description: SecuBox Publishing Platform
Unified Layer 2 dashboard for all publishing modules.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.0
Package: secubox-redroid
Architecture: all
Depends: ${misc:Depends}, python3, python3-fastapi, python3-uvicorn, secubox-core
Depends: ${misc:Depends}, python3, python3-fastapi | python3-pip, python3-uvicorn | python3-pip, secubox-core
Recommends: docker.io, adb
Description: SecuBox Redroid - Android in container
Android container management for SecuBox.

View File

@ -10,8 +10,8 @@ Package: secubox-repo
Architecture: all
Depends: ${misc:Depends}, ${python3:Depends},
secubox-core,
python3-fastapi,
python3-uvicorn,
python3-fastapi | python3-pip,
python3-uvicorn | python3-pip,
python3-aiofiles,
reprepro,
gnupg,

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.0
Package: secubox-rezapp
Architecture: all
Depends: ${misc:Depends}, python3, python3-fastapi, python3-uvicorn, python3-psutil, secubox-core
Depends: ${misc:Depends}, python3, python3-fastapi | python3-pip, python3-uvicorn | python3-pip, python3-psutil, secubox-core
Recommends: docker.io | docker-ce, containerd
Suggests: lxc
Description: SecuBox RezApp - Application deployment and management

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-roadmap
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3, python3-fastapi, python3-uvicorn
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3, python3-fastapi | python3-pip, python3-uvicorn | python3-pip
Description: SecuBox Roadmap - Migration tracking dashboard
Tracks migration progress from OpenWRT LuCI apps to SecuBox Debian packages.
Shows complete, in-progress, and planned modules with category breakdown.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-saas-relay
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn, python3-httpx, python3-cryptography
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn | python3-pip, python3-httpx | python3-pip, python3-cryptography
Description: SecuBox SaaS/API Proxy Relay
Secure proxy relay for external SaaS APIs with encrypted key storage.
Port Debian bookworm de SecuBox-DEB Phase 9.

View File

@ -9,8 +9,8 @@ Package: secubox-simplex
Architecture: all
Depends: secubox-core,
python3,
python3-uvicorn,
python3-fastapi,
python3-uvicorn | python3-pip,
python3-fastapi | python3-pip,
python3-pydantic,
nginx,
openssl,

View File

@ -12,8 +12,8 @@ Architecture: all
Depends: ${misc:Depends},
python3 (>= 3.11),
secubox-core (>= 1.1.0),
python3-httpx,
python3-fastapi,
python3-httpx | python3-pip,
python3-fastapi | python3-pip,
uvicorn
Suggests: secubox-watchdog,
crowdsec

View File

@ -12,8 +12,8 @@ Architecture: all
Depends: ${misc:Depends},
python3 (>= 3.11),
secubox-core (>= 1.1.0),
python3-httpx,
python3-fastapi,
python3-httpx | python3-pip,
python3-fastapi | python3-pip,
python3-websockets,
uvicorn
Suggests: secubox-soc-agent,

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-streamforge
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn, python3-psutil
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn | python3-pip, python3-psutil
Recommends: streamlit
Description: SecuBox Streamlit Forge
Gestionnaire d'applications Streamlit avec templates.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-streamlit
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn, python3-psutil, lxc, debootstrap
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn | python3-pip, python3-psutil, lxc, debootstrap
Recommends: streamlit
Description: SecuBox Streamlit Platform
Plateforme d'applications Streamlit avec support LXC.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-torrent
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn | python3-pip
Recommends: docker.io | podman
Description: BitTorrent client management for SecuBox
SecuBox module for managing BitTorrent downloads via Transmission.

View File

@ -10,8 +10,8 @@ Package: secubox-traffic
Architecture: all
Depends: ${misc:Depends},
python3,
python3-fastapi,
python3-uvicorn,
python3-fastapi | python3-pip,
python3-uvicorn | python3-pip,
secubox-core,
iproute2
Recommends: linux-image-amd64 (>= 5.4) | linux-image-arm64 (>= 5.4)

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.0
Package: secubox-vault
Architecture: all
Depends: ${misc:Depends}, python3, python3-fastapi, python3-uvicorn, python3-cryptography, secubox-core
Depends: ${misc:Depends}, python3, python3-fastapi | python3-pip, python3-uvicorn | python3-pip, python3-cryptography, secubox-core
Recommends: vault
Description: SecuBox Vault - Secrets management
Encrypted secrets storage for SecuBox.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.0
Package: secubox-vm
Architecture: all
Depends: ${misc:Depends}, python3, python3-fastapi, python3-uvicorn, secubox-core
Depends: ${misc:Depends}, python3, python3-fastapi | python3-pip, python3-uvicorn | python3-pip, secubox-core
Recommends: libvirt-daemon-system, qemu-system-x86, virtinst, lxc
Description: SecuBox VM Manager - Virtualization management
Virtual machine and container management for SecuBox.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-voip
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn | python3-pip
Recommends: docker.io | podman
Description: VoIP/PBX management module for SecuBox
SecuBox module for managing Asterisk/FreePBX PBX system via Docker.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.0
Package: secubox-wazuh
Architecture: all
Depends: ${misc:Depends}, python3, python3-fastapi, python3-uvicorn, secubox-core
Depends: ${misc:Depends}, python3, python3-fastapi | python3-pip, python3-uvicorn | python3-pip, secubox-core
Recommends: wazuh-agent | wazuh-manager
Description: SecuBox Wazuh SIEM integration
Wazuh SIEM integration for SecuBox.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-webradio
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn, python3-httpx
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn | python3-pip, python3-httpx | python3-pip
Recommends: ffmpeg, podman | docker.io
Description: Internet Radio Streaming for SecuBox
Debian bookworm port of internet radio management module.

View File

@ -7,7 +7,7 @@ Standards-Version: 4.6.2
Package: secubox-zigbee
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn, python3-httpx
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3-uvicorn | python3-pip, python3-httpx | python3-pip
Description: Zigbee2MQTT Gateway for SecuBox
Debian bookworm port of the OpenWRT luci-app-zigbee2mqtt module.
Provides FastAPI backend on /api/v1/zigbee/ via Unix socket.

View File

@ -7,6 +7,6 @@ Standards-Version: 4.6.2
Package: secubox-zkp
Architecture: all
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3, python3-fastapi, python3-uvicorn
Depends: ${misc:Depends}, secubox-core (>= 1.0), python3, python3-fastapi | python3-pip, python3-uvicorn | python3-pip
Description: SecuBox ZKP - Zero-Knowledge Proof Dashboard
Zero-Knowledge Proof Hamiltonian management for SecuBox.