81 lines
2.5 KiB
Django/Jinja
81 lines
2.5 KiB
Django/Jinja
[Quadlet]
|
|
DefaultDependencies=false
|
|
|
|
[Unit]
|
|
Description=RomM
|
|
|
|
After=redis_romm.service
|
|
Wants=redis_romm.service
|
|
|
|
[Container]
|
|
Image=docker.io/rommapp/romm:{{ version['containers']['romm'] }}
|
|
ContainerName=romm
|
|
HostName=romm
|
|
|
|
PublishPort={{ services['romm']['ports']['http'] }}:8080/tcp
|
|
|
|
# Volumes
|
|
Volume=%h/data/containers/romm/library:/romm/library:rw
|
|
Volume=%h/data/containers/romm/resources:/romm/resources:rw
|
|
Volume=%h/data/containers/romm/assets:/romm/assets:rw
|
|
Volume=%h/containers/romm/ssl:/etc/ssl/romm:ro
|
|
|
|
# General
|
|
Environment="TZ={{ timezone }}"
|
|
Environment="ROMM_BASE_URL=https://{{ services['romm']['domain']['public'] }}.{{ domain['public'] }}"
|
|
Environment="DISABLE_SETUP_WIZARD=true"
|
|
Environment="DISABLE_USERPASS_LOGIN=true"
|
|
|
|
# Secrets
|
|
Secret=ROMM_AUTH_SECRET_KEY,type=env,target=ROMM_AUTH_SECRET_KEY
|
|
|
|
# Database
|
|
Environment="ROMM_DB_DRIVER=postgresql"
|
|
Environment="DB_HOST={{ services['postgresql']['domain']['internal'] }}.{{ domain['internal'] }}"
|
|
Environment="DB_PORT={{ services['postgresql']['ports']['tcp'] }}"
|
|
Environment="DB_NAME=romm_db"
|
|
Environment="DB_USER=romm"
|
|
Environment="PGSSLMODE=verify-full"
|
|
Environment="PGSSLROOTCERT=/etc/ssl/romm/{{ root_cert_filename }}"
|
|
Secret=ROMM_DATABASE_PASSWORD,type=env,target=DB_PASSWD
|
|
|
|
# Redis
|
|
Environment="REDIS_HOST=host.containers.internal"
|
|
Environment="REDIS_PORT={{ services['romm']['ports']['redis'] }}"
|
|
|
|
# OIDC
|
|
Environment="OIDC_ENABLED=true"
|
|
Environment="OIDC_PROVIDER=authelia"
|
|
Environment="OIDC_CLIENT_ID=romm"
|
|
Environment="OIDC_REDIRECT_URI=https://{{ services['romm']['domain']['public'] }}.{{ domain['public'] }}/api/oauth/openid"
|
|
Environment="OIDC_SERVER_APPLICATION_URL=https://{{ services['authelia']['domain']['public'] }}.{{ domain['public'] }}"
|
|
Environment="OIDC_USERNAME_ATTRIBUTE=preferred_username"
|
|
Environment="OIDC_ALLOW_REGISTRATION=true"
|
|
Environment="OIDC_CLAIM_ROLES=groups"
|
|
Environment="OIDC_ROLE_ADMIN=admins"
|
|
Environment="OIDC_ROLE_VIEWER=users"
|
|
Environment="OIDC_AUTOLOGIN=false"
|
|
Secret=ROMM_OIDC_CLIENT_SECRET,type=env,target=OIDC_CLIENT_SECRET
|
|
|
|
# Players
|
|
Environment="DISABLE_EMULATOR_JS=false"
|
|
Environment="DISABLE_RUFFLE_RS=false"
|
|
|
|
# Metadata
|
|
Environment="HASHEOUS_API_ENABLED=true"
|
|
#Environment="PLAYMATCH_API_ENABLED=true"
|
|
|
|
# Optional
|
|
Environment="LOGLEVEL=INFO"
|
|
Environment="DISABLE_LOGS_VIEWER=true"
|
|
|
|
[Service]
|
|
ExecStartPre=/usr/bin/nc -zv {{ services['postgresql']['domain']['internal'] }}.{{ domain['internal'] }} {{ services['postgresql']['ports']['tcp'] }}
|
|
|
|
Restart=always
|
|
RestartSec=10s
|
|
TimeoutStopSec=120
|
|
|
|
[Install]
|
|
WantedBy=default.target
|