Panel przez HTTPS
Panel mówi zwykłym HTTP na własnym porcie. Żeby używać go spoza swojego komputera, postaw przed nim reverse proxy z HTTPS i pozwól tylko temu proxy łączyć się z portem panelu.
1. Skieruj panel na proxy
W config.yml:
web:
host: 127.0.0.1 # tylko proxy na tym komputerze dostanie się do panelu
port: 8080
public-url: "https://panel.example.com"
Gdy na tym hoście nic innego nie działa już na zwykłym http (np. plugin z mapą na innym porcie), możesz też ustawić
hsts: true: przeglądarki przez rok nie spróbują tam już zwykłego http.
Zrestartuj serwer: zmiany web.* wymagają restartu. public-url służy do linków, które pokazuje plugin
(konfiguracja, zaproszenia, linki do resetu, przyciski zgłoszeń w grze). To sam adres, schemat i host (oraz port,
jeśli potrzebny), bez ścieżki i bez końcowego /.
2. Caddy
Caddy sam zdobywa i odnawia certyfikat.
panel.example.com {
reverse_proxy 127.0.0.1:8080
}
3. Nginx
server {
listen 443 ssl;
server_name panel.example.com;
# ssl_certificate i ssl_certificate_key z twojego certyfikatu (np. certbot)
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Linie z Upgrade utrzymują działanie części panelu na żywo (pulpit, czat, konsola).
4. Zaufaj proxy
W panelu, w Ustawienia → Serwer → Bezpieczeństwo → Zaufane proxy, dodaj adres proxy (dla proxy na tym samym
komputerze: 127.0.0.1/32). Dopiero wtedy panel wierzy nagłówkom X-Forwarded-*, które wysyła proxy. Bez tego:
- każdy odwiedzający wygląda jak proxy: lista sesji, dziennik zdarzeń i biała lista IP widzą adres proxy, więc biała lista nie odróżni odwiedzających;
- panel nie wie, że odwiedzający przyszedł przez HTTPS, więc jego ciasteczka nie mają flagi
Secure, a linki, które buduje, zaczynają się odhttp://; - części panelu na żywo (pulpit, czat, konsola) mogą odmówić połączenia, bo adres w przeglądarce nie zgadza się z tym, co widzi panel.
Limity logowania liczą się na konto, więc zaufanie proxy ich nie zmienia.
5. Opcjonalnie: biała lista IP
Ustawienia → Serwer → Bezpieczeństwo → Whitelista IP pozwala otwierać panel tylko z podanych adresów lub zakresów
(203.0.113.0/24). Panel odmawia zapisania listy, która by cię zablokowała, chyba że to potwierdzisz. Jeśli mimo to
się zablokujesz, wpisz /ac whitelist off w konsoli serwera.
Pod ścieżką
Żeby panel działał pod ścieżką wspólnej domeny (https://example.com/panel/):
web:
base-path: /panel
public-url: "https://example.com" # sam adres; ścieżka pochodzi z base-path
Przekaż tę ścieżkę na port panelu z zachowaną ścieżką: panel oczekuje, że żądania zaczynają się od /panel. W
Caddy użyj handle, nie handle_path (który ścieżkę obcina):
example.com {
handle /panel* {
reverse_proxy 127.0.0.1:8080
}
}
W Nginx location /panel/ { proxy_pass http://127.0.0.1:8080; ... } bez ścieżki po porcie ją zachowuje.