heather: enable teable stack (teable.iscg.dev)
app + postgres:15 + redis. Данные перенесены с iscg-dev (2026-07-12): - postgres восстановлен из pg_dump (18M) с новым паролем - .assets (3.2G, 4392 файлов) в named volume heather_teable-assets - teable-data, redis пустые (наполнятся при старте) Секреты (POSTGRES_PASSWORD, SECRET_KEY, PRISMA_DATABASE_URL) новые, в pass iscg.dev/teable/. env-файл /var/lib/teable-secrets/teable.env на heather (вне git, root:docker 0640).
This commit is contained in:
parent
260a6c64bf
commit
3e3241683f
1 changed files with 43 additions and 24 deletions
|
|
@ -33,6 +33,7 @@
|
|||
teable-data = {};
|
||||
teable-db = {};
|
||||
teable-redis = {};
|
||||
teable-assets = {};
|
||||
# jitsi-стек (когда добавим):
|
||||
# jitsi-prosody-config = {};
|
||||
# jitsi-jvb-config = {};
|
||||
|
|
@ -91,30 +92,48 @@
|
|||
# или секцией после forgejo.
|
||||
|
||||
# === Teable (teable.iscg.dev) ===
|
||||
# Тяжёлый стек: app + postgres + redis. Добавить после forgejo.
|
||||
#
|
||||
# teable = {
|
||||
# service.image = "teableio/teable:latest";
|
||||
# service.container_name = "teable";
|
||||
# service.restart = "unless-stopped";
|
||||
# service.ports = [ "127.0.0.1:2345:3000" ];
|
||||
# service.volumes = [ "teable-data:/app/data" ];
|
||||
# service.depends_on = [ "teable-db" "teable-redis" ];
|
||||
# # TODO: env (DATABASE_URL, REDIS_URL, SECRET_KEY, PUBLIC_ORIGIN, ...)
|
||||
# };
|
||||
# teable-db = {
|
||||
# service.image = "postgres:15-alpine";
|
||||
# service.container_name = "teable-db";
|
||||
# service.restart = "unless-stopped";
|
||||
# service.volumes = [ "teable-db:/var/lib/postgresql/data" ];
|
||||
# # TODO: POSTGRES_PASSWORD (sops)
|
||||
# };
|
||||
# teable-redis = {
|
||||
# service.image = "redis:alpine";
|
||||
# service.container_name = "teable-redis";
|
||||
# service.restart = "unless-stopped";
|
||||
# service.volumes = [ "teable-redis:/data" ];
|
||||
# };
|
||||
# Стек: app + postgres + redis. Данные перенесены с iscg-dev (2026-07-12):
|
||||
# - postgres восстановлен из pg_dump (18M, consistent, без остановки источника)
|
||||
# - .assets (3.2G, 4392 файлов) в named volume heather_teable-assets
|
||||
# - teable-data (local-storage) пустой — наполняется при работе
|
||||
# - redis пустой — кэш, перестраивается
|
||||
# Секреты (POSTGRES_PASSWORD, SECRET_KEY) новые, в pass iscg.dev/teable/.
|
||||
# НЕ пушить env-файл в forgejo — secrets.
|
||||
teable = {
|
||||
service.image = "teableio/teable:latest";
|
||||
service.container_name = "teable";
|
||||
service.restart = "unless-stopped";
|
||||
service.ports = [ "127.0.0.1:2345:3000" ];
|
||||
service.volumes = [
|
||||
"teable-data:/app/.local-storage"
|
||||
"teable-assets:/app/.assets"
|
||||
];
|
||||
service.depends_on = [ "teable-db" "teable-redis" ];
|
||||
service.env_file = [ "/var/lib/teable-secrets/teable.env" ];
|
||||
service.environment = {
|
||||
POSTGRES_HOST = "teable-db";
|
||||
POSTGRES_PORT = "5432";
|
||||
POSTGRES_DB = "teable";
|
||||
POSTGRES_USER = "teable";
|
||||
REDIS_URL = "redis://teable-redis:6379";
|
||||
PUBLIC_DOMAIN = "teable.iscg.dev";
|
||||
PUBLIC_ORIGIN = "https://teable.iscg.dev";
|
||||
};
|
||||
};
|
||||
teable-db = {
|
||||
service.image = "postgres:15-alpine";
|
||||
service.container_name = "teable-db";
|
||||
service.restart = "unless-stopped";
|
||||
service.volumes = [ "teable-db:/var/lib/postgresql/data" ];
|
||||
service.env_file = [ "/var/lib/teable-secrets/teable.env" ];
|
||||
};
|
||||
teable-redis = {
|
||||
service.image = "redis:alpine";
|
||||
service.container_name = "teable-redis";
|
||||
service.restart = "unless-stopped";
|
||||
service.command = "redis-server --appendonly yes";
|
||||
service.volumes = [ "teable-redis:/data" ];
|
||||
};
|
||||
|
||||
# === Silverbullet (note.iscg.dev) — ИСКЛЮЧЕНИЕ: bind mount ===
|
||||
# Space = /srv/syncthing/herbarium (sync'ается syncthing на устройства).
|
||||
|
|
|
|||
Loading…
Reference in a new issue