livestream-archiver/deploy.sh.example
RTSDA 6bf2eb38aa Add documentation and configuration templates
- Add comprehensive .gitignore for Rust projects
- Add MIT LICENSE file
- Add detailed README with installation and usage instructions
- Add generic service file template (livestream-archiver.service.example)
- Add generic deployment script template (deploy.sh.example)
- Keep sensitive configuration out of version control
2025-08-16 19:05:59 -04:00

87 lines
2.5 KiB
Bash

#!/bin/bash
# Deployment script for Livestream Archiver
# Usage: Copy to deploy.sh and customize for your environment
SERVER="user@your-server.com"
PORT="22"
REMOTE_PATH="/path/to/livestream-archiver"
SERVICE_NAME="livestream-archiver"
echo "🚀 Starting deployment to $SERVER:$PORT"
# Build release binary
echo "📦 Building release binary..."
cargo build --release
if [ $? -ne 0 ]; then
echo "❌ Build failed!"
exit 1
fi
echo "✅ Build successful!"
# Create deployment directory
echo "📁 Creating deployment directory..."
mkdir -p deploy
# Copy necessary files to deploy directory
echo "📋 Copying files..."
cp target/release/livestream_archiver deploy/
cp livestream-archiver.service deploy/
cp README.md deploy/
# Create deployment package
echo "📦 Creating deployment package..."
tar -czf livestream-archiver-deploy.tar.gz -C deploy .
# Copy to server
echo "🔄 Copying to server..."
scp -P $PORT livestream-archiver-deploy.tar.gz $SERVER:/tmp/
# Deploy on server
echo "🚀 Deploying on server..."
ssh -p $PORT $SERVER << 'EOF'
# Stop existing service if running
sudo systemctl stop livestream-archiver 2>/dev/null || true
# Create application directory
sudo mkdir -p /path/to/livestream-archiver
# Extract deployment package
cd /tmp
tar -xzf livestream-archiver-deploy.tar.gz -C /path/to/livestream-archiver/
# Set permissions
sudo chown -R service-user:service-group /path/to/livestream-archiver
sudo chmod +x /path/to/livestream-archiver/livestream_archiver
# Install systemd service
sudo cp /path/to/livestream-archiver/livestream-archiver.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable livestream-archiver
# Create required directories
sudo mkdir -p /path/to/input/directory
sudo mkdir -p /path/to/output/directory
sudo chown -R service-user:service-group /path/to/input/directory
# Start service
sudo systemctl start livestream-archiver
# Check status
echo "📊 Service status:"
sudo systemctl status livestream-archiver --no-pager
# Clean up
rm -f /tmp/livestream-archiver-deploy.tar.gz
EOF
echo "✅ Deployment complete!"
echo "📊 To check logs: ssh -p $PORT $SERVER 'sudo journalctl -u livestream-archiver -f'"
echo "🔄 To restart: ssh -p $PORT $SERVER 'sudo systemctl restart livestream-archiver'"
# Clean up local files
rm -rf deploy livestream-archiver-deploy.tar.gz
echo "🎉 All done!"