Dateien nach "/" hochladen

This commit is contained in:
2026-09-03 14:40:23 +02:00
parent 12d480edd2
commit 52b46dd95e
2 changed files with 84 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
# Domain unter der beide Repos erreichbar sind (Flatpak-Spiegel + dieser DNF-Spiegel).
MIRROR_DOMAIN=software.example.org
# ID/Name des EINEN gemeinsamen Repos, in das ALLE Fremdrepos aus
# packages.yaml zusammengefuehrt werden. Clients binden nur dieses eine Repo
# ein (baseurl=https://<domain>/dnf/), unabhaengig davon, aus wie vielen
# Fremdrepos die Pakete stammen. Ergibt die Datei /dnf/<MIRROR_REPO_ID>.repo.
MIRROR_REPO_ID=company-mirror
# Identität des GPG-Keys, mit dem ALLE gespiegelten Pakete umsigniert werden.
GPG_NAME=AlmaLinux Client Mirror
GPG_EMAIL=it-software@example.org
# Optionale Passphrase fuer den Signing-Key. Leer lassen (empfohlen) fuer einen
# vollautomatischen, unbeaufsichtigten Sync-Container. Wenn gesetzt, wird sie
# dem Container als Datei (Secret) uebergeben, siehe README.
GPG_PASSPHRASE=
# Wie oft neu synchronisiert wird (Sekunden). 21600 = alle 6 Stunden.
SYNC_INTERVAL_SECONDS=21600
# Git-Repo mit der packages.yaml (Fremdrepos + zu spiegelnde Paketnamen),
# siehe sources-repo-template/README.md. Wird vor JEDEM Sync-Lauf neu geholt
# (git fetch), Aenderungen brauchen also keinen Container-Neubau.
# HTTPS mit Token: https://<token>@git.example.org/it/dnf-mirror-sources.git
# SSH (Deploy-Key ins ./git-ssh/-Verzeichnis legen):
SOURCES_GIT_URL=git@git.example.org:it/dnf-mirror-sources.git
SOURCES_GIT_REF=main
# Pfad IM CONTAINER zum SSH-Deploy-Key, nur bei SSH-URLs noetig. Key-Datei
# dafuer in ./git-ssh/ (neben dieser .env) ablegen, z.B. ./git-ssh/id_ed25519.
SOURCES_GIT_SSH_KEY=/run/secrets/git-ssh/id_ed25519
# AlmaLinux Release/Arch, gegen die auf "bereits vorhanden" geprueft wird.
# Muss zur Alma-Version des mirror-Images passen (siehe mirror/Dockerfile).
ALMA_RELEASEVER=10
ALMA_BASEARCH=x86_64
# Repo-IDs (siehe mirror/config/alma-baseline.repo.d/) die als "von Alma aufloesbar"
# gelten. Pakete mit diesen Namen werden NICHT gespiegelt.
ALMA_BASELINE_REPOIDS=baseos,appstream,extras,crb,epel
+44
View File
@@ -0,0 +1,44 @@
services:
dnf-mirror:
build: ./mirror
restart: unless-stopped
environment:
MIRROR_DOMAIN: ${MIRROR_DOMAIN}
MIRROR_REPO_ID: ${MIRROR_REPO_ID:-company-mirror}
GPG_NAME: ${GPG_NAME}
GPG_EMAIL: ${GPG_EMAIL}
GPG_PASSPHRASE: ${GPG_PASSPHRASE}
SYNC_INTERVAL_SECONDS: ${SYNC_INTERVAL_SECONDS:-21600}
SOURCES_GIT_URL: ${SOURCES_GIT_URL}
SOURCES_GIT_REF: ${SOURCES_GIT_REF:-main}
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}
volumes:
- ./mirror/config/alma-baseline.repo.d:/etc/mirror/alma-baseline.repo.d:ro
- ./git-ssh:/run/secrets/git-ssh:ro
- ./gpg:/var/lib/mirror-gpg
- dnf-repo-data:/srv/dnf
- mirror-cache:/var/cache/mirror
# kein Port-Publish: der Container schreibt nur in das Volume, das nginx
# ausliefert. Braucht ausgehenden Internetzugriff zu den Upstream-Repos
# UND zum Git-Repo mit der Paketliste (SOURCES_GIT_URL), das er vor jedem
# Sync-Lauf neu abruft.
nginx:
image: nginx:alpine
restart: unless-stopped
depends_on:
- dnf-mirror
ports:
- "80:80"
# - "443:443" # TLS: siehe README (eigene Zertifikate mounten oder
# vorgeschalteten Reverse Proxy/Load Balancer nutzen)
volumes:
- dnf-repo-data:/usr/share/nginx/html/dnf:ro
- ./nginx/conf.d:/etc/nginx/conf.d:ro
volumes:
dnf-repo-data:
mirror-cache: