Files
interval_viz/nginx/default.conf
T
traberphandClaude Opus 5.5 e70d15f861
Build image / build (push) Successful in 3m18s
Build container image in CI, bake in datasets, configure auth via env
- Dockerfile bakes the app and every CSV in data/ into an nginx image
- UI discovers data/*.csv via nginx JSON autoindex and offers a
  dropdown when there is more than one dataset
- docker-entrypoint.d/40-basic-auth.sh creates .htpasswd from
  BASIC_AUTH_USER / BASIC_AUTH_PASSWORD(_FILE) and refuses to start
  without credentials; replaces set-password.sh
- Gitea Actions workflow builds and pushes
  registry.traberph.de/public/interval_viz (latest, sha-*, semver)
- Escape resets the chart zoom

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 11:12:12 +02:00

38 lines
875 B
Plaintext

server {
listen 80;
server_name _;
root /usr/share/nginx/html;
index index.html;
server_tokens off;
charset utf-8;
gzip on;
gzip_comp_level 6;
gzip_types text/css text/csv application/javascript application/json;
auth_basic "Heatpump";
auth_basic_user_file /etc/nginx/.htpasswd;
location / {
try_files $uri $uri/ =404;
include /etc/nginx/security-headers.conf;
}
# data/ is listed as JSON so the UI can discover the CSV files
location /data/ {
autoindex on;
autoindex_format json;
default_type text/csv;
include /etc/nginx/security-headers.conf;
}
# unauthenticated liveness probe for the container healthcheck
location = /healthz {
auth_basic off;
access_log off;
default_type text/plain;
return 200 "ok\n";
}
}