Files
notes/reference/shared-services-registry.md

6.7 KiB

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.