mirror of
https://github.com/profullstack/agentbbs.git
synced 2026-08-13 14:27:27 +00:00
Autonomous deploy + free-pod/Premium-email membership
Deploy automation (idempotent, runs on every deploy): - .github/workflows/deploy.yml: push to main/master (or dispatch) SSHes to the droplet and re-runs setup.sh; deploys the pushed branch; smoke-tests :22. - scripts/self-update.sh + agentbbs-update.timer: autonomous backstop that redeploys only when origin advances. - setup.sh hardened: flock, fetch+reset (survives force-push), fixed the always-skipped arcade asset fetch path. Membership model: - Free, email-verified members get their own Docker pod (pod@ paywall removed) and a /~name homepage (seeded at join@). - join@ is now interactive: email -> emailed 6-digit code -> enter code. - Premium ($10 one-time, lifetime via CoinPay) grants a personal <name>@host email (new internal/forwardemail; forwardemail.net aliases) and custom domains (domain@ gated to Premium). - ensurePremium() silently verifies/grants/provisions on hub login, join@, and domain@. New-signup details emailed to AGENTBBS_SIGNUP_NOTIFY (subject "bbs"). Store: User.Premium + premium/premium_ref cols, ConfirmEmailCode, GrantPremium. Tests: store_premium_test.go, forwardemail_test.go. Build/vet/gofmt/test green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
1086d57a4d
commit
3230807421
11 changed files with 900 additions and 101 deletions
23
README.md
23
README.md
|
|
@ -5,13 +5,19 @@ by Profullstack, Inc.
|
|||
|
||||
```bash
|
||||
ssh bbs@profullstack.com # the hub: arcade (DOOM, snake), leaderboards — guests welcome
|
||||
ssh join@profullstack.com # register your SSH key (prints instructions, disconnects)
|
||||
ssh join@profullstack.com # register + confirm email by code, then the Premium offer
|
||||
ssh <name>@profullstack.com # the hub as a member — or finger someone else's name
|
||||
ssh pod@profullstack.com # your own Linux pod — members, $1/mo via CoinPay
|
||||
ssh pod@profullstack.com # your own Linux pod — FREE for verified members
|
||||
ssh domain@profullstack.com # point your domain at your homepage (Premium)
|
||||
ssh video-<code>@profullstack.com # join a PairUX video call as truecolor ASCII
|
||||
ssh agent@profullstack.com # chat with the operator's AI agent
|
||||
```
|
||||
|
||||
**Membership:** verified-email members are **free** — each gets a Docker pod
|
||||
(`ssh pod@`) and a homepage at `https://host/~name`. **Premium** ($10 one-time,
|
||||
lifetime) adds a personal `name@host` email (via forwardemail.net) and custom
|
||||
domains.
|
||||
|
||||
No browser, no install, no client download. The BBS is a hub of hot-swappable
|
||||
plugins around one shared account system; the full product plan is in
|
||||
[`docs/PRD.md`](docs/PRD.md), [`docs/pods.md`](docs/pods.md),
|
||||
|
|
@ -61,6 +67,19 @@ Ops:
|
|||
./agentbbs grant-pod alice 12 # manual pod grant (12 months)
|
||||
```
|
||||
|
||||
## Deploy
|
||||
|
||||
The production host (`bbs.profullstack.com`) is provisioned by the idempotent
|
||||
[`setup.sh`](setup.sh) and stays current automatically:
|
||||
|
||||
- **Every push to `main`** runs [`.github/workflows/deploy.yml`](.github/workflows/deploy.yml),
|
||||
which SSHes to the droplet and re-runs `setup.sh` (pull + rebuild + restart).
|
||||
- A **self-update systemd timer** (`scripts/self-update.sh`, installed by
|
||||
`setup.sh`) polls origin every 15 min and redeploys only when it advances, so
|
||||
the box self-heals even if CI is down.
|
||||
|
||||
Full details, required secrets, and ops commands: [`docs/deploy.md`](docs/deploy.md).
|
||||
|
||||
## Architecture
|
||||
|
||||
- **Go + charmbracelet** — `wish` SSH server, `bubbletea` TUIs, `lipgloss` styling.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue