Files
viewer/wiki/readme-pipe.md
2025-12-02 16:25:22 +01:00

2.7 KiB
Raw Permalink Blame History

  1. Nieuwe app aanmaken 1.1 Gitea repo

Log in op Gitea: https://git.appmodel.nl

Maak een nieuwe repo aan, bijvoorbeeld:

Owner: Tour

Name: viewer

1.2 Skeleton genereren op de server

Op de server:

apps-create viewer static-fe

Dit doet:

/opt/apps/viewer klaarzetten (proberen te clonen uit git@git.appmodel.nl:Tour/viewer.git)

een multi-stage Dockerfile voor een Node-based static frontend aanmaken

~/infra/viewer/docker-compose.yml aanmaken met:

service viewer

koppeling aan traefik_net

Traefik route: https://viewer.appmodel.nl

  1. Develop & build

Op je dev machine:

git clone git@git.appmodel.nl:Tour/viewer.git cd viewer

bouw je app zoals normaal

npm install npm run build # output in dist/ git add . git commit -m "First version" git push

De Dockerfile verwacht een dist/ map met static files.

  1. Deploy pipeline 3.1 app-deploy

Op de server verzorgt app-deploy de generieke deploy:

app-deploy viewer

Doet:

cd /opt/apps/viewer

git pull --ff-only

cd /home/tour/infra/viewer

docker compose up -d --build viewer

Logs komen in:

/var/log/app-deploy-viewer.log

3.2 Automatisch deployen via Gitea hook

In Gitea (repo Tour/viewer):

Ga naar Instellingen → Git Hooks

Kies post-receive

Gebruik:

#!/usr/bin/env bash /usr/local/bin/app-deploy viewer

Vanaf nu:

Elke git push naar Tour/viewer triggert automatisch een deploy.

  1. Traefik & DNS

Traefik draait in de traefik stack op dezelfde server en beheert:

git.appmodel.nl

auction.appmodel.nl

aupi.appmodel.nl

… (nieuwe apps via labels)

Nieuwe app viewer krijgt via apps-create al de juiste labels:

labels:

  • "traefik.enable=true"
  • "traefik.http.routers.viewer.rule=Host(viewer.appmodel.nl)"
  • "traefik.http.routers.viewer.entrypoints=websecure"
  • "traefik.http.routers.viewer.tls=true"
  • "traefik.http.routers.viewer.tls.certresolver=letsencrypt"
  • "traefik.http.services.viewer.loadbalancer.server.port=80"

Je moet alleen in DNS nog een record maken:

viewer.appmodel.nl → publieke IP van de server

Traefik + Lets Encrypt regelen het certificaat automatisch.

  1. Nieuwe app types (toekomst)

Het apps-create script ondersteunt nu:

static-fe Node build → Nginx → static frontend

Later kun je extra types toevoegen, bijvoorbeeld:

api-py Python (Flask/FastAPI) API

worker-py background worker / crawler

Door per type een eigen Dockerfile-sjabloon en standaard docker-compose.yml te genereren, wordt een nieuw project neerzetten:

apps-create stats api-py apps-create crawler worker-py

en blijft de pipeline (app-deploy ) identiek.

Je kunt nu:

apps-create viewer static-fe app-deploy viewer