diff --git a/COOLIFY_ENV_VARS.md b/COOLIFY_ENV_VARS.md index 46d6078d..169672cb 100644 --- a/COOLIFY_ENV_VARS.md +++ b/COOLIFY_ENV_VARS.md @@ -1,65 +1,79 @@ # Environment Variables for Coolify Deployments -## DEV Environment (adr-lms.whitex.cloud) +> ⚠️ **SECURITY NOTE**: This file contains placeholder values only. Replace ALL `YOUR_*` placeholders with your actual secure values before deployment. Never commit actual secrets to version control. + +## Placeholder Values to Replace: +- `YOUR_DEV_REDIS_PASSWORD` - Strong password for development Redis instance +- `YOUR_LIVE_REDIS_PASSWORD` - Strong password for production Redis instance +- `YOUR_DEV_DB_PASSWORD` - Strong password for development database +- `YOUR_LIVE_DB_PASSWORD` - Strong password for production database +- `YOUR_DEV_NEXTAUTH_SECRET` - Cryptographically secure random string for dev auth +- `YOUR_LIVE_NEXTAUTH_SECRET` - Cryptographically secure random string for production auth +- `YOUR_RESEND_API_KEY` - Your actual Resend API key for email delivery +- `your-dev-domain.com` - Your development domain name +- `your-prod-domain.com` - Your production domain name +- `contact@.com` - Your organization contact email + +## DEV Environment ``` DEPLOYMENT_NAME=dev -LEARNHOUSE_DOMAIN=adr-lms.whitex.cloud -LEARNHOUSE_COOKIE_DOMAIN=adr-lms.whitex.cloud -LEARNHOUSE_CONTACT_EMAIL=adr-lm@whitex.cloud +LEARNHOUSE_DOMAIN=your-dev-domain.com +LEARNHOUSE_COOKIE_DOMAIN=your-dev-domain.com +LEARNHOUSE_CONTACT_EMAIL=contact@.com LEARNHOUSE_EMAIL_PROVIDER=resend LEARNHOUSE_IS_AI_ENABLED=false -LEARNHOUSE_REDIS_CONNECTION_STRING=redis://default:CfhIfLu2c1VEEpGmhs80NUUvUMzyCq1lmzBZmFJDdrs@redis:6379/1 -LEARNHOUSE_RESEND_API_KEY=re_LenY3zNh_S5ShneCyS3Pbf6HX75Yt8jet +LEARNHOUSE_REDIS_CONNECTION_STRING=redis://default:YOUR_DEV_REDIS_PASSWORD@redis:6379/1 +LEARNHOUSE_RESEND_API_KEY=YOUR_RESEND_API_KEY LEARNHOUSE_SELF_HOSTED=true LEARNHOUSE_SITE_DESCRIPTION=ADR LMS is platform tailored for learning experiences. LEARNHOUSE_SITE_NAME=ADR LMS -LEARNHOUSE_SQL_CONNECTION_STRING=postgresql://learnhouse_dev:Yvvxnnf1+qr6r+6d92NvbaXWeGuRqmsroFdildw9ez4@db:5432/learnhouse_dev +LEARNHOUSE_SQL_CONNECTION_STRING=postgresql://learnhouse_dev:YOUR_DEV_DB_PASSWORD@db:5432/learnhouse_dev LEARNHOUSE_SSL=true -LEARNHOUSE_SYSTEM_EMAIL_ADDRESS=adr-lms@whitex.cloud -NEXTAUTH_SECRET=FokIexhXga0KpAF06a7ADqt0HIJf8n9XJeRptZctDG0 -NEXTAUTH_URL=https://adr-lms.whitex.cloud -NEXT_PUBLIC_API_URL=https://adr-lms.whitex.cloud/api/v1/ -NEXT_PUBLIC_LEARNHOUSE_API_URL=https://adr-lms.whitex.cloud/api/v1/ -NEXT_PUBLIC_LEARNHOUSE_BACKEND_URL=https://adr-lms.whitex.cloud/ +LEARNHOUSE_SYSTEM_EMAIL_ADDRESS=contact@.com +NEXTAUTH_SECRET=YOUR_DEV_NEXTAUTH_SECRET +NEXTAUTH_URL=https://your-dev-domain.com +NEXT_PUBLIC_API_URL=https://your-dev-domain.com/api/v1/ +NEXT_PUBLIC_LEARNHOUSE_API_URL=https://your-dev-domain.com/api/v1/ +NEXT_PUBLIC_LEARNHOUSE_BACKEND_URL=https://your-dev-domain.com/ NEXT_PUBLIC_LEARNHOUSE_DEFAULT_ORG=default -NEXT_PUBLIC_LEARNHOUSE_DOMAIN=adr-lms.whitex.cloud +NEXT_PUBLIC_LEARNHOUSE_DOMAIN=your-dev-domain.com NEXT_PUBLIC_LEARNHOUSE_MULTI_ORG=false -NEXT_PUBLIC_LEARNHOUSE_TOP_DOMAIN=adr-lms.whitex.cloud +NEXT_PUBLIC_LEARNHOUSE_TOP_DOMAIN=your-dev-domain.com POSTGRES_DB=learnhouse_dev -POSTGRES_PASSWORD=Yvvxnnf1+qr6r+6d92NvbaXWeGuRqmsroFdildw9ez4 +POSTGRES_PASSWORD=YOUR_DEV_DB_PASSWORD POSTGRES_USER=learnhouse_dev -REDIS_PASSWORD=CfhIfLu2c1VEEpGmhs80NUUvUMzyCq1lmzBZmFJDdrs +REDIS_PASSWORD=YOUR_DEV_REDIS_PASSWORD ``` -## LIVE Environment (edu.adradviser.ro) +## LIVE Environment ``` DEPLOYMENT_NAME=live -LEARNHOUSE_DOMAIN=edu.adradviser.ro -LEARNHOUSE_COOKIE_DOMAIN=edu.adradviser.ro -LEARNHOUSE_CONTACT_EMAIL=adr-lm@whitex.cloud +LEARNHOUSE_DOMAIN=your-prod-domain.com +LEARNHOUSE_COOKIE_DOMAIN=your-prod-domain.com +LEARNHOUSE_CONTACT_EMAIL=contact@.com LEARNHOUSE_EMAIL_PROVIDER=resend LEARNHOUSE_IS_AI_ENABLED=false -LEARNHOUSE_REDIS_CONNECTION_STRING=redis://default:tRK6fpKHGM2lWY8AYvL7L5kRQhncF2gydYOxG4l8vNY@redis:6379/0 -LEARNHOUSE_RESEND_API_KEY=re_LenY3zNh_S5ShneCyS3Pbf6HX75Yt8jet +LEARNHOUSE_REDIS_CONNECTION_STRING=redis://default:YOUR_LIVE_REDIS_PASSWORD@redis:6379/0 +LEARNHOUSE_RESEND_API_KEY=YOUR_RESEND_API_KEY LEARNHOUSE_SELF_HOSTED=true LEARNHOUSE_SITE_DESCRIPTION=ADR LMS is platform tailored for learning experiences. LEARNHOUSE_SITE_NAME=ADR LMS -LEARNHOUSE_SQL_CONNECTION_STRING=postgresql://learnhouse:kOZ8JgUNNSbPKSlfIBDBs5Ycs+ZOVZ3NZZooQrOyOqI@db:5432/learnhouse +LEARNHOUSE_SQL_CONNECTION_STRING=postgresql://learnhouse:YOUR_LIVE_DB_PASSWORD@db:5432/learnhouse LEARNHOUSE_SSL=true -LEARNHOUSE_SYSTEM_EMAIL_ADDRESS=adr-lms@whitex.cloud -NEXTAUTH_SECRET=LPBwWytdQu9QDQHTdHEOHsHGhXDqdu6I686dXLVHH4g -NEXTAUTH_URL=https://edu.adradviser.ro -NEXT_PUBLIC_API_URL=https://edu.adradviser.ro/api/v1/ -NEXT_PUBLIC_LEARNHOUSE_API_URL=https://edu.adradviser.ro/api/v1/ -NEXT_PUBLIC_LEARNHOUSE_BACKEND_URL=https://edu.adradviser.ro/ +LEARNHOUSE_SYSTEM_EMAIL_ADDRESS=contact@.com +NEXTAUTH_SECRET=YOUR_LIVE_NEXTAUTH_SECRET +NEXTAUTH_URL=https://your-prod-domain.com +NEXT_PUBLIC_API_URL=https://your-prod-domain.com/api/v1/ +NEXT_PUBLIC_LEARNHOUSE_API_URL=https://your-prod-domain.com/api/v1/ +NEXT_PUBLIC_LEARNHOUSE_BACKEND_URL=https://your-prod-domain.com/ NEXT_PUBLIC_LEARNHOUSE_DEFAULT_ORG=default -NEXT_PUBLIC_LEARNHOUSE_DOMAIN=edu.adradviser.ro +NEXT_PUBLIC_LEARNHOUSE_DOMAIN=your-prod-domain.com NEXT_PUBLIC_LEARNHOUSE_MULTI_ORG=false -NEXT_PUBLIC_LEARNHOUSE_TOP_DOMAIN=edu.adradviser.ro +NEXT_PUBLIC_LEARNHOUSE_TOP_DOMAIN=your-prod-domain.com POSTGRES_DB=learnhouse -POSTGRES_PASSWORD=kOZ8JgUNNSbPKSlfIBDBs5Ycs+ZOVZ3NZZooQrOyOqI +POSTGRES_PASSWORD=YOUR_LIVE_DB_PASSWORD POSTGRES_USER=learnhouse -REDIS_PASSWORD=tRK6fpKHGM2lWY8AYvL7L5kRQhncF2gydYOxG4l8vNY +REDIS_PASSWORD=YOUR_LIVE_REDIS_PASSWORD ``` ## Key Differences for Isolation diff --git a/README_Coolify.md b/README_Coolify.md index 3d55fdfe..193e1f4e 100644 --- a/README_Coolify.md +++ b/README_Coolify.md @@ -25,7 +25,7 @@ This document provides instructions for deploying LearnHouse using Coolify, ensu ### 3. Configure Domain Settings -- Add your domain (e.g., `learnhouse.example.com`) in the resource settings +- Add your domain (e.g., `learnhouse.com`) in the resource settings - Enable HTTPS if needed (recommended for production) - Configure any necessary redirects @@ -42,18 +42,18 @@ LEARNHOUSE_SSL=true LEARNHOUSE_CONTACT_EMAIL=contact@example.com # Domain Configuration -NEXT_PUBLIC_LEARNHOUSE_DOMAIN=learnhouse.example.com -LEARNHOUSE_COOKIE_DOMAIN=learnhouse.example.com -NEXT_PUBLIC_LEARNHOUSE_TOP_DOMAIN=learnhouse.example.com +NEXT_PUBLIC_LEARNHOUSE_DOMAIN=learnhouse.com +LEARNHOUSE_COOKIE_DOMAIN=learnhouse.com +NEXT_PUBLIC_LEARNHOUSE_TOP_DOMAIN=learnhouse.com # Authentication NEXTAUTH_SECRET=your_generated_secret_key -NEXTAUTH_URL=https://learnhouse.example.com +NEXTAUTH_URL=https://learnhouse.com # API URLs -NEXT_PUBLIC_API_URL=https://learnhouse.example.com/api/v1/ -NEXT_PUBLIC_LEARNHOUSE_API_URL=https://learnhouse.example.com/api/v1/ -NEXT_PUBLIC_LEARNHOUSE_BACKEND_URL=https://learnhouse.example.com/ +NEXT_PUBLIC_API_URL=https://learnhouse.com/api/v1/ +NEXT_PUBLIC_LEARNHOUSE_API_URL=https://learnhouse.com/api/v1/ +NEXT_PUBLIC_LEARNHOUSE_BACKEND_URL=https://learnhouse.com/ # Organization Settings NEXT_PUBLIC_LEARNHOUSE_MULTI_ORG=false diff --git a/README_Network_Isolation_Dynamic.md b/README_Network_Isolation_Dynamic.md index 5eeaeeed..0008fb6b 100644 --- a/README_Network_Isolation_Dynamic.md +++ b/README_Network_Isolation_Dynamic.md @@ -2,6 +2,8 @@ This setup provides complete network isolation between your DEV and LIVE LearnHouse deployments using a single dynamic Docker Compose file and environment variables. +> ⚠️ **NOTE**: This document uses example placeholder domains. Replace all example values with your actual domains before deployment. See [`COOLIFY_ENV_VARS.md`](COOLIFY_ENV_VARS.md) for a complete list of environment variables. + ## Single Dynamic Compose File - `docker-compose-coolify.yml` - Works for both DEV and LIVE deployments using environment variables @@ -21,29 +23,29 @@ The compose file uses `${DEPLOYMENT_NAME:-learnhouse}` patterns to create: ## Coolify Deployment Instructions -### For DEV Environment (adr-lms.whitex.cloud) +### For DEV Environment 1. In Coolify, create a new resource/service 2. Use the standard `docker-compose-coolify.yml` file 3. Set these **key environment variables**: ``` DEPLOYMENT_NAME=dev - LEARNHOUSE_DOMAIN=adr-lms.whitex.cloud - LEARNHOUSE_COOKIE_DOMAIN=adr-lms.whitex.cloud - NEXTAUTH_URL=https://adr-lms.whitex.cloud + LEARNHOUSE_DOMAIN=your-dev-domain.example.com + LEARNHOUSE_COOKIE_DOMAIN=your-dev-domain.example.com + NEXTAUTH_URL=https://your-dev-domain.example.com # ... your other DEV environment variables ``` -### For LIVE Environment (edu.adradviser.ro) +### For LIVE Environment 1. In Coolify, create a new resource/service 2. Use the same `docker-compose-coolify.yml` file 3. Set these **key environment variables**: ``` DEPLOYMENT_NAME=live - LEARNHOUSE_DOMAIN=edu.adradviser.ro - LEARNHOUSE_COOKIE_DOMAIN=edu.adradviser.ro - NEXTAUTH_URL=https://edu.adradviser.ro + LEARNHOUSE_DOMAIN=your-prod-domain.example.com + LEARNHOUSE_COOKIE_DOMAIN=your-prod-domain.example.com + NEXTAUTH_URL=https://your-prod-domain.example.com # ... your other LIVE environment variables ``` @@ -83,16 +85,16 @@ After deployment, verify isolation: ``` 3. **Test cookie domains** in browser DevTools: - - DEV cookies: domain `adr-lms.whitex.cloud` - - LIVE cookies: domain `edu.adradviser.ro` + - DEV cookies: domain `your-dev-domain.example.com` + - LIVE cookies: domain `your-prod-domain.example.com` ## Adding New Environments To add a staging environment: ``` DEPLOYMENT_NAME=staging -LEARNHOUSE_DOMAIN=staging.example.com -LEARNHOUSE_COOKIE_DOMAIN=staging.example.com +LEARNHOUSE_DOMAIN=your-staging-domain.example.com +LEARNHOUSE_COOKIE_DOMAIN=your-staging-domain.example.com ``` This automatically creates `staging-network` and Coolify handles volume isolation.