fix: add HTTP to HTTPS redirect and fix CMS Dockerfile
- Add HTTP router and redirect middleware for Let's Encrypt challenges - Fix CMS Dockerfile to copy config from source (not dist) - Add favicon.png to CMS container - Enable automatic HTTPS redirect for all services
This commit is contained in:
parent
2efdf20f88
commit
0ef26ba2f1
@ -31,10 +31,11 @@ RUN addgroup -g 1001 -S nodejs && \
|
||||
|
||||
# Copy built application from builder stage
|
||||
COPY --from=builder --chown=nodejs:nodejs /app/dist ./dist
|
||||
COPY --from=builder --chown=nodejs:nodejs /app/config ./config
|
||||
COPY --from=builder --chown=nodejs:nodejs /app/public ./public
|
||||
COPY --from=builder --chown=nodejs:nodejs /app/favicon.png ./favicon.png
|
||||
COPY --from=builder --chown=nodejs:nodejs /app/node_modules ./node_modules
|
||||
COPY --from=builder --chown=nodejs:nodejs /app/package*.json ./
|
||||
COPY --from=builder --chown=nodejs:nodejs /app/dist/config ./config
|
||||
|
||||
# Create data and database directories with proper permissions
|
||||
RUN mkdir -p /app/.tmp /app/database /app/uploads /app/database/migrations && \
|
||||
|
||||
@ -95,11 +95,20 @@ services:
|
||||
- "3000"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
# HTTP router (for Let's Encrypt challenge and redirect)
|
||||
- "traefik.http.routers.backend-http.rule=Host(`api.placebo.mk`)"
|
||||
- "traefik.http.routers.backend-http.entrypoints=http"
|
||||
- "traefik.http.routers.backend-http.middlewares=redirect-to-https"
|
||||
# HTTPS router
|
||||
- "traefik.http.routers.backend.rule=Host(`api.placebo.mk`)"
|
||||
- "traefik.http.routers.backend.entrypoints=https"
|
||||
- "traefik.http.routers.backend.tls=true"
|
||||
- "traefik.http.routers.backend.tls.certresolver=letsencrypt"
|
||||
# Service
|
||||
- "traefik.http.services.backend.loadbalancer.server.port=3000"
|
||||
# Redirect middleware
|
||||
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
|
||||
- "traefik.http.middlewares.redirect-to-https.redirectscheme.permanent=true"
|
||||
|
||||
# ===========================================
|
||||
# CMS (Strapi)
|
||||
@ -146,10 +155,16 @@ services:
|
||||
- "1337"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
# HTTP router (for Let's Encrypt challenge and redirect)
|
||||
- "traefik.http.routers.cms-http.rule=Host(`cms.placebo.mk`)"
|
||||
- "traefik.http.routers.cms-http.entrypoints=http"
|
||||
- "traefik.http.routers.cms-http.middlewares=redirect-to-https"
|
||||
# HTTPS router
|
||||
- "traefik.http.routers.cms.rule=Host(`cms.placebo.mk`)"
|
||||
- "traefik.http.routers.cms.entrypoints=https"
|
||||
- "traefik.http.routers.cms.tls=true"
|
||||
- "traefik.http.routers.cms.tls.certresolver=letsencrypt"
|
||||
# Service
|
||||
- "traefik.http.services.cms.loadbalancer.server.port=1337"
|
||||
|
||||
# ===========================================
|
||||
@ -179,10 +194,16 @@ services:
|
||||
- "80"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
# HTTP router (for Let's Encrypt challenge and redirect)
|
||||
- "traefik.http.routers.frontend-http.rule=Host(`placebo.mk`) || Host(`www.placebo.mk`)"
|
||||
- "traefik.http.routers.frontend-http.entrypoints=http"
|
||||
- "traefik.http.routers.frontend-http.middlewares=redirect-to-https"
|
||||
# HTTPS router
|
||||
- "traefik.http.routers.frontend.rule=Host(`placebo.mk`) || Host(`www.placebo.mk`)"
|
||||
- "traefik.http.routers.frontend.entrypoints=https"
|
||||
- "traefik.http.routers.frontend.tls=true"
|
||||
- "traefik.http.routers.frontend.tls.certresolver=letsencrypt"
|
||||
# Service
|
||||
- "traefik.http.services.frontend.loadbalancer.server.port=80"
|
||||
|
||||
# ===========================================
|
||||
@ -212,10 +233,16 @@ services:
|
||||
- "80"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
# HTTP router (for Let's Encrypt challenge and redirect)
|
||||
- "traefik.http.routers.pwa-http.rule=Host(`app.placebo.mk`)"
|
||||
- "traefik.http.routers.pwa-http.entrypoints=http"
|
||||
- "traefik.http.routers.pwa-http.middlewares=redirect-to-https"
|
||||
# HTTPS router
|
||||
- "traefik.http.routers.pwa.rule=Host(`app.placebo.mk`)"
|
||||
- "traefik.http.routers.pwa.entrypoints=https"
|
||||
- "traefik.http.routers.pwa.tls=true"
|
||||
- "traefik.http.routers.pwa.tls.certresolver=letsencrypt"
|
||||
# Service
|
||||
- "traefik.http.services.pwa.loadbalancer.server.port=80"
|
||||
|
||||
# ===========================================
|
||||
|
||||
Loading…
Reference in New Issue
Block a user