summaryrefslogtreecommitdiffstats
path: root/push.sh
blob: cba5a07fe7729643a193f41fc4a24d6530eea37c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/bin/bash
set -e

HOST="yummers.dev"
DEPLOY_DIR="~/obsproxy"

echo "Creating deploy directory on remote host..."
ssh "$HOST" "mkdir -p $DEPLOY_DIR/etc/systemd/system $DEPLOY_DIR/etc/nginx/modules-available $DEPLOY_DIR/etc/nginx/sites-available $DEPLOY_DIR/opt/obsproxy"

echo "Copying files to remote host..."
scp -r * "$HOST:$DEPLOY_DIR/"

echo "Installing files with sudo and restarting services..."
ssh "$HOST" << 'EOF'
set -o errexit
set -o xtrace

cd ~/obsproxy

# Install files to their final destinations
sudo cp etc/systemd/system/obsproxy.service /etc/systemd/system/
sudo rm -f /etc/nginx/modules-enabled/stream.conf /etc/nginx/modules-enabled/00-stream.conf
if ! sudo test -e /etc/nginx/modules-enabled/50-mod-stream.conf && \
   ! sudo test -e /etc/nginx/modules-enabled/00-stream.conf; then
  if sudo test -e /usr/lib/nginx/modules/ngx_stream_module.so; then
    echo "Enabling nginx stream module..."
    echo 'load_module /usr/lib/nginx/modules/ngx_stream_module.so;' | \
      sudo tee /etc/nginx/modules-enabled/00-stream.conf >/dev/null
  else
    echo "nginx stream module is missing (install libnginx-mod-stream)" >&2
    exit 1
  fi
fi

sudo cp etc/nginx/modules-available/rtmp.conf /etc/nginx/modules-available/
sudo ln -sf /etc/nginx/modules-available/rtmp.conf /etc/nginx/modules-enabled/rtmp.conf
# Ship the sanitized nginx.conf so only the TLS stream listener owns :1935.
sudo cp etc/nginx/nginx.conf /etc/nginx/nginx.conf
sudo cp etc/nginx/sites-available/yummers.dev /etc/nginx/sites-available/
sudo ln -sf /etc/nginx/sites-available/yummers.dev /etc/nginx/sites-enabled/yummers.dev
sudo cp opt/obsproxy/server.py /opt/obsproxy/
sudo cp opt/obsproxy/requirements.txt /opt/obsproxy/
sudo /opt/obsproxy/venv/bin/pip install --upgrade -r /opt/obsproxy/requirements.txt
sudo rm -rf /var/www/streams/*

# Reload systemd daemon and restart obsproxy service
sudo systemctl daemon-reload
sudo systemctl restart obsproxy

# Reload nginx
sudo nginx -t
sudo systemctl reload nginx

echo "Deployment complete!"
EOF

echo "Done!"