ZefiraZEFIRA Docs GitHub ↗

FAQ & Troubleshooting

Fast answers to common problems.

Login & access

LAN / tunnel mode (start-lan.bat) serves the panel over plain HTTP. Anyone on that network can sniff your session — only use it on networks you trust, or reach the panel through an encrypted SSH tunnel instead.

“Too many attempts, try again in a few minutes”

You (or someone) failed login 8+ times in 15 minutes. Wait, then log in carefully. If it persists with the right password, restart the panel service — in-memory counters reset: systemctl restart zefira.

Password lost

SSH into the server and set a new one via environment + restart, or edit ZEFIRA_ADMIN_PASSWORD in /opt/zefira/.env — note this only applies to a fresh database. On an existing DB, stop the service, delete instance/zefira.db (you lose data — restore from backup after), and restart to trigger first-run creation.

API returns 403 “forbidden” on POST

You forgot the X-Requested-With: XMLHttpRequest header — the CSRF guard. Browsers using the panel send it automatically.

Panel not responding

systemctl status zefira
journalctl -u zefira -n 100 --no-pager
curl -fsS http://127.0.0.1:8000/login && echo PANEL-UP
ss -tlnp | grep 8000

If the port is taken, another copy is already running — stop it before starting a new one.

Subscriptions show 404 for everyone

SSL fails

Do I have to pay for any of this?

No. Zefira is MIT-licensed, the docs site is plain static files in this repo, and GitHub Pages hosting is free. Let's Encrypt certificates are free too.