Проверен полностью5 832

Управление задачами

Vikunja

Vikunja хранит задачи, проектные доски, сроки и вложения на вашем сервере. Планируйте домашние дела и небольшие командные проекты в списках или канбане, с повторяющимися задачами и встроенной двухфакторной аутентификацией. Этот рецепт использует официальный образ и отдельную PostgreSQL.

Вместо TodoistВместо TrelloAGPL-3.0-or-laterВерсия 2.7.1

Обзор

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. Это номер версии, а не разбор изменений.

Актуальная версия 2.7.123 окт. 2026 г., 21:32 UTC

Критические уязвимости

Результат отдельного сканирования Docker-образов, а не проверки Compose.

Не провереноПроверка не выполнялась

Несовместимые обновления

Новый major находится сравнением номеров версий. Вердикт о совместимости заносится вручную после чтения release notes и порядка миграции.

Не провереноПроверка не выполнялась

compose.yaml

Изменения upstream Compose относительно проверенного рецепта.

Upstream Compose не отслеживаетсяПроверка не выполнялась

Устаревшие Docker-образы

Проверка закреплённых тегов образов на наличие новых версий.

Не провереноПроверка не выполнялась

От наблюдения к действию

План обновления

Рецепт уже закрепляет последний известный релиз. Ниже показаны сохранённые основания для этой версии.

2.7.12.7.1
  1. Открыть основания релиза

    Открыть релиз на GitHub ↗ Ссылка нужна для ревизии и сама по себе не доказывает совместимость.

  2. Проверить границу версий

    Номера версий не пересекают major-границу совместимости. Вердикт о совместимости не записан.

  3. Подготовить смену тегов образов

    Смена тегов образов сейчас не планируется.

  4. Следовать документированной схеме миграции

    Смена тега и перезапуск. Шаги конкретного релиза всё равно берутся из release notes и инструкции по установке.

  5. Защитить точку отката

    Смена версии сейчас не планируется. Рецепт содержит процедуру backup. Restore проверен.

  6. Проверить обновлённый рецепт

    Точная проверка уровня «Проверен полностью» для этой версии записана 2026-10-23.

Прочитать порядок обновления в инструкции по установке ↓

Характеристики

Безопасность и публикация

Уровни установки

Статус показывает, насколько опубликованный рецепт покрывает требования каждого уровня.

Готово

Для дома

Минимальная конфигурация для локальной сети или доступа через VPN.

  • Один сервер
  • Локальный доступ
  • Минимум компонентов

Рецепт закрывает все требования этого уровня.

Готово

Для VPS

Публичная установка с защищённым доступом и резервными копиями.

  • Домен
  • HTTPS через reverse proxy
  • Backup вне сервера

Рецепт закрывает все требования этого уровня.

Частично

Надёжная

Конфигурация для предсказуемой эксплуатации и наблюдаемости.

  • Отдельная БД
  • Healthcheck
  • Внешний мониторинг
  • Лимиты CPU и памяти

Нужно добавить вручную: внешний мониторинг, лимиты cpu и памяти.

Собрать под свой сервер

Генератор конфигурации

Ответьте на пять вопросов и скачайте готовый комплект Vikunja.

Работает локально
01 Есть домен?
02 Какой reverse proxy?
03 Архитектура сервера
04 Где хранить данные?

Укажите абсолютный путь для отдельного диска, например /srv/vikunja.

05 Требуется VPN-доступ?

Комплект готов к сборке

Архив создаётся в браузере. Ответы никуда не отправляются.

Те же файлы одним shell-скриптом, обычными heredoc, чтобы всё читалось до запуска. Скрипт проверяет Docker, архитектуру, память, диск и нужные порты и без --apply ничего не пишет.

Скриншоты

Быстрый запуск

Сначала прочитайте полную инструкцию: в ней описаны доступ извне, backup и расположение данных.

Подготовить настройкиcp .env.example .env
Запуститьdocker compose up -d
Проверить состояниеdocker 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 для временных файлов.

VPS

Оставьте 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 должен совпадать с адресом, которым реально пользуются клиенты.

Домен и HTTPS

Выберите файл из 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.

Ошибка аутентификации БД или блокировка SQLite

Рецепт использует 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 или restore

Используйте полный архив из backup.sh, а не отдельный дамп или архив тома приложения. Проверьте место, логи PostgreSQL и права на архив. Восстановление заменяет public-схему базы и файлы приложения; после ошибки замены оставьте Vikunja остановленной до завершения восстановления. Сравнивайте архивную конфигурацию с активным .env, не раскрывая реквизиты, и используйте совместимые версии. Не понижайте PostgreSQL на существующем физическом каталоге.

Источники: CLI, параметры, backup/restore и официальный образ.

Официальные источники

Последний релиз: 2026-10-20 · GitHub Stars: 5 832 · данные проверены 23 окт. 2026 г., 21:32 UTC

Отказ от ответственности

Fossary — независимый информационный каталог, не связанный с разработчиками представленных приложений. Мы собираем сведения из открытых источников и проверяем опубликованные рецепты, но не разрабатываем, не распространяем и не контролируем эти приложения.

Публикация карточки или статус проверки не являются требованием, навязыванием либо персональной рекомендацией использовать приложение. Вы самостоятельно решаете, подходит ли оно вам, и используете его на свой риск. Мы не гарантируем безопасность, доступность или пригодность приложения и, в пределах, допускаемых законом, не отвечаем за вызванные им потери или ущерб. До установки проверьте лицензию, настройки безопасности, обработку данных и резервное копирование.