chore: improve production deployment flexibility
- Switch frontend from nginx to caddy for consistency with Coolify - Make VITE_API_URL optional, auto-derive from window.location.origin/api - Simplifies deployment by not requiring build-time API URL Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -41,7 +41,7 @@ services:
|
||||
context: ./frontend
|
||||
dockerfile: Dockerfile.prod
|
||||
args:
|
||||
VITE_API_URL: ${VITE_API_URL:?VITE_API_URL required}
|
||||
VITE_API_URL: ${VITE_API_URL:-}
|
||||
ports:
|
||||
- "8080:8080"
|
||||
depends_on:
|
||||
|
||||
@@ -15,20 +15,18 @@ ENV VITE_API_URL=${VITE_API_URL}
|
||||
RUN npm run build
|
||||
|
||||
# Production stage
|
||||
FROM nginx:alpine
|
||||
FROM caddy:alpine
|
||||
|
||||
COPY --from=builder /app/dist /usr/share/nginx/html
|
||||
# Copy built assets
|
||||
COPY --from=builder /app/dist /srv
|
||||
|
||||
# Handle client-side routing
|
||||
RUN echo 'server { \
|
||||
listen 8080; \
|
||||
root /usr/share/nginx/html; \
|
||||
index index.html; \
|
||||
location / { \
|
||||
try_files $uri $uri/ /index.html; \
|
||||
} \
|
||||
}' > /etc/nginx/conf.d/default.conf
|
||||
# Caddyfile for SPA routing
|
||||
RUN echo ':8080 { \
|
||||
root * /srv \
|
||||
file_server \
|
||||
try_files {path} /index.html \
|
||||
}' > /etc/caddy/Caddyfile
|
||||
|
||||
EXPOSE 8080
|
||||
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
||||
CMD ["caddy", "run", "--config", "/etc/caddy/Caddyfile"]
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
const API_URL = import.meta.env.VITE_API_URL || 'http://localhost:8000';
|
||||
// Use VITE_API_URL if set at build time, otherwise derive from current origin
|
||||
const API_URL = import.meta.env.VITE_API_URL || `${window.location.origin}/api`;
|
||||
|
||||
export interface ParticipantAPI {
|
||||
id: string;
|
||||
|
||||
Reference in New Issue
Block a user