Skip to content

Commit f7fc433

Browse files
committed
Clean up AGENTS.md: remove deployment examples and private topology
Remove Docker Compose example, environment variables table, worker topology with IPs, and docker run command with hardcoded API key. These belong in operator docs (README), not AGENTS.md.
1 parent 03fea18 commit f7fc433

1 file changed

Lines changed: 2 additions & 71 deletions

File tree

AGENTS.md

Lines changed: 2 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ No existing project combines all of these:
6262

6363
## Owner Context
6464

65-
**Operator**: Sergio Fernandez Rubio
65+
**Operator**: Sergio Fernandez
6666
**Trade Name**: GeiserCloud
6767
**GitHub**: GeiserX
6868

@@ -412,55 +412,6 @@ Only MystNodes has a real per-node earnings API. Research on all 12 services:
412412

413413
## Deployment
414414

415-
### Docker Compose (recommended)
416-
417-
```yaml
418-
services:
419-
cashpilot-ui:
420-
image: drumsergio/cashpilot:latest
421-
container_name: cashpilot-ui
422-
ports:
423-
- "8080:8080"
424-
volumes:
425-
- /mnt/user/appdata/cashpilot:/data # NEVER use named volumes on Unraid
426-
environment:
427-
- TZ=Europe/Madrid
428-
- CASHPILOT_SECRET_KEY=<generate-a-random-secret>
429-
- CASHPILOT_API_KEY=<shared-api-key>
430-
restart: unless-stopped
431-
security_opt:
432-
- no-new-privileges:true
433-
434-
cashpilot-worker:
435-
image: drumsergio/cashpilot-worker:latest
436-
container_name: cashpilot-worker
437-
ports:
438-
- "8081:8081"
439-
volumes:
440-
- /var/run/docker.sock:/var/run/docker.sock
441-
- /mnt/user/appdata/cashpilot-worker:/data
442-
environment:
443-
- TZ=Europe/Madrid
444-
- CASHPILOT_UI_URL=http://cashpilot-ui:8080
445-
- CASHPILOT_API_KEY=<shared-api-key>
446-
- CASHPILOT_WORKER_NAME=local
447-
restart: unless-stopped
448-
security_opt:
449-
- no-new-privileges:true
450-
```
451-
452-
### Environment Variables
453-
454-
| Variable | Default | Description |
455-
|----------|---------|-------------|
456-
| `TZ` | `UTC` | Timezone |
457-
| `CASHPILOT_SECRET_KEY` | Auto-generated | Fernet encryption key for credentials (UI only) |
458-
| `CASHPILOT_COLLECTION_INTERVAL` | `3600` | Seconds between earnings collection (UI only) |
459-
| `CASHPILOT_PORT` | `8080` | Web UI port (UI) or mini-UI port (worker, default 8081) |
460-
| `CASHPILOT_UI_URL` | -- | URL of UI instance (worker mode only, required) |
461-
| `CASHPILOT_API_KEY` | -- | Shared API key for worker↔UI auth (required in multi-server) |
462-
| `CASHPILOT_WORKER_NAME` | hostname | Human-readable worker name shown in UI fleet view |
463-
464415
### Current Deployment
465416

466417
3-server fleet: 1 UI instance + 2 workers. Workers send heartbeats to UI every 60s.
@@ -502,26 +453,6 @@ CashPilot stores earnings in each service's **native currency** (USD, MYST, GRAS
502453

503454
**Always use the dedicated worker image** (`drumsergio/cashpilot-worker`), never the UI image for workers. The worker image runs `app.worker_api:app` on port 8081.
504455

505-
**Topology:**
506-
- **watchtower**: `drumsergio/cashpilot` (UI, port 8085→8080) + `drumsergio/cashpilot-worker` (worker, port 8081). UI collects all earnings, worker manages local containers.
507-
- **geiserback** (192.168.10.110): `drumsergio/cashpilot-worker`. Port 8081. Same subnet as watchtower — uses direct IP for `CASHPILOT_UI_URL`.
508-
- **geiserct** (192.168.20.5, user `geiser`): `drumsergio/cashpilot-worker`. Port 8081. Different subnet — **must use Tailscale MagicDNS** (`watchtower.mango-alpha.ts.net`) for `CASHPILOT_UI_URL`.
509-
510-
```bash
511-
# Worker deployment (geiserback or geiserct)
512-
docker run -d --name cashpilot-worker --restart unless-stopped \
513-
-p 8081:8081 \
514-
-v /var/run/docker.sock:/var/run/docker.sock \
515-
-e TZ=Europe/Madrid \
516-
-e "CASHPILOT_UI_URL=http://192.168.10.100:8085" \
517-
-e "CASHPILOT_API_KEY=XV5LwdpApfERQmhKbbcANI8nz3pca1Up" \
518-
-e CASHPILOT_WORKER_NAME=<server-name> \
519-
--security-opt no-new-privileges:true \
520-
drumsergio/cashpilot-worker:latest
521-
```
522-
523-
**Cross-subnet note**: geiserct uses `CASHPILOT_UI_URL=http://watchtower.mango-alpha.ts.net:8085` since 192.168.20.x cannot reach 192.168.10.x directly.
524-
525456
**Important**: The `entrypoint.sh` does NOT switch modes — it only sets up Docker socket permissions. Mode is determined by which Docker image runs (`Dockerfile``app.main:app`, `Dockerfile.worker``app.worker_api:app`).
526457

527458
---
@@ -544,7 +475,7 @@ Docker socket must be accessible for container management.
544475
1. Create `services/{category}/{slug}.yml` following `_schema.yml`
545476
2. **Include a `cashout` section** in the YAML — every service must define how users can cash out (API endpoint, redirect URL, or manual instructions). This is mandatory, not optional.
546477
3. Run `python scripts/generate_docs.py` to regenerate README + guides
547-
4. Optionally add a collector in `app/collectors/{slug}.py` and register it in `__init__.py`
478+
4. Add a collector in `app/collectors/{slug}.py` and register it in `__init__.py`
548479
5. Submit a PR (one service per PR)
549480

550481
### Documentation Generation

0 commit comments

Comments
 (0)