[Unit] Description=SEO Insight — Next.js web app After=network.target postgresql.service Wants=postgresql.service [Service] Type=simple User=seoinsight Group=seoinsight WorkingDirectory=/opt/seo-insight EnvironmentFile=/opt/seo-insight/.env.production # Bind to localhost only — Nginx terminates TLS and reverse-proxies to it. ExecStart=/home/seoinsight/.bun/bin/bun run start -- -H 127.0.0.1 -p 3000 Restart=on-failure RestartSec=5 # Hardening NoNewPrivileges=true ProtectSystem=full PrivateTmp=true [Install] WantedBy=multi-user.target