# Pechatalka
Site and chat-robot constructor for the Svoboda typography
# Installation
Before process any command think about **what it does** and whether the **paths** are specified correctly
## NGINX
### **Create the NGINX server**
You can copy an example of the server file from here: `/examples/nginx/pechatalka.conf`
I prefer to rename nginx config files to domain names. For example: `pechatalka.kodorvan.tech`
1. `cd examples/nginx`
2. `sudo cp pechatalka.conf /etc/nginx/sites-avaiable/pechatalka.conf`
3. `sudo nvim /etc/nginx/sites-avaiable/pechatalka.conf`
3.1 Customize the file according to your requirements
4. `sudo ln -s /etc/nginx/sites-avaiable/pechatalka.conf /etc/nginx/sites-enabled/pechatalka.conf`
5. `sudo nginx -t`
5.1 Make sure that NGINX does not throw errors, otherwise proceed to step №3 or to the instructions for generate a TLS/SSL certificate
6. `sudo service nginx restart`
### **Add mime-type recognition for javascript modules**
Edit the file `/etc/nginx/mime.types`
**From:** `application/javascript js;`
**To:** `application/javascript js mjs;`
### **Generate a TLS/SSL sertificate** (via [certbot](http://certbot.eff.org/) for [ubuntu](https://ubuntu.com/))
1. `sudo apt install certbot python3-certbot-nginx`
2. `sudo certbot certonly --nginx`
The **domain** must already be **bound** to the **IP-address** of the server by `CNAME`, `A` or `AAAA` record
### **Set up firewall rules for HTTP and HTTPS requests** (for [ubuntu](https://ubuntu.com/))
1. `sudo ufw allow "NGINX Full"`
1.1. Make sure that the port for SSH connection is open
2. `sudo ufw allow 22`
3. `sudo ufw enable`
## SystemD (or any alternative you like)
You can copy an example of the systemd file from here: `/examples/systemd/arming.service`
1. `cd examples/systemd`
2. `sudo cp pechatalka.service /etc/systemd/system/pechatalka.service && sudo chmod +x /etc/systemd/system/pechatalka.service`
3. `sudo nvim /etc/systemd/system/pechatalka.service`
3.1 Customize the file according to your requirements
4. `sudo systemctl daemon-reload`
3. `sudo systemctl enable pechatalka`