init
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
# Allow ssh, http, https
|
||||
ufw allow http
|
||||
ufw allow https
|
||||
ufw allow ssh
|
||||
ufw allow 3000
|
||||
# Enable ufw
|
||||
ufw enable
|
||||
|
||||
# Install nginx/bind9
|
||||
apt install -y nginx
|
||||
apt install -y bind9
|
||||
|
||||
echo 'worker_rlimit_nofile 4096;
|
||||
events {
|
||||
worker_connections 4096;
|
||||
}
|
||||
http {
|
||||
|
||||
upstream rr {
|
||||
server 127.0.0.1:3001;
|
||||
server 127.0.0.1:3002;
|
||||
# server 127.0.0.1:3003;
|
||||
}
|
||||
|
||||
upstream 1 {
|
||||
server 127.0.0.1:3001;
|
||||
}
|
||||
|
||||
upstream 2 {
|
||||
server 127.0.0.1:3002;
|
||||
}
|
||||
|
||||
upstream 3 {
|
||||
server 127.0.0.1:3003;
|
||||
}
|
||||
|
||||
map $arg_shard $pool {
|
||||
default "rr";
|
||||
1 "1";
|
||||
2 "2";
|
||||
# 3 "3";
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
location / {
|
||||
proxy_pass http://$pool;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header Host $host;
|
||||
|
||||
# enable WebSockets
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
}
|
||||
}
|
||||
}' > /etc/nginx/nginx.conf
|
||||
/etc/init.d/nginx reload
|
||||
|
||||
# Install git
|
||||
apt update
|
||||
apt install -y git
|
||||
|
||||
# Clone application code
|
||||
git clone https://github.com/howardchung/watchparty
|
||||
|
||||
# Install docker
|
||||
curl -sSL https://get.docker.com/ | sh
|
||||
# Start Redis
|
||||
sudo docker run --log-opt max-size=1g -d --name redis --restart=always --net=host redis
|
||||
# Start Postgres
|
||||
sudo docker run --log-opt max-size=1g -d --name postgres --restart=always -e POSTGRES_PASSWORD=password --net=host -v $PWD/sql/:/docker-entrypoint-initdb.d/ postgres
|
||||
|
||||
# Install NodeJS
|
||||
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
|
||||
sudo apt-get install -y nodejs
|
||||
|
||||
# Set up certbot or Cloudflare HTTPS
|
||||
|
||||
# Build watchparty
|
||||
npm run build
|
||||
|
||||
# Set .env config
|
||||
echo '
|
||||
DATABASE_URL=postgresql://postgres@localhost:5432/postgres?sslmode=disable
|
||||
REDIS_URL=localhost:6379
|
||||
' > .env
|
||||
|
||||
# Install PM2 globally
|
||||
npm install -g pm2
|
||||
|
||||
# PM2 start
|
||||
npm run pm2
|
||||
|
||||
# Run on startup
|
||||
./node_modules/pm2/bin/pm2 startup
|
||||
./node_modules/pm2/bin/pm2 save
|
||||
Reference in New Issue
Block a user