98 lines
2.1 KiB
Markdown
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`
|