Tor ops: launch UI, onion list/health scripts, systemd installer, README glow-up

- Replace fake-site footer with dark-web launch CTA; fix HubChatter inside AppProviders (client crash)
- Add /launch, DEPLOY.md, onions:list|status|health, list-onion-urls, install-systemd, onion-status
- start.sh CYBERLUX_PREPARE_ONLY; copy pass on satellite pages; Navbar launch link
- README: operator cheat sheet, phone Tor note, systemd via install-systemd.sh

Made-with: Cursor
This commit is contained in:
drjones
2026-04-15 22:12:44 -07:00
parent 1bbc761f58
commit e0a4a20862
30 changed files with 664 additions and 109 deletions

View File

@@ -1,10 +1,25 @@
# CYBERLUX
> Neon storefront. Forty-three onion doors. One build. One app. No dead air.
> One Next build. Dozens of v3 onions. Nginx in the middle. Tor does the rest.
CyberLux is a layered Next.js fiction stack built for dark-web literacy, classroom demos, mirror discipline drills, and absurdly overbuilt cyberpunk presentation. It runs one app behind Tor + nginx, then fans that app out into dedicated v3 hidden services for the hub, forum, exchange, market, crawler, syndicate, wiki layer, and every other top-level surface in `scripts/onion-nodes.json`.
CyberLux is a **single** Next.js app projected through **nginx loopbacks** into **one Tor hidden service per vertical** hub, forum, exchange, market, wiki, syndicate, shadow `/w` nodes, and the rest of `scripts/onion-nodes.json`. Same codebase, same deploy, **different `.onion` front doors** with host-aware rewrites (`proxy.ts` + `X-Cyberlux-Node`).
This repo is built to feel like a real underground property while still being a controlled demo environment:
**Not a toy route list:** stable `HiddenServiceDir` names, backup/restore for onion keys, generated Tor + nginx from one JSON source of truth. Built to **boot, survive operator mistakes, and stay readable under stress**.
Operator cheat sheet:
| Command | What |
|--------|------|
| `./start.sh` | Full pipeline: generate → build → Tor/nginx → print **every `.onion` URL**`next start` on `127.0.0.1:3000` |
| `npm run onions:list` | Print all `http://….onion` URLs from `/var/lib/tor/*/hostname` (use `sudo` if needed) |
| `npm run health:stack` | **Terminal A:** keep `npm run start:onion` running · **Terminal B:** curl Tor/nginx/Next loopbacks |
| `npm run onions:status` | URLs + HTTP probe each nginx vhost |
| `sudo bash scripts/install-systemd.sh` | Install `cyberlux.service` for boot-time Next |
| See **`DEPLOY.md`** | Firewall posture, compliance reminder, full systemd notes |
**Tor Browser on phone:** use **Onion Browser** (iOS) or **Tor Browser for Android** — Safari/Chrome will **never** resolve `.onion`. Paste the full `http://` + 56-char host + `.onion`; cellular networks sometimes block Tor (try WiFi).
This repo ships:
- `43` Tor v3 services
- stable loopback range `127.0.0.1:80808122`
@@ -164,29 +179,19 @@ npm run build
npm run start:onion
```
## Boot At Startup
## Boot at startup (systemd)
`scripts/cyberlux.service` is included as a systemd template for the Next process.
Before installing it, set:
- `User=`
- `Group=`
- `WorkingDirectory=`
Then install:
Generate the real unit with your Unix user and repo path (dont hand-edit placeholders):
```bash
sudo install -m 0644 scripts/cyberlux.service /etc/systemd/system/cyberlux.service
sudo systemctl daemon-reload
sudo systemctl enable --now cyberlux.service
sudo CYBERLUX_USER=$USER bash scripts/install-systemd.sh
sudo systemctl enable --now tor.service nginx.service cyberlux.service
# use `tor@default.service` instead of `tor.service` if your distro names it that way
```
Notes:
The installer writes `/etc/systemd/system/cyberlux.service` and `/etc/default/cyberlux`. Legacy template notes live in `scripts/cyberlux.service` (prefer the generator).
- Tor and nginx should already be installed and enabled
- the service unit keeps the Next process alive
- Tor/nginx config is still managed by the repo scripts
Tor + nginx must already be configured (`./start.sh` or `sudo bash scripts/install-tor-onion.sh` at least once).
## Verification
@@ -259,14 +264,12 @@ There are additional dedicated onions for many top-level routes beyond those.
- Tor hidden services
- generated route / host mapping
## Final Word
## Final word
CyberLux is supposed to boot like a machine that knows what it is:
If youre running this, youre past LARP. The stack is designed to:
- same onion doors
- same identities
- no shallow mirrors
- no fake “self healing” copy without actual restore logic
- no dead routes pretending to be part of the network
- keep **onion identities** across rebuilds when you respect `torDir` names and backups
- expose **only** what Tor publishes — not your loopback ports to the raw internet
- fail **loud** in verification (`npm run verify`) instead of silently rotting
If it starts, it should start hard.
Read **`DEPLOY.md`** before you point real people at it. **You** own jurisdiction, opsec, and what you ship.