Replace remote with local repo
This commit is contained in:
48
README.md
48
README.md
@@ -2,7 +2,7 @@
|
||||
|
||||
> **The clearnet is a showroom. The onion is the door. One engine behind every door.**
|
||||
|
||||
One Next.js stack projected through 43 independent Tor v3 hidden services. Nginx sits in the middle; Tor does the publishing. Same codebase, same deploy — **different `.onion` front doors** with host-aware rewrites (`proxy.ts` + `X-Cyberlux-Node`). No fork army. No split deployments.
|
||||
One Next.js stack projected through a single Tor v3 hidden service. Nginx sits in the middle; Tor does the publishing. Same codebase, same deploy — **one `.onion` front door** with every section available as a normal app path.
|
||||
|
||||
---
|
||||
|
||||
@@ -15,13 +15,13 @@ One Next.js stack projected through 43 independent Tor v3 hidden services. Nginx
|
||||
[ Tor Network ]
|
||||
│
|
||||
▼
|
||||
nginx 127.0.0.1:8080–8122 (one vhost per .onion, host header → X-Cyberlux-Node)
|
||||
nginx 127.0.0.1:8080 (single onion vhost)
|
||||
│
|
||||
▼
|
||||
Next.js 127.0.0.1:3000 (single instance, proxy.ts routes by header)
|
||||
```
|
||||
|
||||
**43 onion services → one app → zero public ports.**
|
||||
**One onion service → one app → zero public ports.**
|
||||
|
||||
---
|
||||
|
||||
@@ -43,9 +43,9 @@ Local-only (skip Tor/nginx): `CYBERLUX_SKIP_TOR=1 ./start.sh`
|
||||
| Command | What it does |
|
||||
|---------|-------------|
|
||||
| `./start.sh` | Full pipeline: generate → build → Tor/nginx → print URLs → start Next |
|
||||
| `npm run onions:list` | Print all live `.onion` URLs from `/var/lib/tor/*/hostname` |
|
||||
| `sudo npm run onions:export` | Write live URLs to `onion-urls.txt` in repo root |
|
||||
| `npm run onions:status` | URLs + HTTP probe each nginx vhost |
|
||||
| `npm run onions:list` | Print the live `.onion` URL from `/var/lib/tor/cyberlux/hostname` |
|
||||
| `sudo npm run onions:export` | Write the live URL to `onion-urls.txt` in repo root |
|
||||
| `npm run onions:status` | URL + HTTP probe for the nginx vhost |
|
||||
| `npm run health:stack` | Curl Tor/nginx/Next loopbacks and report status |
|
||||
| `npm run verify` | Full pre-ship check: config gen, TS, shell syntax, build |
|
||||
| `sudo bash scripts/install-tor-onion.sh` | Install/refresh Tor + nginx config |
|
||||
@@ -53,12 +53,17 @@ Local-only (skip Tor/nginx): `CYBERLUX_SKIP_TOR=1 ./start.sh`
|
||||
| `sudo bash scripts/restore-onion-keys.sh` | Restore missing key dirs from backup |
|
||||
| `sudo bash scripts/install-systemd.sh` | Install `cyberlux.service` for boot-time start |
|
||||
| `sudo bash scripts/classroom-ufw.sh` | Lock firewall to loopback-only (recommended) |
|
||||
| `bash scripts/mkp224o-build.sh` | Build the mkp224o v3 vanity key generator into `vendor/mkp224o/` (gitignored) |
|
||||
| `bash scripts/vanity-onion-mine.sh <prefix>` | Brute-force a .onion starting with `prefix` (base32) → `var/vanity-mine/` |
|
||||
| `sudo bash scripts/install-vanity-onion-key.sh var/vanity-mine` | Install mined keys into `/var/lib/tor/cyberlux`, restart Tor |
|
||||
|
||||
**Vanity .onion** (a custom prefix, e.g. the site name) is optional and CPU-heavy. Full steps: [`ONION-URLS.md`](ONION-URLS.md#vanity-onion-custom-prefix-eg-site-name-at-the-start).
|
||||
|
||||
---
|
||||
|
||||
## Onion URL Reference
|
||||
|
||||
See [`ONION-URLS.md`](ONION-URLS.md) — full table of all 43 services with ports and app paths.
|
||||
See [`ONION-URLS.md`](ONION-URLS.md) — live address notes for the single CyberLux onion.
|
||||
|
||||
To export live `.onion` addresses after Tor is running:
|
||||
|
||||
@@ -71,10 +76,10 @@ sudo bash scripts/export-onion-urls.sh
|
||||
|
||||
## What Ships in the Box
|
||||
|
||||
- **43** Tor v3 hidden services
|
||||
- Loopback range `127.0.0.1:8080–8122` (nginx vhosts, never public)
|
||||
- **1** Tor v3 hidden service
|
||||
- Loopback port `127.0.0.1:8080` (nginx vhost, never public)
|
||||
- Next.js bound only to `127.0.0.1:3000`
|
||||
- One `.onion` per major surface — hub, forum, market, exchange, wiki, and 38 more
|
||||
- One `.onion` for the whole site — hub, forum, market, exchange, wiki, and directory paths
|
||||
- Persistent hidden-service identity keyed by `HiddenServiceDir` name
|
||||
- Self-healing backup / restore for onion keys
|
||||
- BTCPay Server integration (configurable) for on-chain + Lightning deposits
|
||||
@@ -91,7 +96,7 @@ sudo bash scripts/export-onion-urls.sh
|
||||
5. Runs a production build
|
||||
6. Restores backed-up onion keys if any hidden-service directories are missing
|
||||
7. Installs Tor + nginx config (only when it changed)
|
||||
8. Waits for **all** onion hostname files, not just the hub
|
||||
8. Waits for the CyberLux onion hostname file
|
||||
9. Refreshes the onion key backup set
|
||||
10. Prints every live `.onion` URL
|
||||
11. Starts Next on `127.0.0.1:3000`
|
||||
@@ -111,7 +116,6 @@ Generated artifacts (do not edit manually):
|
||||
| File | Description |
|
||||
|------|-------------|
|
||||
| `tor/cyberlux-nodes.conf` | Tor `HiddenServiceDir` / `HiddenServicePort` blocks |
|
||||
| `nginx/cyberlux-onion-servers.inc` | nginx server blocks (one per onion) |
|
||||
| `lib/onionRoutes.generated.ts` | TypeScript route map used by `proxy.ts` |
|
||||
| `scripts/generated/tor-dirs.txt` | Newline-separated list of service dir names |
|
||||
| `scripts/generated/onion-labels.tsv` | Human-readable labels per service |
|
||||
@@ -192,7 +196,7 @@ ss -ltnp | grep 3000
|
||||
|
||||
- Next.js and nginx bind to **loopback only** — they are never public
|
||||
- Tor publishes the `.onion` endpoints
|
||||
- Do **not** expose ports 3000 or 8080–8122 to the internet
|
||||
- Do **not** expose ports 3000 or 8080 to the internet
|
||||
- Harden with: `sudo bash scripts/classroom-ufw.sh`
|
||||
- Tor obscures reachability — it does not forgive bad code or bad ops
|
||||
|
||||
@@ -204,17 +208,15 @@ Read `DEPLOY.md` before pointing real users at this stack.
|
||||
|
||||
| Vertical | Path | Onion |
|
||||
|---------|------|-------|
|
||||
| Master directory | `/directory` | `cyberlux` |
|
||||
| Hub storefront | `/` | `cyberlux` |
|
||||
| Forum (Void Aggregate) | `/forum` | `cyberlux_forum` |
|
||||
| Exchange (classifieds) | `/exchange` | `cyberlux_exchange` |
|
||||
| Market (full catalog) | `/market` | `cyberlux_market` |
|
||||
| Barter (Ash Pit) | `/barter` | `cyberlux_barter` |
|
||||
| Search (Void Crawler) | `/search` | `cyberlux_search` |
|
||||
| Hidden Wiki | `/hidden-wiki` | `cyberlux_wiki` |
|
||||
| Syndicate (shell net) | `/syndicate` | `cyberlux_syndicate` |
|
||||
| Dashboard | `/dashboard` | `cyberlux_dashboard` |
|
||||
| Account / mirror map | `/account` | `cyberlux_account` |
|
||||
| + 33 more | see `ONION-URLS.md` | |
|
||||
| Forum (Void Aggregate) | `/forum` | `cyberlux` |
|
||||
| Exchange (classifieds) | `/exchange` | `cyberlux` |
|
||||
| Market (full catalog) | `/market` | `cyberlux` |
|
||||
| Barter (Ash Pit) | `/barter` | `cyberlux` |
|
||||
| Search (Void Crawler) | `/search` | `cyberlux` |
|
||||
| Hidden Wiki | `/hidden-wiki` | `cyberlux` |
|
||||
| Syndicate (shell net) | `/syndicate` | `cyberlux` |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user