wondersheets/DEPLOY.md

98 lines
2.1 KiB
Markdown

# Deployment Instructions for AWS EC2
This guide will help you deploy the **WonderSheets** application to your EC2 instance using Docker.
## Prerequisites
1. **AWS EC2 Instance**: A running instance (e.g., Amazon Linux 2 or Ubuntu).
2. **Security Group Rules**: Ensure your EC2 Security Group allows:
- **Inbound HTTP (Port 80)**: For the web interface.
- **Inbound SSH (Port 22)**: For you to connect.
3. **API Key**: Your Google Gemini API Key.
## Step 1: Connect to your EC2 Instance
Open your terminal and SSH into your server:
```bash
ssh -i /path/to/your-key.pem user@your-ec2-public-ip
```
## Step 2: Install Docker and Docker Compose (if not installed)
**For Amazon Linux 2023 / Amazon Linux 2:**
```bash
sudo yum update -y
sudo yum install -y docker
sudo service docker start
sudo usermod -a -G docker ec2-user
# Logout and log back in to apply group changes
exit
# ssh again...
```
**Install Docker Compose:**
```bash
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
```
*(If you are using Ubuntu, use `sudo apt update && sudo apt install docker.io docker-compose -y`)*
## Step 3: Get the Code
You can either clone the repository or upload your files.
**Option A: Git Clone (Recommended)**
If your code is on Gitea/GitHub:
```bash
git clone <your-repo-url>
cd wondersheets
```
**Option B: Upload Files**
If you want to copy local files:
```bash
scp -i /path/to/key.pem -r . user@your-ec2-ip:~/wondersheets
```
## Step 4: Configure Environment
Create a `.env` file in the project directory:
```bash
nano .env
```
Paste your API key:
```
GEMINI_API_KEY=your_actual_api_key_here
```
Save and exit (`Ctrl+O`, `Enter`, `Ctrl+X`).
## Step 5: Start the Application
Run the application in the background:
```bash
docker-compose up -d --build
```
## Step 6: Verify
Open your browser and visit your EC2 Public IP:
`http://your-ec2-public-ip/`
The app should be running!
---
### Troubleshooting
- **Check logs**: `docker-compose logs -f`
- **Restart**: `docker-compose restart`
- **Stop**: `docker-compose down`