162 lines
6.7 KiB
Markdown
162 lines
6.7 KiB
Markdown
# Shared Services Registry
|
|
*Last updated: 2026-01-29*
|
|
|
|
All reusable infrastructure, accounts, domains, and services across Hammer's projects.
|
|
|
|
---
|
|
|
|
## 🖥️ Infrastructure
|
|
|
|
### VPS — Clawdbot Host
|
|
- **Provider:** Hostinger
|
|
- **IP:** 72.60.68.214
|
|
- **OS:** Ubuntu Linux
|
|
- **User:** clawdbot (sudo, password required)
|
|
- **Purpose:** Runs Clawdbot gateway, Caddy reverse proxy
|
|
- **Services running:** Caddy (reverse proxy + TLS), Clawdbot gateway
|
|
|
|
### VPS — Dokploy (App Hosting)
|
|
- **Provider:** Dokploy Cloud
|
|
- **IP:** 191.101.0.153
|
|
- **Dashboard:** https://app.dokploy.com
|
|
- **API Key:** Stored in Bitwarden ("Dokploy API Key" or similar)
|
|
- **Purpose:** Docker-based app deployment (compose + individual apps + managed Postgres)
|
|
|
|
---
|
|
|
|
## 🌐 Domains
|
|
|
|
### Primary Domain: `donovankelly.xyz`
|
|
DNS managed via Hostinger. Wildcard `*.hammer.donovankelly.xyz` → 72.60.68.214.
|
|
|
|
| Subdomain | Points To | Purpose |
|
|
|-----------|-----------|---------|
|
|
| `hammer.donovankelly.xyz` | 72.60.68.214 (Caddy) | Clawdbot hooks endpoint (Control UI blocked) |
|
|
| `ws.hammer.donovankelly.xyz` | 72.60.68.214 (Caddy) | WebSocket relay (token-auth) for dashboard chat |
|
|
| `dash.donovankelly.xyz` | Dokploy (Traefik) | Hammer Dashboard (queue + chat + projects) |
|
|
| `app.todo.donovankelly.xyz` | Dokploy (Traefik) | Todo App frontend |
|
|
| `api.todo.donovankelly.xyz` | Dokploy (Traefik) | Todo App backend API |
|
|
| `app.thenetwork.donovankelly.xyz` | Dokploy (Traefik) | Network App (NWM CRM) frontend |
|
|
| `api.thenetwork.donovankelly.xyz` | Dokploy (Traefik) | Network App API backend |
|
|
| `app.nkode.donovankelly.xyz` | Dokploy (Traefik) | nKode frontend |
|
|
| `api.nkode.donovankelly.xyz` | Dokploy (Traefik) | nKode backend (Rust) |
|
|
|
|
### Other Domains
|
|
| Domain | Purpose |
|
|
|--------|---------|
|
|
| `git.infra.nkode.tech` | Gitea instance (code hosting) |
|
|
| `network-api.nkode.tech` | Alias for Network App API |
|
|
| `that2ndguy.com` | That2ndGuy golf brand (not yet live) |
|
|
|
|
---
|
|
|
|
## 📦 Dokploy Projects & Services
|
|
|
|
### Project: Hammer Projects (`EtUEaT-WRASozvV78tgPL`)
|
|
|
|
| Service | Type | Compose/App ID | Domain |
|
|
|---------|------|----------------|--------|
|
|
| hammer-queue | Compose | `kBdwrcZodIRyNIvQ-wrzG` | dash.donovankelly.xyz |
|
|
| network-app-api | Compose | `UKrNvUyMCdaSWkl6DcAGA` | api.thenetwork.donovankelly.xyz |
|
|
| network-app-web | Compose | `Sa1LrtH5uu-a7chrtebXb` | app.thenetwork.donovankelly.xyz |
|
|
| todo-app-v2 | Compose | `e07fMO8TXcHI_SkKqBWrl` | api.todo.donovankelly.xyz |
|
|
| todo-app-web | Compose | `ofMFmzQhEYK-3LfH5QmU_` | app.todo.donovankelly.xyz |
|
|
| network-app-db | Postgres | `KzFkJETXrW_oMaiPsUb2o` | (internal) |
|
|
| todo-app-db | Postgres | `WrvHLAc1kaqsrpTaSGOG4` | (internal) |
|
|
|
|
### Project: nKode (`rqBLzpkkE9b7hlQHh6tBG`)
|
|
|
|
| Service | Type | App ID | Domain |
|
|
|---------|------|--------|--------|
|
|
| nkode-frontend | Application | `f-9zg1S81u5Nzh_aZj2Jl` | app.nkode.donovankelly.xyz |
|
|
| nkode-backend | Application | `gEOD9RFeADCSYZscOI61B` | api.nkode.donovankelly.xyz |
|
|
| nkode-db | Postgres | `-kClddhuQsAWjy-ZP4anV` | (internal) |
|
|
|
|
---
|
|
|
|
## 📁 Git Repositories (Gitea)
|
|
|
|
All hosted at `git.infra.nkode.tech`. Two orgs: `hammer` (Hammer's repos) and `dkelly` (Donovan's repos).
|
|
|
|
### Hammer's Repos
|
|
| Repo | Purpose |
|
|
|------|---------|
|
|
| `hammer/clawd` | Clawdbot workspace (this repo) |
|
|
| `hammer/hammer-queue` | Hammer Dashboard (dash.donovankelly.xyz) |
|
|
| `hammer/network-app-api` | Network App backend |
|
|
| `hammer/network-app-web` | Network App frontend |
|
|
| `hammer/network-app-mobile` | Network App mobile (Flutter?) |
|
|
| `hammer/todo-app-web` | Todo App frontend |
|
|
| `hammer/donovan-portfolio` | Donovan's portfolio site |
|
|
| `hammer/nkode-web` | nKode frontend |
|
|
| `hammer/notes` | Markdown notes repo |
|
|
|
|
### Donovan's Repos
|
|
| Repo | Purpose |
|
|
|------|---------|
|
|
| `dkelly/Markdown-Notes` | Markdown notes app |
|
|
| `dkelly/flutter-nkode` | nKode Flutter mobile app |
|
|
| `dkelly/nkode-oidc` | nKode OIDC auth provider |
|
|
| `dkelly/nkode-rs` | nKode Rust backend |
|
|
|
|
---
|
|
|
|
## 🔑 Accounts & API Keys
|
|
|
|
All secrets stored in **Bitwarden** (shared org vault: `Hammer's Credentials`).
|
|
|
|
| Service | Purpose | Where Used | Bitwarden Item |
|
|
|---------|---------|-----------|----------------|
|
|
| Dokploy API | Deploy apps via API | Dashboard deploy, cron task worker | "Dokploy API Key" or similar |
|
|
| Hammer Dashboard API | Task CRUD, webhooks | Cron jobs, heartbeat checks | Bearer token in cron config |
|
|
| Gmail API (OAuth2) | Email monitoring | Heartbeat checks, `~/.local/bin/gmail` | OAuth tokens in gmail config |
|
|
| Gitea (hammer) | Push code, create PRs | All repos | Git credential in remote URLs |
|
|
| nKode Postgres | Database creds | nkode-backend env vars | "nKode Postgres (Dokploy)" |
|
|
| Clawdbot Gateway WS | WebSocket auth token | dash.donovankelly.xyz chat relay | GATEWAY_WS_URL / WS token |
|
|
|
|
### Bitwarden Vault Info
|
|
- **Organization:** `4e3ffbdb-0f8b-4f7a-a276-b0a30160e33f` (Hammer's Credentials)
|
|
- **Collection:** `320f9e42-607e-4180-8533-b0a30160e342` (Default collection)
|
|
- **CLI:** `/home/clawdbot/.npm-global/bin/bw`
|
|
- **Config:** `~/.clawdbot/.env` (BW_CLIENTID, BW_CLIENTSECRET, BW_PASSWORD)
|
|
|
|
---
|
|
|
|
## 🔧 Reusable for New Projects
|
|
|
|
When spinning up a new app, reuse:
|
|
|
|
1. **Hosting:** Add to Dokploy under "Hammer Projects" or create a new project
|
|
2. **Domain:** Add subdomain under `*.donovankelly.xyz` (wildcard DNS already set)
|
|
3. **Database:** Create managed Postgres in Dokploy (free, internal networking)
|
|
4. **Code hosting:** Create repo under `hammer/` org on `git.infra.nkode.tech`
|
|
5. **Secrets:** Store all API keys/creds in Bitwarden shared vault
|
|
6. **TLS:** Automatic via Dokploy's Traefik (for Dokploy apps) or Caddy (for VPS services)
|
|
7. **Deploy:** Use Dokploy API for automated deploys from task worker
|
|
|
|
### Not Yet Set Up (Opportunities)
|
|
- **Email sending (transactional):** No Resend/SendGrid account yet — would benefit Network App, Todo App, future apps
|
|
- **Stripe:** No account yet — needed if any app charges money
|
|
- **Analytics:** No Plausible/PostHog — could add self-hosted analytics
|
|
- **Error tracking:** No Sentry — could add for production monitoring
|
|
- **S3/Object storage:** No MinIO or cloud storage — would benefit file uploads
|
|
|
|
---
|
|
|
|
## 📋 Caddy Reverse Proxy (VPS: 72.60.68.214)
|
|
|
|
Caddy handles TLS termination for VPS-hosted services:
|
|
|
|
| Route | Target | Notes |
|
|
|-------|--------|-------|
|
|
| `hammer.donovankelly.xyz/hooks/*` | Clawdbot gateway | Webhook endpoint only |
|
|
| `ws.hammer.donovankelly.xyz` | Clawdbot gateway | WebSocket, token-authenticated |
|
|
| `app.todo.donovankelly.xyz` | Dokploy | Todo frontend |
|
|
| `api.todo.donovankelly.xyz` | Dokploy | Todo backend |
|
|
|
|
> ⚠️ `hammer.donovankelly.xyz` Control UI is BLOCKED — needs auth layer before re-enabling.
|
|
|
|
---
|
|
|
|
*Keep this file updated when adding new services, domains, or accounts.*
|