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_pathplane_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 |