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

Установка Wekan на CentOS 7 — пошаговое руководство

• 8 min read • DevOps • Обновлено 19 Nov 2025
Установка Wekan на CentOS 7
Установка 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.

  1. Создайте системного пользователя для запуска Wekan:
useradd -m -s /bin/bash wekan
passwd wekan
  1. Переключитесь на пользователя 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
  1. Установите требуемую версию Node.js (в примере — v4.8) и переключитесь на неё:
nvm install v4.8
nvm use node
node -v

ALT: Скриншот установки Node.js через nvm на CentOS 7

Установка NodeJS через nvm

Примечание: если вы предпочитаете более новую версию Wekan, проверьте требования версии Node.js в релиз-нотах Wekan и используйте соответствующую версию nvm.


Шаг 2 — установка и базовая настройка MongoDB

Wekan хранит данные в MongoDB. В примере используется MongoDB 3.2.x из официального репозитория.

  1. Создайте файл репозитория:
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
  1. Установите пакеты MongoDB:
yum -y install mongodb-org mongodb-org-server mongodb-org-shell mongodb-org-mongos mongodb-org-tools
  1. Запустите службу и включите автозапуск:
systemctl start mongod
systemctl enable mongod

ALT: Установка и запуск MongoDB на CentOS 7

Установка MongoDB

  1. Включите аутентификацию в MongoDB:
  • Создайте администратора в mongo-shell:
mongo

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

ALT: Создание административного пользователя MongoDB

Создание admin в MongoDB

  • Включите authorization в /etc/mongod.conf (раздел security):
security:
  authorization: enabled

Перезапустите mongod:

systemctl restart mongod
  1. Создайте базу и пользователя для Wekan (рекомендуется использовать уникальные пароли):
mongo -u admin -p
# введите MyAdminPassword
use wekan

db.createUser(
  {
    user: "wekan",
    pwd: "WekanPassword",
    roles: ["readWrite"]
  }
)

ALT: Успешное добавление пользователя wekan в MongoDB

Пользователь добавлен успешно

Важно: сохраните пароли в защищённом хранилище (vault), не используйте простые пароли в продакшене.


Шаг 3 — установка Wekan

  1. Под пользователем 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
  1. Установите зависимости сервера:
cd bundle/programs/server
npm install

ALT: Установка зависимостей Wekan

Установка зависимостей Wekan

  1. Запуск вручную (для проверки):

Сформируйте переменные окружения — замените пароли и адреса на ваши:

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.js

ALT: Wekan запущен на порту 8000

Wekan запущен

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

ALT: Экран входа Wekan

Wekan вход

Если всё работает локально — переходим к организации сервиса.


Шаг 4 — запуск Wekan как systemd-сервис

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

  1. Под пользователем 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

Сохраните и выйдите.

  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
  1. Активируйте сервис:
systemctl daemon-reload
systemctl start wekan
systemctl enable wekan
systemctl status wekan
netstat -plntu | grep 8000

ALT: Wekan запущен как systemd-сервис

Wekan как сервис

Совет: для логирования используйте rsyslog или системный журнал journald; можно настроить logrotate для файлов логов, если вы перенаправляете вывод в файлы.


Шаг 5 — установка и настройка Nginx как обратного прокси

Nginx будет принимать HTTP(S) трафик и проксировать его к Wekan на localhost:8000.

  1. Установите EPEL и Nginx:
yum -y install epel-release
yum -y install nginx
  1. Создайте конфигурацию виртуального хоста:
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;
    }
}
  1. Проверьте конфигурацию и запустите Nginx:
nginx -t
systemctl start nginx
systemctl enable nginx
netstat -plntu | grep :80

ALT: Nginx настроен как обратный прокси для Wekan

Nginx обратный прокси

Рекомендуется настроить SSL (Let’s Encrypt или коммерческий сертификат). Пример быстрой секции для HTTPS в конфиге Nginx не включён — ниже приведены рекомендации по SSL.


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

  1. Откройте в браузере адрес виртуального хоста: http://wekan.hakase-labs.co/

ALT: Экран регистрации Wekan

Регистрация в Wekan

  1. Зарегистрируйте пользователя. Если при регистрации вы видите “Internal Server Error”, это нормальный шаг: первый пользователь нужно сделать администратором вручную в БД.

  2. Войдите в 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

Выход из Mongo shell

  1. Вернитесь в браузер, войдите и проверьте дашборд Wekan.

ALT: Экран входа и дашборд Wekan

Вход в Wekan

Дашборд Wekan

Пример проекта Wekan

Поздравляем — Wekan установлен и доступен!


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

  1. SSL/TLS: обязательно включите HTTPS. Используйте certbot (Let’s Encrypt) или коммерческую CA. Пример команды certbot для Nginx:
yum -y install certbot python2-certbot-nginx
certbot --nginx -d wekan.example.com
  1. Фаервол: закройте ненужные порты (доступ к 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
  1. Аутентификация и пароли: используйте менеджеры секретов (Vault, 1Password) и не храните пароли в открытых .env в репозиториях.

  2. Бэкапы MongoDB: настраивайте регулярные дампы mongodump или репликацию и резервирование для восстановления.

  3. Мониторинг: мониторьте процесс Node.js (pm2 или systemd), используйте мониторинг сервера и логов.

  4. Логи: настройте ротацию логов (/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: восстановление после падения сервиса

  1. Проверить статус systemd: systemctl status wekan
  2. Просмотреть логи: journalctl -u wekan -n 200
  3. Проверить доступность MongoDB: mongo –eval ‘db.stats()’ -u wekan -p
  4. Если Mongo недоступен, запустить mongod и проверить диск/права.
  5. Если проблема в Node, перезапустить сервис и просмотреть npm-логи.
  6. Если повреждена база, восстановить из последнего 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, бэкапы, мониторинг и ограничение доступа к БД. Документируйте пароли и процедурные шаги, а также протестируйте восстановление из бэкапа перед вводом в эксплуатацию.

Важно: адаптируйте версии ПО и конфигурации под ваши реальные требования и обновления безопасности.

Ссылки

Поделиться: 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 быстро