A suit of helpers to aid in the management of an archlinux package repository.
Go to file
Mai Lapyst 34d29fe1c9 Add LICENSE file 2023-08-28 06:35:04 +02:00
.gitignore Initial commit 2023-08-28 06:32:57 +02:00
LICENSE Add LICENSE file 2023-08-28 06:35:04 +02:00
new-repo.sh Initial commit 2023-08-28 06:32:57 +02:00
readme.md Initial commit 2023-08-28 06:32:57 +02:00
update-repo.sh Initial commit 2023-08-28 06:32:57 +02:00

readme.md

repomng

A suit of scripts to aid in the management of an pacman repo

Usage

In order to get started, you first need to create a repository with repomng (the filestructure that is). To do that, use ./new-repo.sh [repo name].

Note: dont forget to make the public directory accessible via your webserver of your choice! (see below)

repomng works completly on a file basis:

  • to add packages, simply put the result of makepkg into the respective's repo incomming folder (./incomming/<repo name>).
  • to remove packages (or to be more correct: make an "request"), simply create an empty file with its name in the repo's pending-remove folder (./pending-remove/<repo name>/<package name>).

Everything to be done will be run once you'll run ./update-repo.sh; it's repomng's main workhorse.

Running on non-arch distros

On every distro that isn't arch (needed so we have access to repo-add and repo-remove), there is a handy feature in repomng script's that utilizes an archlinux dockerimage. (note: this is hardcoded in! in a feature version this will be dynamic)

Setting up your webserver

For nginx:

server {
        listen 80;
        listen [::]:80;

        server_name pkgs.example.com;

        # Assumes that we are running repomng inside /var/www/pkgs.example.com
        root /var/www/pkgs.example.com/public/;

        # Log section; change it to your preferences!
        access_log /var/log/nginx/pkgs.example.com_access.log combined;
        error_log /var/log/nginx/pkgs.example.com_error.log error;

        # Not particular needed, but in order to allow web-access
	# like arch-mirros typically all do, you might want to left this unchanged
        location / {
            autoindex on;
        }
}

Note: if you're wondering why we set the root to utilize the public directory of repomng, this is so we can host multiple repos under a single domain!

Using your repo

To use your repo in an installation of arch, append following to /etc/pacman.conf:

[myrepo]
SigLevel = Optional TrustAll
Server = http://pkgs.example.com/myrepo