Skip to content

Platform architecture

Forgejo organizations

Org / namespace Repos Purpose
infra devops VPS platform (Traefik, Forgejo, Woodpecker, Plane, Uptime Kuma)
rafael.gonzalez.albes portfolio Principal site — rafaelgonzalezalbes.com
bioscan bioscancheck, future apps Product repositories

Git source of truth: Forgejo only (git.rafaelgonzalezalbes.com).

Servers

Server Role
VPS 85.215.32.166 Platform + optional app APIs
IONOS web hosting Static frontends (SFTP)

DNS (IONOS)

Host Target Service
git VPS Forgejo
ci VPS Woodpecker
pm VPS Plane
mcp VPS Plane MCP server (Cursor)
bridge VPS plane-forge-bridge (Forgejo ↔ Plane)
status VPS Uptime Kuma
docs VPS MkDocs static site
apex / www IONOS Portfolio (and other static sites)
{app}-api VPS Per-app backends (future)

VPS paths

Path Source repo
/opt/devops infra/devops
/opt/devops/site MkDocs build output (nginx)
/opt/apps/{app} Per-app deploy/ (when app has a VPS backend)

CI/CD flows

Static site (portfolio)

flowchart LR
  Push[push main] --> WP[Woodpecker]
  WP --> Build[npm build]
  Build --> SFTP[SFTP upload]
  SFTP --> IONOS[IONOS dist]
  IONOS --> Site[rafaelgonzalezalbes.com]

Woodpecker does not deploy through the VPS filesystem for static sites — it SFTPs directly to IONOS.

Full-stack (bioscancheck)

flowchart LR
  Push[push main] --> WP[Woodpecker]
  WP --> Test[npm test]
  Test --> FE[SFTP frontend dist]
  Test --> Docker[build-push MCP image]
  Docker --> SSH[SSH docker compose pull]
  SSH --> VPS[VPS backend]

Platform (infra/devops)

flowchart LR
  Push[push main] --> WP[Woodpecker]
  WP --> Docs[mkdocs build]
  Docs --> Rsync[rsync to VPS]
  Rsync --> Deploy[deploy-platform.sh]
  Deploy --> Stack[Traefik Forgejo Woodpecker Kuma docs]

Public discoverability

Asset Hosted on Search engines
Portfolio website IONOS Allowedindex, follow, sitemap
Platform tools (git, ci, pm, status, mcp, bridge, docs) VPS Blocked — Traefik noindex middleware
Git repositories Forgejo Private — not browsable anonymously

Portfolio git repo is private on Forgejo; only the built site on IONOS is public.