docker-compose.yml
version: "3.3"
volumes:
traefik:
limesurvey-web:
limesurvey-db:
services:
traefik:
image: "traefik:latest"
container_name: "traefik"
restart: unless-stopped
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
# - "--certificatesresolvers.myresolver.acme.email=<email>"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
# Uncomment for test mode. This allows detailed logging and creation of a fake certificate.
# - "--log.level=DEBUG"
# - "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
ports:
- "443:443"
volumes:
- "traefik:/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
limesurvey-web:
image: martialblog/limesurvey
container_name: limesurvey-web
restart: unless-stopped
volumes:
- limesurvey-web:/var/www/html/upload/surveys
depends_on:
- limesurvey-db
environment:
- "DB_HOST=limesurvey-db"
- "DB_PASSWORD=<DB_USER_PASSWORD>"
- "ADMIN_PASSWORD=<ADMIN_PASSWORD>"
labels:
- "traefik.enable=true"
- "traefik.http.routers.limesurvey.rule=Host(`<subdomain>`)"
- "traefik.http.routers.limesurvey.entrypoints=websecure"
- "traefik.http.routers.limesurvey.tls.certresolver=myresolver"
- "traefik.http.services.limesurvey.loadbalancer.server.port=8080"
limesurvey-db:
image: docker.io/mysql:5.7
container_name: limesurvey-db
restart: unless-stopped
environment:
- "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey"
- "MYSQL_PASSWORD=<DB_USER_PASSWORD>"
- "MYSQL_ROOT_PASSWORD=<DB_ROOT_PASSWORD>"
volumes:
- limesurvey-db:/var/lib/mysql
volumes:
traefik:
limesurvey-web:
limesurvey-db:
services:
traefik:
image: "traefik:latest"
container_name: "traefik"
restart: unless-stopped
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
# - "--certificatesresolvers.myresolver.acme.email=<email>"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
# Uncomment for test mode. This allows detailed logging and creation of a fake certificate.
# - "--log.level=DEBUG"
# - "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
ports:
- "443:443"
volumes:
- "traefik:/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
limesurvey-web:
image: martialblog/limesurvey
container_name: limesurvey-web
restart: unless-stopped
volumes:
- limesurvey-web:/var/www/html/upload/surveys
depends_on:
- limesurvey-db
environment:
- "DB_HOST=limesurvey-db"
- "DB_PASSWORD=<DB_USER_PASSWORD>"
- "ADMIN_PASSWORD=<ADMIN_PASSWORD>"
labels:
- "traefik.enable=true"
- "traefik.http.routers.limesurvey.rule=Host(`<subdomain>`)"
- "traefik.http.routers.limesurvey.entrypoints=websecure"
- "traefik.http.routers.limesurvey.tls.certresolver=myresolver"
- "traefik.http.services.limesurvey.loadbalancer.server.port=8080"
limesurvey-db:
image: docker.io/mysql:5.7
container_name: limesurvey-db
restart: unless-stopped
environment:
- "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey"
- "MYSQL_PASSWORD=<DB_USER_PASSWORD>"
- "MYSQL_ROOT_PASSWORD=<DB_ROOT_PASSWORD>"
volumes:
- limesurvey-db:/var/lib/mysql
- Execute docker-compose up -d
- Go to https://<subdomain>/index.php/admin
- Login as "admin" using the "<ADMIN_PASSWORD>"