Fix production 404 errors: Add missing OAuth endpoints and domain script
This commit is contained in:
92
server-setup.sh
Executable file
92
server-setup.sh
Executable file
@@ -0,0 +1,92 @@
|
||||
#!/bin/bash
|
||||
# SmoothSchedule Server Initial Setup
|
||||
# Run this on the production server to install dependencies
|
||||
# Usage: ssh poduck@smoothschedule.com 'bash -s' < server-setup.sh
|
||||
|
||||
set -e
|
||||
|
||||
echo "==================================="
|
||||
echo "SmoothSchedule Server Setup"
|
||||
echo "==================================="
|
||||
|
||||
# Update system
|
||||
echo ">>> Updating system packages..."
|
||||
sudo apt-get update
|
||||
sudo apt-get upgrade -y
|
||||
|
||||
# Install Docker
|
||||
if ! command -v docker &> /dev/null; then
|
||||
echo ">>> Installing Docker..."
|
||||
curl -fsSL https://get.docker.com -o get-docker.sh
|
||||
sudo sh get-docker.sh
|
||||
sudo usermod -aG docker $USER
|
||||
rm get-docker.sh
|
||||
echo "Docker installed!"
|
||||
else
|
||||
echo "Docker already installed."
|
||||
fi
|
||||
|
||||
# Install Docker Compose
|
||||
if ! command -v docker compose &> /dev/null; then
|
||||
echo ">>> Installing Docker Compose..."
|
||||
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
||||
sudo chmod +x /usr/local/bin/docker-compose
|
||||
echo "Docker Compose installed!"
|
||||
else
|
||||
echo "Docker Compose already installed."
|
||||
fi
|
||||
|
||||
# Install AWS CLI for DigitalOcean Spaces management
|
||||
if ! command -v aws &> /dev/null; then
|
||||
echo ">>> Installing AWS CLI..."
|
||||
sudo apt-get install -y awscli
|
||||
echo "AWS CLI installed!"
|
||||
else
|
||||
echo "AWS CLI already installed."
|
||||
fi
|
||||
|
||||
# Install UFW firewall
|
||||
if ! command -v ufw &> /dev/null; then
|
||||
echo ">>> Installing UFW firewall..."
|
||||
sudo apt-get install -y ufw
|
||||
fi
|
||||
|
||||
# Configure firewall
|
||||
echo ">>> Configuring firewall..."
|
||||
sudo ufw --force enable
|
||||
sudo ufw default deny incoming
|
||||
sudo ufw default allow outgoing
|
||||
sudo ufw allow ssh
|
||||
sudo ufw allow 80/tcp
|
||||
sudo ufw allow 443/tcp
|
||||
sudo ufw allow 5555/tcp # Flower (Celery monitoring)
|
||||
|
||||
echo ">>> Firewall configured!"
|
||||
|
||||
# Install fail2ban for security
|
||||
if ! command -v fail2ban-client &> /dev/null; then
|
||||
echo ">>> Installing fail2ban..."
|
||||
sudo apt-get install -y fail2ban
|
||||
sudo systemctl enable fail2ban
|
||||
sudo systemctl start fail2ban
|
||||
echo "Fail2ban installed!"
|
||||
else
|
||||
echo "Fail2ban already installed."
|
||||
fi
|
||||
|
||||
# Create project directory
|
||||
echo ">>> Creating project directory..."
|
||||
mkdir -p ~/smoothschedule
|
||||
mkdir -p ~/smoothschedule-frontend
|
||||
|
||||
echo ""
|
||||
echo "==================================="
|
||||
echo "Server Setup Complete!"
|
||||
echo "==================================="
|
||||
echo ""
|
||||
echo "Next steps:"
|
||||
echo "1. Logout and login again for Docker group changes to take effect"
|
||||
echo "2. Configure DigitalOcean Spaces: ./setup-spaces.sh"
|
||||
echo "3. Deploy the application: ./deploy.sh"
|
||||
echo ""
|
||||
echo "IMPORTANT: Logout and login now!"
|
||||
Reference in New Issue
Block a user