Troubleshooting

Service won't start

# Check logs:
docker logs speedyfiles                     # Docker
journalctl -u speedyfiles -n 100 --no-pager # systemd

Email isn't being sent

  1. Admin → Settings → Mail → Send test. Watch for green/red banner.
  2. Red? Read the error: SMTP timeout (firewall), auth failed (wrong creds), TLS failed (port/encryption mismatch).
  3. Common gotchas:
    • Gmail: needs an App Password, not your real password
    • Port 25 outbound is often blocked by residential ISPs — use 587 + STARTTLS
    • SES requires the From-address domain to be verified

Magic links arrive in spam

See Deliverability. Top causes:

Magic link returns 410 unexpectedly

The audit log on the package detail page will tell you exactly which.

Upload fails partway through

504 Gateway Timeout on uploads

Almost always a reverse-proxy timeout. Adjust:

# nginx
proxy_read_timeout 7200s;
proxy_send_timeout 7200s;
send_timeout 7200s;

# Caddy
reverse_proxy localhost:5300 {
  flush_interval -1
  transport http {
    response_header_timeout 7200s
  }
}

"DNS filter blocked files.<mydomain>"

Some DNS filtering services (Cloudflare Gateway with the "file sharing" category enabled, NextDNS, etc.) treat files. subdomains as risky. If your LAN's DHCP hands out a filtering resolver, your devices may NXDOMAIN their way to confusion. Whitelist the domain in your DNS filter or use Cloudflare 1.1.1.1 / Google 8.8.8.8 at your WAN.

"I lost the admin password"

# From the host (Docker):
docker exec -it speedyfiles python -m app.cli reset-password \
  --email admin@example.com --new-password 'new-strong-password'

# From the host (bare-metal):
sudo -u speedyfiles /opt/speedyfiles/.venv/bin/python -m app.cli \
  reset-password --email admin@example.com --new-password 'new-strong-password'

"Forgot my SMTP password I just typed in"

It's Fernet-encrypted in the DB — not recoverable. Re-enter it under Settings → Mail.

Rotating SESSION_SECRET

Rotating invalidates:

Magic-link tokens, API tokens, and password hashes are unaffected (they don't use SESSION_SECRET for encryption).

Where to ask