Documentation

Reference

Ports, install paths, units, and environment variables for a production panel.

Ports

PortProcessBind
3010flutter-web (Next.js)127.0.0.1 in production; public if --no-nginx
4000flutter-api (Hono)127.0.0.1 in production
8080flutter-daemon0.0.0.0 — panel must be able to reach this
80 / 443nginxpublic HTTP(S) → web + /api/
27017MongoDB127.0.0.1
6379Redis127.0.0.1
3040These docs (Next.js)this site only

Paths

PathRole
/opt/flutterPanel install (user flutter)
/opt/flutter/.envSecrets and URLs (mode 640)
/opt/flutter/apps/daemon/data/config.jsonLocal daemon config on a combined host
/opt/flutter-nodeDaemon-only install
/var/lib/flutterGame server files
/usr/local/src/flutter-panelGit checkout used by the installer
/usr/local/sbin/flutter-updateProduction updater
/usr/local/sbin/flutter-restartRestart panel units

systemd units

UnitRole
flutter-apiAPI
flutter-webDashboard
flutter-daemonGame node agent
flutter-node-tunnelCloudflare quick tunnel (home node only)

Environment

Written by the installer or npm run setup. Do not commit this file.

VariableMeaning
APP_URLPublic panel URL (cookie + links)
API_INTERNAL_URLHow the web process reaches the API (default http://127.0.0.1:4000)
DATABASE_URLMongoDB connection string (replica set in Compose)
REDIS_URLRedis connection string
SESSION_SECRETCookie signing (≥ 32 chars)
DAEMON_REQUEST_SECRETPanel → daemon request auth
COOKIE_SECUREtrue when APP_URL is https
SMTP_HOST / PORT / USER / PASS / FROMOptional mailer fallback
PORT / HOSTAPI listen (default 4000 / 0.0.0.0)

Health

bash
curl -sS https://panel.example.com/api/v1/health
curl -sS http://NODE_IP:8080/health

API health requires Mongo + Prisma. Redis is reported. Daemon /health is what the panel uses when it cannot start or stream console.