diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml new file mode 100644 index 0000000..732f095 --- /dev/null +++ b/.gitea/workflows/build.yml @@ -0,0 +1,28 @@ +name: docker-build-and-push +on: + push: + branches: ["main", "master"] + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Login registry + run: | + echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login git.carabella.ch \ + -u "${{ secrets.REGISTRY_USER }}" --password-stdin + - name: Build + run: | + docker build -t git.carabella.ch/putschgi/gitea-sync-ai:${{ github.ref_name }} . + - name: Push + run: | + docker push git.carabella.ch/putschgi/gitea-sync-ai:${{ github.ref_name }} + - name: Tag latest + run: | + docker tag git.carabella.ch/putschgi/gitea-sync-ai:${{ github.ref_name }} \ + git.carabella.ch/putschgi/gitea-sync-ai:latest + - name: Push latest + run: | + docker push git.carabella.ch/putschgi/gitea-sync-ai:latest \ No newline at end of file diff --git a/app/main.py b/app/main.py index f80e889..4e900b4 100644 --- a/app/main.py +++ b/app/main.py @@ -19,8 +19,10 @@ def get_token(): app = FastAPI(title="Gitea Sync AI", version="1.0") -# Frontend ausliefern +# Frontend ausliefern - verwende relativen Pfad +TEMPLATES_DIR = Path(__file__).parent / "templates" + @app.get("/", response_class=HTMLResponse) async def dashboard(request: Request): - with open("/home/user/projects/gitea-cloner/app/templates/index.html") as f: + with open(TEMPLATES_DIR / "index.html") as f: return f.read() \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index e5504a4..df60da1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,6 +8,7 @@ services: volumes: - ./projects:/projects # Lokale Projekte sichtbar im Container - ./auth:/app/auth # Optional für Token-Speicherung + - ./workflows:/app/workflows # CI/CD Skripte (lokal nutzen) env_file: - .env # Lädt GITEE_URL, ACCESS_TOKEN, usw. environment: diff --git a/workflows/build.yml b/workflows/build.yml new file mode 100644 index 0000000..65270e7 --- /dev/null +++ b/workflows/build.yml @@ -0,0 +1,28 @@ +name: docker-build-and-push +on: + push: + branches: ["main", "master"] + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Login registry + run: | + echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login git.carabella.ch \ + -u "${{ secrets.REGISTRY_USER }}" --password-stdin + - name: Build + run: | + docker build -t git.carabella.ch/putschgi/gitea-sync-ai:${{ github.ref_name }} . + - name: Push + run: | + docker push git.carabella.ch/putschgi/gitea-sync-ai:${{ github.ref_name }} + - name: Tag latest + run: | + docker tag git.carabella.ch/putschgi/gitea-sync-ai:${{ github.ref_name }} \ + git.carabella.ch/putschgi/gitea-sync-ai:latest + - name: Push latest + run: | + docker push git.carabella.ch/putschgi/gitea-sync-ai:latest \ No newline at end of file diff --git a/workflows/local-ci.sh b/workflows/local-ci.sh new file mode 100644 index 0000000..8fac743 --- /dev/null +++ b/workflows/local-ci.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# local-ci.sh – Lokales CI/CD für gitea-sync-ai (für Docker + Unraid) + +set -e + +echo "🚀 Starte lokalen Build-Prozess für gitea-sync-ai..." + +# 1. Registry-Login (via ENV oder Prompt) +REGISTRY="git.carabella.ch" +USER="${GIT_REGISTRY_USER:-putschgi}" +TOKEN="${GIT_ACCESS_TOKEN}" # muss im ENV gesetzt sein! + +if [ -z "$TOKEN" ]; then + echo "⚠️ Bitte GIT_ACCESS_TOKEN setzen!" + exit 1 +fi + +echo "🔐 Login bei $REGISTRY..." +echo "$TOKEN" | docker login "$REGISTRY" -u "$USER" --password-stdin + +# 2. Image bauen mit Tags +IMAGE="$REGISTRY/putschgi/gitea-sync-ai:local-latest" +echo "🏗️ Baue Image: $IMAGE" +docker build -t "$IMAGE" . + +# 3. Push zum Registry +echo "📤 Pushe zu $REGISTRY..." +docker push "$IMAGE" + +# Optional: Tag als latest markieren +docker tag "$IMAGE" "$REGISTRY/putschgi/gitea-sync-ai:latest" +docker push "$REGISTRY/putschgi/gitea-sync-ai:latest" + +echo "✅ Erfolgreich gebaut und gepusht!" \ No newline at end of file