explaingit

x4gking/3x-ui-upgrade

Analysis updated 2026-05-18

1,143HTMLAudience · ops devopsComplexity · 3/5Setup · moderate

TLDR

A Railway deployment bundle for the Heimdall proxy panel that exposes the panel, subscription link, and VLESS connection through one port.

Mindmap

mindmap
  root((3x-ui-Upgrade))
    What it does
      Deploys Heimdall panel
      Single port via nginx
      VLESS WebSocket inbound
    Tech stack
      Docker
      nginx reverse proxy
      SQLite database
    Use cases
      Personal proxy server
      VPN style connection
      Subscription link hosting
    Setup
      Railway deploy from repo
      Generate domain
      Attach volume for persistence

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Deploy a Heimdall panel with a VLESS over WebSocket inbound on Railway using a single assigned port.

USE CASE 2

Run a small proxy server backed by SQLite without setting up a separate database.

USE CASE 3

Generate a subscription link and client connection string for a personal VPN or proxy setup.

What is it built with?

DockernginxSQLiteXrayVLESS

How does it compare?

x4gking/3x-ui-upgradekarpathy/recurrentjscclank/cell-architecture-studio
Stars1,1439841,332
LanguageHTMLHTMLHTML
Last pushed2016-11-042026-06-17
MaintenanceDormantMaintained
Setup difficultymoderatemoderateeasy
Complexity3/54/52/5
Audienceops devopsdevelopergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Panel data is stored on temporary container storage unless a Railway Volume is attached to /etc/x-ui.

In plain English

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.

Copy-paste prompts

Prompt 1
Help me deploy this 3x-ui-Upgrade repo to Railway, including setting the target port and generating a domain.
Prompt 2
Walk me through creating a VLESS inbound with listen port 8080 and a ws network type in this Heimdall panel.
Prompt 3
Explain how to attach a Railway Volume to /etc/x-ui so my panel users and inbounds survive a redeploy.
Prompt 4
Show me how to build a working vless client link from the UUID and domain this project generates.

Frequently asked questions

What is 3x-ui-upgrade?

A Railway deployment bundle for the Heimdall proxy panel that exposes the panel, subscription link, and VLESS connection through one port.

What language is 3x-ui-upgrade written in?

Mainly HTML. The stack also includes Docker, nginx, SQLite.

How hard is 3x-ui-upgrade to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is 3x-ui-upgrade for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.