瀏覽代碼

docs(self-host): mapping custom domain section (#104)

Lucas Neves Pereira 4 周之前
父節點
當前提交
59d5101378
共有 1 個文件被更改,包括 97 次插入2 次删除
  1. 97 2
      docs/SELF-HOSTING.md

+ 97 - 2
docs/SELF-HOSTING.md

@@ -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)