mirror of
https://gitlab.com/comunic/comunicapiv2
synced 2024-11-22 05:19:22 +00:00
77 lines
2.0 KiB
Markdown
77 lines
2.0 KiB
Markdown
|
# 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
|
|||
|
<VirtualHost *:443>
|
|||
|
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
|
|||
|
</VirtualHost>
|
|||
|
```
|
|||
|
|
|||
|
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
|
|||
|
```
|