diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 585f518..41b6612 100644 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -1,17 +1,19 @@ #!/bin/sh set -e -: "${API_BASE_URL:=http://localhost:7070}" +: "${API_BASE_URL:=http://localhost}" +: "${API_PORT:=7070}" # Create runtime config file in writable location cat > /runtime-config/config.js < /etc/nginx/nginx.conf fi diff --git a/nginx.conf.template b/nginx.conf.template index 4a0a174..d55deeb 100644 --- a/nginx.conf.template +++ b/nginx.conf.template @@ -28,7 +28,7 @@ http { resolver 127.0.0.11 valid=10s ipv6=off; upstream backend { - server ${API_BASE_URL}; + server ${API_BASE_URL}:${API_PORT}; } server { diff --git a/public/config.template.js b/public/config.template.js index 7a54890..8567b56 100644 --- a/public/config.template.js +++ b/public/config.template.js @@ -1,3 +1,4 @@ window.__RUNTIME_CONFIG__ = { - API_BASE_URL: "__API_BASE_URL__" + API_BASE_URL: "__API_BASE_URL__", + API_PORT: "__API_PORT__" }; \ No newline at end of file diff --git a/src/main.ts b/src/main.ts index 881d34f..5cf97cb 100644 --- a/src/main.ts +++ b/src/main.ts @@ -26,7 +26,7 @@ import {useAuthStore} from "./stores/auth.ts"; import SetsView from "./views/set/SetsView.vue"; import JobsView from "./views/JobsView.vue"; import {definePreset} from "@primeuix/themes"; -import {getConfig, initConfig} from "@/util/config.ts"; +import {getApiUrl, initConfig} from "@/util/config.ts"; import axios from "axios"; // Initialize configuration from window object @@ -139,10 +139,8 @@ router.beforeEach(async (to) => { app.use(router); app.use(ToastService) -console.log(getConfig().API_BASE_URL) - const axiosInstance = axios.create({ - baseURL: getConfig().API_BASE_URL ?? '', + baseURL: getApiUrl() ?? '', headers: { 'Content-Type': 'application/json' } @@ -173,10 +171,6 @@ const setService: SetService = new SetService(undefined, undefined, axiosInstanc const cardPrintService: CardPrintService = new CardPrintService(undefined, undefined, axiosInstance) const jobService: JobService = new JobService(undefined, undefined, axiosInstance) -// @ts-ignore -console.log(deckService.basePath) -console.log(axiosInstance.defaults.baseURL) - app.provide(DeckServiceKey, deckService) app.provide(CardServiceKey, cardService) app.provide(SetServiceKey, setService) diff --git a/src/util/config.ts b/src/util/config.ts index e243904..ded12c0 100644 --- a/src/util/config.ts +++ b/src/util/config.ts @@ -1,9 +1,11 @@ export interface AppConfig { API_BASE_URL: string; + API_PORT: number; } let runtimeConfig: AppConfig = { - API_BASE_URL: import.meta.env.VITE_API_BASE_URL || '' + API_BASE_URL: import.meta.env.VITE_API_BASE_URL || '', + API_PORT: import.meta.env.VITE_API_BASE_URL || 8080 }; export function initConfig(config: Partial) { @@ -15,4 +17,11 @@ export function initConfig(config: Partial) { export function getConfig(): AppConfig { return runtimeConfig; +} + +export function getApiUrl() { + if (!runtimeConfig.API_BASE_URL) { + return null; + } + return `${runtimeConfig.API_BASE_URL}:${runtimeConfig.API_PORT}`; } \ No newline at end of file