#!/bin/bash DOCKER_BASE="${DOCKER_BASE:-/srv/docker}" TRAEFIK_DIR="${TRAEFIK_DIR:-traefik}" mkdir -p ${DOCKER_BASE}/${TRAEFIK_DIR}/container.conf touch ${DOCKER_BASE}/${TRAEFIK_DIR}/container.conf/.env ln -s container.conf/.env ${DOCKER_BASE}/${TRAEFIK_DIR}/ cat > ${DOCKER_BASE}/${TRAEFIK_DIR}/container.conf/docker-compose.yml < ${DOCKER_BASE}/${TRAEFIK_DIR}/container.conf/production.yml < ${DOCKER_BASE}/${TRAEFIK_DIR}/container.conf/traefik.service </dev/null || /usr/bin/docker network create --driver bridge system_traefik" ExecStartPre=-/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" -f "\${WORK_DIR}/container.conf/production.yml" down ExecStart=/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" -f "\${WORK_DIR}/container.conf/production.yml" up -d ExecStop=/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" -f "\${WORK_DIR}/container.conf/production.yml" down [Install] WantedBy=docker.service EOF ln -s ${DOCKER_BASE}/${TRAEFIK_DIR}/container.conf/traefik.service /etc/systemd/system/ mkdir -p ${DOCKER_BASE}/${TRAEFIK_DIR}/config cat > ${DOCKER_BASE}/${TRAEFIK_DIR}/config/traefik_providers.yaml <"] accessControlMaxAge: 100 browserXssFilter: true contentTypeNosniff: true forceSTSHeader: true # frameDeny: true # sslRedirect: true stsIncludeSubdomains: true stsPreload: true stsSeconds: 315360000 # contentSecurityPolicy: "default-src 'self' 'unsafe-inline';script-src 'self' 'unsafe-inline' 'unsafe-eval';img-src 'self' data:;font-src 'self' data:;connect-src 'self' ws: wss:" # customRequestHeaders: # X-Frame-Options: "SAMEORIGIN" # customFrameOptionsValue: "SAMEORIGIN" referrerPolicy: "same-origin" permissionsPolicy: "vibrate=(self)" traefik-dashboard-stripprefix: stripPrefix: prefixes: - "/traefik" services: redirect-dummy: loadBalancer: servers: - url: "" routers: # global redirect to https # per domain see https://doc.traefik.io/traefik/migration/v1-to-v2/#http-to-https-redirection-is-now-configured-on-routers web-to-websecure: rule: "hostregexp(`.+`)" service: "redirect-dummy@file" entryPoints: - "web" middlewares: - redirect-web-to-websecure@file experimental: fastProxy: {} EOF systemctl daemon-reload && systemctl enable traefik && systemctl start traefik