diff --git a/docs/OnlineInstallationGuide.md b/docs/OnlineInstallationGuide.md new file mode 100644 index 0000000..168fef5 --- /dev/null +++ b/docs/OnlineInstallationGuide.md @@ -0,0 +1,77 @@ +# Installation + +## NodeJS +```bash +# 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 +```bash +node_modules/.bin/webpack +``` + +5. 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!) + +6. Adapt the following command to test the server: `/usr/bin/node /home/comunic/comunicapiv2/build/index.js /home/comunic/comunicapiv2/config.private.json` + +7. Create Apache configuration, save it & restart Apache: +```conf + + ServerName api.communiquons.org + + ServerAdmin webmaster@localhost + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + 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 + +``` + +8. Create systemd configuration (in `/etc/systemd/system/comunic.service`): +```conf +[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 +``` + +9. Enable new configuration: +```bash +sudo systemctl enable comunic.service +sudo systemctl start comunic.service +``` \ No newline at end of file