90 lines
3.7 KiB
Python
90 lines
3.7 KiB
Python
|
assert node.has_bundle('docker-engine')
|
||
|
|
||
|
defaults = {
|
||
|
'docker-engine': {
|
||
|
'containers': {
|
||
|
'goauthentik-server': {
|
||
|
'image': 'ghcr.io/goauthentik/server:latest',
|
||
|
'command': 'server',
|
||
|
'environment': {
|
||
|
'AUTHENTIK_POSTGRESQL__HOST': 'goauthentik-postgresql',
|
||
|
'AUTHENTIK_POSTGRESQL__NAME': 'goauthentik',
|
||
|
'AUTHENTIK_POSTGRESQL__PASSWORD': repo.vault.password_for(f'{node.name} postgresql goauthentik'),
|
||
|
'AUTHENTIK_POSTGRESQL__USER': 'goauthentik',
|
||
|
'AUTHENTIK_REDIS__HOST': 'goauthentik-redis',
|
||
|
'AUTHENTIK_SECRET_KEY': repo.vault.password_for(f'{node.name} goauthentik secret key'),
|
||
|
},
|
||
|
'volumes': {
|
||
|
'media': '/media',
|
||
|
'templates': '/templates',
|
||
|
},
|
||
|
'ports': {
|
||
|
'9000': '9000',
|
||
|
'9443': '9443',
|
||
|
},
|
||
|
'needs': {
|
||
|
'svc_systemd:docker-goauthentik-postgresql',
|
||
|
'svc_systemd:docker-goauthentik-redis',
|
||
|
},
|
||
|
'requires': {
|
||
|
'docker-goauthentik-postgresql.service',
|
||
|
'docker-goauthentik-redis.service',
|
||
|
},
|
||
|
},
|
||
|
'goauthentik-worker': {
|
||
|
'image': 'ghcr.io/goauthentik/server:latest',
|
||
|
'command': 'worker',
|
||
|
'user': 'docker-goauthentik-server',
|
||
|
'environment': {
|
||
|
'AUTHENTIK_POSTGRESQL__HOST': 'goauthentik-postgresql',
|
||
|
'AUTHENTIK_POSTGRESQL__NAME': 'goauthentik',
|
||
|
'AUTHENTIK_POSTGRESQL__PASSWORD': repo.vault.password_for(f'{node.name} postgresql goauthentik'),
|
||
|
'AUTHENTIK_POSTGRESQL__USER': 'goauthentik',
|
||
|
'AUTHENTIK_REDIS__HOST': 'goauthentik-redis',
|
||
|
'AUTHENTIK_SECRET_KEY': repo.vault.password_for(f'{node.name} goauthentik secret key'),
|
||
|
},
|
||
|
'volumes': {
|
||
|
'/var/opt/docker-engine/goauthentik-server/media': '/media',
|
||
|
'/var/opt/docker-engine/goauthentik-server/certs': '/certs',
|
||
|
'/var/opt/docker-engine/doauthentik-server/templates': '/templates',
|
||
|
},
|
||
|
'needs': {
|
||
|
'svc_systemd:docker-goauthentik-postgresql',
|
||
|
'svc_systemd:docker-goauthentik-redis',
|
||
|
},
|
||
|
'requires': {
|
||
|
'docker-goauthentik-postgresql.service',
|
||
|
'docker-goauthentik-redis.service',
|
||
|
},
|
||
|
},
|
||
|
'goauthentik-postgresql': {
|
||
|
'image': 'docker.io/library/postgres:16-alpine',
|
||
|
'environment': {
|
||
|
'POSTGRES_PASSWORD': repo.vault.password_for(f'{node.name} postgresql goauthentik'),
|
||
|
'POSTGRES_USER': 'goauthentik',
|
||
|
'POSTGRES_DB': 'goauthentik',
|
||
|
},
|
||
|
'volumes': {
|
||
|
'database': '/var/lib/postgresql/data',
|
||
|
},
|
||
|
},
|
||
|
'goauthentik-redis': {
|
||
|
'image': 'docker.io/library/redis:alpine',
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
'nginx': {
|
||
|
'vhosts': {
|
||
|
'goauthentik': {
|
||
|
'locations': {
|
||
|
'/': {
|
||
|
'target': 'http://127.0.0.1:9000/',
|
||
|
'websockets': True,
|
||
|
'max_body_size': '5000m',
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
}
|