stage-uxl and keeping it there.The box is the source of truth, not this wiki. Versions, ports, role names and
directory modes drift as people edit the box. Every page names the command that
produced its facts — where the two disagree, believe the box, then fix the page in
the same sitting.
git push to `staging`
│
▼
GitHub Actions ──▶ self-hosted runner `stage-uxl-1` (runs ON the box, as ghrunner)
│ │
│ ├── grep NEXT_PUBLIC_ out of the environment's .env ──▶ build.env
│ ├── docker build (Dockerfile: COPY build.env .env.production)
│ ├── docker push ghcr.io/leveraged-growth/<pkg>:<git-sha>
│ └── /opt/uxl.club/bin/deploy staging <pkg> <sha>
│ │
▼ ▼
docker compose up -d
env_file: the SAME .env (server-side values)
container staging-<pkg>
published on 127.0.0.1:56NN
│
▼
Caddy ──▶ https://stage-<name>.uxl.codes
Four facts follow from that picture and explain most of everything else:
NEXT_PUBLIC_* compiles into the bundle, the rest is handed to the container127.0.0.1 only.| Host | stage-uxl · 72.61.173.12 · Hostinger VPS · Ubuntu 24.04 |
| Environments | staging for everything; development for GrowthCommand only, for historical reasons |
| Ports | development = 5500 + index, staging = 5600 + index — the allocation table is the authority |
| Data services | PostgreSQL 18, RabbitMQ 4.3.4, Redis — all native on the host, not containerised |
| Ingress | Caddy, one site file per hostname, automatic Let's Encrypt |
| Timezone | IST, deliberately, in three independent places |
This wiki and Leveraged-Growth/wiki-backup
are the same content in two places, reconciled every five minutes in both directions.
Edit whichever suits the change:
Keep the front matter when editing in git; it carries the title, publish state and
tags.
Deleting a file in the repository deletes the live page on the next sync. It is a
two-way mirror, not a backup.
Production. It runs on a Coolify host built from the repository directly, not on
this box. Since 14 August 2026 a push to main builds nothing at all. There is no
/opt/uxl.club/production and it must not be created.
Local development. Developers run that on their own machines. GitHub Actions
never builds a development branch — a decision, not an omission.
Passwords. No credential appears anywhere in this wiki. Where one is needed, the
page names the file on the box or the 1Password item that holds it.