|
@@ -12,6 +12,7 @@ Deploy **Workout-Cool** on your own server using Docker. This guide provides two
|
|
|
- [Option 1: Docker Compose (All-in-One)](#option-1-docker-compose-all-in-one)
|
|
|
- [Option 2: Docker Only (External Database)](#option-2-docker-only-external-database)
|
|
|
- [Management Commands](#️-management-commands)
|
|
|
+- [Mapping Your Domain & Enabling HTTPS](#-mapping-your-domain--enabling-https)
|
|
|
- [Troubleshooting](#-troubleshooting)
|
|
|
- [Resources & Support](#-resources--support)
|
|
|
|
|
@@ -61,8 +62,8 @@ nano .env
|
|
|
|
|
|
```bash
|
|
|
# Application Configuration (Required for both options)
|
|
|
-NEXTAUTH_SECRET=your-secret-key-here
|
|
|
-NEXTAUTH_URL=http://your-server-ip:3000
|
|
|
+BETTER_AUTH_URL=http://your-server-ip:3000
|
|
|
+BETTER_AUTH_SECRET=your-secret-key-here
|
|
|
|
|
|
# Optional: Seed sample data on first run
|
|
|
SEED_SAMPLE_DATA=true
|
|
@@ -131,6 +132,99 @@ Visit `http://your-server-ip:3000`
|
|
|
|
|
|
---
|
|
|
|
|
|
+## 🌐 Mapping Your Domain & Enabling HTTPS
|
|
|
+
|
|
|
+Make your app accessible via your own domain and secure it with HTTPS. Here's how:
|
|
|
+
|
|
|
+### 1. Point Your Domain
|
|
|
+
|
|
|
+1. Log in to your domain registrar.
|
|
|
+2. Create an **A record** for `yourdomain.com` pointing to your server's IP.
|
|
|
+3. (Optional) Create a **CNAME** record for `www` pointing to `yourdomain.com`.
|
|
|
+
|
|
|
+### 2. Set Up HTTPS with a Reverse Proxy
|
|
|
+
|
|
|
+#### Option A: Caddy (Recommended)
|
|
|
+
|
|
|
+Caddy provides automatic HTTPS and a simpler config.
|
|
|
+
|
|
|
+1. **Install Caddy:**
|
|
|
+ ```bash
|
|
|
+ sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
|
|
|
+ curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
|
|
|
+ echo "deb [signed-by=/usr/share/keyrings/caddy-stable-archive-keyring.gpg] https://dl.cloudsmith.io/public/caddy/stable/deb/debian all main" | sudo tee /etc/apt/sources.list.d/caddy-stable.list
|
|
|
+ sudo apt update
|
|
|
+ sudo apt install caddy
|
|
|
+ ```
|
|
|
+2. **Configure Caddy:**
|
|
|
+ ```bash
|
|
|
+ sudo nano /etc/caddy/Caddyfile
|
|
|
+ ```
|
|
|
+ Add:
|
|
|
+ ```
|
|
|
+ yourdomain.com {
|
|
|
+ reverse_proxy localhost:3000
|
|
|
+ }
|
|
|
+ ```
|
|
|
+3. **Reload Caddy:**
|
|
|
+ ```bash
|
|
|
+ sudo systemctl reload caddy
|
|
|
+ ```
|
|
|
+
|
|
|
+✅ Caddy will:
|
|
|
+- Automatically request and install an SSL certificate via Let’s Encrypt
|
|
|
+- Renew it automatically
|
|
|
+- Proxy requests to your app running on port `3000`
|
|
|
+
|
|
|
+#### Option B: Nginx + Let's Encrypt
|
|
|
+
|
|
|
+Use this if you're more familiar with Nginx.
|
|
|
+
|
|
|
+1. **Install Nginx & Certbot:**
|
|
|
+ ```bash
|
|
|
+ sudo apt update && sudo apt install nginx certbot python3-certbot-nginx
|
|
|
+ ```
|
|
|
+2. **Create Nginx config:**
|
|
|
+
|
|
|
+ ```bash
|
|
|
+ sudo nano /etc/nginx/sites-available/workout-cool
|
|
|
+ ```
|
|
|
+
|
|
|
+ Add:
|
|
|
+ ```
|
|
|
+ server {
|
|
|
+ listen 80;
|
|
|
+ server_name yourdomain.com www.yourdomain.com;
|
|
|
+
|
|
|
+ location / {
|
|
|
+ proxy_pass http://localhost:3000;
|
|
|
+ proxy_set_header Host $host;
|
|
|
+ proxy_set_header X-Real-IP $remote_addr;
|
|
|
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
|
+ proxy_set_header X-Forwarded-Proto $scheme;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ```
|
|
|
+3. **Enable and reload:**
|
|
|
+ ```bash
|
|
|
+ sudo ln -s /etc/nginx/sites-available/workout-cool /etc/nginx/sites-enabled/
|
|
|
+ sudo nginx -t && sudo systemctl reload nginx
|
|
|
+ ```
|
|
|
+4. **Get an HTTPS certificate:**
|
|
|
+ ```bash
|
|
|
+ sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
|
|
|
+ ```
|
|
|
+
|
|
|
+### 3. Update Environment
|
|
|
+
|
|
|
+Update your `.env` file with the new domain
|
|
|
+
|
|
|
+```env
|
|
|
+BETTER_AUTH_URL=https://yourdomain.com
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
## 🛠️ Management Commands
|
|
|
|
|
|
### Docker Compose Commands
|
|
@@ -220,6 +314,7 @@ If you encounter issues:
|
|
|
- [Docker Compose Documentation](https://docs.docker.com/compose/)
|
|
|
- [PostgreSQL Documentation](https://www.postgresql.org/docs/)
|
|
|
- [Next.js Deployment Guide](https://nextjs.org/docs/deployment)
|
|
|
+- [Caddy Documentation](https://caddyserver.com/docs/install)
|
|
|
|
|
|
### Community & Support
|
|
|
- **GitHub**: [Repository](https://github.com/Snouzy/workout-cool) | [Issues](https://github.com/Snouzy/workout-cool/issues)
|