Установка Wekan на CentOS 7 — пошаговое руководство
О чём статья
Эта статья предназначена для системных администраторов и DevOps-инженеров, которым нужно развернуть Wekan на CentOS 7. Пошаговые команды, объяснения и практические рекомендации по безопасности и эксплуатации включены.
Важно: исходные примеры используют порты и домены в демонстрационных целях (порт 8000, домен wekan.hakase-labs.co). Замените их на ваши реальные значения.
Основные шаги
- Установка Node.js через nvm
- Установка и базовая защита MongoDB 3.2
- Установка Wekan и зависимостей
- Организация Wekan как systemd-сервиса
- Настройка Nginx как обратного прокси
- Тестирование, активация первого пользователя и отладка
Предварительные требования
- Сервер с CentOS 7
- root-права или sudo
- Рабочая сеть и доступ к порту 22
- Резервные копии важных данных перед изменениями
Короткие определения
- Wekan: open source kanban-доска, похожая на Trello.
- nvm: Node Version Manager — менеджер версий Node.js.
- MongoDB: NoSQL БД, используемая Wekan.
- Nginx: веб-сервер, используемый как обратный прокси.
Шаг 1 — установка Node.js через nvm
Wekan работает на Node.js (в исходном руководстве использована версия 4.8). Мы рекомендуем управлять версиями через nvm, чтобы не мешать системному Node.
- Создайте системного пользователя для запуска Wekan:
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 (в примере — v4.8) и переключитесь на неё:
nvm install v4.8
nvm use node
node -vALT: Скриншот установки Node.js через nvm на CentOS 7

Примечание: если вы предпочитаете более новую версию Wekan, проверьте требования версии Node.js в релиз-нотах Wekan и используйте соответствующую версию nvm.
Шаг 2 — установка и базовая настройка MongoDB
Wekan хранит данные в MongoDB. В примере используется MongoDB 3.2.x из официального репозитория.
- Создайте файл репозитория:
cd /etc/yum.repos.d/
vim mongodb-org-3.2.repoВставьте:
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc- Установите пакеты MongoDB:
yum -y install mongodb-org mongodb-org-server mongodb-org-shell mongodb-org-mongos mongodb-org-tools- Запустите службу и включите автозапуск:
systemctl start mongod
systemctl enable mongodALT: Установка и запуск MongoDB на CentOS 7

- Включите аутентификацию в MongoDB:
- Создайте администратора в mongo-shell:
mongo
use admin
db.createUser(
{
user: "admin",
pwd: "MyAdminPassword",
roles: [ { role: "root", db: "admin" } ]
}
)ALT: Создание административного пользователя MongoDB

- Включите authorization в /etc/mongod.conf (раздел security):
security:
authorization: enabledПерезапустите mongod:
systemctl restart mongod- Создайте базу и пользователя для Wekan (рекомендуется использовать уникальные пароли):
mongo -u admin -p
# введите MyAdminPassword
use wekan
db.createUser(
{
user: "wekan",
pwd: "WekanPassword",
roles: ["readWrite"]
}
)ALT: Успешное добавление пользователя wekan в MongoDB

Важно: сохраните пароли в защищённом хранилище (vault), не используйте простые пароли в продакшене.
Шаг 3 — установка Wekan
- Под пользователем wekan загрузите релиз Wekan и распакуйте:
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 installALT: Установка зависимостей 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:[email protected]:25/'
export MAIL_FROM='[email protected]'
export PORT=8000Запустите приложение:
cd ~/bundle
node main.jsALT: Wekan запущен на порту 8000

Откройте в браузере http://192.168.33.10:8000/ и проверьте страницу входа.
ALT: Экран входа Wekan

