- один инстанс на два сайта, gc-main и gc-photo: нужный выбирается по Host - домены ведутся в goatcounter_sites (group_vars), оттуда же рендерятся имена в Caddyfile - сайты и первый пользователь заводятся идемпотентно, креды из vault
46 lines
2.6 KiB
YAML
46 lines
2.6 KiB
YAML
# GoatCounter — веб-аналитика (github.com/arp242/goatcounter).
|
||
# See versions: https://hub.docker.com/r/arp242/goatcounter/tags
|
||
#
|
||
# Образ ходит от собственного пользователя goatcounter (uid 1000 из alpine),
|
||
# поэтому подменяем его на системного владельца смонтированного каталога.
|
||
# Бинарник собран с osusergo/netgo и записи в /etc/passwd не требует.
|
||
#
|
||
# CMD образа — `serve -automigrate`, его не переопределяем: миграции должны
|
||
# накатываться сами при обновлении версии. Остальные флаги идут через
|
||
# GOATCOUNTER_<FLAG> (дефис в имени флага -> подчёркивание). Неизвестная
|
||
# переменная с этим префиксом валит старт, так что новые добавлять только
|
||
# сверяясь с `goatcounter help serve`.
|
||
#
|
||
# Рабочая директория в образе — /home/goatcounter, БД по умолчанию лежит в
|
||
# ./goatcounter-data/db.sqlite3, то есть внутри смонтированного data.
|
||
|
||
services:
|
||
|
||
goatcounter_app:
|
||
image: arp242/goatcounter:2.7.0
|
||
container_name: goatcounter_app
|
||
restart: unless-stopped
|
||
user: "{{ app_owner_uid }}:{{ app_owner_gid }}"
|
||
networks:
|
||
- "web_proxy_network"
|
||
volumes:
|
||
- "{{ data_dir }}:/home/goatcounter/goatcounter-data"
|
||
environment:
|
||
# TLS терминирует Caddy. `http` — не поднимать собственный TLS и не
|
||
# ходить за ACME-сертификатом; https goatcounter определяет по
|
||
# X-Forwarded-Proto, IP клиента — по X-Forwarded-For (их шлёт Caddy).
|
||
- GOATCOUNTER_TLS=http
|
||
- GOATCOUNTER_LISTEN=:8080
|
||
|
||
# Почта (Yandex Cloud Postbox, те же секреты, что у outline/wakapi):
|
||
# сброс пароля и еженедельные отчёты. STARTTLS — схема smtp://, а не
|
||
# smtps://. Экранированные логин/пароль приходят из плейбука.
|
||
- GOATCOUNTER_SMTP=smtp://{{ postbox_user_enc }}:{{ postbox_pass_enc }}@{{ postbox_host }}:{{ postbox_port }}
|
||
# Без явного -email-from goatcounter зовёт user.Current() и падает,
|
||
# потому что подменённого uid нет в /etc/passwd образа.
|
||
- GOATCOUNTER_EMAIL_FROM=goatcounter@vakhrushev.me
|
||
|
||
networks:
|
||
web_proxy_network:
|
||
external: true
|