Files
pet-project-server/files/goatcounter/docker-compose.template.yml
T
av 889c8a565e
Linting / YAML Lint (push) Canceled after 0s
Linting / Ansible Lint (push) Canceled after 0s
добавлен goatcounter для веб-аналитики
- один инстанс на два сайта, gc-main и gc-photo: нужный выбирается по Host
- домены ведутся в goatcounter_sites (group_vars), оттуда же рендерятся имена в Caddyfile
- сайты и первый пользователь заводятся идемпотентно, креды из vault
2026-08-21 22:06:06 +03:00

46 lines
2.6 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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