Если всё работает локально — переходим к организации сервиса.
Шаг 4 — запуск Wekan как systemd-сервис
Чтобы Wekan автоматически стартовал и управлялся системой, создадим systemd-сервис.
- Под пользователем wekan создайте файл переменных окружения bundle/.env:
su - wekan
cd bundle/
vim .envПример содержимого (.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:[email protected]:25/'
MAIL_FROM='[email protected]'
PORT=8000
HTTP_FORWARDED_COUNT=1Сохраните и выйдите.
- Создайте systemd unit:
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
RestartSec=10
User=wekan
Group=wekan
WorkingDirectory=/home/wekan
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=Wekan
[Install]
WantedBy=multi-user.target- Активируйте сервис:
systemctl daemon-reload
systemctl start wekan
systemctl enable wekan
systemctl status wekan
netstat -plntu | grep 8000ALT: Wekan запущен как systemd-сервис

Совет: для логирования используйте rsyslog или системный журнал journald; можно настроить logrotate для файлов логов, если вы перенаправляете вывод в файлы.
Шаг 5 — установка и настройка Nginx как обратного прокси
Nginx будет принимать HTTP(S) трафик и проксировать его к Wekan на localhost:8000.
- Установите EPEL и Nginx:
yum -y install epel-release
yum -y install nginx- Создайте конфигурацию виртуального хоста:
cd /etc/nginx
vim conf.d/wekan.confВставьте:
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;
}
}- Проверьте конфигурацию и запустите Nginx:
nginx -t
systemctl start nginx
systemctl enable nginx
netstat -plntu | grep :80ALT: Nginx настроен как обратный прокси для Wekan

Рекомендуется настроить SSL (Let’s Encrypt или коммерческий сертификат). Пример быстрой секции для HTTPS в конфиге Nginx не включён — ниже приведены рекомендации по SSL.
Шаг 6 — тестирование и активация первого пользователя
- Откройте в браузере адрес виртуального хоста: http://wekan.hakase-labs.co/
ALT: Экран регистрации Wekan

Зарегистрируйте пользователя. Если при регистрации вы видите “Internal Server Error”, это нормальный шаг: первый пользователь нужно сделать администратором вручную в БД.
Войдите в mongo-shell как пользователь wekan и активируйте admin-флаг для первого созданного пользователя (в примере username ‘hakase’):
mongo -u wekan -p --authenticationDatabase "wekan"
# введите WekanPassword
use wekan
db.users.update({username:'hakase'},{$set:{isAdmin:true}})ALT: Выход из mongo shell

- Вернитесь в браузер, войдите и проверьте дашборд Wekan.
ALT: Экран входа и дашборд Wekan



