116 lines
3.6 KiB
Nginx Configuration File
116 lines
3.6 KiB
Nginx Configuration File
# 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;
|
|
}
|
|
}
|
|
|