# Coolify Deployment ## Prerequisites - Coolify instance - Git repository ## Database Setup Choose one: **Option A: Docker Compose (Recommended)** - Database included in `docker-compose.coolify.yml` - Skip to step 2 **Option B: Separate PostgreSQL Resource** 1. Create PostgreSQL database in Coolify 2. Note connection details ## Deploy ### Using Docker Compose (Recommended) 1. Create application in Coolify 2. Select Git repository 3. Configure: - Build Pack: Docker Compose - File: `./docker-compose.coolify.yml` 4. Assign domain to `app` service only (format: `http://yourdomain.com:3000`) 5. Set environment variables: - `AUTH_SECRET` (generate with `openssl rand -base64 32`) - `AUTH_URL` (your domain with https) - `POSTGRES_DATA_PATH` (optional, for custom database storage location) - `GOOGLE_CLIENT_ID` (optional) - `GOOGLE_CLIENT_SECRET` (optional) 6. Deploy ### Using Dockerfile 1. Create application in Coolify 2. Select Git repository 3. Configure: - Build Pack: Docker - Port: `3000` 4. Add domain 5. Set environment variables: - `DATABASE_URL` - `AUTH_SECRET` (generate with `openssl rand -base64 32`) - `AUTH_URL` (your domain with https) - `GOOGLE_CLIENT_ID` (optional) - `GOOGLE_CLIENT_SECRET` (optional) 6. Deploy ## After Deployment Run migrations: ```bash # In Coolify terminal or SSH docker exec -it bun run db:push ``` ## Environment Variables Required: - `DATABASE_URL` - Connection string - `AUTH_SECRET` - Random secret - `AUTH_URL` - Your app URL - `AUTH_TRUST_HOST` - `true` Optional: - `GOOGLE_CLIENT_ID` - `GOOGLE_CLIENT_SECRET` - `POSTGRES_DATA_PATH` - Custom path for PostgreSQL data (Docker Compose only) - Example: `/mnt/storage/wishlist/postgres` - If not set, uses a Docker named volume - Path must exist with proper permissions before deployment ## Troubleshooting **Container crashes:** Check logs in Coolify dashboard **Database connection:** Verify `DATABASE_URL` format **Auth issues:** Check `AUTH_URL` matches your domain