Προαπαιτούμενα
Εγκαταστήστε το Node.js
Εγκαταστήστε το MongoDB
Εγκαταστήστε το Wekan
Ρύθμιση του Nginx Reverse Proxy
Ρύθμιση Systemd Service
Τυλίγοντας
Το Wekan είναι ένας πίνακας kanban που έχει δημιουργηθεί με το πλαίσιο JavaScript Meteor. Θεωρείται εναλλακτική λύση ανοιχτού κώδικα και αυτο-φιλοξενούμενη για το Trello, παρέχοντας σχεδόν τα ίδια χαρακτηριστικά. Σας επιτρέπει να δημιουργείτε λίστες διαχείρισης "to-do" που βασίζονται σε κάρτες. Το Wekan είναι πολύ χρήσιμο για την αύξηση της παραγωγικότητας όταν εργάζεστε σε περιβάλλον συνεργασίας. Το Wekan έχει μια πλήρως αποκριτική διεπαφή ιστού και μεταφράζεται ενεργά σε πολλές γλώσσες.
Προαπαιτούμενα
- Μια παρουσία διακομιστή Vultr Ubuntu 16.04.
- Ένας χρήστης sudo .
Για αυτό το σεμινάριο, θα χρησιμοποιήσουμε wekan.example.comως όνομα τομέα που δείχνει προς την παρουσία του Vultr. Βεβαιωθείτε ότι έχετε αντικαταστήσει όλες τις εμφανίσεις του παραδείγματος ονόματος τομέα με το πραγματικό.
Ενημερώστε το βασικό σας σύστημα χρησιμοποιώντας τον οδηγό Πώς να ενημερώσετε το Ubuntu 16.04 . Αφού ενημερωθεί το σύστημά σας, προχωρήστε στην εγκατάσταση των εξαρτήσεων.
Εγκαταστήστε το Node.js
Το 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
Το 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. Για να ασφαλίσουμε τον διακομιστή της βάσης δεδομένων και να περιορίσουμε την πρόσβαση ενός μη προνομιούχου χρήστη, θα χρειαστεί να ρυθμίσουμε τον έλεγχο ταυτότητας στον διακομιστή.
Το 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" ] }
Εγκαταστήστε το Wekan
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:StrongPassword@127.0.0.1:27017/wekan?authSource=wekan'
export ROOT_URL='http://wekan.example.com'
export MAIL_URL='smtp://user:pass@mail.example.com:25/'
export MAIL_FROM='wekan@example.com'
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.
Setting up the Nginx Reverse Proxy
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.
Δημιουργήστε τα πιστοποιητικά SSL.
sudo certbot certonly --standalone -d wekan.example.com
Τα πιστοποιητικά που δημιουργούνται είναι πιθανό να αποθηκευτούν στον /etc/letsencrypt/live/wekan.example.com/κατάλογο. Το πιστοποιητικό SSL θα αποθηκευτεί ως fullchain.pemκαι το ιδιωτικό κλειδί θα αποθηκευτεί ως privkey.pem.
Τα πιστοποιητικά Let's Encrypt λήγουν σε 90 ημέρες, επομένως συνιστάται να ρυθμίσετε την αυτόματη ανανέωση των πιστοποιητικών χρησιμοποιώντας το Cronjob. Το Cron είναι μια υπηρεσία συστήματος που χρησιμοποιείται για την εκτέλεση περιοδικών εργασιών.
Ανοίξτε το αρχείο εργασίας cron.
sudo crontab -e
Προσθέστε την ακόλουθη γραμμή στο τέλος του αρχείου.
30 5 * * * /usr/bin/certbot renew --quiet
Η παραπάνω εργασία cron θα εκτελείται καθημερινά στις 5:30 π.μ. Εάν τα πιστοποιητικά πρόκειται να λήξουν, θα τα ανανεώσει αυτόματα.
Δημιουργήστε έναν νέο εικονικό κεντρικό υπολογιστή.
sudo nano /etc/nginx/sites-available/wekan.example.com.conf
Συμπληρώστε το αρχείο με τα ακόλουθα.
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;
}
}
Αντικαταστήστε wekan.example.comμε το πραγματικό σας όνομα τομέα στην παραπάνω διαμόρφωση.
Ενεργοποιήστε τον ιστότοπο που προστέθηκε πρόσφατα.
sudo ln -s /etc/nginx/sites-available/wekan.example.com.conf /etc/nginx/sites-enabled/wekan.example.com.conf
Επανεκκινήστε το Nginx για να ισχύσουν οι αλλαγές.
sudo systemctl restart nginx
Ενεργοποιήστε το Nginx για αυτόματη εκκίνηση κατά την εκκίνηση.
sudo systemctl enable nginx
Ρύθμιση Systemd Service
Δημιουργήστε έναν νέο χρήστη για να εκτελεστεί η διαδικασία.
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:StrongPassword@127.0.0.1:27017/wekan?authSource=wekan'
ROOT_URL='http://wekan.example.com'
MAIL_URL='smtp://user:pass@mail.example.com:25/'
MAIL_FROM='wekan@example.com'
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.