Skip to content

Portfolio

Principal site — rafaelgonzalezalbes.com

Repository

Field Value
Forgejo rafael.gonzalez.albes/portfolio
Plane prefix PORT
Profile static-sftp

Deploy flow

flowchart LR
  Push[push main] --> WP[Woodpecker]
  WP --> Build[npm build]
  Build --> SFTP[lftp mirror dist]
  SFTP --> IONOS[IONOS public_html]
  IONOS --> Live[rafaelgonzalezalbes.com]

Woodpecker SFTPs directly to IONOS — not through the VPS filesystem.

Woodpecker secrets

Set via onboard-project.sh from local/projects/portfolio.env:

  • ftp_host, ftp_user, ftp_pass, frontend_remote_path
  • plane_api_key, plane_workspace, plane_project_id, plane_api_url, plane_issue_prefix

CI notify

Branch name must contain PORT-N for Plane CI comments (e.g. feature/PORT-12-homepage).

Template: templates/woodpecker-notify-plane.yml

Public vs private

  • Git repo: private on Forgejo
  • Live site: public on IONOS, indexable by search engines

See Access control.

Useful scripts

bash scripts/trigger-portfolio-pipeline.sh
bash scripts/check-woodpecker-status.sh   # on VPS

MCP

Task Use
Create PORT ticket plane MCP
Open PR / read repo forgejo MCP
Check pipeline / logs woodpecker MCP
Trigger deploy woodpecker MCP or infra-ops trigger_pipeline