#!/bin/sh
set -e
echo "=== Alpine go2rtc + Tailscale Setup ==="
# Enable community repository
echo "Enabling community repository..."
sed -i 's/#\(.*\/community\)/\1/' /etc/apk/repositories
# Update and install packages
echo "Installing packages..."
apk update
apk add tailscale wget
# Enable and start Tailscale
echo "Starting Tailscale..."
rc-update add tailscale
service tailscale start
# Authenticate with Tailscale
echo "Authenticate with Tailscale..."
tailscale up
# Wait for Tailscale to connect
echo "Waiting for Tailscale connection..."
sleep 5
tailscale status
# Download go2rtc
echo "Downloading go2rtc..."
wget -O /usr/local/bin/go2rtc https://github.com/AlexxIT/go2rtc/releases/latest/download/go2rtc_linux_amd64
chmod +x /usr/local/bin/go2rtc
# Create config directory and file
echo "Creating go2rtc config..."
mkdir -p /etc/go2rtc
cat > /etc/go2rtc/go2rtc.yaml << 'EOF'
streams:
pocketbear_cam1:
- rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0
pocketbear_cam1_sub:
- rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=1
pocketbear_cam2:
- rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0
pocketbear_cam2_sub:
- rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=1
api:
listen: ":1984"
rtsp:
listen: ":8554"
webrtc:
listen: ":8555"
EOF
# Create OpenRC init script
echo "Creating go2rtc service..."
cat > /etc/init.d/go2rtc << 'EOF'
#!/sbin/openrc-run
name="go2rtc"
description="go2rtc streaming server"
command="/usr/local/bin/go2rtc"
command_args="-config /etc/go2rtc/go2rtc.yaml"
command_background=true
pidfile="/run/${RC_SVCNAME}.pid"
output_log="/var/log/go2rtc.log"
error_log="/var/log/go2rtc.log"
depend() {
need net
after tailscale
}
EOF
chmod +x /etc/init.d/go2rtc
# Enable and start go2rtc
echo "Starting go2rtc..."
rc-update add go2rtc default
service go2rtc start
# Show status
echo ""
echo "=== Setup Complete ==="
echo ""
echo "Tailscale status:"
tailscale status
echo ""
echo "go2rtc should be running on:"
echo " - Web UI: http://$(tailscale ip -4):1984"
echo " - RTSP: rtsp://$(tailscale ip -4):8554"
echo ""
echo "Test streams:"
echo " - rtsp://$(tailscale ip -4):8554/pocketbear_cam1"
echo " - rtsp://$(tailscale ip -4):8554/pocketbear_cam2"