4.5 KiB
4.5 KiB
Coolify Deployment Guide for Estate Platform
Prerequisites
- Coolify installed with Traefik proxy enabled
- Domain configured pointing to your Coolify server
- Traefik network must exist:
docker network create traefik
Deployment Steps
1. Set Environment Variables in Coolify
In your Coolify application settings, add these environment variables:
# Application
APP_DOMAIN=your-domain.com
APP_BASE_URL=https://your-domain.com
NODE_ENV=production
# Database
POSTGRES_DB=estate_platform
POSTGRES_USER=postgres
POSTGRES_PASSWORD=your_secure_password_here
DATABASE_URL=postgresql://postgres:your_secure_password_here@postgres:5432/estate_platform
# Redis
REDIS_PASSWORD=your_redis_password_here
REDIS_URL=redis://:your_redis_password_here@redis:6379
# JWT (generate secure random strings)
JWT_SECRET=your_super_secret_jwt_key_here
JWT_REFRESH_SECRET=your_super_secret_refresh_key_here
# Email (optional - for email verification)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASSWORD=your-email-password
EMAIL_FROM=noreply@your-domain.com
# Stripe (optional - for payments)
STRIPE_SECRET_KEY=sk_test_...
STRIPE_PUBLISHABLE_KEY=pk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...
2. Deploy to Coolify
Option A: Using Docker Compose (Recommended)
- In Coolify, create a new Docker Compose application
- Point it to your Git repository
- Coolify will automatically detect
docker-compose.yml - Make sure the
traefiknetwork exists:docker network create traefik - Deploy!
Option B: Using Dockerfile
- In Coolify, create a new Dockerfile application
- Point it to your Git repository
- Set build context to root directory
- Coolify will use the Dockerfile to build
- Configure domain and SSL in Coolify UI
3. Initial Setup After Deployment
Run these commands in Coolify terminal or SSH:
# Navigate to your app directory
cd /data/coolify/applications/[your-app-id]
# Run database migrations
docker compose exec web npx prisma migrate deploy
# Seed initial data
docker compose exec web npm run db:seed
4. Access Your Application
- Web: https://your-domain.com
- Admin Login: admin@ywyw.com / Dev1234#
- User Login: cust@ywyw.com / Dev1234#
Traefik Labels Explained
The docker-compose.yml includes these Traefik labels:
traefik.enable=true- Enable Traefik for this servicetraefik.http.routers.estate-platform.rule=Host(...)- Route by domaintraefik.http.routers.estate-platform.entrypoints=websecure- Use HTTPStraefik.http.routers.estate-platform.tls.certresolver=letsencrypt- Auto SSLtraefik.http.services.estate-platform.loadbalancer.server.port=3000- Backend port
Network Architecture
Internet → Traefik (reverse proxy) → web:3000
↓
postgres:5432
↓
redis:6379
- traefik network: External network for proxy access
- internal network: Private network for database/redis communication
Troubleshooting
Issue: Traefik network not found
docker network create traefik
Issue: Can't connect to database
- Ensure DATABASE_URL uses service name
postgresnotlocalhost - Check postgres container is healthy:
docker compose ps
Issue: Domain not resolving
- Verify DNS points to your Coolify server
- Check Traefik dashboard for routes
- Ensure APP_DOMAIN env variable is set correctly
Issue: SSL certificate not working
- Wait 1-2 minutes for Let's Encrypt to provision
- Check Traefik logs:
docker logs traefik - Ensure ports 80 and 443 are open
Coolify-Specific Configuration
The docker-compose.yml has been optimized for Coolify:
- ✅ Removed exposed ports (Traefik handles routing)
- ✅ Added Traefik labels for automatic SSL
- ✅ Removed problematic pgbouncer service
- ✅ Added network isolation (internal + traefik)
- ✅ Uses service names for internal communication
Production Checklist
- Set strong passwords for POSTGRES_PASSWORD and REDIS_PASSWORD
- Configure custom APP_DOMAIN
- Set secure JWT_SECRET values
- Configure email SMTP settings
- Set up Stripe keys for payments
- Enable automatic backups in Coolify
- Configure monitoring/alerts
- Test database migrations
- Seed initial admin user
- Test SSL certificate renewal
Support
For Coolify-specific issues, check:
- Coolify docs: https://coolify.io/docs
- Traefik docs: https://doc.traefik.io/traefik/