diff --git a/cms/api/Dockerfile b/cms/api/Dockerfile index 2558811..683d71a 100644 --- a/cms/api/Dockerfile +++ b/cms/api/Dockerfile @@ -33,9 +33,10 @@ WORKDIR /app COPY api/package.json api/package-lock.json* ./ RUN npm install --omit=dev --no-audit --no-fund COPY api/src ./src +COPY api/entrypoint.sh ./entrypoint.sh COPY --from=admin /admin/dist ./admin-dist ENV NODE_ENV=production ENV ADMIN_DIR=/app/admin-dist EXPOSE 3000 -CMD ["node", "src/index.js"] +CMD ["sh", "/app/entrypoint.sh"] diff --git a/cms/api/entrypoint.sh b/cms/api/entrypoint.sh new file mode 100755 index 0000000..7ef1da8 --- /dev/null +++ b/cms/api/entrypoint.sh @@ -0,0 +1,16 @@ +#!/bin/sh +# Beim Container-Start die Hugo-Site einmal bauen, damit die Live-Seite (/) +# sofort steht — auch vor dem ersten Publish. public/ ist git-ignored und +# existiert im frischen Clone nicht; ohne diesen Build gäbe es 404 auf /. +set -e + +SITE_DIR="${SITE_DIR:-/site}" + +echo "→ Initialer Hugo-Build ($SITE_DIR → public/)…" +if hugo --source "$SITE_DIR" --destination "$SITE_DIR/public" --cleanDestinationDir; then + echo "✓ Live-Seite gebaut." +else + echo "WARN: Hugo-Build fehlgeschlagen — Live-Seite bleibt leer bis zum ersten Publish." +fi + +exec node src/index.js diff --git a/cms/proxmox/create-openbureau-lxc.sh b/cms/proxmox/create-openbureau-lxc.sh index 5a38847..381d9db 100755 --- a/cms/proxmox/create-openbureau-lxc.sh +++ b/cms/proxmox/create-openbureau-lxc.sh @@ -159,7 +159,7 @@ cat <}:8080/admin/ Live: http://${IPADDR:-}:8080/ -Supabase: http://${IPADDR:-}:8000 +Supabase: http://${IPADDR:-}:8000 (nur API-Gateway, keine Web-UI — / gibt 404, ist normal) Login-User anlegen (im Container, nach dem Start): pct enter ${CTID} @@ -172,8 +172,8 @@ Login-User anlegen (im Container, nach dem Start): -d '{"email":"karim@gabrielevarano.ch","password":"DEIN-PASSWORT","email_confirm":true}' Hinweise: - • Privates Repo: GIT_TOKEN oben setzen (Format "tokenname:tokenwert"), - sonst schlägt der Clone fehl. + • :8000 ist das Supabase-API-Gateway (Kong), keine Web-Oberfläche. + Das Admin-Login (:8080/admin/) spricht im Hintergrund damit. • Für Domain/HTTPS: SITE_URL + API_EXTERNAL_URL in .env auf die öffentliche Adresse setzen und 'docker compose up -d --build' neu. • Logs: pct enter ${CTID}; cd ${APP_DIR}/cms; docker compose logs -f