50 lines
1.5 KiB
Django/Jinja
50 lines
1.5 KiB
Django/Jinja
[Quadlet]
|
|
DefaultDependencies=false
|
|
|
|
[Unit]
|
|
Description=AFFiNE
|
|
|
|
After=redis_affine.service manticore_affine.service
|
|
Wants=redis_affine.service manticore_affine.service
|
|
|
|
[Container]
|
|
Image=ghcr.io/toeverything/affine:{{ version['containers']['affine'] }}
|
|
ContainerName=affine
|
|
HostName=affine
|
|
|
|
PublishPort={{ services['affine']['ports']['http'] }}:3010
|
|
|
|
Volume=%h/data/containers/affine:/root/.affine/storage:rw
|
|
Volume=%h/containers/affine/config:/root/.affine/config
|
|
Volume=%h/containers/affine/ssl:/etc/ssl/affine:ro
|
|
|
|
# General
|
|
Environment="TZ=Asia/Seoul"
|
|
## OIDC callback URIs
|
|
Environment="AFFINE_SERVER_HOST={{ services['affine']['domain']['public'] }}.{{ domain['public'] }}"
|
|
Environment="AFFINE_SERVER_EXTERNAL_URL=https://{{ services['affine']['domain']['public'] }}.{{ domain['public'] }}"
|
|
Environment="AFFINE_SERVER_HTTPS=true"
|
|
|
|
Secret=AFFINE_PRIVATE_KEY,type=env
|
|
|
|
# Database
|
|
Secret=AFFINE_DATABASE_URL,type=env,target=DATABASE_URL
|
|
## Enable AI function: this needs pgvector
|
|
|
|
# Redis
|
|
Environment="REDIS_SERVER_HOST=host.containers.internal"
|
|
Environment="REDIS_SERVER_PORT={{ services['affine']['ports']['redis'] }}"
|
|
|
|
# Indexer
|
|
Environment="AFFINE_INDEXER_ENABLED=true"
|
|
Environment="AFFINE_INDEXER_SEARCH_ENDPOINT=http://host.containers.internal:{{ services['affine']['ports']['manticore'] }}"
|
|
|
|
[Service]
|
|
ExecStartPre=/usr/bin/nc -zv {{ services['postgresql']['domain'] }}.{{ domain['internal'] }} {{ services['postgresql']['ports']['tcp'] }}
|
|
Restart=always
|
|
RestartSec=10s
|
|
TimeoutStopSec=120
|
|
|
|
[Install]
|
|
WantedBy=default.target
|