mirror of
https://github.com/CyberMind-FR/secubox-deb.git
synced 2026-07-29 18:36:55 +00:00
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:
parent
f9628d8aef
commit
de77a1aa4e
173
docs/wiki/Build-System.md
Normal file
173
docs/wiki/Build-System.md
Normal 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
220
docs/wiki/VM-Testing.md
Normal 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
34
docs/wiki/_Sidebar.md
Normal 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
164
image/BUILD-SYSTEM.md
Normal 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`
|
||||
|
|
@ -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
346
image/lib/common.sh
Normal 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"
|
||||
}
|
||||
BIN
image/plymouth/secubox/logo.png
Normal file
BIN
image/plymouth/secubox/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
8
image/plymouth/secubox/secubox.plymouth
Normal file
8
image/plymouth/secubox/secubox.plymouth
Normal 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
|
||||
32
image/plymouth/secubox/secubox.script
Normal file
32
image/plymouth/secubox/secubox.script
Normal 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);
|
||||
142
image/profiles/espressobin-v7.conf
Normal file
142
image/profiles/espressobin-v7.conf
Normal 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
157
image/profiles/rpi400.conf
Normal 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
|
||||
}
|
||||
179
image/profiles/x64-live.conf
Normal file
179
image/profiles/x64-live.conf
Normal 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
|
||||
}
|
||||
85
image/profiles/x64-vm.conf
Normal file
85
image/profiles/x64-vm.conf
Normal 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
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
49
image/splash/kiosk-loading.sh
Executable 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
11
image/splash/loading.txt
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
┌──────────────────────────────────────────┐
|
||||
│ │
|
||||
│ ████ SecuBox ████ │
|
||||
│ │
|
||||
│ Loading secure environment... │
|
||||
│ │
|
||||
│ Please wait │
|
||||
│ │
|
||||
└──────────────────────────────────────────┘
|
||||
|
||||
29
image/splash/tui-splash.sh
Executable file
29
image/splash/tui-splash.sh
Executable 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
|
||||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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).
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user