Create a ZIP with your source files at the root. Include package.json and a lockfile for Node.js, or requirements.txt / pyproject.toml for Python. Exclude node_modules, .venv, .git, and secrets. Archives are limited to 50 MiB compressed and 256 MiB extracted.
Node.js 20 and 22 support npm, pnpm, and Yarn. Python 3.11 and 3.12 use pip. Dependency installs and package build scripts run in a constrained container. Builds are queued when the host is busy.
Node.js: node index.js Python: python main.py Web service: listen on 0.0.0.0 and process.env.PORT
Add variables such as DISCORD_TOKEN in the Environment tab or during creation. Values are encrypted and cannot be read back. Redeploy after changing variables. Builds do not receive runtime secrets.
Write to /data for persistent files; use /tmp for temporary files. The application filesystem is read-only. Persistent storage is strictly bounded. Deleting a server deletes its persistent data.
Console streams live logs. Metrics display sampled container readings. Stop pauses the process; Restart starts the existing deployment; Redeploy rebuilds the source with updated variables. CPU and memory reservations remain assigned to stopped servers.
Enable Google and Email/Password in Firebase Authentication, add panel.serverly.us.ci to authorized domains, and configure the private Admin credentials on the server. Set DNS A records for serverly.us.ci and panel.serverly.us.ci, plus *.serverly.us.ci for application routing. Full installation and recovery procedures are in the repository README.