Files
yourwillyourwish/COOLIFY_DEPLOYMENT.md
2026-02-06 21:44:04 -06:00

4.5 KiB

Coolify Deployment Guide for Estate Platform

Prerequisites

  1. Coolify installed with Traefik proxy enabled
  2. Domain configured pointing to your Coolify server
  3. 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

  1. In Coolify, create a new Docker Compose application
  2. Point it to your Git repository
  3. Coolify will automatically detect docker-compose.yml
  4. Make sure the traefik network exists:
    docker network create traefik
    
  5. Deploy!

Option B: Using Dockerfile

  1. In Coolify, create a new Dockerfile application
  2. Point it to your Git repository
  3. Set build context to root directory
  4. Coolify will use the Dockerfile to build
  5. 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

Traefik Labels Explained

The docker-compose.yml includes these Traefik labels:

  • traefik.enable=true - Enable Traefik for this service
  • traefik.http.routers.estate-platform.rule=Host(...) - Route by domain
  • traefik.http.routers.estate-platform.entrypoints=websecure - Use HTTPS
  • traefik.http.routers.estate-platform.tls.certresolver=letsencrypt - Auto SSL
  • traefik.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 postgres not localhost
  • 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: