59 lines
2.1 KiB
Bash
59 lines
2.1 KiB
Bash
#!/bin/bash
|
|
domain=kasm.h.acker.is
|
|
local_port=8443
|
|
swap_size_gib=6
|
|
sudo apt update
|
|
sudo apt dist-upgrade -y
|
|
sudo fallocate -l ${swap_size_gib}g /mnt/${swap_size_gib}GiB.swap
|
|
sudo chmod 600 /mnt/${swap_size_gib}GiB.swap
|
|
sudo mkswap /mnt/${swap_size_gib}GiB.swap
|
|
sudo swapon /mnt/${swap_size_gib}GiB.swap
|
|
echo "/mnt/${swap_size_gib}GiB.swap swap swap defaults 0 0" | sudo tee -a /etc/fstab
|
|
cd /tmp
|
|
curl -O https://kasm-static-content.s3.amazonaws.com/kasm_release_1.19.0-latest.tar.gz
|
|
tar -xf kasm_release*.tar.gz
|
|
sudo bash kasm_release/install.sh -L $local_port
|
|
sudo apt update
|
|
sudo apt install nginx certbot python3-certbot-nginx -y
|
|
sudo certbot certonly --nginx -d $domain
|
|
sudo cat << 'EOF' > /etc/nginx/sites-available/$domain
|
|
server {
|
|
listen 443 ssl;
|
|
server_name $domain;
|
|
ssl_certificate /etc/letsencrypt/live/$domain/fullchain.pem;
|
|
ssl_certificate_key /etc/letsencrypt/live/$domain/privkey.pem;
|
|
location / {
|
|
# WebSocket Support
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection "upgrade";
|
|
|
|
# Host and X headers
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
|
|
# Should match the listening port of this proxy
|
|
proxy_set_header X-Forwarded-Port 443;
|
|
|
|
# Connectivity Options
|
|
proxy_http_version 1.1;
|
|
proxy_read_timeout 1800s;
|
|
proxy_send_timeout 1800s;
|
|
proxy_connect_timeout 1800s;
|
|
proxy_buffering off;
|
|
|
|
# Allow large requests to support file uploads to sessions
|
|
client_max_body_size 10M;
|
|
|
|
# Proxy to Kasm Workspaces running locally on $local_port using ssl
|
|
proxy_pass https://127.0.0.1:$local_port;
|
|
}
|
|
}
|
|
EOF
|
|
sudo ln -s /etc/nginx/sites-available/$domain /etc/nginx/sites-enabled/$domain
|
|
sudo nginx -t
|
|
sudo systemctl restart nginx
|
|
sudo docker restart kasm_api
|
|
sudo shutdown -r +7
|