Поздравляем — Wekan установлен и доступен!
Безопасность и эксплуатационные рекомендации
- SSL/TLS: обязательно включите HTTPS. Используйте certbot (Let’s Encrypt) или коммерческую CA. Пример команды certbot для Nginx:
yum -y install certbot python2-certbot-nginx
certbot --nginx -d wekan.example.com- Фаервол: закройте ненужные порты (доступ к MongoDB только локально или через защищённую сеть):
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
# запретить 27017 снаружи или ограничить по IP
firewall-cmd --permanent --remove-port=27017/tcp
firewall-cmd --reloadАутентификация и пароли: используйте менеджеры секретов (Vault, 1Password) и не храните пароли в открытых .env в репозиториях.
Бэкапы MongoDB: настраивайте регулярные дампы mongodump или репликацию и резервирование для восстановления.
Мониторинг: мониторьте процесс Node.js (pm2 или systemd), используйте мониторинг сервера и логов.
Логи: настройте ротацию логов (/etc/logrotate.d/) для логов Nginx и приложения.
Отладка — частые проблемы и решения
Internal Server Error при регистрации: проверьте логи Wekan и systemd (journalctl -u wekan), убедитесь, что MONGO_URL корректен и пользователь wekan имеет права.
Невозможно подключиться к MongoDB: убедитесь, что mongod запущен и auth настроен. Локальная строка подключения должна включать credentials и параметр authSource, если вы используете отдельную БД.
Ошибки npm install в bundle/programs/server: убедитесь, что у вас достаточное место на диске и корректные сетевые настройки (иногда npm пытается достать зависимости извне).
Nginx 502/504: проверьте, запущен ли Wekan на localhost:8000, проверьте proxy_pass и значения proxy_set_header.
Альтернативные подходы
Docker: развёртывание Wekan и MongoDB в контейнерах упрощает обновления и переносимость. Официальный образ Wekan доступен в Docker Hub.
Репликация MongoDB: для продакшена рекомендуется использовать replica set для высокой доступности.
Использование менеджера процессов pm2 вместо systemd для более гибкого управления Node.js приложением.
Критерии приёмки
- Wekan стартует как systemd-сервис и остаётся в статусе active (systemctl status wekan).
- Доступ через Nginx по HTTPS (если настроен) возвращает страницу входа.
- Первый пользователь может быть назначен администратором и вход в систему успешен.
- Регулярные бэкапы MongoDB настроены и тестовые restore-прогоны прошли успешно.
Контрольный список для передачи в эксплуатацию
Администратор:
- Установлен и защищён MongoDB (auth включен).
- Установлен и запущен Wekan как сервис.
- Nginx настроен и проверен.
- SSL-сертификат установлен и автообновление настроено.
- Бэкапы и ротация логов настроены.
Оператор/DevOps:
- Мониторинг процессов и алерты настроены.
- Runbook для восстановления доступен.
Пользователь:
- Успешная регистрация и вход в систему.
- Проверены функции создания досок и карточек.
Runbook: восстановление после падения сервиса
- Проверить статус systemd: systemctl status wekan
- Просмотреть логи: journalctl -u wekan -n 200
- Проверить доступность MongoDB: mongo –eval ‘db.stats()’ -u wekan -p
- Если Mongo недоступен, запустить mongod и проверить диск/права.
- Если проблема в Node, перезапустить сервис и просмотреть npm-логи.
- Если повреждена база, восстановить из последнего mongodump.
Мини-методология выбора конфигурации
- Для тестовой среды используйте порты по умолчанию и простую настройку.
- Для продакшена: SSL, ограничение доступа к БД, replica set для MongoDB, отдельные узлы для БД и приложения.
Модель зрелости развертывания (пример)
- Уровень 0 — локальная ручная установка (dev)
- Уровень 1 — systemd + Nginx, нет репликации
- Уровень 2 — SSL, бэкапы, мониторинг
- Уровень 3 — репликация MongoDB, контейнеризация, CI/CD и автоматические обновления
Короткая глоссарий (1-строчные определения)
- ROOT_URL: URL, по которому доступно приложение (используется в ссылках и OAuth).
- MONGO_URL: строка подключения к MongoDB.
- MAIL_URL: строка SMTP для отправки уведомлений.
- PORT: порт, на котором слушает Node.js приложение.
Примечания по совместимости и миграции
- Версии Wekan и Node.js сильно связаны: перед обновлением Wekan проверьте требования по Node.
- Для миграции между серверами сделайте дамп mongodump и перенесите bundle каталоги и .env, затем восстановите дамп с mongorestore.
Полезные команды для администрирования
- Просмотреть логи сервиса: journalctl -u wekan -f
- Проверить, что порт 8000 прослушивается: ss -plntu | grep 8000
- Проверить конфиг nginx: nginx -t
- Резервное копирование БД: mongodump –db wekan –out /var/backups/mongo/$(date +%F)
Часто задаваемые вопросы
Q: Можно ли запускать Mongo и Wekan на разных машинах? A: Да. В MONGO_URL укажите хост Mongo. Обязательно защитите соединение — используйте приватную сеть или VPN.
Q: Можно ли использовать более новые версии MongoDB? A: Да, но убедитесь, что версия Wekan поддерживает целевую версию MongoDB. Консультируйтесь с релиз-ноутами Wekan.
Резюме
Wekan можно успешно развернуть на CentOS 7, установив Node.js через nvm, настроив MongoDB с аутентификацией и настроив Nginx как обратный прокси. Для продакшена критичны SSL, бэкапы, мониторинг и ограничение доступа к БД. Документируйте пароли и процедурные шаги, а также протестируйте восстановление из бэкапа перед вводом в эксплуатацию.
Важно: адаптируйте версии ПО и конфигурации под ваши реальные требования и обновления безопасности.
Ссылки
- Официальный репозиторий Wekan: https://github.com/wekan/wekan
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента