GitHub - aptly-dev/aptly: aptly - Debian repository management tool (original) (raw)
aptly
Aptly is a swiss army knife for Debian repository management.
Documentation is available at http://www.aptly.info/. For support please use open issues or discussions.
Aptly features:
- make mirrors of remote Debian/Ubuntu repositories, limiting by components/architectures
- take snapshots of mirrors at any point in time, fixing state of repository at some moment of time
- publish snapshot as Debian repository, ready to be consumed by apt
- controlled update of one or more packages in snapshot from upstream mirror, tracking dependencies
- merge two or more snapshots into one
- filter repository by search query, pulling dependencies when required
- publish self-made packages as Debian repositories
- REST API for remote access
Any contributions are welcome! Please see CONTRIBUTING.md.
Installation
Aptly can be installed on several operating systems.
Debian / Ubuntu
Aptly is provided in the following debian packages:
- aptly: Includes the main Aptly binary, man pages, and shell completions
- aptly-api: A systemd service for the REST API, using the global /etc/aptly.conf
- aptly-dbg: Debug symbols for troubleshooting
The packages can be installed on official Debian and Ubuntu distributions.
Upstream Debian Packages
If a newer version (not available in Debian/Ubuntu) of aptly is required, upstream debian packages (built from git tags) can be installed as follows:
Install the following APT key (as root):
wget -O /etc/apt/keyrings/aptly.asc https://www.aptly.info/pubkey.txt
Define Release APT sources in /etc/apt/sources.list.d/aptly.list:
deb [signed-by=/etc/apt/keyrings/aptly.asc] http://repo.aptly.info/release DIST main
Where DIST is one of: bullseye, bookworm, trixie, focal, jammy, noble
Install aptly packages:
apt-get update apt-get install aptly apt-get install aptly-api # REST API systemd service
CI Builds
For testing new features or bugfixes, recent builds are available as CI builds (built from master, may be unstable!) and can be installed as follows:
Define CI APT sources in /etc/apt/sources.list.d/aptly-ci.list:
deb [signed-by=/etc/apt/keyrings/aptly.asc] http://repo.aptly.info/ci DIST main
Where DIST is one of: bullseye, bookworm, trixie, focal, jammy, noble
Note: same gpg key is used as for the Upstream Debian Packages.
Other Operating Systems
Binary executables (depends almost only on libc) are available on GitHub Releases for:
- macOS / darwin (amd64, arm64)
- FreeBSD (amd64, arm64, 386, arm)
- Generic Linux (amd64, arm64, 386, arm)
Integrations
Vagrant:
- Vagrant configuration by Zane Williamson, allowing to bring two virtual servers, one with aptly installed and another one set up to install packages from repository published by aptly
Docker:
- Docker container with aptly inside by Mike Purvis
- Docker container with aptly and nginx by Artem Smirnov
With configuration management systems:
- Chef cookbook by Aaron Baer (Heavy Water Operations, LLC)
- Puppet module by Government Digital Services
- Puppet module by TubeMogul
- SaltStack Formula by Forrest Alvarez and Brian Jackson
- Ansible role by Tom Paine
CLI for aptly API:
- Ruby aptly CLI/library by Zane Williamson
- Python aptly CLI (good for CI) by Tim Susa
GUI for aptly API:
- Python aptly GUI (via pyqt5) by Cedric Hnyda
Scala sbt:
- sbt aptly plugin by Arup Malakar
Molior:
- Molior Debian Build System by André Roth
