Let's Chat è un'applicazione di chat open source progettata per fornire un servizio di messaggistica self-hosted per piccoli team.
Let's Chat si basa su NodeJS e MongoDB. In questo articolo, daremo un'occhiata a come distribuire Let's Chat su un server CentOS 7.
Prerequisiti
- Un'istanza del server CentOS 7 con almeno 2G RAM. 4G RAM consigliata.
- Un utente sudo .
Passaggio 1: aggiornare il sistema
Quando si accede al sistema per la prima volta, è necessario eseguire un aggiornamento a livello di sistema come segue:
sudo yum install epel-release -y
sudo yum clean all && sudo yum update -y && sudo shutdown -r now
Dopo il riavvio, accedere nuovamente come lo stesso utente sudo.
Passaggio 2: installare NodeJS
Installare l'ultimo NodeJS 6.x come segue, che è 6.9.5al momento della scrittura:
cd
curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
sudo yum install -y nodejs
Passaggio 3: installare MongoDB
Installa l'ultimo MongoDB come segue, che è 3.4al momento in cui questo articolo è stato scritto.
3.1 Creare il repository MongoDB 3.4 YUM come segue:
cat <<EOF | sudo tee -a /etc/yum.repos.d/mongodb-org-3.4.repo
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
EOF
3.2 Installare e avviare l'ultima versione stabile del server MongoDB, che è 3.4.1al momento in cui è stato scritto questo articolo:
sudo yum install -y mongodb-org
sudo systemctl start mongod.service
sudo systemctl enable mongod.service
Passaggio 4: installa Let's Chat
sudo yum install git -y
cd /opt
sudo git clone https://github.com/sdelements/lets-chat.git
cd lets-chat
sudo npm install
Nota: è normale vedere più npm WARN ...messaggi durante l'installazione. Ignorali e basta.
Passaggio 5 (facoltativo): creare il settings.ymlfile
Se vuoi personalizzare Let's Chat, puoi creare un file chiamato /opt/lets-chat/settings.ymle quindi inserire le tue impostazioni personalizzate:
sudo cp settings.yml.sample settings.yml
Ai fini di questa esercitazione, utilizzeremo le impostazioni predefinite dal file delle impostazioni di esempio.
Passaggio 6: installare per sempre
Puoi avviare Let's Chat dalla /opt/lets-chatdirectory:
cd /opt/lets-chat
npm start
L'output dovrebbe assomigliare a:
> lets-chat@0.4.8 start /opt/lets-chat
> node app.js
██╗ ███████╗████████╗███████╗ ██████╗██╗ ██╗ █████╗ ████████╗
██║ ██╔════╝╚══██╔══╝██╔════╝ ██╔════╝██║ ██║██╔══██╗╚══██╔══╝
██║ █████╗ ██║ ███████╗ ██║ ███████║███████║ ██║
██║ ██╔══╝ ██║ ╚════██║ ██║ ██╔══██║██╔══██║ ██║
███████╗███████╗ ██║ ███████║ ╚██████╗██║ ██║██║ ██║ ██║
╚══════╝╚══════╝ ╚═╝ ╚══════╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝
Release 0.4.8
Per mantenere attiva l'applicazione Let's Chat, premiamo Ctrl-Cprima di uscire e quindi installiamo un'app denominata foreverche può garantire che ciò accada:
sudo npm install forever -g
Utilizza l' foreverapplicazione per avviare Let's Chat:
cd /opt/lets-chat
forever start app.js
Dopo che Let's Chat è attivo e funzionante, puoi accedervi localmente tramite:
http://localhost:5000
Puoi testare la tua installazione con il comando seguente:
curl -I http://localhost:5000
L'output dovrebbe essere simile a:
HTTP/1.1 302 Found
X-Frame-Options: SAMEORIGIN
X-Download-Options: noopen
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Content-Security-Policy:
X-Content-Security-Policy:
X-WebKit-CSP:
X-UA-Compatible: IE=Edge,chrome=1
Location: /login
Vary: Accept, Accept-Encoding
Content-Type: text/plain; charset=utf-8
Content-Length: 28
set-cookie: connect.sid=s%3A0YTFL6Un5G7iMc3zt8i-vlIh2YDQqTZ3.1dVZFG3VWmwd%2FXXXJiuyWSQ4k432MVvxm7xrgJGIej4; Path=/; HttpOnly
Date: Wed, 01 Feb 2017 11:30:03 GMT
Connection: keep-alive
Passaggio 7: installare Nginx come proxy inverso
Per abilitare l'accesso al web esterno, è necessario impostare un proxy inverso, ad esempio Nginx, per reindirizzare il traffico.
7.1 Installa Nginx:
sudo yum install nginx -y
7.2 Modifica delle impostazioni di Nginx:
sudo vi /etc/nginx/nginx.conf
Trova il location / {}segmento all'interno del http {}segmento:
http {
location / {
}
}
Inserisci le seguenti righe nel location / {}segmento:
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:5000;
Il risultato finale dovrebbe essere:
http {
location / {
proxy_pass http://127.0.0.1:5000;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_cache_bypass $http_upgrade;
}
}
Salva ed esci:
:wq!
7.3 Avviare il servizio Nginx:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
7.4 Modifica delle regole del firewall per consentire l'accesso al web:
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload
Passaggio 8: accesso al Web
Puntare il browser Web http://203.0.113.1per accedere a Let's Chat, quindi fare clic sul I need an accountcollegamento per registrare un nome utente per l'accesso.
Questo è tutto. Grazie per aver letto.