autoconf - reverse proxy example and pass default vars

This commit is contained in:
bunkerity 2020-12-04 22:06:15 +01:00
parent 3cc1615c4d
commit 88f27bfeb8
No known key found for this signature in database
GPG Key ID: 654FFF51CEF7CC47
2 changed files with 70 additions and 2 deletions

View File

@ -1,6 +1,6 @@
#!/usr/bin/python3
import docker, datetime, subprocess, shutil
import docker, datetime, subprocess, shutil, os
def log(event) :
print("[" + datetime.datetime.now().replace(microsecond=0) + "] AUTOCONF - " + event)
@ -13,7 +13,10 @@ def replace_in_file(file, old_str, new_str) :
f.write(data)
def generate(vars) :
subprocess.run(["/opt/entrypoint/site-config.sh", vars["SERVER_NAME"]], env=vars)
vars_defaults = vars.copy()
vars_defaults.update(os.environ)
vars_defaults.update(vars)
subprocess.run(["/opt/entrypoint/site-config.sh", vars["SERVER_NAME"]], env=vars_defaults)
log("Generated config for " + vars["SERVER_NAME"])
def activate(vars) :

View File

@ -0,0 +1,65 @@
version: '3'
services:
mywww:
image: bunkerity/bunkerized-nginx
restart: always
ports:
- 80:8080
- 443:8443
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./letsencrypt:/etc/letsencrypt
environment:
- SERVER_NAME=
- MULTISITE=yes
- AUTO_LETS_ENCRYPT=yes
- REDIRECT_HTTP_TO_HTTPS=yes
- DISABLE_DEFAULT_SERVER=yes
- USE_CLIENT_CACHE=yes
- USE_GZIP=yes
- USE_BROTLI=yes
- USE_REVERSE_PROXY=yes
myapp1:
image: node
restart: always
working_dir: /home/node/app
volumes:
- ./js-app:/home/node/app
environment:
- NODE_ENV=production
command: bash -c "npm install express && node index.js"
labels:
- "bunkerized-nginx.SERVER_NAME=app1.domain.com"
- "bunkerized-nginx.REVERSE_PROXY_URL=/"
- "bunkerized-nginx.REVERSE_PROXY_HOST=http://myapp1:3000"
myapp2:
image: node
restart: always
working_dir: /home/node/app
volumes:
- ./js-app:/home/node/app
environment:
- NODE_ENV=production
command: bash -c "npm install express && node index.js"
labels:
- "bunkerized-nginx.SERVER_NAME=app2.domain.com"
- "bunkerized-nginx.REVERSE_PROXY_URL=/"
- "bunkerized-nginx.REVERSE_PROXY_HOST=http://myapp2:3000"
myapp3:
image: node
restart: always
working_dir: /home/node/app
volumes:
- ./js-app:/home/node/app
environment:
- NODE_ENV=production
command: bash -c "npm install express && node index.js"
labels:
- "bunkerized-nginx.SERVER_NAME=app3.domain.com"
- "bunkerized-nginx.REVERSE_PROXY_URL=/"
- "bunkerized-nginx.REVERSE_PROXY_HOST=http://myapp3:3000"