1
0
mirror of https://gitlab.com/comunic/comunicapiv2 synced 2024-11-24 22:39:21 +00:00
comunicapiv2/docs/OnlineInstallationGuide.md

2.3 KiB
Raw Blame History

Installation

NodeJS

# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash -
sudo apt-get install -y nodejs

ComunicAPI

  1. Clone the repository

  2. Run npm install

  3. Install webpack: npm install webpack webpack-cli

  4. Build the project

node_modules/.bin/webpack
  1. Create custom config: cp config.json config.private.json & customize it (do not forget to add the proxy and force_clients_https attributes if you need them!)

  2. Adapt the following command to test the server: /usr/bin/node /home/comunic/comunicapiv2/build/index.js /home/comunic/comunicapiv2/config.private.json

  3. Enable required modules in Apache:

sudo a2enmod proxy_http
sudo a2enmod proxy_wstunnel
  1. Create Apache configuration, save it & restart Apache:
<VirtualHost *:443>
    ServerName api.communiquons.org

    ServerAdmin webmaster@localhost

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    # Redirect user web socket
    RewriteEngine On
    RewriteCond %{REQUEST_URI} (.*)/ws$    [NC]
    RewriteRule /ws ws://localhost:3005/ws [P,L]


    ProxyPreserveHost On
    ProxyRequests off
    AllowEncodedSlashes NoDecode
    ProxyPass / http://localhost:3005/ nocanon
    ProxyPassReverse / http://localhost:3005/

    SSLEngine on
    SSLCertificateFile    /etc/letsencrypt/live/communiquons.org-0001/fullchain.pem
    SSLCertificateKeyFile  /etc/letsencrypt/live/communiquons.org-0001/privkey.pem
</VirtualHost>
  1. Create systemd configuration (in /etc/systemd/system/comunic.service):
[Unit]
Description=Comunic API Server
After=syslog.target
After=network.target

[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get to HTTP error 500 because of that
###
# LimitMEMLOCK=infinity
# LimitNOFILE=65535
RestartSec=2s
Type=simple
User=comunic
Group=comunic
WorkingDirectory=/home/comunic
ExecStart=/usr/bin/node /home/comunic/comunicapiv2/build/index.js /home/comunic/comunicapiv2/config.private.json
Restart=always
Environment=USER=comunic 
HOME=/home/comunic

[Install]
WantedBy=multi-user.target
  1. Enable new configuration:
sudo systemctl enable comunic.service
sudo systemctl start comunic.service