Встановіть Plesk на CentOS 7
Використання іншої системи? Plesk — це власна панель керування веб-хостом, яка дозволяє користувачам адмініструвати свої персональні та/або клієнтські веб-сайти, бази даних
Wekan — це канбан-дошка, створена з фреймворком Meteor JavaScript. Він вважається альтернативою Trello з відкритим вихідним кодом і самостійно розміщеною, що забезпечує майже ті ж функції. Це дозволяє створювати списки керування справами на основі карток. Wekan дуже допомагає підвищити продуктивність під час роботи в середовищі співпраці. Wekan має повністю адаптивний веб-інтерфейс, і його активно перекладають багатьма мовами.
У цьому підручнику ми будемо використовувати wekan.example.com
як доменне ім’я, спрямоване на екземпляр Vultr. Будь ласка, не забудьте замінити всі входження прикладу доменного імені на фактичне.
Оновіть свою базову систему за допомогою посібника Як оновити Ubuntu 16.04 . Після оновлення системи перейдіть до встановлення залежностей.
Wekan підтримує лише Node.js LTS version 4.8
. Щоб встановити Node.js, ми будемо використовувати менеджер версій вузла. Встановіть nvm
, запустивши скрипт інсталятора.
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | bash
Щоб негайно почати використовувати nvm
, запустіть це.
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
Якщо nvm
встановлено успішно, ви зможете перевірити його версію.
user@vultr:~$ nvm --version
0.33.4
Встановіть Node.js.
nvm install v4.8
Встановіть версію Node.js за замовчуванням.
nvm use node
Якщо Node.js встановлено успішно, ви зможете перевірити його версію.
node -v
Ви побачите цей вихід.
user@vultr:~$ node -v
v4.8.4
NVM встановлює Node.js лише для поточного користувача. Щоб Node.js був доступним у всьому світі, запустіть це.
n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr
Node.js тепер доступний як /usr/bin/node
.
user@vultr:~$ sudo which node
/usr/bin/node
MongoDB — це безкоштовний сервер баз даних NoSQL з відкритим вихідним кодом. На відміну від традиційних баз даних, які використовують таблиці для організації своїх даних, MongoDB орієнтована на документи і використовує документи, подібні до JSON, без схем. Wekan використовує MongoDB для зберігання своїх даних.
Wekan сумісний лише з MongoDB version 3.2
. Створіть новий файл репозиторію.
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
Імпортуйте публічний ключ GPG MongoDB та оновіть список пакетів.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
sudo apt update
Встановіть MongoDB.
sudo apt install -y mongodb-org
Запустіть MongoDB і ввімкніть його автоматичний запуск.
sudo systemctl start mongod
sudo systemctl enable mongod
За замовчуванням на сервері MongoDB не ввімкнено аутентифікацію. Будь-який користувач, який має доступ до терміналу сервера, матиме повні привілеї щодо встановлення MongoDB. Щоб захистити сервер бази даних і обмежити доступ непривілейованого користувача, нам потрібно налаштувати аутентифікацію на сервері.
MongoDB надає mongo
оболонку, яка використовується для виконання запитів до MongoDB. Перейдіть на mongo
оболонку.
mongo
Створіть нового користувача MongoDB з правами root. Ви можете використовувати будь-яке ім’я користувача на ваш вибір. Будь ласка, не забудьте замінити пароль .
db.createUser(
{
user: "admin",
pwd: "StrongAdminPassword",
roles: [ { role: "root", db: "admin" } ]
}
)
Ви повинні побачити наступний вихід.
user@vultr:~$ mongo
MongoDB shell version: 3.2.17
connecting to: test
Welcome to the MongoDB shell.
...
2017-09-30T18:11:40.274+0000 I CONTROL [initandlisten]
> db.createUser(
... {
... user: "admin",
... pwd: "StrongAdminPassword",
... roles: [ { role: "root", db: "admin" } ]
... }
... )
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
Вийдіть із командного інтерфейсу MongoDB до терміналу Linux, натиснувши « Ctrl+C
«.
Відредагуйте файл конфігурації MongoDB.
sudo nano /etc/mongod.conf
Додайте наступний рядок у кінці файлу.
security:
authorization: enabled
Перезапустіть MongoDB, щоб зміни конфігурації вступили в силу.
sudo systemctl restart mongod
Тепер, коли безпека ввімкнено, ви можете перевірити, чи вона працює, знову переключившись на оболонку mongo за допомогою mongo
команди. Цього разу, якщо ви запустите запит, наприклад, show dbs
щоб показати список баз даних, ви побачите повідомлення про помилку авторизації. sudo
Знову перейдіть до користувача після перевірки входу як нового користувача, якого ви щойно створили.
Увійдіть як administrator
тільки що створений користувач.
mongo -u admin -p
Введіть пароль користувача для успішного входу. Створіть нового користувача для wekan
бази даних, яка буде використовуватися для зберігання даних Wekan.
use wekan
db.createUser(
{
user: "wekan",
pwd: "StrongPassword",
roles: ["readWrite"]
}
)
Обов’язково замініть його StrongPassword
надійним паролем. Ви побачите наступний висновок.
user@vultr:~$ mongo -u admin -p
MongoDB shell version: 3.2.17
Enter password:
connecting to: test
...
2017-09-30T18:13:26.007+0000 I CONTROL [initandlisten]
>
> use wekan
switched to db wekan
> db.createUser(
... {
... user: "wekan",
... pwd: "StrongPassword",
... roles: ["readWrite"]
... }
... )
Successfully added user: { "user" : "wekan", "roles" : [ "readWrite" ] }
Check for the latest link to the Wekan release on Github as new releases are very frequent. Download the latest version of Wekan from Github replacing the link to the installer package.
cd ~
wget https://github.com/wekan/wekan/releases/download/v0.44/wekan-0.44.tar.gz
Extract the downloaded archive into a new directory named wekan
.
mkdir wekan
tar xzvf wekan-*.tar.gz -C wekan
Install the Node.js dependencies.
cd wekan/bundle/programs/server && npm install
The Wekan server reads configurations from the environment variables. Run the following commands to set the configurations as environment variables.
export MONGO_URL='mongodb://wekan:[email protected]:27017/wekan?authSource=wekan'
export ROOT_URL='http://wekan.example.com'
export MAIL_URL='smtp://user:[email protected]:25/'
export MAIL_FROM='[email protected]'
export PORT=4000
Make sure to replace the MongoDB password for the wekan
user you have created. Also, update the mail URL according to your SMTP server settings. If you do not have an email server ready, you can always change this configuration later.
To immediately start the application.
cd ~/wekan/bundle
node main.js
You can now access the application by going to http://wekan.example.com:4000
. You will see the interface to log-in into the Wekan kanban board.
For production use, it is recommended to set up a reverse proxy to serve the application on the standard HTTP
port and a systemd
service to manage the application process. In this tutorial, we will use the Nginx web server as a reverse proxy, secured with a Let's Encrypt free SSL.
Add the Certbot PPA
repository to the system.
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
Install Nginx and Certbot, which is the client application for Let's Encrypt CA.
sudo apt -y install certbot nginx
Note: The domain name which you are using to obtain the certificates from the Let's Encrypt CA must be pointed towards the server. The client verifies the domain authority before issuing the certificates.
Generate the SSL certificates.
sudo certbot certonly --standalone -d wekan.example.com
The generated certificates are likely to be stored in the /etc/letsencrypt/live/wekan.example.com/
directory. The SSL certificate will be stored as fullchain.pem
, and private key will be stored as privkey.pem
.
Let's Encrypt certificates expire in 90 days, so it is recommended to set up auto-renewal of the certificates using Cronjob. Cron is a system service which is used to run periodic tasks.
Open the cron job file.
sudo crontab -e
Add the following line at the end of the file.
30 5 * * * /usr/bin/certbot renew --quiet
The above cron job will run every day at 5:30 AM. If the certificates are due for expiration, it will automatically renew them.
Create a new virtual host.
sudo nano /etc/nginx/sites-available/wekan.example.com.conf
Populate the file with the following.
upstream wekan {
server 127.0.0.1:4000;
}
server {
listen 80;
listen [::]:80;
server_name wekan.example.com;
location / {
if ($ssl_protocol = "") {
rewrite ^ https://$server_name$request_uri? permanent;
}
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name wekan.example.com;
add_header Strict-Transport-Security "max-age=15768000";
ssl_certificate /etc/letsencrypt/live/wekan.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wekan.example.com/privkey.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
ssl_stapling on;
ssl_stapling_verify on;
error_page 497 https://$host:$server_port$request_uri;
location / {
proxy_pass http://wekan;
proxy_http_version 1.1;
proxy_set_header Host $host:$server_port;
proxy_set_header Referer $http_referer;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
proxy_send_timeout 86400;
proxy_read_timeout 86400;
}
}
Replace wekan.example.com
with your actual domain name in the above configuration.
Enable the newly added site.
sudo ln -s /etc/nginx/sites-available/wekan.example.com.conf /etc/nginx/sites-enabled/wekan.example.com.conf
Restart Nginx so that the changes can take effect.
sudo systemctl restart nginx
Увімкніть автоматичний запуск Nginx під час завантаження.
sudo systemctl enable nginx
Створіть нового користувача для запуску процесу.
sudo adduser wekan --shell /usr/sbin/nologin --home /opt/wekan
Тепер перемістіть всі файли в /opt/wekan
каталог.
sudo mv ~/wekan/* /opt/wekan/
Надайте право власності на файли новоствореному користувачеві.
sudo chown -R wekan:wekan /opt/wekan
Wekan не бере дані з жодного файлу конфігурації. Замість цього він отримує до нього доступ із змінних середовища. Ми створимо новий файл для зберігання змінних середовища. Файл, що містить змінні середовища, буде переданий через Systemd
службу.
Створіть новий файл для зберігання змінних середовища.
sudo nano /opt/wekan/config.env
Заповніть файл таким вмістом.
MONGO_URL='mongodb://wekan:[email protected]:27017/wekan?authSource=wekan'
ROOT_URL='http://wekan.example.com'
MAIL_URL='smtp://user:[email protected]:25/'
MAIL_FROM='[email protected]'
PORT=4000
HTTP_FORWARDED_COUNT=1
Будь ласка, не забудьте замінити username
та password
.
Надайте користувачеві право власності wekan
, запустивши.
sudo chown -R wekan:wekan /opt/wekan/config.env
Створіть новий файл служби для служби Wekan systemd.
sudo nano /etc/systemd/system/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=/usr/bin/node /opt/wekan/bundle/main.js
EnvironmentFile=/opt/wekan/config.env
ExecReload=/bin/kill -USR1 $MAINPID
RestartSec=10
User=wekan
Group=wekan
WorkingDirectory=/opt/wekan
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=Wekan
[Install]
WantedBy=multi-user.target
Збережіть файл і вийдіть з редактора. Тепер ви можете легко запустити Wekan.
sudo systemctl start wekan
Щоб увімкнути автоматичний запуск Wekan під час завантаження.
sudo systemctl enable wekan
Щоб перевірити статус служби Wekan.
sudo systemctl status wekan
Тепер ви можете отримати доступ до екземпляра Wekan на https://wekan.example.com
. Почніть зі створення нового облікового запису. Після створення облікового запису ви можете ввімкнути адміністративний доступ для щойно створеного користувача. Увійдіть до оболонки MongoDB як користувач адміністратора.
mongo -u wekan -p --authenticationDatabase "wekan"
Тепер виберіть wekan
базу даних та оновіть об’єкт, щоб підвищити користувача до користувача адміністратора.
use wekan
db.users.update({username:'admin_user'},{$set:{isAdmin:true}})
Будь ласка, не забудьте замінити admin_user
фактичним ім’ям користувача створеного вами користувача. В інтерфейсі адміністратора ви зможете відключити самореєстрацію та оновити налаштування SMTP.
Вітаємо, ви успішно встановили плату Wekan Kanban на свій екземпляр Vultr Ubuntu.
Використання іншої системи? Plesk — це власна панель керування веб-хостом, яка дозволяє користувачам адмініструвати свої персональні та/або клієнтські веб-сайти, бази даних
Вступ Lets Encrypt — це служба центру сертифікації, яка пропонує безкоштовні сертифікати TLS/SSL. Certbot спрощує процес встановлення,
Використання іншої системи? Що таке Tekkit Classic? Tekkit Classic — це модпак для гри, яку всі знають і люблять; Майнкрафт. Він містить деякі з вер
PHP та пов’язані з ним пакети є найбільш часто використовуваними компонентами під час розгортання веб-сервера. У цій статті ми дізнаємося, як налаштувати PHP 7.0 або PHP 7.1 o
Вступ Lighttpd — це форк Apache, який має набагато меншу ресурсомісткість. Він легкий, звідси його назва, і досить простий у використанні. Встановити
1. Virtualmin/Webmin Virtualmin — це потужна та гнучка панель керування веб-хостингом для систем Linux та UNIX на основі відомої веб-бази з відкритим вихідним кодом.
Yii — це PHP-фреймворк, який дозволяє розробляти програми швидше та легше. Установка Yii на Ubuntu проста, як ви дізнаєтеся
Screen — це програма, яка дозволяє багаторазово використовувати термінальні сеанси в одному вікні. Це дозволяє моделювати декілька вікон терміналу, де це ma
Вступ Logrotate — це утиліта для Linux, яка спрощує адміністрування файлів журналів. Зазвичай він запускається раз на день через завдання cron і керує базою журналів
Використання іншої системи? Apache Cassandra — це безкоштовна система керування базами даних NoSQL з відкритим вихідним кодом, яка розроблена для забезпечення масштабованості, високої
Використання іншої системи? Vanilla forum — це програма з відкритим вихідним кодом, написана на PHP. Це повністю настроюваний, простий у використанні та підтримує зовнішній вигляд
Використання іншої системи? Вступ Kanboard — це безкоштовна програма з відкритим вихідним кодом для управління проектами, яка призначена для полегшення та візуалізації
Використання іншої системи? Gitea — це альтернативна система контролю версій із відкритим вихідним кодом, яка працює на базі git. Gitea написана на Голанг і є
Використання іншої системи? Docker — це програма, яка дозволяє розгортати програми, які запускаються як контейнери. Це було написано в популярному програмі Go
Що таке Dirty Cow (CVE-2016-5195)? Уразливість Dirty Cow використовується через те, як Linux обробляє код. Це дозволяє непривілейованому користувачеві використовувати gai
Наявність лише одного користувача, який є root, може бути небезпечним. Тож давайте це виправимо. Vultr надає нам свободу робити з нашими користувачами та нашими серверами, що нам заманеться
Adminer — це легка альтернатива phpMyAdmin. Для порівняння, його загальний розмір пакета становить 400 КБ проти 4,2 МБ phpMyAdmin. На відміну від phpMyAdmin, який
У цьому посібнику ви дізнаєтеся, як налаштувати автентифікацію HTTP для веб-сервера Nginx, що працює на CentOS 7. Вимоги Щоб почати, вам знадобиться
У цьому посібнику ви навчитеся інсталювати програмне забезпечення NextCloud. Ми будемо використовувати Caddy для потреб нашого веб-сервера, оскільки це спрощує налаштування
Використання іншої системи? GoAccess — це аналізатор веб-журналів з відкритим вихідним кодом. Ви можете використовувати його для аналізу журналів у режимі реального часу в терміналі або
Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.
Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.
Можливо, ви чули, що хакери заробляють багато грошей, але чи замислювалися ви коли-небудь, як вони заробляють такі гроші? давайте обговоримо.
Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.
Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…
Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.
Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.
Прочитайте блог, щоб дізнатися про різні шари архітектури великих даних та їх функціональні можливості найпростішим способом.
У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.
Нещодавно Apple випустила додаткове оновлення macOS Catalina 10.15.4, щоб виправити проблеми, але схоже, що оновлення викликає більше проблем, що призводять до блокування комп’ютерів Mac. Прочитайте цю статтю, щоб дізнатися більше