version: '3' services: traefik: image: 'traefik' command: - '--api=true' - '--api.insecure=true' - '--api.dashboard=true' - '--providers.docker=true' - '--providers.docker.exposedbydefault=false' - '--entrypoints.websecure.address=:443' - '--certificatesresolvers.mytlschallenge.acme.tlschallenge=true' - '--certificatesresolvers.mytlschallenge.acme.email=shayanrl87@gmail.com' - '--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json' ports: - '443:443' - '80:80' volumes: - /root/data/n8n/letsencrypt:/letsencrypt - /var/run/docker.sock:/var/run/docker.sock:ro initContainer: image: busybox command: ['sh', '-c', 'chown -R 1000:1000 /home/node/.n8n'] volumes: - /root/data/.n8n:/home/node/.n8n n8n: image: docker.n8n.io/n8nio/n8n ports: - '7860:7860' labels: - traefik.enable=true - traefik.http.routers.n8n.rule=Host(`shayanrl-n8n.hf.space`) - traefik.http.routers.n8n.tls=true - traefik.http.routers.n8n.entrypoints=websecure - 'traefik.http.routers.n8n.rule=PathPrefix(`/app1{regex:$$|/.*}`)' - 'traefik.http.middlewares.n8n-stripprefix.stripprefix.prefixes=/app1' - 'traefik.http.routers.n8n.middlewares=n8n-stripprefix' - traefik.http.routers.n8n.tls.certresolver=mytlschallenge - traefik.http.middlewares.n8n.headers.SSLRedirect=true - traefik.http.middlewares.n8n.headers.STSSeconds=315360000 - traefik.http.middlewares.n8n.headers.browserXSSFilter=true - traefik.http.middlewares.n8n.headers.contentTypeNosniff=true - traefik.http.middlewares.n8n.headers.forceSTSHeader=true - traefik.http.middlewares.n8n.headers.SSLHost=shayanrl-n8n.hf.space - traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true - traefik.http.middlewares.n8n.headers.STSPreload=true environment: - N8N_HOST=shayanrl-n8n.hf.space - N8N_PORT=7860 - N8N_PROTOCOL=https - NODE_ENV=production - N8N_PATH - WEBHOOK_URL=https://$shayanrl-n8n.hf.space/app1 volumes: - /var/run/docker.sock:/var/run/docker.sock - /root/data/.n8n:/home/node/.n8n depends_on: initContainer: condition: service_completed_successfully