# DEPLOYMENT LOCATION: /etc/nginx/sites-available/homelab # Deploy with: sudo cp nginx-homelab.conf /etc/nginx/sites-available/homelab # Enable with: sudo ln -s /etc/nginx/sites-available/homelab /etc/nginx/sites-enabled/homelab server { listen 80; server_name ak-homelab.duckdns.org; # Security headers add_header X-Frame-Options "SAMEORIGIN" always; add_header X-Content-Type-Options "nosniff" always; add_header X-XSS-Protection "1; mode=block" always; # Main landing page location / { root /var/www/homelab; index index.html index.htm; try_files $uri $uri/ =404; } # Gitea reverse proxy location /gitea/ { proxy_pass http://127.0.0.1:3000/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # Handle websockets for live updates proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # Increase timeout for large repos proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; } # Copyparty file server location /files/ { proxy_pass http://127.0.0.1:8082/files/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # Handle websockets for live updates proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # Increase timeouts for large file uploads proxy_connect_timeout 300s; proxy_send_timeout 300s; proxy_read_timeout 300s; # Increase client max body size for file uploads client_max_body_size 10G; } # Jellyfin media server location /media/ { proxy_pass http://127.0.0.1:8096/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # Handle websockets for real-time updates proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # Jellyfin specific headers proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; # Increase timeouts for streaming proxy_connect_timeout 300s; proxy_send_timeout 300s; proxy_read_timeout 300s; # Large file support for video streaming client_max_body_size 0; proxy_buffering off; proxy_request_buffering off; } }