Гид по технологиям

Установка Wekan (Trello-подобный Kanban) на Ubuntu 16.04

8 min read DevOps Обновлено 26 Nov 2025
Установка Wekan на Ubuntu 16.04
Установка Wekan на Ubuntu 16.04

Wekan — открытая реализация Kanban-панели, похожая на Trello. В статье показана пошаговая установка Wekan на Ubuntu 16.04 с MongoDB 3.2, запуском как системного сервиса и настройкой Nginx как обратного прокси. Также приведены контрольные списки, рекомендации по безопасности и способы устранения неполадок.

Important: этот материал ориентирован на Ubuntu 16.04 и указанные версии ПО. Обновления версий требуют адаптации команд и конфигураций.

Введение

Wekan — это веб-приложение для совместной работы в формате доски Kanban. Оно основано на фреймворке Meteor и использует Node.js и MongoDB. Пользователям достаточно зарегистрироваться или пригласить участников, чтобы создавать карточки задач и назначать исполнителей.

В этой инструкции мы последовательно установим Wekan на Ubuntu 16.04, настроим MongoDB с авторизацией, запустим приложение как systemd-сервис и настроим Nginx как обратный прокси. Также приведём разделы по отладке, безопасности и альтернативным способам развертывания.

Что понадобится

  • Сервер с Ubuntu 16.04
  • Права root или sudo
  • Доступ к интернету на сервере

Краткие требования по версиям:

  • Node.js: 4.8 (в примере — через nvm)
  • MongoDB: 3.2.x
  • Порт приложения по умолчанию: 8000
  • Nginx: любой стабильный релиз из репозитория Ubuntu

Что мы сделаем

  1. Обновим систему
  2. Установим Node.js с помощью nvm
  3. Установим и настроим MongoDB с авторизацией
  4. Скачаем и установим Wekan
  5. Запустим Wekan как systemd-сервис
  6. Настроим Nginx как обратный прокси
  7. Протестируем и активируем первого пользователя

Предупреждение

Важно: используйте надёжные пароли и, если приложение будет общедоступным, настройте HTTPS (строго рекомендуется). Способ с Nginx позволяет легко добавить SSL через Let’s Encrypt.

Шаг 1 — Обновление системы

Подключитесь к серверу по SSH:

ssh [email protected]

Обновите списки пакетов и установите обновления:

sudo apt update
sudo apt upgrade -y

Шаг 2 — Установка Node.js (через nvm)

Wekan — Node.js-приложение. В этом примере используем Node Version Manager (nvm), чтобы получить Node.js v4.8.

Создайте системного пользователя для запуска приложения. Это ограничит права процесса.

useradd -m -s /bin/bash wekan
passwd wekan

Войдите под пользователем wekan и установите nvm:

su - wekan
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
source ~/.bashrc
command -v nvm
nvm --version

Установите Node.js 4.8 и переключитесь на него:

nvm install v4.8
nvm use node
node -v

Установка Node.js

ALT: Снимок терминала с подтверждением установки Node.js и nvm — команды и версии.

Шаг 3 — Установка и настройка MongoDB

Wekan требует MongoDB 3.2.x. Добавим официальный репозиторий MongoDB 3.2, установим сервер и включим аутентификацию.

Добавление ключа и репозитория:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
sudo apt update
sudo apt install -y mongodb-org mongodb-org-server mongodb-org-shell mongodb-org-mongos mongodb-org-tools

Запустите MongoDB и включите автозапуск:

sudo systemctl start mongod
sudo systemctl enable mongod

Создайте административного пользователя в базе данных MongoDB и включите авторизацию.

Войдите в mongo shell:

mongo

Выполните создание пользователя администратора (замените пароли на надёжные):

db.createUser({
  user: "admin",
  pwd: "MyAdminPassword",
  roles: [ { role: "root", db: "admin" } ]
})

ALT: Текстовый снимок создания admin-пользователя в mongo shell.

Отредактируйте конфигурационный файл /etc/mongod.conf, чтобы включить авторизацию. В vim добавьте или раскомментируйте секцию security:

vim /etc/mongod.conf

Убедитесь, что присутствует:

security:
  authorization: enabled

Сохраните изменения и перезапустите MongoDB:

sudo systemctl restart mongod

ALT: Снимок терминала с перезапуском mongod после изменения конфигурации.

Создайте базу данных wekan и пользователя wekan с правами readWrite:

mongo -u admin -p
// Введите MyAdminPassword при запросе
use wekan
db.createUser({
  user: "wekan",
  pwd: "WekanPassword",
  roles: ["readWrite"]
})

ALT: Снимок создания базы wekan и пользователя wekan в mongo shell.

Важно: замените “MyAdminPassword” и “WekanPassword” на уникальные надёжные пароли. Храните их в менеджере паролей.

Шаг 4 — Установка Wekan

Под пользователем wekan скачайте релиз Wekan. В примере используется релиз v0.63; при установке на рабочем сервере проверьте актуальную стабильную версию в репозитории проекта.

su - wekan
wget https://github.com/wekan/wekan/releases/download/v0.63/wekan-0.63.tar.gz
tar xf wekan-0.63.tar.gz

Перейдите в каталог сборки и установите зависимости:

cd bundle/programs/server
npm install

ALT: Снимок терминала с процессом npm install для Wekan.

Настройка переменных окружения (пример):

export MONGO_URL='mongodb://wekan:WekanPassword@127.0.0.1:27017/wekan?authSource=wekan'
export ROOT_URL='http://192.168.33.10/'
export MAIL_URL='smtp://user:password@smtp.example.com:25/'
export MAIL_FROM='[email protected]'
export PORT=8000

Запустите приложение вручную для проверки:

cd ~/bundle
node main.js

Откройте в браузере http://192.168.33.10:8000 (замените адрес на ваш). Вы должны увидеть страницу входа Wekan.

wekan nodejs application

ALT: Терминал, где запущен node main.js — сервер Wekan слушает порт 8000.

Шаг 5 — Запуск Wekan как systemd-сервиса

Чтобы Wekan автоматически запускался после рестарта и работал как демон, создадим файл службы systemd и файл окружения.

Под пользователем wekan создайте файл .env в директории bundle:

su - wekan
cd ~/bundle
vim .env

Вставьте (адаптируйте значения):

MONGO_URL='mongodb://wekan:WekanPassword@127.0.0.1:27017/wekan?authSource=wekan'
ROOT_URL='http://wekan.hakase-labs.co'
MAIL_URL='smtp://user:password@smtp.example.com:25/'
MAIL_FROM='[email protected]'
PORT=8000
HTTP_FORWARDED_COUNT=1

Теперь создайте unit-файл для systemd под root:

cd /etc/systemd/system/
vim wekan.service

Содержимое:

[Unit]
Description=Wekan Server
After=syslog.target
After=network.target

[Service]
Type=simple
Restart=on-failure
StartLimitInterval=86400
StartLimitBurst=5
RestartSec=10
ExecStart=/home/wekan/.nvm/versions/node/v4.8.7/bin/node bundle/main.js
EnvironmentFile=/home/wekan/bundle/.env
ExecReload=/bin/kill -USR1 $MAINPID
User=wekan
Group=wekan
WorkingDirectory=/home/wekan
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=Wekan

[Install]
WantedBy=multi-user.target

Сохраните и выполните:

sudo systemctl daemon-reload
sudo systemctl start wekan
sudo systemctl enable wekan

Проверьте статус службы и порты:

netstat -plntu
systemctl status wekan

ALT: Лог и статус службы Wekan после старта — демон запущен.

Шаг 6 — Настройка Nginx как обратного прокси

Установите Nginx и настройте виртуальный хост, который будет проксировать запросы к Wekan на localhost:8000.

sudo apt install nginx -y

Создайте конфигурацию сайта:

cd /etc/nginx/sites-available
sudo vim wekan

Пример конфигурации (адаптируйте server_name):

server {
    server_name wekan.hakase-labs.co;
    listen 80;

    access_log /var/log/nginx/wekan-access.log;
    error_log /var/log/nginx/wekan-error.log;

    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $host;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection 'upgrade';
        proxy_cache_bypass $http_upgrade;
        proxy_pass         http://127.0.0.1:8000;
    }
}

Активируйте сайт и проверьте конфигурацию:

sudo ln -s /etc/nginx/sites-available/wekan /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
sudo systemctl enable nginx

Проверьте, что Nginx слушает порт 80:

netstat -plntu

ALT: Логи и вывод netstat — Nginx слушает 80, а Wekan — 8000.

Совет: для публичного сервера настоятельно рекомендуется подключить SSL (Let’s Encrypt). Nginx конфигурацию для HTTPS можно дополнить через certbot.

Шаг 7 — Тестирование и активация первого пользователя

Откройте в браузере URL, соответствующий ROOT_URL, например http://wekan.hakase-labs.co/

Зарегистрируйте пользователя через форму «Register». Иногда при первой регистрации появляется “Internal Server Error” — это ожидаемая ситуация, если учётная запись требует ручной активации.

Активируйте первого пользователя через mongo shell (выполните от root или соответствующего администратора):

mongo -u wekan -p --authenticationDatabase "wekan"
// Введите WekanPassword
use wekan
db.users.update({username:'hakase'},{$set:{isAdmin:true}})

После этого зайдите в интерфейс и выполните вход под учётной записью.

ALT: Снимок экрана регистрации и входа в Wekan, затем панель управления.

Критерии приёмки

  • Веб-страница Wekan доступна через указанный ROOT_URL
  • Сервис wekan запущен и активен в systemd
  • MongoDB работает с авторизацией и пользователь wekan имеет права readWrite на базу wekan
  • Nginx корректно проксирует запросы на localhost:8000
  • Вход под административной учётной записью работает

Контрольный список для продакшн-готовности

  • Все пароли заменены на уникальные и надёжные
  • Включён HTTPS (Let’s Encrypt или коммерческий сертификат)
  • Бэкапы MongoDB настроены и протестированы
  • Логи ротации настроены (logrotate для nginx и systemd/journald)
  • Фаервол настроен (разрешены только нужные порты)
  • Мониторинг сервиса (systemd, процесс Node.js, использование памяти/CPU)

Техническая проверка и отладка — распространённые ошибки и решения

  1. Wekan не запускается — проверьте логи systemd:
sudo journalctl -u wekan -b
  1. Приложение возвращает 500 Internal Server Error при попытке регистрации — проверьте, что подключение к MongoDB корректно и пользователь wekan существует. Также проверьте лог приложения в syslog (или в файле, если настроено логирование).

  2. Nginx отдаёт 502/504 — убедитесь, что Wekan слушает порт 8000 и systemd запущен, проверьте SELinux/AppArmor, если применимо.

  3. Проблемы с почтой — проверьте правильность строки MAIL_URL и доступность SMTP-сервера. Логи приложений и очередь почты в почтовом сервере помогут найти причину.

  4. Невозможность подключиться к MongoDB — проверьте bind_ip в /etc/mongod.conf (должно быть 127.0.0.1 или ваш IP), а также что аутентификация включена и используются правильные учетные данные.

Безопасность и рекомендации

  • Всегда включайте авторизацию MongoDB в продакшне.
  • Для публичного доступа используйте HTTPS. Let’s Encrypt + certbot позволяет получить валидный сертификат бесплатно.
  • Ограничьте доступ к MongoDB только с локального хоста, если Wekan и MongoDB находятся на одной машине.
  • Запускайте Wekan под отдельным неправазвым пользователем (как в примере — wekan).
  • Настройте бэкап MongoDB (mongodump, репликация или управляемые бэкапы).
  • Периодически проверяйте обновления Wekan и зависимостей; применяйте их по тестовой процедуре.

