Replace remote with local repo

This commit is contained in:
drjones
2026-04-26 22:28:40 -07:00
parent 04d64fb993
commit e7c9da944e
57 changed files with 3658 additions and 3971 deletions

View File

@@ -1,13 +1,13 @@
# CyberLux — Onion URL Reference
All 43 Tor v3 hidden services. Live `.onion` addresses are generated at runtime by Tor and stored in `/var/lib/tor/<service>/hostname`. This file is a **static registry**; use the commands below to resolve live addresses.
CyberLux now uses one Tor v3 hidden service for the whole site. The live `.onion` address is generated at runtime by Tor and stored in `/var/lib/tor/cyberlux/hostname`. This file is a **static registry**; use the commands below to resolve the live address.
---
## Get Live URLs
```bash
# Print all live .onion URLs (reads /var/lib/tor/*/hostname)
# Print the live .onion URL (reads /var/lib/tor/cyberlux/hostname)
bash scripts/list-onion-urls.sh
# or with sudo if not readable as your user:
sudo bash scripts/list-onion-urls.sh
@@ -22,49 +22,7 @@ sudo bash scripts/export-onion-urls.sh
| # | `torDir` | Port | Role | App Path |
|---|----------|------|------|----------|
| 1 | `cyberlux` | 8080 | Hub — main storefront | `/` |
| 2 | `cyberlux_forum` | 8081 | Void Aggregate — forum | `/forum` |
| 3 | `cyberlux_exchange` | 8082 | Classifieds exchange | `/exchange` |
| 4 | `cyberlux_wiki` | 8083 | Hidden-wiki layer | `/hidden-wiki` |
| 5 | `cyberlux_market` | 8084 | Full catalog / market | `/market` |
| 6 | `cyberlux_barter` | 8085 | Ash Pit barter | `/barter` |
| 7 | `cyberlux_chatter` | 8086 | Chatter / live feed | `/chatter` |
| 8 | `cyberlux_search` | 8087 | Void Crawler search | `/search` |
| 9 | `cyberlux_syndicate` | 8088 | Shell network syndicate | `/syndicate` |
| 10 | `cyberlux_arb_academy` | 8089 | Arb Academy | `/arb-academy` |
| 11 | `cyberlux_reviews` | 8090 | Reviews | `/reviews` |
| 12 | `cyberlux_trust` | 8091 | Trust / reputation layer | `/trust` |
| 13 | `cyberlux_vault` | 8092 | Vault / secure storage | `/vault` |
| 14 | `cyberlux_messages` | 8093 | Private messages | `/messages` |
| 15 | `cyberlux_drop_box` | 8094 | Drop Box | `/drop-box` |
| 16 | `cyberlux_easter_eggs` | 8095 | Easter Eggs | `/easter-eggs` |
| 17 | `cyberlux_links` | 8096 | Curated links | `/links` |
| 18 | `cyberlux_red_room` | 8097 | Red Room | `/red-room` |
| 19 | `cyberlux_drops` | 8098 | Drops | `/drops` |
| 20 | `cyberlux_inner_circle` | 8099 | Inner Circle | `/inner-circle` |
| 21 | `cyberlux_comparison` | 8100 | Comparison tool | `/comparison` |
| 22 | `cyberlux_testimonials` | 8101 | Testimonials | `/testimonials` |
| 23 | `cyberlux_wallets` | 8102 | Wallets | `/wallets` |
| 24 | `cyberlux_support` | 8103 | Support desk | `/support` |
| 25 | `cyberlux_darknet_atlas` | 8104 | Darknet Atlas taxonomy | `/darknet-atlas` |
| 26 | `cyberlux_security_analysis` | 8105 | Security analysis | `/security-analysis` |
| 27 | `cyberlux_mixer` | 8106 | Mixer | `/mixer` |
| 28 | `cyberlux_secret_layer` | 8107 | Secret Layer | `/secret-layer` |
| 29 | `cyberlux_trees` | 8108 | Trees | `/trees` |
| 30 | `cyberlux_presswire` | 8109 | Presswire / news | `/presswire` |
| 31 | `cyberlux_awards` | 8110 | Awards | `/awards` |
| 32 | `cyberlux_raffle` | 8111 | Raffle | `/raffle` |
| 33 | `cyberlux_game` | 8112 | Game | `/game` |
| 34 | `cyberlux_webring` | 8113 | Webring | `/webring` |
| 35 | `cyberlux_conspiracies` | 8114 | Conspiracies | `/conspiracies` |
| 36 | `cyberlux_sanctuary` | 8115 | Sanctuary | `/sanctuary` |
| 37 | `cyberlux_dashboard` | 8116 | Personal relay dashboard | `/dashboard` |
| 38 | `cyberlux_checkout` | 8117 | Checkout flow | `/checkout` |
| 39 | `cyberlux_vendors` | 8118 | Vendors | `/vendors` |
| 40 | `cyberlux_sign_in` | 8119 | Sign in | `/sign-in` |
| 41 | `cyberlux_sign_up` | 8120 | Sign up | `/sign-up` |
| 42 | `cyberlux_account` | 8121 | Account / mirror map | `/account` |
| 43 | `cyberlux_w` | 8122 | Shadow nodes / syndicate shell | `/w` |
| 1 | `cyberlux` | 8080 | Everything site — hub, market, forum, directory, wiki, account, and all app paths | `/directory` |
---
@@ -77,16 +35,16 @@ sudo bash scripts/export-onion-urls.sh
# writes: onion-urls.txt
```
`onion-urls.txt` (if present in this directory) contains the resolved `http://…56chars….onion` addresses for all services and is gitignored — it reflects runtime state, not source.
`onion-urls.txt` (if present in this directory) contains the resolved `http://…56chars….onion` address and is gitignored — it reflects runtime state, not source.
---
## How Addresses Stay Stable
Each service maps to a fixed `HiddenServiceDir` in `/var/lib/tor/`. As long as:
The service maps to a fixed `HiddenServiceDir` in `/var/lib/tor/`. As long as:
- the `torDir` name in `scripts/onion-nodes.json` does not change, and
- `/var/lib/tor/<service>/` is preserved (or restored from backup),
- the `torDir` name in `scripts/onion-nodes.json` stays `cyberlux`, and
- `/var/lib/tor/cyberlux/` is preserved (or restored from backup),
the `.onion` address **never rotates**, surviving reboots, rebuilds, and Tor restarts.
@@ -99,9 +57,79 @@ sudo bash scripts/restore-onion-keys.sh # restores missing dirs from backup
---
## Vanity .onion (custom prefix, e.g. site name at the start)
v3 onion names are random unless you **generate** a key pair whose address matches a **prefix** (brute force). This repo ships scripts around **[mkp224o](https://github.com/cathugger/mkp224o)** (same approach as the [Tor community vanity guide](https://community.torproject.org/onion-services/advanced/vanity-addresses/)).
**Charset:** Onion v3 hostnames are base32: **az** and **27** only (no `0`, `1`, `8`, `9`). Any other character in the filter is invalid.
**Time:** Shorter prefixes finish sooner; each extra character is much harder. Treat long targets (e.g. full word) as a **long** CPU run or use many cores / a batch-capable build per mkp224os `OPTIMISATION.txt`.
### 1) Build the miner (once)
```bash
# Debian/Ubuntu deps (as root)
sudo apt install -y git gcc make autoconf pkg-config libc6-dev libsodium-dev
cd /path/to/cyberlux
bash scripts/mkp224o-build.sh
# produces: vendor/mkp224o/mkp224o
```
`vendor/mkp224o` is gitignored; nothing is committed except these scripts.
**Docker alternative (no local compile):**
```bash
export CYBERLUX_MKP224O_DOCKER=1
export CYBERLUX_VANITY_OUT="/path/to/cyberlux/var/vanity-mine"
mkdir -p "$CYBERLUX_VANITY_OUT"
bash scripts/vanity-onion-mine.sh yourprefix
```
(Requires Docker; uses `ghcr.io/cathugger/mkp224o:master`.)
### 2) Mine a prefix (runs until a match appears)
```bash
bash scripts/vanity-onion-mine.sh cyberl
# Output directory: var/vanity-mine/ (default) — gitignored
```
You get a new subdirectory named like `cyberlXXXXXXXX.onion` containing `hs_ed25519_secret_key` and `hostname`. **Stop the miner** when you have a directory you are happy with if it created more than one.
### 3) Install the key for CyberLux and restart Tor
`HiddenServiceDir` in this project is `/var/lib/tor/cyberlux` (from `onion-nodes.json`). The install script copies the **files** from the mkp224o folder into that directory, fixes ownership, and restarts Tor.
```bash
# If var/vanity-mine has several *.onion folders, the script picks one for you
# (default: first in AZ order). Newest mtime: CYBERLUX_VANITY_PICK=latest
sudo bash scripts/install-vanity-onion-key.sh var/vanity-mine
sudo env CYBERLUX_VANITY_PICK=latest bash scripts/install-vanity-onion-key.sh var/vanity-mine
# Or point at one directory explicitly:
sudo bash scripts/install-vanity-onion-key.sh var/vanity-mine/cyberlxxxxx....onion
```
The previous service directory is moved to `/var/lib/tor/cyberlux.stale.<timestamp>`. A backup is triggered when `backup-onion-keys.sh` is present.
### 4) Confirm the new URL
```bash
bash scripts/list-onion-urls.sh
# or
sudo cat /var/lib/tor/cyberlux/hostname
```
Open `http://<address>.onion` in **Tor Browser**.
---
## Notes
- All services run from **one** Next.js instance at `127.0.0.1:3000`.
- nginx vhosts on `127.0.0.1:80808122` proxy to Next with `X-Cyberlux-Node` headers for host-aware routing.
- The service runs from **one** Next.js instance at `127.0.0.1:3000`.
- nginx on `127.0.0.1:8080` proxies every path to Next.
- Open addresses in **Tor Browser** or **Onion Browser** (iOS). Standard browsers cannot resolve `.onion`.
- Use `http://` — TLS inside the onion circuit is handled end-to-end by Tor.
- A vanity prefix is **not** “configured” in `torrc`; only the private key in `HiddenServiceDir` determines the hostname.