Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions 04_apt_management/APTLY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# APTLY

TODO:

* Docker
* Nix
* Build repository and install packages from it.

## Install

```sh
nix-shell -p aptly -p gnupg
```

## Docker

```sh
just -f justfile.aptly aptly-exec

open http://127.0.0.1:8080/

/opt/keys_imp.sh
/opt/update_mirror.sh
```


## Steps

```sh
gpg --gen-key

Real name: Repository
Email address: repo@test.com

Okay

gpg --no-default-keyring --keyring trustedkeys.gpg --keyserver keyserver.ubuntu.com --recv-keys 871920D1991BC93C

gpg --list-keys

aptly mirror create -gpg-provider="gpg2" -keyring=trustdb.gpg -architectures=amd64 -filter='Priority (required) | Priority (important) | Priority (standard)' ubuntu-noble http://www.mirrorservice.org/sites/archive.ubuntu.com/ubuntu/ noble main


```

## Resources

* Swiss army knife for Debian repository management [here](https://www.aptly.info/)
* https://github.com/aptly-dev/aptly
* https://www.aptly.info/tutorial/
* https://cloud.theodo.com/en/blog/debian-mirrors-aptly
* https://github.com/aptly-dev/docker-aptly
33 changes: 33 additions & 0 deletions 04_apt_management/justfile.aptly
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
set dotenv-load := true

# default lists actions
default:
@just -f justfile.aptly --list

# create aptly volume
aptly-create-volume:
docker volume create --name aptly-data
# create key
docker run --rm --log-driver=none --volume aptly-data:/opt/aptly urpylka/aptly:latest /opt/keys_gen.sh "Test User" "your@email.com" "Password"

aptly-delete-volume:
docker volume rm aptly-data

# start aptly
aptly-start:
#!/usr/bin/env bash
set -xeufo pipefail

# start nginx
docker run --rm --detach=true --log-driver=syslog --restart=always --name="aptly" --publish 8080:80 --volume aptly-data:/opt/aptly urpylka/aptly:latest

aptly-stop:
#!/usr/bin/env bash
set -xeufo pipefail
docker stop aptly

aptly-exec:
#!/usr/bin/env bash
set -xeufo pipefail

docker exec -it aptly bash