ci: switch to Portainer auto-build (like mein118.ch)

This commit is contained in:
Pepe Ziberi
2026-04-26 19:40:57 +02:00
parent 62a5a56dea
commit 63a57dcb7c
2 changed files with 37 additions and 38 deletions

View File

@@ -1,29 +1,7 @@
name: Build and Deploy # Deployment wird von Portainer erledigt (nicht Gitea Actions).
# Portainer Stack zeigt auf dieses Repo und baut bei Push automatisch neu.
on: # Siehe docker-compose.portainer.yml für Details.
push: #
branches: [main] # Dieses File ist leer damit keine pending Jobs mehr entstehen.
name: disabled
jobs: on: workflow_dispatch
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Login to Registry
run: |
echo "${{ secrets.REGISTRY_TOKEN }}" | docker login 192.168.1.183:3100 -u ${{ secrets.REGISTRY_USERNAME }} --password-stdin
- name: Build Docker Image
run: |
docker build -t 192.168.1.183:3100/adminpepe/lageplan:latest .
- name: Push to Registry
run: |
docker push 192.168.1.183:3100/adminpepe/lageplan:latest
- name: Redeploy via Portainer
if: ${{ secrets.PORTAINER_WEBHOOK != '' }}
run: |
curl -sf -X POST "${{ secrets.PORTAINER_WEBHOOK }}" || echo "Portainer webhook failed (optional)"

View File

@@ -1,18 +1,23 @@
############################################## ##############################################
# Lageplan — Portainer Stack Configuration # Lageplan — Portainer Stack (Auto-Deploy)
# #
# Verwendung in Portainer: # Setup in Portainer:
# 1. Stacks → Add Stack # 1. Stacks → Add Stack → "Repository"
# 2. "Upload" oder diesen Inhalt einfügen # 2. Git-URL: https://git.purepixel.ch/adminpepe/Lageplan.git
# 3. Environment-Variablen setzen (siehe unten) # 3. Compose-Pfad: docker-compose.portainer.yml
# 4. Deploy # 4. "GitOps updates" aktivieren + Webhook kopieren
# 5. Webhook in Gitea eintragen (Repo → Einstellungen → Webhooks)
# 6. Environment-Variablen setzen (siehe unten)
# 7. Deploy
#
# Danach: Push auf main → Portainer baut automatisch neu
# #
# Benötigte Environment-Variablen: # Benötigte Environment-Variablen:
# POSTGRES_USER (default: lageplan) # POSTGRES_USER (default: lageplan)
# POSTGRES_PASSWORD (ÄNDERN!) # POSTGRES_PASSWORD (ÄNDERN!)
# POSTGRES_DB (default: lageplan) # POSTGRES_DB (default: lageplan)
# NEXTAUTH_SECRET (ÄNDERN! — z.B. openssl rand -base64 32) # NEXTAUTH_SECRET (ÄNDERN! — z.B. openssl rand -base64 32)
# NEXTAUTH_URL (z.B. https://lageplan.example.com) # NEXTAUTH_URL (z.B. https://lageplan.ch)
# MINIO_ROOT_USER (default: minioadmin) # MINIO_ROOT_USER (default: minioadmin)
# MINIO_ROOT_PASSWORD (ÄNDERN!) # MINIO_ROOT_PASSWORD (ÄNDERN!)
# MINIO_PUBLIC_URL (z.B. https://s3.example.com) # MINIO_PUBLIC_URL (z.B. https://s3.example.com)
@@ -77,7 +82,10 @@ services:
# ─── Lageplan Web App ────────────────────── # ─── Lageplan Web App ──────────────────────
web: web:
image: 192.168.1.183:3100/adminpepe/lageplan:latest build:
context: .
dockerfile: Dockerfile
image: git.purepixel.ch/adminpepe/lageplan:latest
restart: unless-stopped restart: unless-stopped
environment: environment:
DATABASE_URL: postgresql://${POSTGRES_USER:-lageplan}:${POSTGRES_PASSWORD:-lageplan_secret}@db:5432/${POSTGRES_DB:-lageplan} DATABASE_URL: postgresql://${POSTGRES_USER:-lageplan}:${POSTGRES_PASSWORD:-lageplan_secret}@db:5432/${POSTGRES_DB:-lageplan}
@@ -100,6 +108,19 @@ services:
networks: networks:
- lageplan - lageplan
# ─── Watchtower (Auto-Restart bei neuen Images) ─
watchtower:
image: containrrr/watchtower
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
WATCHTOWER_POLL_INTERVAL: 60
WATCHTOWER_CLEANUP: "true"
WATCHTOWER_LABEL_ENABLE: "false"
networks:
- lageplan
volumes: volumes:
postgres_data: postgres_data:
minio_data: minio_data: