Оновлення self-host-інсталяції
Для інсталяцій, поставлених із Docker self-host bundle релізу.
Перед оновленням
Section titled “Перед оновленням”- Прочитай нотатки до релізу на GitHub Releases:
там сказано, чи є нові міграції і нові змінні
.env. - Зроби копії бази і файлів.
- Збережи поточний
.env. - Перевір, що томи на місці:
docker volume ls --filter name=projectkДані живуть в іменованих томах Docker; оновлення образів їх не чіпає.
Ніколи не виконуй це, якщо не хочеш видалити всі дані інсталяції:
docker compose down -vОновлення в тій самій теці bundle
Section titled “Оновлення в тій самій теці bundle”У .env постав цільову версію:
PROJECTK_VERSION=<версія>Витягни нові образи з GHCR і перезапусти:
docker compose pulldocker compose up -dAPI застосовує міграції EF Core на старті. Великі рефакторинги (як 0.20.0 з переходом на
членства) роблять це довше за звичайне — дай API хвилину і перевір docker compose logs -f projectk-api.
Теги образів
Section titled “Теги образів”Compose тягне образи за PROJECTK_VERSION:
ghcr.io/lileyka-app/projectk-api:${PROJECTK_VERSION}ghcr.io/lileyka-app/projectk-web:${PROJECTK_VERSION}До переїзду в організацію lileyka-app образи лежали в ghcr.io/iamavasya/…. Якщо в твоєму
compose.yml досі стара адреса, заміни iamavasya на lileyka-app. Нові версії ще якийсь час
дублюються й за старою адресою, але з часом ця копія зникне.
Для живих інсталяцій — явна версія (наприклад 1.1.9). Тег beta рухається до найновішої бети і
годиться лише тим, хто свідомо хоче йти за нею.
Оновлення з нового bundle
Section titled “Оновлення з нового bundle”- Завантаж новий
projectk-<версія>-docker-selfhost. - Розпакуй у нову теку.
- Скопіюй туди свій
.env. - Переглянь
.env.example— чи не зʼявились нові змінні. У 1.1.x додались, зокрема,PROJECTK_EMAIL_*(пошта),PROJECTK_TIME_ZONE,PROJECTK_KURIN_NUMBER_MAXіPROJECTK_WEBPUSH_*(сповіщення на телефон); після 1.2.1 —PROJECTK_DEFAULT_KRAI(край, до якого потрапляє новий курінь, типовоua) іPROJECTK_TELEMETRY(щоденний анонімний пінг) — див. Self-host. - Виконай:
docker compose pulldocker compose up -dТелеметрія в старому .env. Compose читає PROJECTK_TELEMETRY як
${PROJECTK_TELEMETRY-true}: якщо рядка в .env немає зовсім, пінг увімкнений. Старий .env,
перенесений без змін, якраз такий. Не хочеш пінгу — допиши PROJECTK_TELEMETRY=false до
docker compose up -d.
Номери телефонів після оновлення
Section titled “Номери телефонів після оновлення”Міграція NormalizePhoneNumbers зводить усі збережені номери до одного вигляду — +, код країни й
цифри (+380501234567). Вона переписує поле телефону в Members, WaitlistEntries і
AspNetUsers:
- пробіли, дефіси, дужки й крапки прибираються;
- українські номери без «+» дістають його:
0501234567,380501234567і00380…стають+380501234567; - заглушка з одних нулів, яку колись писала активація, стає порожньою;
- решта лишається як була — її треба виправити руками в картці людини.
Телефонів батьків у картці міграція не чіпає: такий номер перевіряється, лише коли його змінюють. Зворотного кроку немає, але нормалізовані номери читає й попередня версія.
Bundle використовує явні назви томів projectk-sql-data і projectk-azurite-data, тож дані
лишаються привʼязаними до інсталяції навіть при зміні назви теки.
Якщо інсталяція старіша за 0.14.2-beta
Section titled “Якщо інсталяція старіша за 0.14.2-beta”Ранні bundle давали томам назви з префіксом теки, наприклад
projectk-0.14.1-beta-docker-selfhost_projectk-sql-data. Перед запуском нової версії з нової теки
перевір реальні назви томів (docker volume ls --filter name=projectk). Якщо дані в томах із
префіксом — зроби копію зі старої теки і віднови її в нові томи projectk-sql-data та
projectk-azurite-data.
Перевір після оновлення
Section titled “Перевір після оновлення”-
docker compose ps— усі чотири контейнериrunning (healthy). -
Здоровʼя API і його версія:
Terminal window docker compose exec projectk-api curl -fsS http://localhost:8080/healthУ відповіді
"status":"ready"і нова версія. -
Увійди в Лілейку й відкрий «Про Лілейку» внизу бічного меню: там версія застосунку й API.
-
Якщо щось не так —
docker compose logs -f projectk-api.
Відкат
Section titled “Відкат”Відкат безпечний лише коли схема бази сумісна з попередньою версією. Після невдалої міграції чи великих змін — відновлюйся з копії, а не відкочуй образ.