Альтернативные подходы к развёртыванию

  • Docker: официальный образ Wekan или сообщество предоставляют Docker-решения — быстрее разворачивать и проще переносить между серверами.
  • Snap/пакеты: в зависимости от сообщества Wekan могут быть готовые пакеты.
  • Kubernetes: для высокой доступности и масштабирования стоит использовать StatefulSet для MongoDB и Deployment для Wekan с Ingress в роли обратного прокси.

Когда использовать Docker/Kubernetes:

  • нужен быстрый rollback и изоляция окружения — Docker
  • масштабирование, автоматический перезапуск и мониторинг — Kubernetes

Когда не использовать: если нужна простота и минимальные зависимости — подойдет прямой метод, показанный в этой инструкции.

Мини-методология обновления Wekan

  1. Сделайте полный бэкап MongoDB (mongodump). 2. Разверните тестовую копию сервиса и прогоните smoke-тесты. 3. Обновите Wekan на тесте. 4. Проведите регрессионное тестирование. 5. Обновите продакшн в окне обслуживания. 6. Мониторьте метрики и логи.

Роли и чек-листы

Администратор сервера:

  • Создать пользователя wekan
  • Настроить сервис systemd
  • Настроить бэкапы и мониторинг

DevOps / инженер развёртывания:

  • Настроить CI/CD (если используется)
  • Настроить SSL на Nginx
  • Контролировать доступы к MongoDB

Администратор приложения:

  • Управление пользователями внутри Wekan
  • Настройка почтовых шаблонов и уведомлений

Глоссарий (1 строка)

  • ROOT_URL — базовый URL приложения.
  • MONGO_URL — строка подключения к MongoDB.
  • MAIL_URL — строка подключения к SMTP для отправки почты.
  • systemd — системный менеджер инициализации в Ubuntu.

Примеры тестов / приёмочные тесты

  • Доступность: выполнить HTTP GET на ROOT_URL и ожидать 200 OK.
  • Авторизация: регистрация нового пользователя и вход в систему.
  • БД: проверка, что документ пользователя сохранён в коллекции users в базе wekan.
  • Сервис: systemctl status wekan должен вернуть active (running).

Куда двигаться дальше (Roadmap)

  • Настроить HTTPS и HSTS
  • Включить мониторинг (Prometheus + Grafana, или Zabbix)
  • Настроить бэкапы и тестовые restaurations
  • Автоматизировать развертывание (Ansible / Terraform / Docker Compose)

Примеры команд для резервного копирования и восстановления MongoDB

Создать дамп:

mongodump --db wekan --out /var/backups/mongodumps/wekan-$(date +%F)

Восстановить дамп:

mongorestore --db wekan /var/backups/mongodumps/wekan-YYYY-MM-DD/wekan

Часто задаваемые вопросы — коротко

Q: Можно ли использовать MongoDB новее 3.2? A: Возможно, но версии Wekan и специфичные сборки могут требовать совместимости. Проверяйте требования выбранного релиза Wekan.

Q: Как получить HTTPS бесплатно? A: Используйте certbot (Let’s Encrypt) и конфигурацию Nginx для автоматического получения и обновления сертификатов.

Q: Что делать при проблеме с памятью Node.js? A: Увеличьте лимит памяти Node, мониторьте использование и оптимизируйте плагины/карточки, используйте swap с осторожностью.

Заключение

В этой инструкции показан полный путь от установки зависимостей до запуска Wekan как системного сервиса и настройки Nginx в роли обратного прокси. Для безопасной и стабильной работы в продакшне следуйте контрольным спискам: включите авторизацию в MongoDB, настройте HTTPS, автоматические бэкапы и мониторинг.

Summary

  • Wekan можно установить вручную на Ubuntu 16.04 с Node.js, MongoDB и Nginx.
  • Запускать приложение следует под отдельным непользовательским аккаунтом и как systemd-сервис.
  • Для публичного доступа обязательно настраивайте HTTPS и бэкапы.

Reference

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро