Coolify Deployment Test — Quick Reference
ARCHIVE — This document is historical reference only. It may contain outdated information. See docs/status.md for current project state.
One-Liner Quickstart
# Fresh test (recommended first run)
./scripts/test-coolify-deployment.sh fresh
# Full reset + test (clean slate)
./scripts/test-coolify-deployment.sh clean-reset
# Test robustness (no reset)
./scripts/test-coolify-deployment.sh robust
# Security audit
./scripts/security-audit-coolify.sh
# Validate environment (before production)
./scripts/validate-coolify-env.sh --production
Test Modes At A Glance
| Mode | Time | Use Case | Command |
|---|---|---|---|
| fresh | 8-15 min | First test, CI/CD | ./scripts/test-coolify-deployment.sh fresh |
| clean-reset | 10-15 min | Deep debug, verification | ./scripts/test-coolify-deployment.sh clean-reset |
| robust | 5-10 min | Persistence, upgrades | ./scripts/test-coolify-deployment.sh robust |
Common Options
# Skip smoke tests (faster)
./scripts/test-coolify-deployment.sh fresh --skip-tests
# Enable debugging
./scripts/test-coolify-deployment.sh fresh --debug
# Custom timeout (600 seconds)
./scripts/test-coolify-deployment.sh fresh --timeout 600
# Help
./scripts/test-coolify-deployment.sh --help
Key Files
| File | Purpose |
|---|---|
docker-compose.coolify.yml | Production deployment stack |
scripts/test-coolify-deployment.sh | Main test suite |
scripts/validate-coolify-env.sh | Environment validation |
scripts/security-audit-coolify.sh | Security hardening checks |
.test-logs/coolify-test-*.log | Test execution logs |
What Gets Tested
✅ Docker installation & configuration ✅ Environment variables ✅ Security hardening ✅ All 5 services startup (PostgreSQL, Auth, Redis, Backend, Frontend) ✅ Service health checks ✅ Network connectivity ✅ API endpoints ✅ Database connectivity ✅ WebSocket readiness
Test Results Quick Check
✅ Success
[✓] Coolify deployment test completed successfully!
❌ Failure
[✗] Coolify deployment test failed with exit code X
Check logs:
cat .test-logs/coolify-test-*.log | tail -50
Environment Setup (First Time)
# 1. Generate encryption key
python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
# 2. Export it
export ENCRYPTION_KEY="<generated-key>"
# 3. Export other required variables
export VITE_API_URL="http://localhost:8000"
export VITE_WS_URL="ws://localhost:8000"
export CORS_ORIGINS="http://localhost:5173,http://localhost"
export FRONTEND_URL="http://localhost:5173"
export ANTHROPIC_API_KEY="sk-ant-your-key-here"
# 4. Run test
./scripts/test-coolify-deployment.sh fresh
Troubleshooting Cheat Sheet
| Problem | Command | Fix |
|---|---|---|
| Health check timeout | --timeout 600 | Increase timeout |
| DB can't connect | docker-compose logs supabase-db | Check DB logs |
| Frontend blank page | curl http://localhost | Test manually |
| CORS error | echo $CORS_ORIGINS | Verify environment var |
| Docker not found | docker --version | Install Docker |
| Service not reachable | docker-compose ps | Check container status |
Service Status Check (During/After Test)
# View all containers
docker-compose -f docker-compose.coolify.yml ps
# View specific service logs
docker-compose -f docker-compose.coolify.yml logs [service]
# Follow logs in real-time
docker-compose -f docker-compose.coolify.yml logs -f [service]
# Services:
# - supabase-db
# - supabase-auth
# - redis
# - backend
# - frontend
Cleanup
# Stop containers (keep volumes)
docker-compose -f docker-compose.coolify.yml down
# Stop and remove volumes (clean slate)
docker-compose -f docker-compose.coolify.yml down -v
# Remove all Morphee images
docker images | grep morphee | awk '{print $3}' | xargs docker rmi
Key URLs (During Test)
| Service | URL | Notes |
|---|---|---|
| Frontend | http://localhost | React app |
| Backend API | http://localhost:8000 | FastAPI |
| API Docs | http://localhost:8000/docs | Swagger UI |
| Health | http://localhost:8000/health | API health |
| Auth | http://localhost:9999 | GoTrue (internal) |
| Database | localhost:5432 | PostgreSQL |
| Redis | localhost:6379 | Redis |
Pre-Production Validation
# 1. Environment check
./scripts/validate-coolify-env.sh --production
# 2. Security audit
./scripts/security-audit-coolify.sh
# 3. Fresh deployment
./scripts/test-coolify-deployment.sh fresh
# 4. Robustness check
./scripts/test-coolify-deployment.sh robust
✅ All pass → Ready for production
Essential Environment Variables
# ALWAYS REQUIRED
ENCRYPTION_KEY=<fernet-key>
VITE_API_URL=<api-url>
VITE_WS_URL=<ws-url>
CORS_ORIGINS=<origins>
FRONTEND_URL=<frontend-url>
ANTHROPIC_API_KEY=<api-key>
# Auto-generated by Coolify (don't set manually)
SERVICE_PASSWORD_POSTGRES
SERVICE_PASSWORD_REDIS
SERVICE_REALBASE64_64_JWT
SERVICE_REALBASE64_64_GOTRUE-JWT
Log Locations
| Log | Location | Purpose |
|---|---|---|
| Test logs | .test-logs/coolify-test-*.log | Test execution trace |
| Container logs | docker-compose logs [service] | Service-specific debug |
| Backend logs | docker-compose logs backend | Python app logs |
| Frontend logs | Browser console | React app logs |
Performance Targets
| Phase | Target Time |
|---|---|
| Environment setup | < 1 min |
| Docker build | 3-5 min |
| Startup | 1-2 min |
| Health checks | 2-3 min |
| Smoke tests | 1-2 min |
| Total | 8-15 min |
Support Links
- 📖 Full Guide: coolify-testing-guide.md
- 🚀 Deployment: COOLIFY_DEPLOYMENT.md
- 🏗️ Architecture: architecture.md
- 🐛 Troubleshooting: troubleshooting.md
- ⚙️ Configuration: CLAUDE.md
Quick Test Template (Copy & Paste):
#!/bin/bash
set -e
echo "🧪 Testing Morphee Coolify Deployment..."
# Set environment
export ENCRYPTION_KEY=$(python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())")
export VITE_API_URL="http://localhost:8000"
export VITE_WS_URL="ws://localhost:8000"
export CORS_ORIGINS="http://localhost:5173,http://localhost"
export FRONTEND_URL="http://localhost:5173"
export ANTHROPIC_API_KEY="sk-ant-test-key"
# Run tests
./scripts/validate-coolify-env.sh --test
./scripts/security-audit-coolify.sh
./scripts/test-coolify-deployment.sh fresh
echo "✅ All tests passed!"
Last Updated: February 15, 2026