secubox-deb/apt
CyberMind-FR bd7dda0c6f feat(secubox): complete meta-script generator Tasks 14-17
Task 14: Arch Profiles
- Add profiles/arch/arm64.yaml and profiles/arch/amd64.yaml
- Add ResolveWithArch() to merger for base → arch → tier chain
- Add tests for arch profile resolution

Task 15: Package secubox.yaml for All Packages
- Add scripts/generate-secubox-yaml.py generator script
- Generate 131 debian/secubox.yaml files with:
  - Category detection (security, network, system, etc.)
  - Tier assignment (all, lite, standard, pro)
  - API socket and UI path detection

Task 16: APT Repository Setup
- Add apt/conf/ reprepro configuration (multi-arch arm64/amd64)
- Add apt/hooks/lintian-check pre-publish validation
- Add scripts/apt-publish.sh and scripts/apt-sync.sh
- Add apt/README.md documentation

Task 17: CI Integration
- Add .github/workflows/build-secubox-cli.yml
- Build for linux-amd64 and linux-arm64
- Version injection via ldflags
- GitHub releases on tag push

Code Quality Fixes (Tasks 10-13):
- Add atomic writes for OTA boot control files (0600 perms)
- Fix NVME device extraction (nvme0n1p2 → nvme0n1)
- Add scanner.Err() checks in hardware detection
- Fix URL injection validation in fetch command
- Add proper cleanup on checksum failures

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-05-11 05:32:29 +02:00
..
conf
hooks
README.md

SecuBox-DEB APT Repository

Configuration files for the SecuBox APT package repository.

Repository Structure

/srv/apt/
├── conf/
│   ├── distributions    # Repository distributions config
│   ├── options          # Global reprepro options
│   └── incoming         # Incoming packages config
├── db/                  # Reprepro database
├── dists/               # Distribution metadata
│   ├── bookworm/        # Stable releases
│   └── bookworm-testing/ # Testing releases
├── pool/                # Package files
│   ├── main/            # Main component
│   └── contrib/         # Contrib component
├── incoming/            # Incoming packages drop
└── tmp/                 # Temporary files

Setup

Initialize Repository

# Create directory structure
sudo mkdir -p /srv/apt/{conf,db,dists,pool,incoming,tmp}

# Copy configuration
sudo cp apt/conf/* /srv/apt/conf/

# Set ownership
sudo chown -R $(whoami) /srv/apt

# Initialize
cd /srv/apt
reprepro export

GPG Key Setup

# Generate signing key (if not exists)
gpg --gen-key

# Export public key for clients
gpg --armor --export your@email.com > /srv/apt/secubox.gpg

Usage

Publishing Packages

# Publish a single package
./scripts/apt-publish.sh packages/secubox-core/*.deb

# Publish to testing
./scripts/apt-publish.sh -c bookworm-testing packages/*/*.deb

# Skip lintian (not recommended)
./scripts/apt-publish.sh --skip-lintian packages/*/*.deb

# Dry run
./scripts/apt-publish.sh -n packages/*/*.deb

Syncing to Remote

# Preview sync
./scripts/apt-sync.sh --dry-run

# Full sync
./scripts/apt-sync.sh

# Verbose sync
./scripts/apt-sync.sh --verbose

Manual reprepro Commands

cd /srv/apt

# Add package
reprepro -C main includedeb bookworm /path/to/package.deb

# Remove package
reprepro remove bookworm package-name

# List packages
reprepro list bookworm

# Check repository
reprepro check

Client Configuration

Adding Repository

# Add GPG key
curl -fsSL https://apt.secubox.in/secubox.gpg | sudo gpg --dearmor -o /usr/share/keyrings/secubox.gpg

# Add repository
echo "deb [signed-by=/usr/share/keyrings/secubox.gpg] https://apt.secubox.in bookworm main" | \
    sudo tee /etc/apt/sources.list.d/secubox.list

# Update and install
sudo apt update
sudo apt install secubox-core

Distributions

Codename Description Use Case
bookworm Stable releases Production
bookworm-testing Testing releases Pre-release testing

Components

Component Description
main Core SecuBox packages
contrib Community contributions

Architectures

  • arm64 - Primary target (MOCHAbin, ESPRESSObin, RPi)
  • amd64 - VMs and x64 hardware
  • all - Architecture-independent packages