From 5acff590bc281bcf2e7f92b20eba03ed831160bd Mon Sep 17 00:00:00 2001 From: Denozordec Date: Wed, 23 Sep 2026 18:45:48 +0700 Subject: [PATCH] =?UTF-8?q?docs(deploy):=20=D1=87=D0=B8=D0=BD=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20SQLITE=5FREADONLY=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D1=85=D0=BE=D0=B4=D0=B0=20=D0=BD=D0=B0?= =?UTF-8?q?=20=D0=BD=D0=B5-root=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ./data и app.db, созданные старым root-контейнером, нужно один раз отдать uid 1000 (node) — иначе migrateSchema падает с SQLITE_READONLY. --- docs/deploy-traefik.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/deploy-traefik.md b/docs/deploy-traefik.md index 064f7c0..8e37909 100644 --- a/docs/deploy-traefik.md +++ b/docs/deploy-traefik.md @@ -61,6 +61,7 @@ Traefik для сертификата создаёт TXT `_acme-challenge.auth ```bash mkdir -p /opt/auth-portal/data +chown -R 1000:1000 /opt/auth-portal/data # контейнер работает от uid 1000 (node) cd /opt/auth-portal # из репозитория или curl: @@ -147,6 +148,17 @@ docker compose down # НЕ делайте down -v без бэкапа — сотрёт ACME (auth_portal_traefik_letsencrypt) ``` +> **Переход с root-образа (версии до не-root).** Контейнер теперь работает от +> uid 1000 (`node`). Если `./data` и `app.db` созданы старым контейнером под +> root, при старте будет `SqliteError: SQLITE_READONLY`. Один раз выполнить: +> +> ```bash +> cd /opt/auth-portal +> docker compose down +> sudo chown -R 1000:1000 ./data +> docker compose up -d +> ``` + --- ## Что внутри compose