name: Production Build & Deploy on: [push] # Triggert testweise bei absolut jedem Push, um die Blockade zu lösen jobs: build-and-deploy: runs-on: webserver container: image: catthehacker/ubuntu:act-latest steps: - name: Code auschecken uses: actions/checkout@v4 - name: Docker login to Gitea registry run: echo "${{ secrets.REGISTRY_TOKEN }}" | docker login gitea.hephex.de -u "${{ secrets.REGISTRY_USER }}" --password-stdin - name: Build Docker image run: | docker build -t gitea.hephex.de/daniel/ndsolutionswebsite:latest -f Dockerfile . - name: Push Docker image run: docker push gitea.hephex.de/daniel/ndsolutionswebsite:latest - name: Clean up runner Docker cache run: | docker image prune -f docker builder prune -f - name: Deploy via SSH to Debian Server uses: appleboy/ssh-action@v1.0.3 with: host: 192.168.178.164 username: ${{ secrets.PROXMOX_USER }} key: ${{ secrets.PROXMOX_SSH_KEY }} script: | mkdir -p /opt/websitedummy cd /opt/websitedummy # Schreibt die Docker Compose Datei sauber ohne Einrückung cat << 'EOF' > docker-compose.yml services: website: image: gitea.hephex.de/daniel/ndsolutionswebsite:latest restart: always ports: - "8080:4321" environment: - HOST=0.0.0.0 - PORT=4321 - DATA_DIR=/app/data volumes: - ./app/data:/app/data EOF echo "${{ secrets.REGISTRY_TOKEN }}" | docker login gitea.hephex.de -u "${{ secrets.REGISTRY_USER }}" --password-stdin docker compose pull docker compose up -d