.s/scripts/put-guestbook-on-this-machine.sh

77 lines
1.6 KiB
Bash
Executable File

#!/bin/sh
nginx_dir=${1:-/etc/nginx}
sudo pacman -Syu nginx
# Clone
mkdir ~/src
cd ~/src
git clone https://github.com/Simponic/guestbook
cd guestbook
npm ci
# Make .env
[ ! -f .env ] && cp .env.example .env && vim .env
# Make systemd service
if [ ! -f ~/.config/systemd/user/guestbookd.service ]
then
mkdir -p ~/.config/systemd/user/
cp guestbookd.service ~/.config/systemd/user
vim ~/.config/systemd/user/guestbookd.service
fi
# NGINX
nginx_config="
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
include $nginx_dir/sites-enabled/*.http;
}
"
guestbook_config="
upstream soc {
server unix:/tmp/guestbookd.sock;
}
server {
listen 80;
location / {
proxy_pass http://soc;
proxy_set_header X-Real-IP \\\$remote_addr;
proxy_set_header X-Forwarded-For \\\$proxy_add_x_forwarded_for;
proxy_set_header Host \\\$host;
proxy_http_version 1.1;
proxy_set_header Upgrade \\\$http_upgrade;
proxy_set_header Connection "upgrade";
}
}
"
sudo mkdir $nginx_dir/sites-available $nginx_dir/sites-enabled
sudo sh -c "echo \"$nginx_config\" | sudo tee $nginx_dir/nginx.conf"
sudo sh -c "echo \"$guestbook_config\" | sudo tee $nginx_dir/sites-available/guestbook.conf.http"
sudo ln -s $nginx_dir/sites-available/guestbook.conf.http $nginx_dir/sites-enabled/guestbook.conf.http
sudo systemctl daemon-reload
sudo systemctl enable --now nginx
systemctl daemon-reload --user
systemctl enable --user --now guestbookd
sudo ufw allow 80