Aptly is a Debian/Ubuntu APT repository management tool. Use it to mirror upstream repositories, create package snapshots, and publish private or curated APT repositories that your machines can install from.
Aptly is a Debian/Ubuntu APT repository management tool. Use it to create and publish private APT repositories that your machines can install from.
## Configuration
Key settings in your instance's `config.yaml`:
- **domain** - Where aptly will be accessible (default: `aptly.{your-cloud-domain}`)
- **storage** - Persistent volume size for packages and mirrors (default: `50Gi` — adjust based on how many packages you plan to mirror)
- **storage** - Persistent volume size for packages (default: `5Gi`)
## Access
After deployment:
-`https://aptly.{your-cloud-domain}` — Published repository root (for APT clients, no auth required)
-`https://aptly.{your-cloud-domain}/api` — REST API for managing repos, mirrors, and snapshots (requires credentials)
-`https://aptly.{your-cloud-domain}/` — Published repository root (for APT clients, no auth required)
-`https://aptly.{your-cloud-domain}/api` — REST API for managing repos and snapshots (requires credentials)
-`https://aptly.{your-cloud-domain}/public.key` — GPG public key for APT clients to import
## Credentials
@@ -22,8 +23,6 @@ The API is protected by HTTP basic authentication. The username defaults to `apt
The published repository at `/` does not require credentials — APT clients can install packages without authenticating.
## GPG Signing
## First-Time Setup
A GPG signing key is generated automatically on first deployment and stored on the persistent volume. The public key is exported to `/public.key` and is accessible without authentication so APT clients can import it:
Then include `--distribution`, `--component`, and signing options in your `aptly publish` commands. See https://www.aptly.info/doc/aptly/publish/snapshot/ for details.
## Notes
- GPG keys and all aptly data (database, package pool, published repos) are stored on the persistent volume at `/opt/aptly`.
- All aptly data (GPG keys, database, package pool, published repos) is stored on the persistent volume at `/opt/aptly`.
- The REST API (port 8080) and the nginx file server (port 80) both run inside the pod via supervisord. The ingress routes to nginx (port 80).
- `storage` defaults to `50Gi`. A full Debian mirror for a single architecture is ~50–100 GiB; plan accordingly.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.