
- 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
87 lines
2.5 KiB
Bash
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!" |