158 lines
5.0 KiB
YAML
158 lines
5.0 KiB
YAML
volumes:
|
|
redis_data:
|
|
driver: local
|
|
redis:
|
|
driver: local
|
|
letsencrypt:
|
|
driver: local
|
|
phpmyadmin:
|
|
driver: local
|
|
mysql_data:
|
|
driver: local
|
|
|
|
services:
|
|
|
|
traefik:
|
|
image: traefik:latest
|
|
container_name: Proxy
|
|
restart: unless-stopped
|
|
command:
|
|
- "--log.level=DEBUG"
|
|
- "--accesslog=true"
|
|
- "--api.insecure=true"
|
|
- "--providers.docker=true"
|
|
- "--providers.docker.exposedbydefault=true"
|
|
- "--entrypoints.web.address=:80"
|
|
- "--entrypoints.websecure.address=:443"
|
|
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
|
|
- "--entrypoints.web.http.redirections.entryPoint.scheme=https"
|
|
- "--certificatesresolvers.myresolver.acme.httpchallenge=true"
|
|
- "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web"
|
|
- "--certificatesresolvers.myresolver.acme.email=enteryour@email.com"
|
|
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
|
|
ports:
|
|
- 80:80
|
|
- 443:443
|
|
- 8081:8080
|
|
networks:
|
|
- web
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- letsencrypt:/letsencrypt
|
|
- /some/local/location/Traefik/acme.json:/acme.json
|
|
- /some/local/location/Traefik/files/:/etc/traefik/traefik.yml
|
|
|
|
redis:
|
|
image: redis:latest
|
|
container_name: Redis
|
|
restart: unless-stopped
|
|
networks:
|
|
- web
|
|
volumes:
|
|
- redis:/var/lib/redis
|
|
- redis_data:/data
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.backend=redis
|
|
|
|
|
|
mysql:
|
|
image: mysql:8.0
|
|
container_name: mysql_server
|
|
restart: always
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: super_secret_root_password
|
|
MYSQL_DATABASE: mysql
|
|
MYSQL_USER: my_db_user
|
|
MYSQL_PASSWORD: my_db_password
|
|
ports:
|
|
- "3306:3306"
|
|
volumes:
|
|
- mysql_data:/var/lib/mysql
|
|
networks:
|
|
- web
|
|
|
|
NextCloud:
|
|
image: nextcloud:latest
|
|
container_name: NameOfYourContainer
|
|
restart: unless-stopped
|
|
networks:
|
|
- web
|
|
labels:
|
|
- traefik.protocol=http
|
|
- traefik.port=80
|
|
- traefik.http.routers.nextcloud.middlewares=nextcloud,nextcloud_redirect
|
|
- traefik.http.routers.nextcloud.tls=true
|
|
- traefik.http.routers.nextcloud.entrypoints=websecure
|
|
- traefik.http.routers.nextcloud.tls.certresolver=myresolver
|
|
- traefik.http.routers.nextcloud.rule=Host(`some.domain.com`)
|
|
- traefik.http.middlewares.nextcloud.headers.customFrameOptionsValue=ALLOW-FR>
|
|
- traefik.http.middlewares.nextcloud.headers.stsSeconds=155520011
|
|
- traefik.http.middlewares.nextcloud.headers.stsIncludeSubdomains=true
|
|
- traefik.http.middlewares.nextcloud.headers.stsPreload=true
|
|
- traefik.http.middlewares.nextcloud.redirectregex.regex=/.well-know>
|
|
- traefik.http.middlewares.nextcloud_redirect.redirectregex.replacement=/remo>
|
|
environment:
|
|
- MYSQL_HOST=mysql
|
|
- MYSQL_DATABASE=nextcloud
|
|
- MYSQL_USER=MySQLUser
|
|
- MYSQL_PASSWORD=MySQLPassword
|
|
- NEXTCLOUD_ADMIN_USER=admin
|
|
- NEXTCLOUD_ADMIN_PASSWORD=adminpass
|
|
- REDIS_HOST=redis
|
|
- NEXTCLOUD_TRUSTED_DOMAINS=some.domain.com
|
|
- TRUSTED_PROXIES=172.18.0.0/16
|
|
volumes:
|
|
- /path/to/you/data/:/var/www/html
|
|
|
|
portainer:
|
|
image: portainer/portainer-ce:latest
|
|
container_name: Container-WebUI
|
|
command: -H unix:///var/run/docker.sock
|
|
restart: always
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.portainer.entrypoints=web"
|
|
- "traefik.http.routers.portainer.rule=Host(`portainer.domain.com`)"
|
|
- "traefik.http.middlewares.portainer-https-redirect.redirectscheme.scheme=https"
|
|
- "traefik.http.routers.portainer.middlewares=portainer-https-redirect"
|
|
- "traefik.http.routers.portainer-secure.entrypoints=websecure"
|
|
- "traefik.http.routers.portainer-secure.rule=Host(`portainer.domain.com`)"
|
|
- "traefik.http.routers.portainer-secure.tls=true"
|
|
- "traefik.http.routers.portainer-secure.tls.certresolver=myresolver"
|
|
- "traefik.http.routers.portainer-secure.service=portainer"
|
|
- "traefik.http.services.portainer.loadbalancer.server.port=9000"
|
|
- "traefik.docker.network=traefik-proxy"
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- /some/local/location/Portainer:/data
|
|
ports:
|
|
- 9001:9001
|
|
- 8081:9000
|
|
# - 82:8000
|
|
networks:
|
|
- web
|
|
|
|
phpmyadmin:
|
|
image: phpmyadmin/phpmyadmin
|
|
container_name: Database-WebUI
|
|
restart: unless-stopped
|
|
networks:
|
|
- web
|
|
environment:
|
|
- PMA_ARBITRARY=1
|
|
labels:
|
|
- traefik.backend=phpmyadmin
|
|
- traefik.http.routers.phpmyadmin.tls.certresolver=myresolver
|
|
- traefik.http.routers.phpmyadmin.rule=Host(`phpmyadmin.domain.com`)
|
|
- traefik.docker.network=web
|
|
- traefik.port=80
|
|
- traefik.port=443
|
|
volumes:
|
|
- phpmyadmin:/sessions
|
|
- /some/local/location/phpmyadmin/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php
|
|
- /some/local/location/phpmyadmin/theme/:/www/themes/theme/
|
|
|
|
networks:
|
|
web:
|
|
external: true |