diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 991ea0b5..5c5e0683 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -92,6 +92,7 @@ jobs: # These env vars are picked up by docker-compose (overrides .env file) env: + DOCKER_API_VERSION: "1.43" POSTGRES_USER: archive_user POSTGRES_PASSWORD: ci_db_password POSTGRES_DB: family_archive_db @@ -109,15 +110,18 @@ jobs: # ── Infrastructure ────────────────────────────────────────────────────── - name: Cleanup leftover containers from previous runs - run: docker compose down --volumes --remove-orphans || true + run: docker compose -f docker-compose.yml -f docker-compose.ci.yml down --volumes --remove-orphans || true - name: Start DB and MinIO - run: docker compose up -d db minio create-buckets + run: docker compose -f docker-compose.yml -f docker-compose.ci.yml up -d db minio create-buckets - name: Wait for DB to be ready run: | timeout 30 bash -c \ - 'until docker compose exec -T db pg_isready -U archive_user; do sleep 2; done' + 'until docker compose -f docker-compose.yml -f docker-compose.ci.yml exec -T db pg_isready -U archive_user; do sleep 2; done' + + - name: Connect job container to compose network + run: docker network connect familienarchiv_archive-net $(cat /etc/hostname) # ── Backend ───────────────────────────────────────────────────────────── - uses: actions/setup-java@v4 @@ -142,10 +146,10 @@ jobs: run: | java -jar backend/target/*.jar \ --spring.profiles.active=e2e \ - --SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5433/family_archive_db \ + --SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/family_archive_db \ --SPRING_DATASOURCE_USERNAME=archive_user \ --SPRING_DATASOURCE_PASSWORD=ci_db_password \ - --S3_ENDPOINT=http://localhost:9100 \ + --S3_ENDPOINT=http://minio:9000 \ --S3_ACCESS_KEY=minio_admin \ --S3_SECRET_KEY=ci_minio_password \ --S3_BUCKET_NAME=archive-documents \ diff --git a/frontend/src/hooks.server.ts b/frontend/src/hooks.server.ts index 716b7fbd..6271507e 100644 --- a/frontend/src/hooks.server.ts +++ b/frontend/src/hooks.server.ts @@ -27,7 +27,8 @@ const userGroup: Handle = async ({ event, resolve }) => { if (auth) { try { - const response = await fetch('http://localhost:8080/api/users/me', { + const apiUrl = env.API_INTERNAL_URL || 'http://localhost:8080'; + const response = await fetch(`${apiUrl}/api/users/me`, { headers: { Authorization: auth } }); diff --git a/frontend/src/routes/api/persons/+server.ts b/frontend/src/routes/api/persons/+server.ts index 71f51963..23ee59ae 100644 --- a/frontend/src/routes/api/persons/+server.ts +++ b/frontend/src/routes/api/persons/+server.ts @@ -1,5 +1,6 @@ import { json } from '@sveltejs/kit'; import type { RequestHandler } from './$types'; +import { env } from 'process'; export const GET: RequestHandler = async ({ url, fetch }) => { // 1. Suchparameter aus der URL des Browsers holen @@ -8,7 +9,7 @@ export const GET: RequestHandler = async ({ url, fetch }) => { try { // 3. Anfrage an das Java-Backend weiterleiten (Server-to-Server) // Wir nutzen hier den internen Docker-Hostnamen oder localhost, je nach Netzwerk - const backendUrl = `http://localhost:8080/api/persons?q=${encodeURIComponent(q)}`; + const backendUrl = `${env.API_INTERNAL_URL || 'http://localhost:8080'}/api/persons?q=${encodeURIComponent(q)}`; const response = await fetch(backendUrl, { method: 'GET', diff --git a/frontend/src/routes/api/tags/+server.ts b/frontend/src/routes/api/tags/+server.ts index 63c9829d..4e43e11b 100644 --- a/frontend/src/routes/api/tags/+server.ts +++ b/frontend/src/routes/api/tags/+server.ts @@ -1,5 +1,6 @@ import { json } from '@sveltejs/kit'; import type { RequestHandler } from './$types'; +import { env } from 'process'; export const GET: RequestHandler = async ({ url, fetch }) => { // 1. Suchparameter aus der URL des Browsers holen @@ -8,7 +9,7 @@ export const GET: RequestHandler = async ({ url, fetch }) => { try { // 3. Anfrage an das Java-Backend weiterleiten (Server-to-Server) // Wir nutzen hier den internen Docker-Hostnamen oder localhost, je nach Netzwerk - const backendUrl = `http://localhost:8080/api/tags?q=${encodeURIComponent(q)}`; + const backendUrl = `${env.API_INTERNAL_URL || 'http://localhost:8080'}/api/tags?q=${encodeURIComponent(q)}`; const response = await fetch(backendUrl, { method: 'GET',