
Deploy Runlight
Cookieless, open-source web analytics; no consent banner required.
runlight
Just deployed
/data
Deploy and Host Runlight on Railway
Runlight is free, open-source, privacy-friendly web analytics. It counts visitors without cookies and without storing IP addresses, so there is no consent banner to show. Your numbers stay in your own database, the dashboard is served from your own domain, and the tracking script is under 2 KB gzipped. One Runlight server can track any number of sites from a single dashboard.
About Hosting Runlight
The standalone Runlight server is a single Node.js service that keeps its data in SQLite on a persistent volume. This template runs the official ghcr.io/runlightsh/runlight image with a volume mounted at /data, sets the public Railway domain as the server's address, and generates the signing secret at deploy time. There's no database to provision and no config file to edit.
Common Use Cases
- Replacing Google Analytics on a blog or marketing site with cookieless analytics and no consent banner
- Tracking several sites, or a client's sites, from one dashboard with invited team members and viewers
- Counting AI agents such as ChatGPT and Claude when they read your pages
- Running short links on your own domains, with their clicks counted
- Moving off Umami while keeping your history, using Runlight's built-in Umami import
Dependencies for Runlight Hosting
- A Railway volume mounted at
/datafor the SQLite database, the signing secret and the location database - No external database, cache or API key is required
Deployment Dependencies
- Runlight GitHub repo: source code (MIT licence)
- Runlight documentation: standalone server setup and settings
Implementation Details
- First sign-in: find the setup link in the deploy logs. It shows
localhost. Replace that part with your Railway domain, for examplehttps://your-app.up.railway.app/setup?code=.... The link works only until the first account exists. RAILWAY_RUN_UID=0: lets the image, which runs as a non-root user, write to the Railway volume.TRUST_PROXY=x-real-ip: reads each visitor's IP address from Railway's edge header, so visitor counts and countries are correct.- Custom domain: update
RUNLIGHT_URLto match it and redeploy. - Locations: the template sets RUNLIGHT_GEO=country to save memory. Set it to city for regions and cities, or off to skip location lookups.
Why Deploy Runlight on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Runlight on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Template Content

