From 000d1db6b19ab2b8ecb184e1027929d51104f57b Mon Sep 17 00:00:00 2001 From: almazlar Date: Sun, 22 Feb 2026 12:18:37 +0300 Subject: [PATCH] fix: update database connection URL and configure frontend build context --- .gitea/workflows/docker-build.yml | 1 + docker-compose.yml | 8 ++++++-- frontend/src/services/api.js | 11 +++++++++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/docker-build.yml b/.gitea/workflows/docker-build.yml index bfdcbba..09592fe 100644 --- a/.gitea/workflows/docker-build.yml +++ b/.gitea/workflows/docker-build.yml @@ -146,3 +146,4 @@ jobs: labels: ${{ steps.meta-frontend.outputs.labels }} build-args: | VITE_APP_VERSION=${{ steps.generate.outputs.new_tag }} + VITE_BASE_URL=https://todo.almazlar.com/api/todos diff --git a/docker-compose.yml b/docker-compose.yml index 36bd468..1d1fd69 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -24,7 +24,7 @@ services: ports: - "8082:8080" environment: - - SPRING_DATASOURCE_URL=jdbc:postgresql://db:5433/tododb + - SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/tododb - SPRING_DATASOURCE_USERNAME=postgres - SPRING_DATASOURCE_PASSWORD=postgres depends_on: @@ -32,12 +32,16 @@ services: condition: service_healthy frontend: - build: ./frontend + build: + context: ./frontend + args: + VITE_BASE_URL: "http://localhost:8082/api/todos" container_name: todo-frontend ports: - "5173:80" depends_on: - backend + volumes: postgres_data: diff --git a/frontend/src/services/api.js b/frontend/src/services/api.js index dc397e7..57314ce 100644 --- a/frontend/src/services/api.js +++ b/frontend/src/services/api.js @@ -1,4 +1,12 @@ -const BASE_URL = 'https://todo.almazlar.com/api/todos'; +// src/services/api.js +// Vite automatically injects the variable defined in .env.* based on the current mode. +// `import.meta.env.VITE_BASE_URL` is the single source of truth for the API root. + +const BASE_URL = import.meta.env.VITE_BASE_URL; + +// ----------------------------------------------------------------------------- +// API helpers +// ----------------------------------------------------------------------------- export const getTodos = async () => { const response = await fetch(BASE_URL); @@ -35,7 +43,6 @@ export const deleteTodo = async (id) => { }; export const getVersion = async () => { - // Use the origin to ensure it accesses the /api/version correctly regardless of environment const VERSION_URL = BASE_URL.replace('/todos', '/version'); const response = await fetch(VERSION_URL); if (!response.ok) throw new Error('Failed to fetch version');