96 lines
2.7 KiB
YAML
96 lines
2.7 KiB
YAML
services:
|
|
www-backup:
|
|
profiles:
|
|
- backup
|
|
image: busybox
|
|
command:
|
|
- /bin/sh
|
|
- -c
|
|
- |
|
|
tar -cvzf /backup/www.$(date -u -Is).tgz -C /www .
|
|
volumes:
|
|
- www:/www
|
|
- ./backup:/backup
|
|
|
|
db-backup:
|
|
profiles:
|
|
- backup
|
|
image: postgres:13
|
|
volumes:
|
|
- db:/var/lib/postgresql/data
|
|
- ./backup:/backup
|
|
command:
|
|
- /bin/sh
|
|
- -c
|
|
- |
|
|
pg_dump \
|
|
-U ${POSTGRES_USER} \
|
|
-d ${POSTGRES_DB} \
|
|
-h db \
|
|
-F c -b -v \
|
|
-f /backup/db.$(date -u -Is).psql
|
|
environment:
|
|
POSTGRES_USER:
|
|
PGPASSWORD: ${POSTGRES_PASSWORD}
|
|
POSTGRES_DB:
|
|
|
|
# set file ownership
|
|
zrok-init:
|
|
image: busybox
|
|
# matches uid:gid of "ziggy" in zrok container image
|
|
command: chown -Rc 2171:2171 /mnt/
|
|
user: root
|
|
volumes:
|
|
- zrok_env:/mnt
|
|
|
|
# enable zrok environment
|
|
zrok-enable:
|
|
image: ${ZROK_CONTAINER_IMAGE:-docker.io/openziti/zrok}
|
|
depends_on:
|
|
zrok-init:
|
|
condition: service_completed_successfully
|
|
entrypoint: zrok-enable.bash
|
|
volumes:
|
|
- zrok_env:/mnt
|
|
environment:
|
|
STATE_DIRECTORY: /mnt
|
|
ZROK_ENABLE_TOKEN:
|
|
ZROK_API_ENDPOINT:
|
|
ZROK_ENVIRONMENT_NAME:
|
|
|
|
# reserve zrok frontend subdomain and start sharing the target
|
|
zrok-share:
|
|
image: ${ZROK_CONTAINER_IMAGE:-docker.io/openziti/zrok}
|
|
restart: unless-stopped
|
|
entrypoint: zrok-share.bash
|
|
depends_on:
|
|
zrok-enable:
|
|
condition: service_completed_successfully
|
|
volumes:
|
|
- zrok_env:/mnt
|
|
environment:
|
|
# internal configuration
|
|
STATE_DIRECTORY: /mnt # zrok homedir in container
|
|
|
|
# most relevant options
|
|
ZROK_UNIQUE_NAME: # name is used to construct frontend domain name, e.g. "myapp" in "myapp.share.zrok.io"
|
|
ZROK_BACKEND_MODE: # web, caddy, drive, proxy
|
|
ZROK_TARGET: # backend target, is a path in container filesystem unless proxy mode
|
|
ZROK_INSECURE: # "--insecure" if proxy target has unverifiable TLS server certificate
|
|
ZROK_OAUTH_PROVIDER: # google, github
|
|
ZROK_OAUTH_EMAILS: # allow space-separated list of OAuth email address glob patterns
|
|
ZROK_BASIC_AUTH: # username:password, mutually-exclusive with ZROK_OAUTH_PROVIDER
|
|
|
|
# least relevant options
|
|
ZROK_VERBOSE: # "--verbose"
|
|
ZROK_SHARE_OPTS: # additional arguments to "zrok reserve public" command
|
|
ZROK_FRONTENDS: # "public"
|
|
PFXLOG_NO_JSON: "true" # suppress JSON logging format
|
|
|
|
# demo server
|
|
zrok-test:
|
|
image: ${ZROK_CONTAINER_IMAGE:-docker.io/openziti/zrok}
|
|
command: test endpoint --address 0.0.0.0 # 9090
|
|
|
|
volumes:
|
|
zrok_env:
|