Files

53 lines
2.6 KiB
Markdown

# Publishing the source on netdesk.space
The full source is downloadable + git-cloneable straight from the website:
- Page: https://netdesk.space/source
- Download: https://netdesk.space/downloads/netdesk-src-latest.tar.gz (+ .zip)
- Clone: git clone https://netdesk.space/git/netdesk.git
## How it's built (secret-safe)
1. **Export tracked files only** (never DBs/artifacts/secrets):
`git archive HEAD` from this repo + the sibling `netdesk-native` repo
(extracted into `netdesk/native/`).
2. **Strip internal + sensitive** files: planning/roadmap/queue docs,
`native/certs/`, `native/docs/implementation-specs.md`, dev screenshots.
3. **Secret scan** the export (known secrets + an adversarial multi-scanner
sweep for keys/tokens/PII/stray binaries) and scrub any hit. The real
account password, owner email, account token and live host ID have been
removed from source — keep it that way (they must never be committed).
4. **Package**: `.tar.gz` + `.zip` (top-level `netdesk/`) and a bare repo
(`git clone --bare` + `git update-server-info`) for dumb-HTTP clone.
## How it's served
Static nginx locations in `/etc/nginx/conf.d/netdesk.space.conf` (see
`nginx-source.snippet`) serving `/opt/netdesk/public/{source,downloads,git}`.
Zero app-server changes; `nginx -t` + `systemctl reload nginx` (no downtime).
`source-page.html` is the download/clone landing page (served at /source/).
## GitHub-style browsing (Gitea)
The source is also browsable like GitHub — file tree, rendered README, commit
history, language stats, per-branch ZIP/TAR.GZ downloads:
- **Browse:** https://netdesk.space/git/akronlogic/netdesk
- **Clone:** git clone https://netdesk.space/git/akronlogic/netdesk.git
Served by **Gitea** (self-hosted, latest stable) running as the systemd service
`gitea` on 127.0.0.1:3030, reverse-proxied by nginx at the `/git/` sub-path
(`ROOT_URL = https://netdesk.space/git/`). SQLite data in `/var/lib/gitea`,
config in `/etc/gitea/app.ini`. Hardened: registration disabled, anonymous
read-only, SSH/Actions/Packages off, offline mode. Admin login is in
`/root/gitea-admin.txt` (root-only) — user `ndadmin`.
### Publishing an update
Rebuild the secret-scrubbed export (see above), then push it to the Gitea repo:
```bash
cd <scrubbed-export> && git init && git add -A && git commit -m "release"
git push --force https://ndadmin:<pw>@netdesk.space/git/akronlogic/netdesk.git master
```
(Only ever push the SCRUBBED export — never the raw repo, which contains the
owner email in portal.js. Re-run the secret scan first.)