Skip to content

infra(apt): set up self-hosted APT repo at packages.satware.com/apt/ (reprepro + GPG) #488

Description

@satwareAG-ironMike

Context

The self-hosted APT repository at packages.satware.com/apt/ serves .deb files with GPG-signed metadata. This is the production hosting infrastructure for Phase 1 packages.

Architecture:

packages.satware.com (VPS)
├── Caddy (:443, TLS)
│   └── /apt/* → file_server (static, no auth)
│       └── /var/www/apt/
│           ├── dists/bookworm/main/binary-amd64/Packages.gz
│           ├── dists/noble/main/binary-amd64/Packages.gz
│           └── pool/main/p/php8.4-firebird/php8.4-firebird_13.0.0-1_amd64.deb
└── GPG key for signing Release/InRelease files

Note: This issue is tracked in the satis repo (GitLab) as part of spec 007. This GitHub issue tracks the php-firebird side (CI integration, package naming, deploy key setup).

Acceptance Criteria

  • VPS provisioned at packages.satware.com (shared with satis spec 005 deployment)
  • Caddy vhost serves /apt/* as static files (no auth, public)
  • reprepro installed and configured on VPS
  • GPG keypair generated for APT repo signing (key ID satware-php-firebird)
  • Public key published at packages.satware.com/keys/apt-gpg.key
  • reprepro configured for distributions: bookworm, trixie, jammy, noble
  • Architectures: amd64, arm64 (armhf added in Phase 3)
  • SSH deploy key configured for CI rsync (secret APT_DEPLOY_SSH_KEY in GitHub)
  • First test: apt install php8.4-firebird works on a clean Debian 12 container

Dependencies

Suggested Test Plan

  1. On clean Debian 12: add apt source deb https://packages.satware.com/apt bookworm main
  2. curl -fsSL https://packages.satware.com/keys/apt-gpg.key | apt-key add -
  3. apt update && apt install php8.4-firebird
  4. php -m | grep firebird — loaded
  5. apt-cache policy php8.4-firebird — shows version 13.0.0-1 from satware repo

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    debianDebian/Ubuntu .deb packaginginfraInfrastructure (APT/YUM/APK repo hosting, GPG keys)phase-1Phase 1 - .deb + PIE (Debian/Ubuntu)

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions