# 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.*