Initial commit

This commit is contained in:
2026-09-07 11:55:21 +02:00
commit d83087cbbd
20 changed files with 1963 additions and 0 deletions
+76
View File
@@ -0,0 +1,76 @@
# Gemeinsamer Stack fuer beide Spiegel. Beide Sync-Container schreiben nur in
# ihr eigenes Volume; EIN nginx liefert beides unter einer Domain aus:
# https://<MIRROR_DOMAIN>/flatpak/ -> Flathub-Filter-Spiegel (OSTree)
# https://<MIRROR_DOMAIN>/dnf/ -> RPM-Spiegel (createrepo_c)
#
# Beide Container bekommen denselben, EXTERN erzeugten Signing-Key ueber das
# gemeinsame Verzeichnis ./gpg (read-only) herein und beide holen ihre
# Freigabeliste aus demselben Git-Repo (SOURCES_GIT_URL): flatpaks.yaml fuer
# den Flatpak-Spiegel, packages.yaml fuer den DNF-Spiegel.
services:
flatpak-mirror:
build: ./flatpak-mirror
container_name: flatpak-mirror
restart: unless-stopped
environment:
MIRROR_DOMAIN: ${MIRROR_DOMAIN}
MIRROR_REPO_ID: ${MIRROR_REPO_ID:-company-mirror}
GPG_KEY_ID: ${GPG_KEY_ID}
SYNC_INTERVAL_SECONDS: ${FLATPAK_SYNC_INTERVAL_SECONDS:-900}
SOURCES_GIT_URL: ${SOURCES_GIT_URL}
SOURCES_GIT_REF: ${SOURCES_GIT_REF:-main}
SOURCES_GIT_USERNAME: ${SOURCES_GIT_USERNAME:-}
SOURCES_GIT_TOKEN: ${SOURCES_GIT_TOKEN:-}
SOURCES_GIT_SSH_KEY: ${SOURCES_GIT_SSH_KEY:-}
FLATHUB_REMOTE_URL: ${FLATHUB_REMOTE_URL:-https://dl.flathub.org/repo/}
FLATHUB_GPG_URL: ${FLATHUB_GPG_URL:-https://dl.flathub.org/repo/flathub.gpg}
volumes:
- ./gpg:/run/secrets/gpg:ro
- ./git-ssh:/run/secrets/git-ssh:ro
- flatpak-repo-data:/srv/flatpak
- flatpak-cache:/var/cache/flatpak-mirror
dnf-mirror:
build: ./dnf-mirror
container_name: dnf-mirror
restart: unless-stopped
environment:
MIRROR_DOMAIN: ${MIRROR_DOMAIN}
MIRROR_REPO_ID: ${MIRROR_REPO_ID:-company-mirror}
GPG_KEY_ID: ${GPG_KEY_ID}
SYNC_INTERVAL_SECONDS: ${DNF_SYNC_INTERVAL_SECONDS:-21600}
SOURCES_GIT_URL: ${SOURCES_GIT_URL}
SOURCES_GIT_REF: ${SOURCES_GIT_REF:-main}
SOURCES_GIT_USERNAME: ${SOURCES_GIT_USERNAME:-}
SOURCES_GIT_TOKEN: ${SOURCES_GIT_TOKEN:-}
SOURCES_GIT_SSH_KEY: ${SOURCES_GIT_SSH_KEY:-}
ALMA_RELEASEVER: ${ALMA_RELEASEVER:-10}
ALMA_BASEARCH: ${ALMA_BASEARCH:-x86_64}
ALMA_BASELINE_REPOIDS: ${ALMA_BASELINE_REPOIDS:-baseos,appstream,extras,crb,epel}
ALMA_BASELINE_REPOSDIR: ${ALMA_BASELINE_REPOSDIR:-}
volumes:
- ./gpg:/run/secrets/gpg:ro
- ./git-ssh:/run/secrets/git-ssh:ro
- ./dnf-mirror/alma-baseline.repo.d:/etc/mirror/alma-baseline.repo.d:ro
- dnf-repo-data:/srv/dnf
- dnf-cache:/var/cache/mirror
nginx:
image: nginx:alpine
container_name: mirror-nginx
restart: unless-stopped
depends_on:
- flatpak-mirror
- dnf-mirror
ports:
- "${HTTP_PORT:-80}:80"
volumes:
- flatpak-repo-data:/usr/share/nginx/html/flatpak:ro
- dnf-repo-data:/usr/share/nginx/html/dnf:ro
- ./nginx/conf.d:/etc/nginx/conf.d:ro
volumes:
flatpak-repo-data:
flatpak-cache:
dnf-repo-data:
dnf-cache: