Skip to content

Commit 4a3949d

Browse files
committed
Add examples
1 parent 1984642 commit 4a3949d

File tree

14 files changed

+834
-0
lines changed

14 files changed

+834
-0
lines changed

examples/stack-global.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
---
2+
3+
include_vars:
4+
- vars-global.yml
5+
vars:
6+
stack_name: global
7+
stacks:
8+
- global
9+
- org1
10+
- org2
11+
12+
templates:
13+
- src: templates/reverse-proxy.yml.j2
14+
dest: stacks/{{ stack_name }}/00-reverse-proxy.yml
15+
vars:
16+
deployment_name: reverse-proxy
17+
SSL_BIND_CIPHERS: ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:EECDH+AESGCM:EDH+AESGCM
18+
SSL_BIND_OPTIONS: ssl-min-ver TLSv1.0 no-tls-tickets
19+
EXTRA_GLOBAL: "crt-base /certs"
20+
21+
- src: templates/mariadb.yml.j2
22+
dest: stacks/{{ stack_name }}/00-mariadb.yml
23+
vars:
24+
deployment_name: mariadb
25+
MYSQL_ROOT_PASSWORD: crPWnQpQppiI1B8H0OKU

examples/stack-org1.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
3+
include_vars:
4+
- vars-global.yml
5+
vars:
6+
stack_name: org1
7+
8+
templates:
9+
- src: templates/redis.yml.j2
10+
dest: stacks/{{ stack_name }}/00-{{ deployment_name }}.yml
11+
vars:
12+
deployment_name: redis
13+
REDIS_DATABASES: 3
14+
REDIS_MAXCLIENTS: 500
15+
REDIS_MAXMEMORY: "300mb"
16+
REDIS_REQUIREPASS: lnFl4MzarOL5bTEbreld
17+
18+
- src: templates/nextcloud.yml.j2
19+
dest: stacks/{{ stack_name }}/10-{{ deployment_name }}.yml
20+
vars:
21+
deployment_name: nextcloud
22+
domainnames: "cloud.org1.de"
23+
NGINX_REDIRECT_TO_FIRST_DOMAIN: true
24+
NEXTCLOUD_DATABASE_HOST: mariadb.global.docker
25+
NEXTCLOUD_DATABASE_NAME: org1_01
26+
NEXTCLOUD_DATABASE_USER: org1_01
27+
NEXTCLOUD_MEMCACHE_LOCKING_ENABLED: true
28+
NEXTCLOUD_MEMCACHE_DISTRIBUTED: Redis
29+
NEXTCLOUD_REDIS_HOST: "redis.{{ stack_name }}.docker"
30+
NEXTCLOUD_REDIS_PORT: 6379
31+
NEXTCLOUD_REDIS_DBINDEX: 0
32+
NEXTCLOUD_REDIS_PASSWORD: lnFl4MzarOL5bTEbreld
33+
NEXTCLOUD_DATABASE_PASSWORD: 7qvbCz7JcVS3OcSa9jE0

examples/stack-org2.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
3+
include_vars:
4+
- vars-global.yml
5+
vars:
6+
stack_name: org2
7+
8+
templates:
9+
- src: templates/redis.yml.j2
10+
dest: stacks/{{ stack_name }}/00-{{ deployment_name }}.yml
11+
vars:
12+
deployment_name: redis
13+
REDIS_DATABASES: 3
14+
REDIS_MAXCLIENTS: 500
15+
REDIS_MAXMEMORY: "300mb"
16+
REDIS_REQUIREPASS: YwrbSwFEzEu2iG0rwEpi
17+
18+
- src: templates/nextcloud.yml.j2
19+
dest: stacks/{{ stack_name }}/10-{{ deployment_name }}.yml
20+
vars:
21+
deployment_name: nextcloud
22+
domainnames: "cloud.org2.de"
23+
NGINX_REDIRECT_TO_FIRST_DOMAIN: true
24+
NEXTCLOUD_DATABASE_HOST: mariadb.global.docker
25+
NEXTCLOUD_DATABASE_NAME: org2_01
26+
NEXTCLOUD_DATABASE_USER: org2_01
27+
NEXTCLOUD_MEMCACHE_LOCKING_ENABLED: true
28+
NEXTCLOUD_MEMCACHE_DISTRIBUTED: Redis
29+
NEXTCLOUD_REDIS_HOST: "redis.{{ stack_name }}.docker"
30+
NEXTCLOUD_REDIS_PORT: 6379
31+
NEXTCLOUD_REDIS_DBINDEX: 0
32+
NEXTCLOUD_REDIS_PASSWORD: YwrbSwFEzEu2iG0rwEpi
33+
NEXTCLOUD_DATABASE_PASSWORD: IKJDNBuoyU53rZEAIb4Z
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
version: '3.7'
2+
3+
services:
4+
mariadb:
5+
image: bitnami/mariadb:10.2.17
6+
environment:
7+
- MARIADB_PORT_NUMBER=3306
8+
- MARIADB_ROOT_PASSWORD=crPWnQpQppiI1B8H0OKU
9+
- MARIADB_ROOT_USER=root
10+
networks:
11+
global_mariadb:
12+
aliases:
13+
- mariadb
14+
- mariadb.global.docker
15+
- mysql
16+
- mysql.global.docker
17+
org1_mariadb:
18+
aliases:
19+
- mariadb
20+
- mariadb.org1.docker
21+
- mysql
22+
- mysql.org1.docker
23+
org2_mariadb:
24+
aliases:
25+
- mariadb
26+
- mariadb.org2.docker
27+
- mysql
28+
- mysql.org2.docker
29+
user: '999'
30+
volumes:
31+
- /etc/localtime:/etc/localtime:ro
32+
- /srv/global/mariadb:/bitnami/mariadb
33+
- /srv/global/mariadb/my_custom.cnf:/bitnami/mariadb/my_custom.cnf
34+
deploy:
35+
mode: global
36+
placement:
37+
constraints: [node.platform.os == linux]
38+
restart_policy:
39+
condition: on-failure
40+
delay: 5s
41+
resources:
42+
limits:
43+
cpus: '2.0'
44+
memory: 2000MB
45+
update_config:
46+
parallelism: 1
47+
delay: 10m
48+
49+
networks:
50+
global_mariadb:
51+
name: global_mariadb
52+
driver: overlay
53+
attachable: true
54+
org1_mariadb:
55+
name: org1_mariadb
56+
driver: overlay
57+
attachable: true
58+
org2_mariadb:
59+
name: org2_mariadb
60+
driver: overlay
61+
attachable: true
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
version: '3.7'
2+
3+
services:
4+
reverse-proxy:
5+
image: dockerflow/docker-flow-proxy:18.09.14-9-linux-amd64
6+
environment:
7+
# daemon config
8+
- LISTENER_ADDRESS=swarm-listener
9+
- SERVICE_NAME=reverse-proxy
10+
- RECONFIGURE_ATTEMPTS=20
11+
- RELOAD_ATTEMPTS=5
12+
- RELOAD_INTERVAL=5000
13+
- REPEAT_RELOAD=false
14+
15+
- HTTPS_ONLY=true
16+
- SSL_BIND_CIPHERS=ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:EECDH+AESGCM:EDH+AESGCM
17+
- SSL_BIND_OPTIONS=ssl-min-ver TLSv1.0 no-tls-tickets
18+
- CONNECTION_MODE=http-server-close
19+
- COMPRESSION_ALGO=gzip
20+
- EXTRA_GLOBAL=crt-base /certs
21+
22+
- DEFAULT_PORTS=80,443:ssl
23+
- DEFAULT_REQ_MODE=http
24+
- ENABLE_H2=true
25+
- SERVICE_DOMAIN_ALGO=hdr_dom(host)
26+
- TIMEOUT_CLIENT=600
27+
- TIMEOUT_CONNECT=5
28+
- TIMEOUT_QUEUE=60
29+
- TIMEOUT_SERVER=3600
30+
- TIMEOUT_TUNNEL=3600
31+
- TIMEOUT_HTTP_REQUEST=5
32+
- TIMEOUT_HTTP_KEEP_ALIVE=30
33+
34+
- SKIP_ADDRESS_VALIDATION=true
35+
- RESOLVERS=nameserver dns-0 9.9.9.9:53,nameserver dns-1 8.8.8.8:53
36+
- CHECK_RESOLVERS=false
37+
- DO_NOT_RESOLVE_ADDR=false
38+
networks:
39+
swarm-listener:
40+
aliases:
41+
- reverse-proxy
42+
- reverse-proxy.docker
43+
- reverse-proxy.global.docker
44+
global_reverse-proxy:
45+
org1_reverse-proxy:
46+
org2_reverse-proxy:
47+
ports:
48+
- 80:80
49+
- 443:443
50+
volumes:
51+
- /etc/localtime:/etc/localtime:ro
52+
- /srv/global/reverse-proxy/certs:/certs
53+
deploy:
54+
labels:
55+
- com.df.notify=true
56+
- com.df.alertName=memlimit
57+
- com.df.alertIf=@service_mem_limit:0.8
58+
- com.df.alertFor=30s
59+
mode: global
60+
update_config:
61+
parallelism: 1
62+
delay: 10s
63+
resources:
64+
reservations:
65+
memory: 20M
66+
limits:
67+
memory: 50M
68+
69+
swarm-listener:
70+
image: dockerflow/docker-flow-swarm-listener:18.09.06-6-linux-amd64
71+
networks:
72+
- swarm-listener
73+
volumes:
74+
- /etc/localtime:/etc/localtime:ro
75+
- /var/run/docker.sock:/var/run/docker.sock
76+
environment:
77+
- DF_NOTIFY_CREATE_SERVICE_URL=http://reverse-proxy.docker:8080/v1/docker-flow-proxy/reconfigure
78+
- DF_NOTIFY_REMOVE_SERVICE_URL=http://reverse-proxy.docker:8080/v1/docker-flow-proxy/remove
79+
deploy:
80+
mode: global
81+
labels:
82+
- com.df.notify=true
83+
- com.df.distribute=true
84+
- com.df.alertName=memlimit
85+
- com.df.alertIf=@service_mem_limit:0.8
86+
- com.df.alertFor=30s
87+
placement:
88+
constraints: [node.role == manager]
89+
restart_policy:
90+
condition: on-failure
91+
delay: 3s
92+
resources:
93+
reservations:
94+
memory: 10M
95+
limits:
96+
memory: 20M
97+
98+
networks:
99+
swarm-listener:
100+
driver: overlay
101+
attachable: false
102+
global_reverse-proxy:
103+
name: global_reverse-proxy
104+
driver: overlay
105+
attachable: true
106+
org1_reverse-proxy:
107+
name: org1_reverse-proxy
108+
driver: overlay
109+
attachable: true
110+
org2_reverse-proxy:
111+
name: org2_reverse-proxy
112+
driver: overlay
113+
attachable: true

examples/stacks/org1/00-redis.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
version: '3.7'
2+
3+
services:
4+
redis:
5+
image: aisberg/redis:4.0.11
6+
environment:
7+
- REDIS_DATABASES=3
8+
- REDIS_REQUIREPASS=lnFl4MzarOL5bTEbreld
9+
- REDIS_MAXCLIENTS=500
10+
- REDIS_MAXMEMORY=300mb
11+
networks:
12+
redis:
13+
aliases:
14+
- redis
15+
- redis.org1.docker
16+
volumes:
17+
- /etc/localtime:/etc/localtime:ro
18+
- /srv/org1/redis/redis:/container/redis
19+
deploy:
20+
mode: global
21+
restart_policy:
22+
condition: on-failure
23+
delay: 5s
24+
max_attempts: 5
25+
resources:
26+
limits:
27+
cpus: '2.0'
28+
memory: 300mb
29+
update_config:
30+
parallelism: 1
31+
delay: 10s
32+
33+
networks:
34+
redis:
35+
name: org1_redis
36+
driver: overlay
37+
attachable: true
38+
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
version: '3.7'
2+
3+
services:
4+
nextcloud:
5+
image: aisberg/nextcloud:14.0.0
6+
environment:
7+
- DOMAINNAMES=cloud.org1.de
8+
- MAX_UPLOAD_FILESIZE=16384M
9+
- NGINX_BEHIND_PROXY=True
10+
- NGINX_TLS_TERMINATED=True
11+
- NGINX_REWRITE_HTTPS=True
12+
- NGINX_REDIRECT_TO_FIRST_DOMAIN=True
13+
- NGINX_FASTCGI_READ_TIMEOUT=3600
14+
- PHP_MAX_EXECUTION_TIME=3600
15+
- PHP_MAX_INPUT_TIME=3600
16+
17+
- AUTO_UPDATE=True
18+
- NEXTCLOUD_DEFAULT_LANGUAGE=de_DE
19+
- NEXTCLOUD_DEFAULT_LOCALE=de_DE
20+
- NEXTCLOUD_DATABASE_TYPE=mysql
21+
- NEXTCLOUD_DATABASE_HOST=mariadb.global.docker
22+
- NEXTCLOUD_DATABASE_NAME=org1_01
23+
- NEXTCLOUD_DATABASE_USER=org1_01
24+
- NEXTCLOUD_DATABASE_PASSWORD=7qvbCz7JcVS3OcSa9jE0
25+
- NEXTCLOUD_TRASHBIN_RETENTION_OBLIGATION=auto, 20
26+
- NEXTCLOUD_VERSIONS_RETENTION_OBLIGATION=auto, 40
27+
- NEXTCLOUD_REDIS_HOST=redis.org1.docker
28+
- NEXTCLOUD_REDIS_PORT=6379
29+
- NEXTCLOUD_REDIS_PASSWORD=lnFl4MzarOL5bTEbreld
30+
- NEXTCLOUD_REDIS_DBINDEX=0
31+
- NEXTCLOUD_MEMCACHE_LOCKING_ENABLED=True
32+
networks:
33+
database:
34+
redis:
35+
reverse-proxy:
36+
aliases:
37+
- nextcloud.org1.docker
38+
volumes:
39+
- /etc/localtime:/etc/localtime:ro
40+
- /srv/org1/nextcloud/www:/container/www
41+
- /srv/org1/nextcloud/cfg/nginx:/etc/nginx/conf.d
42+
deploy:
43+
labels:
44+
- com.df.notify=true
45+
- com.df.serviceDomain=cloud.org1.de
46+
- com.df.reqMode=http
47+
- com.df.httpsOnly=true
48+
- com.df.port=8080
49+
- com.df.httpsPort=8080
50+
- com.df.connectionMode=http-server-close
51+
- com.df.checkResolvers=true
52+
mode: global
53+
restart_policy:
54+
condition: on-failure
55+
delay: 5s
56+
max_attempts: 5
57+
resources:
58+
limits:
59+
cpus: '2.0'
60+
memory: 1000MB
61+
update_config:
62+
parallelism: 1
63+
delay: 10s
64+
65+
networks:
66+
reverse-proxy:
67+
external: true
68+
name: org1_reverse-proxy
69+
database:
70+
external: true
71+
name: org1_mariadb
72+
redis:
73+
external: true
74+
name: org1_redis
75+

0 commit comments

Comments
 (0)