New application checklist¶
For naming, subdomains vs branded domains, and when to register an SL, see Products, domains & legal.
Use this when adding a new project (e.g. bioscan/shop, user repos under rafael.gonzalez.albes).
Static site only (IONOS SFTP)¶
- Onboard —
bash scripts/onboard-project.sh --profile static-sftp ...(see Onboard project) - Forgejo — repo must exist under org or user namespace
- Copy
templates/woodpecker-static-sftp.yml→.woodpecker.yml(if not already) - Append notify steps from
templates/woodpecker-notify-plane.yml - Secrets —
local/projects/<repo>.envfor SFTP; onboard script pushes to Woodpecker - Push
mainand verify deploy
Full-stack (frontend SFTP + backend apps VPS)¶
- Steps above for frontend (if applicable)
- DNS —
{app}.{domain}→ apps VPS (82.165.177.110), e.g.wearlab,bioscan - Repo — add
deploy/docker-compose.yml(seetemplates/woodpecker-frontend-backend.yml) - Woodpecker — top-level
labels: location: apps-vps - Apps VPS —
/opt/apps/{app}/with.env(not infra VPS/opt/devops) - Woodpecker secrets:
ssh_host=82.165.177.110,ssh_user=deploy,ssh_key+ registry tokens
See Migrate app to apps VPS and Woodpecker agents.
Staging (later)¶
developbranch →staging-{app}-api.*+ SFTP folder{app}-stagingmainbranch → production
Not configured yet — production-only for now.
Examples on this infrastructure¶
| App | Repo | Deploy target | URL |
|---|---|---|---|
| portfolio | rafael.gonzalez.albes/portfolio |
IONOS SFTP dist/ |
rafaelgonzalezalbes.com |
| wearlab | alex/wearlab-main |
/opt/apps/wearlab/ (apps VPS) |
wearlab.rafaelgonzalezalbes.com |
| bioscancheck | bioscan/bioscancheck |
— (paused) | Not deployed — repo may exist on Forgejo |
| timbertails | manual | timbertails/ SFTP |
timbertails.rafaelgonzalezalbes.com |
| airportConnection | manual | airportconnection/ SFTP |
subdomain |