Новые релизы
Сравнение версии рецепта с последним известным релизом upstream. Это номер версии, а не разбор изменений.
Vikunja хранит задачи, проектные доски, сроки и вложения на вашем сервере. Планируйте домашние дела и небольшие командные проекты в списках или канбане, с повторяющимися задачами и встроенной двухфакторной аутентификацией. Этот рецепт использует официальный образ и отдельную PostgreSQL.
Vikunja — менеджер задач для домашних дел и небольших командных проектов. Собирайте задачи в проекты, переключайтесь между списком и канбаном, задавайте приоритеты и сроки, храните заметки и вложения рядом с работой. Повторяющиеся задачи, метки, исполнители и совместный доступ помогают вести дела, которым уже тесно в личном чек-листе.
Приложение заменяет списки задач Todoist или простую доску Trello, но не повторяет все облачные автоматизации, интеграции и функции корпоративного администрирования. Интерфейс доступен на английском и русском. На компьютере и телефоне можно работать в браузере; проект также выпускает отдельную настольную оболочку. Нативный Android- или iOS-клиент этот рецепт не предоставляет.
Рецепт закрепляет официальный образ Vikunja 2.7.1 и PostgreSQL 18.4. Приложение работает с UID/GID 1000:1000, корневой файловой системой только для чтения и временным /tmp; короткий запуск Alpine назначает владельца тома данных. Том приложения хранит вложения в /data/files, отдельный том PostgreSQL — задачи, аккаунты, права и настройки. База и административные порты не публикуются.
PostgreSQL выбрана по результатам проверки: вариант этого релиза с SQLite возвращал database is locked при удалении задачи и переносе между колонками. Smoke-тест рецепта работает с PostgreSQL и проверяет создание, удаление и восстановление настоящей задачи с вложением. Ресурсы — ориентир для небольшой установки: одно ядро CPU, минимум 1 ГБ RAM, рекомендовано 2 ГБ, от 5 ГБ диска без вложений. Оба сервисных образа поддерживают amd64 и arm64; запуск проверен только на amd64. Надёжный уровень частичный: мониторинг, лимиты ресурсов и высокая доступность не включены.
Сервер распространяется под AGPL-3.0-or-later. Дополнительные функции Pro, включая веб-панель администрирования, требуют отдельной лицензии; рецепт использует бесплатное ядро. Доступны локальные аккаунты и встроенная двухфакторная аутентификация TOTP; OIDC настраивается отдельно. SAML и вход через заголовок пользователя от прокси в рецепт не входят. SMTP не настроен: напоминания и восстановление доступа по почте потребуют дополнительной настройки.
Открытая регистрация выключена, общеизвестного начального аккаунта нет: первого пользователя создают через CLI контейнера. Защищайте секрет сервиса и пароль БД, используйте HTTPS и закрывайте доступ к обоим постоянным томам. В копиях находятся личные задачи, вложения и реквизиты — шифруйте архивы и храните экземпляр вне сервера. Перед распространением ссылок за пределы группы пользователей проверяйте их права. Проверка работоспособности не заменяет сканирование уязвимостей образов.
Источники: документация, параметры, CLI, backup/restore, официальный образ, настольная оболочка и релиз v2.7.1.
Это сохранённые результаты отдельных проверок, а не данные в реальном времени. Неизвестный статус означает, что проверка ещё не выполнялась.
Сравнение версии рецепта с последним известным релизом upstream. Это номер версии, а не разбор изменений.
Результат отдельного сканирования Docker-образов, а не проверки Compose.
Новый major находится сравнением номеров версий. Вердикт о совместимости заносится вручную после чтения release notes и порядка миграции.
Изменения upstream Compose относительно проверенного рецепта.
Проверка закреплённых тегов образов на наличие новых версий.
От наблюдения к действию
Рецепт уже закрепляет последний известный релиз. Ниже показаны сохранённые основания для этой версии.
2.7.12.7.1Открыть релиз на GitHub ↗ Ссылка нужна для ревизии и сама по себе не доказывает совместимость.
Номера версий не пересекают major-границу совместимости. Вердикт о совместимости не записан.
Смена тегов образов сейчас не планируется.
Смена тега и перезапуск. Шаги конкретного релиза всё равно берутся из release notes и инструкции по установке.
Смена версии сейчас не планируется. Рецепт содержит процедуру backup. Restore проверен.
Точная проверка уровня «Проверен полностью» для этой версии записана 2026-10-23.
Статус показывает, насколько опубликованный рецепт покрывает требования каждого уровня.
Минимальная конфигурация для локальной сети или доступа через VPN.
Рецепт закрывает все требования этого уровня.
Публичная установка с защищённым доступом и резервными копиями.
Рецепт закрывает все требования этого уровня.
Конфигурация для предсказуемой эксплуатации и наблюдаемости.
Нужно добавить вручную: внешний мониторинг, лимиты cpu и памяти.
Собрать под свой сервер
Ответьте на пять вопросов и скачайте готовый комплект Vikunja.
Сначала прочитайте полную инструкцию: в ней описаны доступ извне, backup и расположение данных.
cp .env.example .envdocker compose up -ddocker compose psНужны 64-разрядные Ubuntu 22.04+ или Debian 12+, Docker Engine и Compose v2.24+. Ориентируйтесь на одно ядро CPU, минимум 1 ГБ RAM (рекомендовано 2 ГБ), 5 ГБ диска плюс вложения. Образы поддерживают amd64 и arm64; рецепт проверен на amd64.
mkdir -p ~/services/vikunja
cd ~/services/vikunja
# Скопируйте файлы рецепта, включая backup.sh, restore.sh и proxy/.
cp .env.example .env
chmod 600 .env
# Два независимых значения: секрет сервиса и пароль базы.
openssl rand -hex 32
openssl rand -hex 32
До запуска заполните .env. Все параметры:
| Параметр | Назначение |
|---|---|
VIKUNJA_VERSION |
Точная версия приложения, изначально 2.7.1. В Docker-теге префикс v не нужен. |
VIKUNJA_PORT |
Порт хоста на loopback, по умолчанию 3456. |
VIKUNJA_PUBLIC_URL |
Точный адрес браузера со схемой, нестандартным портом и завершающим слешем. По умолчанию http://localhost:3456/; за прокси задайте внешний HTTPS URL. |
VIKUNJA_SECRET |
Случайный секрет сервиса, созданный выше; сохраняйте при перезапусках и восстановлении. |
VIKUNJA_DB_PASSWORD |
Другой случайный пароль PostgreSQL; замените заглушку до инициализации. |
VIKUNJA_DATA_VOLUME |
Том приложения с загруженными файлами в /data/files. |
VIKUNJA_DB_VOLUME |
Том PostgreSQL 18 в /var/lib/postgresql, включая версионный каталог данных. |
TZ |
Часовой пояс IANA, по умолчанию Etc/UTC. Часовой пояс аккаунта задаётся отдельно в приложении. |
VIKUNJA_BACKUP_DIR |
Необязательный абсолютный каталог копий; по умолчанию backups/ рядом с рецептом. |
Скрипты загружают активный .env как доверенную конфигурацию shell. Защищайте файл и используйте простые сгенерированные значения. Смена пароля БД в .env не меняет пароль уже созданной роли PostgreSQL.
docker compose config --quiet
docker compose pull
docker compose up -d --wait --wait-timeout 300
curl --fail http://127.0.0.1:3456/health
# Укажите свои имя пользователя и email; пароль CLI запросит отдельно.
docker compose exec vikunja /app/vikunja/vikunja user create \
--username=alex --email=you@example.com
Начального аккаунта с общим паролем нет. Откройте точный VIKUNJA_PUBLIC_URL и войдите с созданными данными. Регистрация выключена; дополнительные аккаунты создаются той же командой CLI. Выберите язык и часовой пояс в настройках, при необходимости подключите TOTP. Платная веб-панель администрирования Pro для этих действий не нужна. SMTP и внешний провайдер идентификации не настроены.
Контейнер permissions завершается успешно после назначения владельца тома 1000:1000 — это нормально. Корневая файловая система приложения доступна только для чтения; запись разрешена в /data для вложений и в /tmp для временных файлов.
Оставьте 3456 на loopback, PostgreSQL не публикуйте. Направьте домен на хост, задайте VIKUNJA_PUBLIC_URL=https://tasks.example.com/, настройте HTTPS-прокси и разрешите в firewall только SSH/HTTP/HTTPS. Храните зашифрованные копии вне сервера. Регистрация отключена, но каждому аккаунту всё равно нужны уникальный пароль и аккуратные права общего доступа к проектам.
Для личного доступа используйте ssh -L 3456:127.0.0.1:3456 user@server и http://localhost:3456/ с соответствующим публичным URL. Для совместной работы поставьте HTTPS-прокси или привяжите порт к конкретному частному IP с ограничением firewall. PostgreSQL оставьте закрытой. Публичный URL должен совпадать с адресом, которым реально пользуются клиенты.
Выберите файл из proxy/. Caddy получает сертификаты сам, Nginx ожидает готовые файлы, Traefik — entry point websecure и resolver letsencrypt. Примеры работают на хосте и проксируют на 127.0.0.1:3456. Контейнерному прокси нужны общая сеть и внутренний порт приложения 3456.
Задайте внешний HTTPS URL с завершающим слешем в .env; после смены адреса выполните docker compose up -d --wait --wait-timeout 300. Nginx разрешает запросы до 50 МБ, но штатный лимит файла Vikunja — 20 МБ: действуют оба ограничения. OIDC и настольные клиенты должны обращаться по тому же доступному URL приложения.
./backup.sh
Скрипт останавливает Vikunja, снимает дамп PostgreSQL и собирает том приложения, .env и Compose в один приватный backups/vikunja-<timestamp>.tar. Работавшее приложение запускается снова, остановленное остаётся остановленным. PostgreSQL продолжает работать. База и вложения соответствуют одному остановленному состоянию. Зашифруйте весь архив и перенесите вне сервера: внутри реквизиты и личные данные. Один дамп базы не восстановит содержимое файлов.
Восстановление заменяет схему public в базе и том приложения. Используйте только свои доверенные архивы и совместимые версии приложения и БД. Вручную сравните архивный configuration.env с .env, сохранив исходный секрет сервиса; скрипт не активирует архивную конфигурацию.
# На новом хосте сначала инициализируйте соответствующий рецепт.
docker compose up -d --wait --wait-timeout 300
./restore.sh ./backups/vikunja-TIMESTAMP.tar
curl --fail http://127.0.0.1:3456/health
docker compose logs --tail=100 vikunja database
До замены скрипт проверяет архив и делает страховочную копию. При ошибке замены приложение остаётся остановленным; исправьте причину или повторите восстановление до запуска. После входа откройте задачу и скачайте вложение. Smoke-тест на amd64 проверяет этот путь с настоящим загруженным файлом.
Прочитайте примечания к релизу, выполните ./backup.sh и перенесите архив вне сервера. Задайте в VIKUNJA_VERSION точный проверенный Docker-тег:
docker compose pull
docker compose up -d --wait --wait-timeout 300
docker compose logs --tail=100 vikunja
Не используйте latest. Миграции выполняются при запуске. PostgreSQL закреплена отдельно в Compose; до смены версии изучите её процедуру обновления.
Не запускайте старое приложение на базе после миграций нового. Оставьте PostgreSQL работающей, остановите Vikunja, верните прежнюю точную версию и исходный секрет в .env, затем пересоздайте контейнер без запуска:
docker compose stop vikunja
# Сейчас верните прежние VIKUNJA_VERSION и VIKUNJA_SECRET в .env.
docker compose pull vikunja
docker compose create vikunja
./restore.sh ./backups/vikunja-BEFORE-UPDATE.tar
curl --fail http://127.0.0.1:3456/health
Страховочная копия работает с остановленным контейнером, не запуская старое приложение на мигрированных данных. Не понижайте PostgreSQL на существующем физическом каталоге. Если версия БД менялась, восстановите SQL в чистый совместимый том и сохраните прежний до проверки результата.
docker compose down удаляет контейнеры, сохраняя оба тома. После проверки копии вне сервера docker compose down --volumes безвозвратно удалит задачи, аккаунты, настройки и вложения. Удаление каталога рецепта уничтожит и локальные копии; заранее сохраните защищённый экземпляр в другом месте.
Источники: документация, CLI, параметры, backup/restore и Docker-образ PostgreSQL.
Сообщить о проблеме с рецептом
Рассказать, как прошло на вашем сервере
Откроется предзаполненный issue на GitHub. Нужен аккаунт GitHub; после отправки сообщение будет публичным.
docker compose ps --all
docker compose logs --tail=150 vikunja database permissions
curl --fail http://127.0.0.1:3456/health
permissions должен завершиться с кодом 0: это разовое назначение владельца, а не веб-сервис. PostgreSQL и Vikunja должны стать healthy. Встроенный healthcheck не требует shell или curl внутри минимального образа. При старте выполняются миграции; дождитесь healthy до создания аккаунтов и работы с API.
Рецепт использует PostgreSQL. Если в логах указаны SQLite или database is locked, проверьте, что запускается этот Compose и контейнер получает VIKUNJA_DATABASE_TYPE=postgres. Пароль VIKUNJA_DB_PASSWORD должен совпадать с паролем созданной роли PostgreSQL. Правка начальных переменных не меняет существующие реквизиты; не удаляйте том базы для исправления пароля.
Публичная регистрация намеренно выключена. Создайте аккаунт через vikunja user create внутри контейнера; начального пароля нет. Поддерживаемые команды восстановления смотрите через docker compose exec vikunja /app/vikunja/vikunja user --help. До использования почтового восстановления и напоминаний настройте SMTP. Строка Pro features have been disabled нормальна для бесплатного ядра и не мешает спискам или канбану.
VIKUNJA_PUBLIC_URL должен точно совпадать с доступным адресом браузера, включая схему, порт и завершающий слеш. После правки пересоздайте приложение. Настольному клиенту нужен тот же URL сервера. HTTPS-прокси должен правильно передавать Host и X-Forwarded-Proto. Смена секрета сервиса аннулирует выданные токены; при обычном перезапуске и восстановлении сохраняйте прежнее значение.
Проверьте свободное место хоста Docker и оба тома. Приложение пишет в /data с UID/GID 1000:1000; смотрите состояние permissions, а не открывайте запись всем и не запускайте приложение от root. Корневая файловая система намеренно доступна только для чтения. Запрос должен помещаться в лимит прокси и лимит файла Vikunja (по умолчанию 20 МБ).
Используйте полный архив из backup.sh, а не отдельный дамп или архив тома приложения. Проверьте место, логи PostgreSQL и права на архив. Восстановление заменяет public-схему базы и файлы приложения; после ошибки замены оставьте Vikunja остановленной до завершения восстановления. Сравнивайте архивную конфигурацию с активным .env, не раскрывая реквизиты, и используйте совместимые версии. Не понижайте PostgreSQL на существующем физическом каталоге.
Источники: CLI, параметры, backup/restore и официальный образ.
Fossary — независимый информационный каталог, не связанный с разработчиками представленных приложений. Мы собираем сведения из открытых источников и проверяем опубликованные рецепты, но не разрабатываем, не распространяем и не контролируем эти приложения.
Публикация карточки или статус проверки не являются требованием, навязыванием либо персональной рекомендацией использовать приложение. Вы самостоятельно решаете, подходит ли оно вам, и используете его на свой риск. Мы не гарантируем безопасность, доступность или пригодность приложения и, в пределах, допускаемых законом, не отвечаем за вызванные им потери или ущерб. До установки проверьте лицензию, настройки безопасности, обработку данных и резервное копирование.