pullup
This commit is contained in:
parent
084f9be41d
commit
1b7cfff6f0
|
@ -0,0 +1,145 @@
|
|||
# build 0
|
||||
labels:
|
||||
hostname: "macmini7"
|
||||
clone:
|
||||
git:
|
||||
image: woodpeckerci/plugin-git
|
||||
settings:
|
||||
partial: false
|
||||
depth: 1
|
||||
steps:
|
||||
# Build Step for staging Branch
|
||||
build-staging:
|
||||
name: build-staging
|
||||
image: woodpeckerci/plugin-docker-buildx
|
||||
secrets: [REGISTRY_USER, REGISTRY_PASSWORD]
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
commands:
|
||||
- echo "Building application for staging branch"
|
||||
- echo "$${REGISTRY_PASSWORD}" | docker login -u "$${REGISTRY_USER}" --password-stdin git.nixc.us
|
||||
- echo compose build
|
||||
- docker compose -f docker-compose.staging.yml build --no-cache
|
||||
when:
|
||||
branch: main
|
||||
event: push
|
||||
# path:
|
||||
# include: [ 'stack.production.yml', 'stack.staging.yml', 'docker-compose.staging.yml', 'docker-compose.production.yml', 'Dockerfile', '*.tests.ts' ]
|
||||
|
||||
deploy-new:
|
||||
name: deploy-new
|
||||
when:
|
||||
branch: main
|
||||
# path:
|
||||
# include: [ 'stack.production.yml', 'stack.staging.yml', 'docker-compose.staging.yml', 'docker-compose.production.yml', 'Dockerfile', '*.tests.ts' ]
|
||||
image: woodpeckerci/plugin-docker-buildx
|
||||
secrets: [REGISTRY_USER, REGISTRY_PASSWORD]
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
commands:
|
||||
- echo "$${REGISTRY_PASSWORD}" | docker login -u "$${REGISTRY_USER}" --password-stdin git.nixc.us
|
||||
- echo compose push
|
||||
- docker compose -f docker-compose.staging.yml push
|
||||
# - docker stack deploy --with-registry-auth -c ./stack.staging.yml $${CI_REPO_NAME}-staging
|
||||
|
||||
# # Wait for Deploy to Complete
|
||||
# wait-for-deploy-staging:
|
||||
# name: wait-for-deploy-staging
|
||||
# image: woodpeckerci/plugin-git
|
||||
# commands:
|
||||
# - echo "Waiting for staging deploy step to complete rollout."
|
||||
# - sleep 60
|
||||
# when:
|
||||
# - branch: main
|
||||
# - event: push
|
||||
|
||||
# # Run Automated Tests on staging Branch
|
||||
# test-staging:
|
||||
# name: run-tests-staging
|
||||
# image: git.nixc.us/colin/playwright:latest
|
||||
# secrets: [ base_url ]
|
||||
# when:
|
||||
# - branch: main
|
||||
# - event: push
|
||||
# - path:
|
||||
# include: [ 'tests/', 'src/','docker-compose.staging.yml', 'docker-compose.production.yml', '*.tests.ts' ] # Specify paths relevant to tests
|
||||
# volumes:
|
||||
# - /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
|
||||
cleanup-staging:
|
||||
name: cleanup-staging
|
||||
when:
|
||||
branch: main
|
||||
# path:
|
||||
# include: [ 'stack.production.yml', 'stack.staging.yml', 'docker-compose.staging.yml', 'docker-compose.production.yml', 'Dockerfile', '*.tests.ts' ]
|
||||
image: woodpeckerci/plugin-docker-buildx
|
||||
secrets: [REGISTRY_USER, REGISTRY_PASSWORD]
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
commands:
|
||||
# - docker stack rm $${CI_REPO_NAME}-staging
|
||||
## added fault tolerance for docker stack rm
|
||||
- for i in {1..5}; do docker stack rm ${CI_REPO_NAME}-staging && break || sleep 10; done
|
||||
- docker compose -f docker-compose.staging.yml down
|
||||
- docker compose -f docker-compose.staging.yml rm -f
|
||||
|
||||
# Build Step for staging Branch
|
||||
build-push-production:
|
||||
name: build-push-production
|
||||
image: woodpeckerci/plugin-docker-buildx
|
||||
secrets: [REGISTRY_USER, REGISTRY_PASSWORD]
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
commands:
|
||||
- echo "Building application for staging branch"
|
||||
- echo "$${REGISTRY_PASSWORD}" | docker login -u "$${REGISTRY_USER}" --password-stdin git.nixc.us
|
||||
- echo compose build
|
||||
- docker compose -f docker-compose.production.yml build --no-cache
|
||||
- docker compose -f docker-compose.production.yml push
|
||||
when:
|
||||
branch: main
|
||||
event: [push, cron]
|
||||
# path:
|
||||
# include: [ 'stack.production.yml', 'stack.staging.yml', 'docker-compose.staging.yml', 'docker-compose.production.yml', 'Dockerfile', '*.tests.ts' ]
|
||||
|
||||
# Deploy to Production Branch
|
||||
deploy-production:
|
||||
name: deploy-production
|
||||
image: woodpeckerci/plugin-docker-buildx
|
||||
secrets: [REGISTRY_USER, REGISTRY_PASSWORD, QBT_PASSWORD]
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
commands:
|
||||
- echo "$${REGISTRY_PASSWORD}" | docker login -u "$${REGISTRY_USER}" --password-stdin git.nixc.us
|
||||
- docker stack deploy --with-registry-auth -c ./stack.production.yml $${CI_REPO_NAME}
|
||||
# - docker image rm git.nixc.us/colin/$${CI_REPO_NAME}:production
|
||||
when:
|
||||
branch: main
|
||||
event: [push, cron]
|
||||
# path:
|
||||
# include: [ 'stack.production.yml', 'stack.staging.yml', 'docker-compose.staging.yml', 'docker-compose.production.yml', 'Dockerfile', '*.tests.ts' ]
|
||||
|
||||
|
||||
# # Wait for Deploy to Complete
|
||||
# wait-for-deploy-production:
|
||||
# name: wait-for-deploy-production
|
||||
# image: woodpeckerci/plugin-git
|
||||
# commands:
|
||||
# - echo "Waiting for deploy step to complete rollout."
|
||||
# - sleep 60
|
||||
# when:
|
||||
# branch: main
|
||||
# event: push
|
||||
|
||||
# # Run Post-Deployment Smoke Tests
|
||||
# post-deploy-smoke-tests-git-nixc-us:
|
||||
# name: run-post-deploy-smoke-tests-git-nixc-us
|
||||
# image: git.nixc.us/colin/playwright:latest
|
||||
# # secrets: [TEST_USER, TEST_PASSWORD]
|
||||
# environment:
|
||||
# - BASE_URL=https://git.nixc.us
|
||||
# when:
|
||||
# branch: main
|
||||
# event: push
|
||||
# # path:
|
||||
# # include: [ 'stack.production.yml', 'stack.staging.yml', 'docker-compose.staging.yml', 'docker-compose.production.yml', 'Dockerfile', '*.tests.ts' ]
|
|
@ -0,0 +1,18 @@
|
|||
version: '3.8'
|
||||
|
||||
services:
|
||||
mariadb:
|
||||
build:
|
||||
context: ./docker/mariadb/
|
||||
dockerfile: Dockerfile.production
|
||||
image: git.nixc.us/nixius/media:production-mariadb
|
||||
redis:
|
||||
build:
|
||||
context: ./docker/redis/
|
||||
dockerfile: Dockerfile.production
|
||||
image: git.nixc.us/nixius/media:production-redis
|
||||
authelia:
|
||||
build:
|
||||
context: ./docker/authelia/
|
||||
dockerfile: Dockerfile.production
|
||||
image: git.nixc.us/nixius/media:production-authelia
|
|
@ -0,0 +1,33 @@
|
|||
version: '3.8'
|
||||
|
||||
services:
|
||||
jellyfin:
|
||||
build:
|
||||
context: ./docker/jellyfin/
|
||||
dockerfile: Dockerfile
|
||||
image: git.nixc.us/colin/media:staging-jellyfin
|
||||
qbt:
|
||||
build:
|
||||
context: ./docker/qbt/
|
||||
dockerfile: Dockerfile
|
||||
image: git.nixc.us/colin/media:staging-qbt
|
||||
sonarr:
|
||||
build:
|
||||
context: ./docker/sonarr/
|
||||
dockerfile: Dockerfile
|
||||
image: git.nixc.us/colin/media:staging-sonarr
|
||||
radarr:
|
||||
build:
|
||||
context: ./docker/radarr/
|
||||
dockerfile: Dockerfile
|
||||
image: git.nixc.us/colin/media:staging-radarr
|
||||
jackett:
|
||||
build:
|
||||
context: ./docker/jackett/
|
||||
dockerfile: Dockerfile
|
||||
image: git.nixc.us/colin/media:staging-jackett
|
||||
socks5:
|
||||
build:
|
||||
context: ./docker/socks5/
|
||||
dockerfile: Dockerfile
|
||||
image: git.nixc.us/colin/media:staging-socks5
|
|
@ -0,0 +1,10 @@
|
|||
FROM authelia/authelia:4
|
||||
|
||||
COPY config/ /config/
|
||||
|
||||
CMD ["authelia", \
|
||||
"--config=/config/configuration.server.yml", \
|
||||
"--config=/config/configuration.ldap.yml", \
|
||||
"--config=/config/configuration.acl.yml", \
|
||||
"--config=/config/configuration.identity.providers.yml", \
|
||||
"--config=/config/configuration.oidc.clients.yml"]
|
|
@ -0,0 +1 @@
|
|||
FROM git.nixc.us/nixius/authelia:staging-authelia
|
|
@ -0,0 +1,24 @@
|
|||
access_control:
|
||||
default_policy: deny
|
||||
rules:
|
||||
|
||||
# Allow free access from local network
|
||||
- domain: "*.{{ env "TRAEFIK_DOMAIN" }}"
|
||||
policy: bypass
|
||||
networks:
|
||||
- 192.168.0.0/16
|
||||
- 172.16.0.0/12
|
||||
- 10.0.0.0/8
|
||||
|
||||
# Put WAN Access rules here
|
||||
- domain: {{ env "TRAEFIK_DOMAIN" }}
|
||||
resources:
|
||||
- "^/.well-known([/?].*)?$"
|
||||
policy: bypass
|
||||
|
||||
- domain: {{ env "TRAEFIK_DOMAIN" }}
|
||||
subject: "group:admin"
|
||||
policy: two_factor
|
||||
|
||||
- domain: headscale.{{ env "TRAEFIK_DOMAIN" }}
|
||||
policy: bypass
|
|
@ -0,0 +1,19 @@
|
|||
identity_providers:
|
||||
oidc:
|
||||
lifespans:
|
||||
access_token: 1h
|
||||
authorize_code: 1m
|
||||
id_token: 1h
|
||||
refresh_token: 90m
|
||||
enable_client_debug_messages: false
|
||||
enforce_pkce: public_clients_only
|
||||
cors:
|
||||
endpoints:
|
||||
- authorization
|
||||
- token
|
||||
- revocation
|
||||
- introspection
|
||||
- userinfo
|
||||
allowed_origins:
|
||||
- "*"
|
||||
allowed_origins_from_client_redirect_uris: false
|
|
@ -0,0 +1,32 @@
|
|||
identity_providers:
|
||||
oidc:
|
||||
hmac_secret: {{ secret "/config/secrets/IDENTITY_PROVIDERS_OIDC_HMAC_SECRET" }}
|
||||
jwks:
|
||||
- key: {{ secret "/config/secrets/IDENTITY_PROVIDERS_OIDC_JWKS_KEY" | mindent 10 "|" | msquote }}
|
||||
|
||||
authorization_policies:
|
||||
|
||||
headscale:
|
||||
default_policy: deny
|
||||
rules:
|
||||
- policy: one_factor
|
||||
subject: group:headscale
|
||||
# To generate secrets:
|
||||
# docker exec -it authelia authelia crypto hash generate pbkdf2 --variant sha512 --random --random.length 72 --random.charset rfc3986
|
||||
clients:
|
||||
|
||||
- client_id: headscale
|
||||
client_name: Headscale
|
||||
client_secret: {{ secret "/config/secrets/CLIENT_SECRET_HEADSCALE" }}
|
||||
public: false
|
||||
authorization_policy: headscale
|
||||
consent_mode: implicit
|
||||
scopes:
|
||||
- openid
|
||||
- email
|
||||
- profile
|
||||
redirect_uris:
|
||||
- https://headscale.{{ env "TRAEFIK_DOMAIN" }}/oidc/callback
|
||||
- https://headscale.{{ env "TRAEFIK_DOMAIN" }}/admin/oidc/callback # headplane on same domain as headscale
|
||||
# - https://headplane.{{ env "TRAEFIK_DOMAIN" }}/admin/oidc/callback # headplane on it's own domain
|
||||
userinfo_signed_response_alg: none
|
|
@ -0,0 +1 @@
|
|||
FROM mariadb:latest
|
|
@ -0,0 +1 @@
|
|||
FROM git.nixc.us/nixius/authelia:staging-mariadb
|
|
@ -0,0 +1 @@
|
|||
FROM ghcr.io/microsoft/garnet
|
|
@ -0,0 +1 @@
|
|||
FROM git.nixc.us/nixius/authelia:staging-redis
|
|
@ -0,0 +1,31 @@
|
|||
#!/bin/bash
|
||||
commit_message=${1:-"pullup"}
|
||||
|
||||
update_submodule() {
|
||||
local submodule_path="$1"
|
||||
if [ -d "$submodule_path" ]; then
|
||||
echo "Updating submodule: $submodule_path"
|
||||
cd "$submodule_path" || return
|
||||
git checkout main
|
||||
git pull origin main
|
||||
cd - || return
|
||||
else
|
||||
echo "Submodule path $submodule_path does not exist."
|
||||
fi
|
||||
}
|
||||
|
||||
# Update submodules ./.woodpecker/ and ./secrets/
|
||||
update_submodule "./.woodpecker"
|
||||
update_submodule "./secrets"
|
||||
|
||||
# Add changes to the staging area
|
||||
git add .
|
||||
|
||||
# Commit changes with a custom message, if provided, or a default message
|
||||
commit_message=${1:-"pullup"}
|
||||
git commit -m "$commit_message"
|
||||
|
||||
# Push changes to the remote repository
|
||||
git push
|
||||
|
||||
echo "Submodules are updated and changes are pushed to the main repository."
|
2
secrets
2
secrets
|
@ -1 +1 @@
|
|||
Subproject commit 8ecec767c117ec3b03d52fcfeba3602ced4cb6df
|
||||
Subproject commit cdf31e6df66fbb0e6d2b2497845dc32ac2f17bad
|
|
@ -0,0 +1,106 @@
|
|||
version: '3.7'
|
||||
x-authelia-env: &authelia-env
|
||||
X_AUTHELIA_EMAIL: authelia@nixc.us
|
||||
X_AUTHELIA_SITE_NAME: ATLAS
|
||||
# X_AUTHELIA_DUO_HOSTNAME: my_duo_hostname
|
||||
X_AUTHELIA_CONFIG_FILTERS: template
|
||||
X_AUTHELIA_LDAP_DOMAIN: dc=nixc,dc=us
|
||||
TRAEFIK_DOMAIN: nixc.us
|
||||
# CONFIG: /home/deleted-porcupine/docker-configs
|
||||
|
||||
networks:
|
||||
default:
|
||||
driver: overlay
|
||||
traefik:
|
||||
external: true
|
||||
ad:
|
||||
external: true
|
||||
services:
|
||||
authelia:
|
||||
image: git.nixc.us/nixius/authelia:production-authelia
|
||||
command:
|
||||
- "authelia"
|
||||
- "--config=/config/configuration.server.yml"
|
||||
- "--config=/config/configuration.ldap.yml"
|
||||
- "--config=/config/configuration.acl.yml"
|
||||
- "--config=/config/configuration.identity.providers.yml"
|
||||
- "--config=/config/configuration.oidc.clients.yml"
|
||||
environment:
|
||||
<<: *authelia-env
|
||||
volumes:
|
||||
- /mnt/tank/persist/nixc.us/authelia/production/config/db.sqlite3:/config/db.sqlite3
|
||||
networks:
|
||||
- traefik
|
||||
- default
|
||||
- ad
|
||||
deploy:
|
||||
placement:
|
||||
constraints:
|
||||
## - node.labels.role == db
|
||||
- node.hostname == ingress.nixc.us
|
||||
# - node.labels.mac-rack == true
|
||||
labels:
|
||||
- "us.nixc.autodeploy=true"
|
||||
- 'traefik.enable=true'
|
||||
- 'traefik.http.routers.production-authelia_authelia.tls=true'
|
||||
- "traefik.http.services.production-authelia_authelia.loadbalancer.server.port=9091"
|
||||
- 'traefik.http.routers.production-authelia_authelia.rule=Host(`login.nixc.us`)'
|
||||
- 'traefik.http.routers.production-authelia_authelia.entrypoints=websecure'
|
||||
- "traefik.http.routers.production-authelia_authelia.tls.certresolver=letsencryptresolver"
|
||||
- "traefik.http.routers.production-authelia_authelia.service=authelia_authelia"
|
||||
- "traefik.docker.network=traefik"
|
||||
## Authelia recommendations
|
||||
- 'traefik.http.middlewares.production-authelia_authelia.forwardauth.address=http://authelia_authelia:9091/api/verify?rd=https://login.nixc.us/'
|
||||
- 'traefik.http.middlewares.production-authelia_authelia.forwardauth.trustForwardHeader=true'
|
||||
- 'traefik.http.middlewares.production-authelia_authelia.forwardauth.authResponseHeaders=Remote-User, Remote-Groups, Remote-Name, Remote-Email'
|
||||
- 'traefik.http.middlewares.production-authelia-basic.forwardauth.address=http://authelia_authelia:9091/api/verify?auth=basic'
|
||||
- 'traefik.http.middlewares.production-authelia-basic.forwardauth.trustForwardHeader=true'
|
||||
- 'traefik.http.middlewares.production-authelia-basic.forwardauth.authResponseHeaders=Remote-User, Remote-Groups, Remote-Name, Remote-Email'
|
||||
|
||||
redis:
|
||||
image: git.nixc.us/nixius/authelia:production-redis
|
||||
# command: redis-server --appendonly yes
|
||||
deploy:
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints:
|
||||
## - node.labels.role == db
|
||||
- node.hostname == ingress.nixc.us
|
||||
# - node.labels.mac-rack == true
|
||||
# preferences:
|
||||
# - spread: node.id
|
||||
labels:
|
||||
- traefik.enable=false
|
||||
- "us.nixc.autodeploy=true"
|
||||
volumes:
|
||||
- /mnt/tank/persist/nixc.us/authelia/production/redis:/data
|
||||
networks:
|
||||
- default
|
||||
|
||||
mariadb:
|
||||
image: git.nixc.us/nixius/authelia:production-mariadb
|
||||
# restart: always
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: authelia
|
||||
MYSQL_DATABASE: authelia
|
||||
MYSQL_USER: authelia
|
||||
MYSQL_PASSWORD: authelia
|
||||
volumes:
|
||||
- '/mnt/tank/persist/nixc.us/authelia/production/db:/var/lib/mysql'
|
||||
deploy:
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints:
|
||||
## - node.labels.role == db
|
||||
- node.hostname == ingress.nixc.us
|
||||
# - node.labels.mac-rack == true
|
||||
# placement:
|
||||
# constraints:
|
||||
# - node.role == manager
|
||||
# preferences:
|
||||
# - spread: node.id
|
||||
labels:
|
||||
- traefik.enable=false
|
||||
- "us.nixc.autodeploy=true"
|
||||
networks:
|
||||
- default
|
|
@ -0,0 +1,107 @@
|
|||
version: '3.7'
|
||||
x-authelia-env: &authelia-env
|
||||
X_AUTHELIA_EMAIL: authelia@nixc.us
|
||||
X_AUTHELIA_SITE_NAME: ATLAS
|
||||
# X_AUTHELIA_DUO_HOSTNAME: my_duo_hostname
|
||||
X_AUTHELIA_CONFIG_FILTERS: template
|
||||
X_AUTHELIA_LDAP_DOMAIN: dc=nixc,dc=us
|
||||
TRAEFIK_DOMAIN: nixc.us
|
||||
# CONFIG: /home/deleted-porcupine/docker-configs
|
||||
|
||||
networks:
|
||||
default:
|
||||
driver: overlay
|
||||
traefik:
|
||||
external: true
|
||||
ad:
|
||||
external: true
|
||||
services:
|
||||
authelia:
|
||||
image: git.nixc.us/nixius/authelia:staging-authelia
|
||||
command:
|
||||
- "authelia"
|
||||
- "--config=/config/configuration.server.yml"
|
||||
- "--config=/config/configuration.ldap.yml"
|
||||
- "--config=/config/configuration.acl.yml"
|
||||
- "--config=/config/configuration.identity.providers.yml"
|
||||
- "--config=/config/configuration.oidc.clients.yml"
|
||||
environment:
|
||||
<<: *authelia-env
|
||||
# volumes:
|
||||
# - /mnt/tank/persist/nixc.us/authelia/staging/config:/config
|
||||
networks:
|
||||
- traefik
|
||||
- default
|
||||
- ad
|
||||
deploy:
|
||||
placement:
|
||||
constraints:
|
||||
## - node.labels.role == db
|
||||
- node.hostname == ingress.nixc.us
|
||||
# - node.labels.mac-rack == true
|
||||
labels:
|
||||
- "us.nixc.autodeploy=true"
|
||||
## https://www.staging-authelia_authelia.com/docs/deployment/supported-proxies/traefik2.x.html
|
||||
- 'traefik.enable=true'
|
||||
- 'traefik.http.routers.staging-authelia_authelia.tls=true'
|
||||
- "traefik.http.services.staging-authelia_authelia.loadbalancer.server.port=9091"
|
||||
- 'traefik.http.routers.staging-authelia_authelia.rule=Host(`staging.login.nixc.us`)'
|
||||
- 'traefik.http.routers.staging-authelia_authelia.entrypoints=websecure'
|
||||
- "traefik.http.routers.staging-authelia_authelia.tls.certresolver=letsencryptresolver"
|
||||
- "traefik.http.routers.staging-authelia_authelia.service=authelia_authelia"
|
||||
- "traefik.docker.network=traefik"
|
||||
## Authelia recommendations
|
||||
- 'traefik.http.middlewares.staging-authelia_authelia.forwardauth.address=http://authelia_authelia:9091/api/verify?rd=https://login.nixc.us/'
|
||||
- 'traefik.http.middlewares.staging-authelia_authelia.forwardauth.trustForwardHeader=true'
|
||||
- 'traefik.http.middlewares.staging-authelia_authelia.forwardauth.authResponseHeaders=Remote-User, Remote-Groups, Remote-Name, Remote-Email'
|
||||
- 'traefik.http.middlewares.staging-authelia-basic.forwardauth.address=http://authelia_authelia:9091/api/verify?auth=basic'
|
||||
- 'traefik.http.middlewares.staging-authelia-basic.forwardauth.trustForwardHeader=true'
|
||||
- 'traefik.http.middlewares.staging-authelia-basic.forwardauth.authResponseHeaders=Remote-User, Remote-Groups, Remote-Name, Remote-Email'
|
||||
|
||||
redis:
|
||||
image: git.nixc.us/nixius/authelia:staging-redis
|
||||
# command: redis-server --appendonly yes
|
||||
deploy:
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints:
|
||||
## - node.labels.role == db
|
||||
- node.hostname == ingress.nixc.us
|
||||
# - node.labels.mac-rack == true
|
||||
# preferences:
|
||||
# - spread: node.id
|
||||
labels:
|
||||
- traefik.enable=false
|
||||
- "us.nixc.autodeploy=true"
|
||||
volumes:
|
||||
- /mnt/tank/persist/nixc.us/authelia/staging/redis:/data
|
||||
networks:
|
||||
- default
|
||||
|
||||
mariadb:
|
||||
image: git.nixc.us/nixius/authelia:staging-mariadb
|
||||
# restart: always
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: authelia
|
||||
MYSQL_DATABASE: authelia
|
||||
MYSQL_USER: authelia
|
||||
MYSQL_PASSWORD: authelia
|
||||
volumes:
|
||||
- '/mnt/tank/persist/nixc.us/authelia/staging/db:/var/lib/mysql'
|
||||
deploy:
|
||||
replicas: 1
|
||||
placement:
|
||||
constraints:
|
||||
## - node.labels.role == db
|
||||
- node.hostname == ingress.nixc.us
|
||||
# - node.labels.mac-rack == true
|
||||
# placement:
|
||||
# constraints:
|
||||
# - node.role == manager
|
||||
# preferences:
|
||||
# - spread: node.id
|
||||
labels:
|
||||
- traefik.enable=false
|
||||
- "us.nixc.autodeploy=true"
|
||||
networks:
|
||||
- default
|
Loading…
Reference in New Issue