Installation
This guide covers how to install and set up LeadCMS using Docker. Follow these steps to get your LeadCMS instance running quickly.
System Requirements
Before installing LeadCMS, ensure your system meets these requirements:
Minimum Requirements
- Docker: Version 20.10 or higher
- Docker Compose: Version 2.10 or higher
- RAM: 4GB minimum (8GB recommended for production)
- Storage: 10GB free disk space (for development)
- CPU: 2 cores minimum
- OS: Linux, macOS, or Windows
Quick Start
Get LeadCMS running in minutes with Docker:
Clone Repository
git clone https://github.com/LeadCMS/leadcms.deploy.git
cd leadcms.deploy
Generate Environment
# Linux/macOS
chmod +x generate-env.sh && ./generate-env.sh
# Windows PowerShell
.\generate-env.ps1
Start it with Docker Compose
docker compose up -d
Your LeadCMS instance will be running at http://localhost:8080
with PostgreSQL included.
Environment Configuration
The generate-env.sh
script creates a .env
file with secure defaults. Review and customize these key settings:
Email Configuration
# Email settings for notifications
EMAIL__USERNAME=your-smtp-username
EMAIL__PASSWORD=your-smtp-password
EMAIL__SERVER=smtp.your-provider.com
EMAIL__PORT=587
EMAIL__USESSL=true
Supported Languages
# Configure supported languages
SUPPORTEDLANGUAGES__0=en
SUPPORTEDLANGUAGES__1=de
SUPPORTEDLANGUAGES__2=fr
CORS Settings
# CORS settings for frontend integration
CORS__ALLOWEDORIGINS__0=http://localhost:3000
CORS__ALLOWEDORIGINS__1=https://yourdomain.com
Default Admin User
# Default admin credentials (CHANGE THESE IMMEDIATELY!)
DEFAULTUSERS__0__USERNAME=admin
DEFAULTUSERS__0__EMAIL=admin@yourcompany.com
DEFAULTUSERS__0__PASSWORD=SecurePassword123
Never use the default admin username and password in production environments. While credentials are stored securely in the .env
file, always set strong, unique values before deploying to production.
Services Included
The Docker Compose stack includes:
- LeadCMS Core: Main .NET application with REST API (Port: 8080)
- PostgreSQL: Primary database for content and user data (Port: 5432)
Verification
After startup, verify your installation:
Check Services
# Check running containers
docker compose ps
# View logs
docker compose logs leadcms
Access LeadCMS
- Admin Interface: Open
http://localhost:8080
in your browser- You should see the LeadCMS Admin UI
- Login using the default admin credentials (see "Default Admin User" above)
- API Documentation: Visit
http://localhost:8080/swagger
for Swagger UI
Test API
# Test API endpoint
curl http://localhost:8080/api/version
Troubleshooting
Common Issues
Port Already in Use
# Check what's using port 8080
lsof -i :8080
# Use different ports by modifying docker-compose.yml
ports:
- "8081:8080" # Change external port
Database Connection Issues
# Check PostgreSQL container logs
docker compose logs postgres
# Reset database (WARNING: destroys all data)
docker compose down -v
docker compose up -d
Production Considerations
The Docker Compose setup is designed for development, evaluation and local use. For production deployments, see our Deploying guide for:
- Using managed PostgreSQL services
- Implementing proper SSL/TLS certificates
- Setting up automated backups and monitoring
- Load balancing and high availability setup
Next Steps
Now that LeadCMS is installed: