diff --git a/cms/cms/Dockerfile b/cms/cms/Dockerfile index c68c396..b515ac3 100644 --- a/cms/cms/Dockerfile +++ b/cms/cms/Dockerfile @@ -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 && \ diff --git a/docker-compose.coolify.yml b/docker-compose.coolify.yml index 167376f..11338f3 100644 --- a/docker-compose.coolify.yml +++ b/docker-compose.coolify.yml @@ -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" # ===========================================