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.
Aptly can be installed on several operating systems.
Aptly is provided in the following debian packages:
- aptly (main binary)
- aptly-api (systemd service for REST API)
- aptly-dbgsym (debugging symbols)
The packages can be installed on official Debian and Ubuntu distributions.
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: buster
, bullseye
, bookworm
, focal
, jammy
, noble
Install aptly packages:
apt-get update apt-get install aptly apt-get install aptly-api # REST API systemd service
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: buster
, bullseye
, bookworm
, focal
, jammy
, noble
Note: same gpg key is used as for the Upstream Debian Packages.
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)
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