Skip to content

Instantly share code, notes, and snippets.

@malefs
Forked from tronjob/docker-compose.yml
Created November 25, 2020 10:39
Show Gist options
  • Select an option

  • Save malefs/ccd00298fb66799cf67863783d10f2a0 to your computer and use it in GitHub Desktop.

Select an option

Save malefs/ccd00298fb66799cf67863783d10f2a0 to your computer and use it in GitHub Desktop.
version: "3.6"
services:
db:
image: mariadb:10.3.8
deploy:
resources:
limits:
cpus: '1'
memory: 1G
environment:
- MYSQL_ROOT_PASSWORD_FILE=/run/secrets/root_password
volumes:
- /docker/mariadb/data:/var/lib/mysql
- /docker/mariadb/conf:/etc/mysql/conf.d
networks:
- patada
secrets:
- mysql_root_password
nginx:
image: nginx:latest
networks:
- patada
volumes:
- /docker/nginx/:/usr/share/nginx/html
deploy:
resources:
limits:
cpus: '1'
memory: 200M
labels:
- "traefik.docker.network=apps_patada"
- "traefik.enable=true"
- "traefik.frontend.rule=Host:www.patadanabouca.pw"
- "traefik.port=80"
- "traefik.protocol=http"
- "traefik.backend.loadbalancer.swarm=true"
redditbot:
image: lordanubis/redditbot:1
networks:
- patada
deploy:
resources:
limits:
cpus: '1'
memory: 200M
picardbot:
image: lordanubis/picardtips:1.0
networks:
- patada
deploy:
resources:
limits:
cpus: '1'
memory: 200M
node-exporter:
image: prom/node-exporter:v0.18.1
networks:
- patada
ports:
- '9100:9100'
volumes:
- '/proc:/host/proc:ro'
- '/sys:/host/sys:ro'
- '/:/rootfs:ro'
command:
- '--path.procfs=/host/proc'
- '--path.sysfs=/host/sys'
- '--collector.filesystem.ignored-mount-points'
- ^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)
deploy:
resources:
limits:
cpus: '1'
memory: 200M
cadvisor:
image: google/cadvisor:v0.33.0
ports:
- '8081:8080'
networks:
- patada
volumes:
- '/:/rootfs:ro'
- '/etc/:/etc:ro'
- '/dev/:/dev:ro'
- '/var/run:/var/run:rw'
- '/sys:/sys:ro'
- '/var/lib/docker/:/var/lib/docker:ro'
deploy:
resources:
limits:
cpus: '1'
memory: 100M
prometheus:
image: prom/prometheus:v2.10.0
networks:
- patada
depends_on:
- cadvisor
volumes:
- /docker/prometheus:/etc/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
deploy:
resources:
limits:
cpus: '1'
memory: 200M
labels:
- "traefik.docker.network=apps_patada"
- "traefik.enable=true"
- "traefik.frontend.rule=Host:prometheus.patadanabouca.pw"
- "traefik.port=9090"
- "traefik.protocol=http"
- "traefik.backend.loadbalancer.swarm=true"
grafana:
image: grafana/grafana:6.2.4
user: root
environment:
- GF_SECURITY_ADMIN_PASSWORD=cenas
# - GF_SECURITY_ADMIN_PASSWORD__FILE=/run/secrets/grafana_admin_password
depends_on:
- prometheus
networks:
- patada
volumes:
- /docker/grafana/:/var/lib/grafana
- /docker/grafana/provisioning:/etc/grafana/provisioning/
- /docker/grafana/conf:/etc/grafana/conf/
deploy:
resources:
limits:
cpus: '1'
memory: '256M'
labels:
- "traefik.docker.network=apps_patada"
- "traefik.enable=true"
- "traefik.frontend.rule=Host:grafana.patadanabouca.pw"
- "traefik.port=3000"
- "traefik.protocol=http"
- "traefik.backend.loadbalancer.swarm=true"
secrets:
- grafana_admin_password
calibre:
image: linuxserver/calibre-web:latest
networks:
- patada
volumes:
- /docker/calibre/books:/books
- /docker/calibre/config:/config
deploy:
resources:
limits:
cpus: '1'
memory: '256M'
labels:
- "traefik.docker.network=apps_patada"
- "traefik.enable=true"
- "traefik.frontend.rule=Host:books.patadanabouca.pw"
- "traefik.port=8083"
- "traefik.protocol=http"
- "traefik.backend.loadbalancer.swarm=true"
redis:
image: redis:4.0.10
volumes:
- /docker/redis:/var/lib/redis
networks:
- patada
traefik:
image: traefik:1.7.4
deploy:
resources:
limits:
cpus: '1'
memory: 512M
labels:
- "traefik.docker.network=apps_patada"
- "traefik.enable=true"
- "traefik.frontend.rule=Host:traefik.patadanabouca.pw"
- "traefik.port=8080"
- "traefik.protocol=http"
- "traefik.backend.loadbalancer.swarm=true"
ports:
- 80:80
- 443:443
- 8080:8080
networks:
- patada
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /docker/traefik/traefik.toml:/traefik.toml
- /docker/traefik/acme.json:/acme.json
environment:
- CLOUDFLARE_EMAIL=pedro.oliv16@gmail.com
- CLOUDFLARE_API_KEY=cenas
ghost:
image: ghost:2.11.1
deploy:
resources:
limits:
cpus: '1'
memory: 512M
labels:
- "traefik.docker.network=apps_patada"
- "traefik.enable=true"
- "traefik.frontend.rule=Host:blog.patadanabouca.pw"
- "traefik.port=2368"
- "traefik.protocol=http"
depends_on:
- db
environment:
# see https://docs.ghost.org/docs/config#section-running-ghost-with-config-env-variables
database__client: mysql
database__connection__host: db
database__connection__user: ghost
database__connection__password: cenas
database__connection__database: ghost
url: http://blog.patadanabouca.pw
volumes:
- /docker/ghost:/var/lib/ghost/content
networks:
- patada
portainer:
image: portainer/portainer:1.18.1
deploy:
resources:
limits:
cpus: '1'
memory: 256M
labels:
- "traefik.docker.network=apps_patada"
- "traefik.enable=true"
- "traefik.frontend.rule=Host:docker.patadanabouca.pw"
- "traefik.port=9000"
- "traefik.protocol=http"
networks:
- patada
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /docker/portainer:/data
owncloud:
image: owncloud/server:10.1.1
deploy:
resources:
limits:
cpus: '2'
memory: 1G
labels:
- "traefik.docker.network=apps_patada"
- "traefik.enable=true"
- "traefik.frontend.rule=Host:cloud.patadanabouca.pw"
- "traefik.port=8080"
- "traefik.protocol=http"
depends_on:
- db
- redis
volumes:
- /docker/owncloud/data:/mnt/data
environment:
- OWNCLOUD_DOMAIN=cloud.patadanabouca.pw
- OWNCLOUD_VERSION=10.0.10
- OWNCLOUD_DB_TYPE=mysql
- OWNCLOUD_DB_NAME=owncloud
- OWNCLOUD_DB_USERNAME=owncloud
- OWNCLOUD_DB_PASSWORD=cenas #owncloud doesn't support secret files yet, keep checking for support and change this to a sec!
- OWNCLOUD_DB_HOST=db
- OWNCLOUD_REDIS_ENABLED=true
- OWNCLOUD_REDIS_HOST=redis
- OWNCLOUD_ADMIN_USERNAME=admin
- OWNCLOUD_ADMIN_PASSWORD=cenas
healthcheck:
test: ["CMD", "/usr/bin/healthcheck"]
interval: 30s
timeout: 10s
retries: 5
networks:
- patada
bookstack:
image: solidnerd/bookstack:0.24.1
deploy:
resources:
limits:
cpus: '1'
memory: 200M
labels:
- "traefik.docker.network=apps_patada"
- "traefik.enable=true"
- "traefik.frontend.rule=Host:notes.patadanabouca.pw"
- "traefik.port=80"
- "traefik.protocol=http"
environment:
- DB_HOST=db:3306
- DB_DATABASE=bookstack
- DB_USER=bookstack
- DB_PASSWORD=bookstack
volumes:
- /docker/bookstack/uploads:/var/www/bookstack/public/uploads
- /docker/bookstack/storage:/var/www/bookstack/public/storage
networks:
- patada
secrets:
grafana_admin_password:
file: /docker/grafana/secrets/admin_password.txt
mysql_root_password:
file: /docker/mariadb/secrets/root_password.txt
owncloud_db_root_password:
file: /docker/owncloud/secrets/db_root_password.txt
networks:
patada:
name: apps_patada
ipam:
config:
- subnet: 10.11.0.0/24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment