p24-infra Element Registry
Source of truth: Supabase
dev_r_servicestable (project_id = 'p24-infra'). This file is a human-readable mirror — update both when infrastructure changes. Compliance dashboard: Grafana p24-infra Health Standard: project-standards.md Last updated: 2026-05-13
Categories
- Servers
- Container Services — vps-i1
- Container Services — vps-h1
- SaaS Services
- Storage
- Networking & DNS
- Automation & CI/CD
- AI Agents
- Scripts & Tools
- GitHub Repositories
- Credentials Index
Servers
| Name | Label | Provider | OS | IP | CPU | RAM | Status |
|---|---|---|---|---|---|---|---|
| IONOS VPS | vps-i1 | IONOS | AlmaLinux 9.7 | 217.154.82.162 | 6 vCPU | 7.4 GB | active |
| Hostinger VPS | vps-h1 | Hostinger | Ubuntu 24.04.3 | 72.60.32.61 | 2 vCPU | 7.8 GB | active |
| Local workstation | radieu | local | Windows 10 | — | i5-8600K 6c | 64 GB | active |
| OVH Server F | vps-ovh1 | OVH | — | TBD | 6 core | 12 GB | planned |
| Pinbox24 Dev VPS | vps-p24dev | — | — | 51.68.155.224 | — | — | legacy |
SSH access (all servers): key C:\Users\konar\.ssh\id_ed25519 — username root
Container Services — vps-i1 (IONOS)
Compose: /root/traccar/docker-compose.yml (Traccar), /opt/p24-infra/monitoring/docker-compose.yml (monitoring stack)
| Container | Image | Ports | Purpose | Compliance | Workbook |
|---|---|---|---|---|---|
traccar | traccar/traccar:6.12.2 | 127.0.0.1:8082, 0.0.0.0:5027 | GPS fleet tracking | ✅ full (−rotation) | traccar-operations.md |
traccar-db | mysql:8.0 | internal | MySQL for Traccar | part of traccar | ↑ |
monitoring-prometheus-1 | prom/prometheus:v2.55.1 | 127.0.0.1:9090 | Metrics collection | ⚠️ partial (+healthcheck 2026-05-14) | monitoring-stack-operations.md |
monitoring-thanos-sidecar-1 | quay.io/thanos/thanos:v0.36.1 | 10901-10902 | TSDB upload to Wasabi | ⚠️ partial (+healthcheck) | ↑ |
monitoring-thanos-query-1 | quay.io/thanos/thanos:v0.36.1 | 127.0.0.1:10904 | Unified PromQL | ⚠️ partial (+healthcheck) | ↑ |
monitoring-grafana-1 | grafana/grafana:11.3.0 | 127.0.0.1:3000 | Dashboards | ⚠️ partial (+healthcheck +backup 2026-05-14) | grafana-operations.md |
monitoring-renderer-1 | grafana/grafana-image-renderer:3.11.6 | 127.0.0.1:8081 | PNG renders for reports | ❌ low (+healthcheck) | ↑ |
monitoring-alertmanager-1 | prom/alertmanager:v0.27.0 | 127.0.0.1:9093 | Alert routing (email) | ⚠️ partial (+healthcheck) | monitoring-stack-operations.md |
monitoring-loki-1 | grafana/loki:3.3.2 | 127.0.0.1:3100 | Log aggregation | ❌ (+healthcheck) | ↑ |
monitoring-promtail-1 | grafana/promtail:3.3.2 | — | Log shipping → Loki | ❌ (+healthcheck) | ↑ |
monitoring-blackbox-exporter-1 | prom/blackbox-exporter:v0.25.0 | 127.0.0.1:9115 | HTTP probes | ⚠️ (+healthcheck) | ↑ |
monitoring-caddy-1 | caddy:2.8-alpine | 80, 443 | TLS reverse proxy | ⚠️ (+healthcheck) | ↑ |
monitoring-uptime-kuma-1 | louislam/uptime-kuma:1 | 127.0.0.1:3001 | Uptime monitoring UI | ❌ (+healthcheck) | — |
monitoring-queue-exporter-1 | custom Python | 127.0.0.1:9200 | Supabase queue → Prometheus | ❌ (+healthcheck) | — |
monitoring-cost-exporter-1 | custom Python | 127.0.0.1:9210 | Vercel/Supabase/Wasabi costs | ❌ (+healthcheck) | — |
monitoring-pg-stats-exporter-1 | custom Python | 127.0.0.1:9201 | Supabase slow queries | ❌ (+healthcheck) | — |
monitoring-backup-exporter-1 | custom Python | 127.0.0.1:9220 | Wasabi backup status | ❌ (+healthcheck) | — |
monitoring-gotenberg-1 | gotenberg/gotenberg:8 | internal | PDF conversion engine | ❌ (+healthcheck) | — |
monitoring-pdf-service-1 | custom Python | 127.0.0.1:8100 | PDF service API | ❌ (+healthcheck) | — |
openclaw-openclaw-gateway-1 | OpenClaw | 18789, 18790 | WhatsApp gateway | ❌ | — |
openclaw-openclaw-cli-1 | OpenClaw | — | Claude CLI integration | ❌ Exited(1) | — |
node_exporter | prom/node-exporter | 9100 | Host metrics | ⚠️ | — |
cadvisor | gcr.io/cadvisor/cadvisor | 8080 | Container metrics | ⚠️ | — |
Native processes (non-Docker) on vps-i1:
| Process | Port | Purpose | Managed by |
|---|---|---|---|
claude-proxy.py | 8765 | OpenAI-compat proxy → Claude CLI | systemd / cron |
cloudflared | 20241, 20242 | Cloudflare tunnel | systemd |
actions-runner (et-oper) | — | GitHub Actions CI | systemd |
actions-runner-kdp | — | GitHub Actions CI (KDP) | systemd |
Container Services — vps-h1 (Hostinger)
Compose: /root/docker-compose.yml
| Container | Image | Ports | Purpose | Compliance | Workbook |
|---|---|---|---|---|---|
root-traefik-1 | traefik | 80, 443 | TLS reverse proxy | ❌ | monitoring-stack-operations.md (Caddy equivalent) |
root-n8n-1 | n8nio/n8n | 127.0.0.1:5678 | Workflow automation | ⚠️ partial | n8n-operations.md |
waha | WAHA NOWEB | 127.0.0.1:13000 | WhatsApp gateway (DE +49) | ⚠️ partial | waha-operations.md |
root-node-exporter-1 | prom/node-exporter | host:9100 | Host metrics | ⚠️ | — |
root-cadvisor-1 | gcr.io/cadvisor/cadvisor | 8080 | Container metrics | ⚠️ | — |
Native processes on vps-h1:
| Process | Port | Purpose |
|---|---|---|
actions-runner-hstgr | — | GitHub Actions CI (et-oper, label: hstgr) |
| Claude Code CLI | — | Autonomous agent (claude-runner user) |
SaaS Services
| Service | Provider | Plan | Used for | Account | Status |
|---|---|---|---|---|---|
| Supabase | Supabase Inc. | Pro | Primary DB, auth, storage, queues | mwkqmgadqnkkihjdeqsi | active |
| Vercel | Vercel Inc. | Pro | Frontend hosting (6 projects) | devp24coms-projects team | active |
| GitHub | GitHub Inc. | Pro | Source control, CI/CD, issues | radieu | active |
| Cloudflare | Cloudflare Inc. | Free | DNS (zintegrowana.online), email routing, tunnel | zone 57cb3d8f24c7cc319fb703394edc7b87 | active |
| n8n Cloud | n8n GmbH | — | Secondary workflow automation | n8n-cloud.infra.zintegrowana.online | active |
| Mailgun EU | Sinch | — | SMTP for alerts (smtp.eu.mailgun.org) | monitoring@services.pinbox24.com | active |
| Sentry | Sentry Inc. | — | Error tracking (et-operational-platform) | easy-access-technology-sp-z-oo org | active |
| Discord | Discord Inc. | free | Infra alerts, notifications | — | active |
| Google Cloud (GCP) | free tier | OAuth2 clients for n8n Gmail | ecotrans.automataion@gmail.com | active | |
| Amazon AWS — ECR | Amazon | — | Docker image registry for all Pinbox24 containers (21 repos) | account 563740926945, eu-central-1 | active |
| Amazon AWS — other | Amazon | — | amazon-kdp-tango (KDP API) | — | active |
| Anthropic (Claude) | Anthropic | Claude Max subscription | Claude Code on all VPSes + local | radieu@gmail.com | active |
| Wasabi S3 | Wasabi | — | Object storage — see §Storage | — | active |
| ATRAX | ATRAX | — | GPS data provider (vehicle positions) | — | active |
| Convertio.ai | — | paid | PDF conversion for Pinbox24 Angular | — | scheduled for removal |
Storage
| Bucket | Provider | Region | Endpoint | Purpose |
|---|---|---|---|---|
ecotrans-monitoring | Wasabi | eu-central-1 | s3.eu-central-1.wasabisys.com | Thanos long-term metrics |
p24-infra | Wasabi | eu-central-2 | s3.eu-central-2.wasabisys.com | Service backups (traccar-server/, …) |
ecotrans-monitoring-test | Wasabi | eu-central-1 | s3.eu-central-1.wasabisys.com | Test bucket |
Backup prefix convention: s3://p24-infra/{service-name}/YYYY-MM-DD.{ext}.gz
Networking & DNS
| Zone / Resource | Provider | Type | Value | Purpose |
|---|---|---|---|---|
zintegrowana.online | Cloudflare | zone | ID: 57cb3d8f24c7cc319fb703394edc7b87 | All infra subdomains |
*.vps-i1.infra.zintegrowana.online | Cloudflare | A wildcard | 217.154.82.162 | All IONOS services |
*.vps-h1.infra.zintegrowana.online | Cloudflare | A wildcard | 72.60.32.61 | All Hostinger services |
n8n-cloud.infra.zintegrowana.online | Cloudflare | CNAME | p24.app.n8n.cloud | n8n Cloud |
eco-trans.eu | — | domain | — | Ecotrans corporate website |
Email routing ai-dev-*@zintegrowana.online | Cloudflare | routing | → radieu@gmail.com | AI agent GitHub accounts |
| Cloudflare tunnel | Cloudflare | tunnel | ports 20241/20242 on vps-i1 | Exposes claude-proxy.py:8765 |
ecr.pinbox24.infra.zintegrowana.online | Cloudflare / AWS ECR | CNAME | → 563740926945.dkr.ecr.eu-central-1.amazonaws.com | Official Docker image registry — all Pinbox24 prod images |
Active service URLs:
| URL | Service | Auth |
|---|---|---|
grafana.vps-i1.infra.zintegrowana.online | Grafana | Grafana login |
prometheus.vps-i1.infra.zintegrowana.online | Prometheus | basic_auth |
alertmanager.vps-i1.infra.zintegrowana.online | Alertmanager | basic_auth |
traccar.vps-i1.infra.zintegrowana.online | Traccar | Traccar login |
n8n.vps-h1.infra.zintegrowana.online | n8n | n8n login |
waha2.vps-h1.infra.zintegrowana.online | WAHA | WAHA_API_KEY |
n8n-cloud.infra.zintegrowana.online | n8n Cloud | n8n cloud login |
Automation & CI/CD
| Name | Type | Host | Trigger | Repo | Purpose |
|---|---|---|---|---|---|
GitHub Actions runner ionos | GH runner | vps-i1 /opt/actions-runner | push/PR | et-operational-platform | CI/CD |
GitHub Actions runner ionos-kdp | GH runner | vps-i1 /opt/actions-runner-kdp | push/PR | amazon-kdp-tango | KDP CI |
GitHub Actions runner hstgr | GH runner | vps-h1 /opt/actions-runner-hstgr | push/PR | et-operational-platform | CI/CD |
playwright-nightly.yml | GH Actions | vps-i1 | cron 02:00 UTC | et-operational-platform | E2E tests vs staging |
provision-new-vps.yml | GH Actions | — | manual | p24-infra | VPS provisioning |
claude-nightly.sh (IONOS) | cron | vps-i1 | 03:00 UTC | et-operational-platform | /process-issues on rc2 |
claude-nightly.sh (Hostinger) | cron | vps-h1 | 03:30 UTC | et-operational-platform | /process-issues on main |
sync-claude-token.sh | cron | vps-i1 | */30 * * * * | — | Sync OAuth token → OpenClaw |
| Traccar backup | cron | vps-i1 | 0 2 * * * | — | mysqldump → Wasabi |
backup-ionos.sh | cron | vps-i1 | 30 2 * * * | p24-infra | Nightly backup: Traccar MySQL + Grafana dashboards + Caddy certs → Wasabi (age-encrypted) |
backup-hstgr.sh | cron | vps-h1 | 0 2 * * * | p24-infra | Nightly backup: n8n SQLite + workflows + WAHA sessions + Traefik acme.json → Wasabi (age-encrypted) |
backup-supabase.sh | GH Actions | — | daily (supabase-backup.yml) | p24-infra | Supabase pg_dump → Wasabi (age-encrypted) |
| n8n Hostinger workflows | n8n | vps-h1 | various | — | ATRAX GPS sync, WhatsApp routing |
| n8n Cloud workflows | n8n | cloud | various | — | Secondary automations |
AI Agents
| Agent | Host | User | Auth | Task | Schedule |
|---|---|---|---|---|---|
| Claude Code (IONOS) | vps-i1 | claude-runner | Claude Max OAuth | /process-issues et-oper rc2 | 03:00 UTC |
| Claude Code (Hostinger) | vps-h1 | claude-runner | Claude Max OAuth | /process-issues et-oper main | 03:30 UTC |
| OpenClaw sessions | vps-i1 | openclaw-gateway | Claude Max OAuth (shared) | WhatsApp issue intake → p24_issues | event-driven |
| Claude Code (local) | radieu workstation | radieu | Claude Max OAuth | DevOps, code authoring, SSH orchestration | on-demand |
AI-Dev-IO1 | vps-i1 | AI-Dev-IO1 GH user | Claude Max OAuth | Development agent | TBD |
AI-Dev-HS1 | vps-h1 | AI-Dev-HS1 GH user | Claude Max OAuth | Development agent | TBD |
Scripts & Tools
| Script | Location | Language | Purpose | Called by |
|---|---|---|---|---|
dns-manager.py | scripts/dns-manager.py | Python | Cloudflare DNS CRUD via API | manual, provisioning |
backup.py (Traccar) | services/traccar/scripts/backup.py | Python | mysqldump → Wasabi | cron 02:00 UTC |
generate-config.sh (Traccar) | services/traccar/scripts/generate-config.sh | bash | Inject password into traccar.xml | provisioning, manual |
sync-claude-token.sh | /root/sync-claude-token.sh on vps-i1 | bash | Sync Claude OAuth token → OpenClaw env | cron */30 |
claude-nightly.sh | /root/claude-nightly.sh on vps-i1, vps-h1 | bash | Auth check + /process-issues | cron nightly |
claude-proxy.py | /root/claude-proxy.py on vps-i1 | Python | OpenAI-compat proxy → Claude CLI | n8n, Cloudflare tunnel |
setup-server.sh | monitoring/scripts/setup-server.sh | bash | First-time VPS setup | manual |
install-node-exporter.sh | monitoring/scripts/install-node-exporter.sh | bash | Install node_exporter | manual |
install-cadvisor.sh | monitoring/scripts/install-cadvisor.sh | bash | Install cAdvisor | manual |
setup-claude-env.sh | scripts/setup-claude-env.sh | bash | Claude env sync on env change | PreToolUse hook |
Ansible playbook provision-new-vps.yml | ansible/playbooks/ | Ansible | Full VPS provisioning | manual / GH Actions |
GitHub Repositories
| Repo | Visibility | Primary branch | CI | Purpose |
|---|---|---|---|---|
radieu/p24-infra | private | main | GH Actions | This repo — infra configs |
radieu/et-operational-platform | private | main | GH Actions (ionos, hstgr) | Fleet management platform |
radieu/p24-nextjs-v2026 | private | — | — | Pinbox24 Next.js v5 |
radieu/eco-trans-eu | private | — | — | Ecotrans website |
radieu/fuse-angular | private | — | — | Pinbox24 Angular (current prod) |
radieu/amazon-kdp-tango | private | — | GH Actions (ionos-kdp) | KDP automation |
radieu/et-driver-tech-check-telegram-app | private | — | — | Telegram bot |
radieu/et-email-dispo-ai-agent | private | — | — | AI email dispatch |
radieu/fleet-health-check | private | — | — | Fleet health utility |
radieu/p24-et | private | — | — | p24 ↔ Ecotrans integration |
radieu/game-play | private | — | — | Side project |
Credentials Index
Key names and storage locations only — values NEVER in this file or any git commit. Rotation history: secrets-rotation-log.md Policy: 03-secrets-management.md
| Key name | Purpose | Stored in | Backup | Freq | Last rotated | Next due |
|---|---|---|---|---|---|---|
SUPABASE_SERVICE_KEY | Supabase service role — full DB access | .env.local | GH Secret (p24-infra, et-oper) | 90 d | 2026-05-08 | 2026-08-06 |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase anon/public key (RLS-restricted) | .env.local | Vercel env | — | — | — |
SUPABASE_ACCESS_TOKEN | Supabase management API token | .env.local | — | 90 d | 2026-05-08 | 2026-08-06 |
SUPABASE_GRAFANA_PASSWORD | grafana_readonly DB role password | .env.local | GH Secret, monitoring .env | 180 d | bootstrap | overdue |
VERCEL_TOKEN | Vercel deploy / CLI | .env.local | — | 90 d | 2026-05-08 | 2026-08-06 |
GH_TOKEN | GitHub PAT — CI + cross-repo ops | .env.local | GH Secret | 90 d | 2026-05-08 | 2026-08-06 |
ANTHROPIC_API_KEY | Claude API (CI + agents) | .env.local | GH Secret (p24-infra) | 90 d | 2026-05-08 | 2026-08-06 |
SENTRY_AUTH_TOKEN | Sentry CLI / release tracking | .env.local | — | 90 d | 2026-05-08 | 2026-08-06 |
WASABI_ACCESS_KEY / WASABI_SECRET_KEY (ecotrans-monitoring) | Thanos metrics bucket (S3) | monitoring .env on vps-i1 | GH Secret | 180 d | bootstrap | overdue |
WASABI_ACCESS_KEY / WASABI_SECRET_KEY (p24-infra) | Traccar backups bucket (S3) | /root/traccar/.env on vps-i1 | .env.local | 180 d | bootstrap | overdue |
CLOUDFLARE_TOKEN_ZINTEGROWANA | DNS edit scope — zintegrowana.online | .env.local | GH Secret | 180 d | bootstrap | overdue |
GRAFANA_ADMIN_PASSWORD | Grafana admin login | .env.local | GH Secret, monitoring .env | 180 d | bootstrap | overdue |
MYSQL_PASSWORD | Traccar MySQL database password | /root/traccar/.env on vps-i1 | — | 180 d | bootstrap | overdue |
SMTP_USER / SMTP_PASSWORD | Mailgun EU SMTP credentials | GH Secret | monitoring .env | 365 d | bootstrap | overdue |
EMAIL_SENDER_API_KEY | Email API auth (Alertmanager → email webhook) | monitoring .env on vps-i1 | .env.local | 180 d | bootstrap | overdue |
WAHA_API_KEY | WAHA WhatsApp gateway auth | .env.local | vps-h1 .env | 180 d | bootstrap | overdue |
HSTGR_N8N_API_KEY | n8n Hostinger REST API key | .env.local | — | 90 d | bootstrap | overdue |
HSTGR_N8N_MCP_TOKEN | n8n MCP integration token | .env.local | — | 90 d | bootstrap | overdue |
ATRAX_AUTH_STRING | Atrax fleet API authentication | .env.local | n8n env var | 180 d | bootstrap | overdue |
openAI-monitoring-token | OpenAI API (monitoring workflows) | .env.local | — | 180 d | bootstrap | overdue |
TRELLO_API_KEY / TRELLO_TOKEN | Trello board integration | .env.local | vps env | 365 d | bootstrap | overdue |
DISCORD_WEBHOOK_URL | Discord infra alerts (p24-infra) | GH Secret | .env.local | — | bootstrap | — |
P24_DISCORD_INFRA_SCRIPTS_ERRORS_WEBHOOK_URL | Discord script errors webhook | .env.local | GH Secret, Vercel env | — | bootstrap | — |
id_ed25519 (root) | SSH root key — all VPS + all Pinbox24 BMS servers | C:\Users\konar\.ssh\id_ed25519 | GH Secret VPS_ROOT_SSH_KEY | 365 d | bootstrap | overdue |
claude-admin-key | SSH claude-admin key — vps-i1 scoped | d:\tmp\claude-admin-key | GH Secret VPS_SSH_PRIVATE_KEY | 365 d | bootstrap | overdue |
VPS1_hostinger_root_password | Hostinger VPS root SSH password | .env.local | — | 365 d | bootstrap | overdue |
| Claude Max OAuth | Claude Code auth on VPS agents | /home/claude-runner/.claude/.credentials.json | — | auto | — | — |
Open / Unknown
Items requiring investigation or documentation:
| Item | Status | Action |
|---|---|---|
| GitLab org/instance | unknown | et-lager likely here — find and document |
| Amazon AWS services | unknown | Which services used by amazon-kdp-tango |
| n8n Cloud workflows | unknown | Document what runs there |
| Cloudflare tunnel targets | partial | Verify what exactly is exposed beyond claude-proxy:8765 |
| OpenClaw CLI container | Exited(1) | Debug and fix — see issue tracker |
openclaw-openclaw-gateway ports 18789/18790 | active | No monitoring, no workbook |
| Uptime Kuma | running | No integration with Prometheus, no workbook |