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
+55
View File
@@ -0,0 +1,55 @@
# Ein Server-Block fuer beide Spiegel. Die Ausgabe-Volumes der beiden
# Sync-Container sind read-only unter /usr/share/nginx/html/{flatpak,dnf}
# gemountet (siehe docker-compose.yml), die URL-Pfade entsprechen also 1:1
# den Verzeichnisnamen.
server {
listen 80;
server_name _;
root /usr/share/nginx/html;
# Flatpak/OSTree macht sehr viele kleine Einzel-Requests (archive-z2).
# Keep-Alive ist deshalb wichtig fuer akzeptable Performance.
keepalive_timeout 65;
keepalive_requests 1000;
# Grosse Objekte/Static-Deltas und RPMs effizient ausliefern.
sendfile on;
tcp_nopush on;
location = / {
default_type text/plain;
return 200 "flatpak: /flatpak/\ndnf: /dnf/\n";
}
# --- Flatpak-Spiegel (OSTree-Repo, Volume flatpak-repo-data) -----------
location /flatpak/ {
autoindex off;
try_files $uri $uri/ =404;
}
# summary/summary.sig sind das Einzige, was flatpak bei jedem Zugriff neu
# holt - nicht cachen, sonst sehen Clients neue Apps erst verzoegert.
# Objekte darunter sind content-addressed und damit unveraenderlich.
location ~* ^/flatpak/summary(\.sig|\.idx)?$ {
add_header Cache-Control "no-cache";
}
location ~* ^/flatpak/(objects|deltas)/ {
expires 30d;
add_header Cache-Control "public, immutable";
}
# --- DNF-Spiegel (Volume dnf-repo-data) --------------------------------
location /dnf/ {
autoindex on;
}
# repomd.xml (und dessen Signatur) ist der einzige Teil, den dnf bei jedem
# Zugriff neu abruft - nicht cachen. Regex-Location gewinnt gegenueber der
# Praefix-Location /dnf/ oben (nginx-Standardverhalten). Ein gemeinsames
# Repo -> repodata liegt direkt unter /dnf/.
location ~* ^/dnf/repodata/repomd\.xml(\.asc)?$ {
add_header Cache-Control "no-cache";
}
}