Analysis updated 2026-05-18
Deploy a Heimdall panel with a VLESS over WebSocket inbound on Railway using a single assigned port.
Run a small proxy server backed by SQLite without setting up a separate database.
Generate a subscription link and client connection string for a personal VPN or proxy setup.
| x4gking/3x-ui-upgrade | karpathy/recurrentjs | cclank/cell-architecture-studio | |
|---|---|---|---|
| Stars | 1,143 | 984 | 1,332 |
| Language | HTML | HTML | HTML |
| Last pushed | — | 2016-11-04 | 2026-06-17 |
| Maintenance | — | Dormant | Maintained |
| Setup difficulty | moderate | moderate | easy |
| Complexity | 3/5 | 4/5 | 2/5 |
| Audience | ops devops | developer | general |
Figures from each repo's GitHub metadata at analysis time.
Panel data is stored on temporary container storage unless a Railway Volume is attached to /etc/x-ui.
3x-ui-Upgrade is a ready made deployment setup for running Heimdall, an improved fork of the popular 3x-ui panel, on the Railway hosting platform. It bundles the panel together with an nginx reverse proxy so that the web panel, the subscription link, and the VLESS over WebSocket connection all share a single port, which matches how Railway assigns ports to deployed projects. The database is SQLite by default, so no separate Postgres database is needed unless someone expects a very large number of users. To deploy it, a person creates a new GitHub repository containing the three files this project provides: a Dockerfile, an nginx configuration template, and a start script. In Railway, they choose New Project, then Deploy from GitHub repo, and point it at that repository. Railway detects the Dockerfile automatically and builds it, downloading the latest version of Heimdall during the build. After the deployment finishes, the user opens the networking settings, generates a public domain, and makes sure the target port is set to 3000, since that is the port nginx listens on internally. Once deployed, the panel is reached at a managepanel path on the generated domain, using the default admin username and password, which should be changed right away. Setting up a VLESS inbound requires specific values such as listen port 8080, the ws network type, no extra transport security, and a custom path. The project explains how to build a working client connection link and notes that a subscription link is automatically available under a sub path on the same domain. The README warns that panel settings such as users and inbounds are stored on the container's temporary filesystem, so a Railway Volume should be attached to a specific directory to avoid losing that data on every redeploy. It also notes that switching to Postgres for larger user counts would require manually editing the Dockerfile and start script, since this version only supports SQLite out of the box.
A Railway deployment bundle for the Heimdall proxy panel that exposes the panel, subscription link, and VLESS connection through one port.
Mainly HTML. The stack also includes Docker, nginx, SQLite.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly ops devops.
This repo across BitVibe Labs
Verify against the repo before relying on details.