This commit is contained in:
2025-09-21 18:48:48 +05:30
commit 0e30e55923
4 changed files with 347 additions and 0 deletions

115
nginx.conf Normal file
View File

@@ -0,0 +1,115 @@
# Simple reverse proxy configuration
server {
listen 80;
server_name _;
# Security headers
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
# Client settings
client_max_body_size 100M;
location /ombi {
proxy_pass http://ombi:3579;
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;
# WebSocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /sonarr {
proxy_pass http://sonarr:8989;
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;
# WebSocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /radarr {
proxy_pass http://radarr:7878;
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;
# WebSocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /prowlarr {
proxy_pass http://prowlarr:9696;
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;
# WebSocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
# Main landing page
location = / {
return 200 '<!DOCTYPE html>
<html>
<head>
<title>Media Server</title>
<style>
body { font-family: Arial, sans-serif; margin: 0; padding: 20px; background: #1a1a1a; color: #fff; }
.container { max-width: 800px; margin: 0 auto; }
h1 { text-align: center; color: #4CAF50; }
.services { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 20px; margin-top: 40px; }
.service { background: #2d2d2d; padding: 20px; border-radius: 8px; text-align: center; }
.service a { color: #4CAF50; text-decoration: none; font-size: 18px; font-weight: bold; }
.service p { margin: 10px 0 0 0; color: #ccc; font-size: 14px; }
</style>
</head>
<body>
<div class="container">
<h1>Media Server</h1>
<div class="services">
<div class="service">
<a href="/ombi">Ombi</a>
<p>Request movies & TV shows</p>
</div>
<div class="service">
<a href="/sonarr">Sonarr</a>
<p>TV show management</p>
</div>
<div class="service">
<a href="/radarr">Radarr</a>
<p>Movie management</p>
</div>
<div class="service">
<a href="/prowlarr">Prowlarr</a>
<p>Indexer management</p>
</div>
</div>
</div>
</body>
</html>';
add_header Content-Type text/html;
}
# Health check
location /health {
access_log off;
return 200 "healthy\n";
add_header Content-Type text/plain;
}
}