Umbraco CMS
.NET-based CMS with flexible content modeling and clean architecture.
Overview
Umbraco is a powerful open-source CMS built on Microsoft's .NET platform that has been serving developers and content creators since 2004. Known for its flexible content modeling system and clean architecture, Umbraco allows developers to define custom Document Types that structure content exactly how they need it, while providing content editors with an intuitive backoffice interface. Unlike rigid CMS platforms, Umbraco gives developers complete control over markup and presentation through Razor templates and C# code-behind files.
This Docker stack combines Umbraco CMS with Microsoft SQL Server 2022, creating a robust content management platform that leverages the full power of the .NET ecosystem. SQL Server provides enterprise-grade data storage with advanced querying capabilities, transaction management, and scalability features that complement Umbraco's sophisticated content tree structure and property handling. The containerized setup maintains the native performance characteristics while simplifying deployment and environment consistency.
This configuration is ideal for .NET developers who want to build content-driven websites with complete architectural control, marketing teams requiring sophisticated content workflows, and organizations that need a CMS that can evolve with complex business requirements. The combination of Umbraco's developer-friendly approach with SQL Server's enterprise reliability makes this stack particularly valuable for agencies building client sites, internal corporate platforms, and any scenario where content structure needs to be as flexible as the presentation layer.
Key Features
- Document Types system for defining custom content structures with properties, compositions, and inheritance
- Backoffice interface at /umbraco with rich text editing, media management, and content tree navigation
- Full .NET 6+ support enabling custom controllers, services, and dependency injection patterns
- Razor template engine with strongly-typed models for complete markup control
- SQL Server integration with advanced querying through Umbraco's content APIs and direct database access
- Content versioning and rollback capabilities stored in SQL Server's robust transaction system
- Multi-site management allowing multiple websites from single Umbraco instance
- Extensible through NuGet packages and custom property editors built with C# and JavaScript
Common Use Cases
- 1Corporate websites requiring custom content types like product catalogs, news articles, and landing pages
- 2.NET development teams building client websites with specific content modeling requirements
- 3Marketing agencies managing multiple client sites through Umbraco's multi-site capabilities
- 4Enterprise intranets needing integration with existing Microsoft infrastructure and Active Directory
- 5E-commerce platforms requiring custom product content types and complex taxonomy structures
- 6Educational institutions building course catalogs and content management for multiple departments
- 7Government organizations needing GDPR-compliant content management with audit trails
Prerequisites
- Docker Engine 20.10+ and Docker Compose V2 for container orchestration
- Minimum 4GB RAM allocation for SQL Server container (2GB) and Umbraco application (1-2GB)
- Strong SA password meeting SQL Server requirements (uppercase, lowercase, numbers, symbols, 8+ characters)
- Port 80 available for Umbraco web interface access
- Basic understanding of .NET development concepts and Razor syntax for customization
- Familiarity with SQL Server Management Studio or Azure Data Studio for database administration
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 umbraco: 3 image: umbraco/umbraco:latest4 container_name: umbraco5 restart: unless-stopped6 environment: 7 ASPNETCORE_ENVIRONMENT: Development8 ConnectionStrings__umbracoDbDSN: Server=mssql;Database=umbraco;User=sa;Password=${SA_PASSWORD};TrustServerCertificate=True9 ports: 10 - "80:80"11 depends_on: 12 - mssql13 networks: 14 - umbraco-network1516 mssql: 17 image: mcr.microsoft.com/mssql/server:2022-latest18 container_name: umbraco-mssql19 environment: 20 ACCEPT_EULA: "Y"21 SA_PASSWORD: ${SA_PASSWORD}22 volumes: 23 - mssql_data:/var/opt/mssql24 networks: 25 - umbraco-network2627volumes: 28 mssql_data: 2930networks: 31 umbraco-network: 32 driver: bridge.env Template
.env
1SA_PASSWORD=YourStrong@Passw0rdUsage Notes
- 1Docs: https://docs.umbraco.com/
- 2Access at http://localhost - install wizard creates admin user
- 3Backoffice at /umbraco for content management
- 4Document Types: define content structure with properties
- 5.NET ecosystem: C#, Razor, full .NET features
- 6Strong password required (uppercase, lowercase, numbers, symbols)
Individual Services(2 services)
Copy individual services to mix and match with your existing compose files.
umbraco
umbraco:
image: umbraco/umbraco:latest
container_name: umbraco
restart: unless-stopped
environment:
ASPNETCORE_ENVIRONMENT: Development
ConnectionStrings__umbracoDbDSN: Server=mssql;Database=umbraco;User=sa;Password=${SA_PASSWORD};TrustServerCertificate=True
ports:
- "80:80"
depends_on:
- mssql
networks:
- umbraco-network
mssql
mssql:
image: mcr.microsoft.com/mssql/server:2022-latest
container_name: umbraco-mssql
environment:
ACCEPT_EULA: "Y"
SA_PASSWORD: ${SA_PASSWORD}
volumes:
- mssql_data:/var/opt/mssql
networks:
- umbraco-network
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 umbraco:5 image: umbraco/umbraco:latest6 container_name: umbraco7 restart: unless-stopped8 environment:9 ASPNETCORE_ENVIRONMENT: Development10 ConnectionStrings__umbracoDbDSN: Server=mssql;Database=umbraco;User=sa;Password=${SA_PASSWORD};TrustServerCertificate=True11 ports:12 - "80:80"13 depends_on:14 - mssql15 networks:16 - umbraco-network1718 mssql:19 image: mcr.microsoft.com/mssql/server:2022-latest20 container_name: umbraco-mssql21 environment:22 ACCEPT_EULA: "Y"23 SA_PASSWORD: ${SA_PASSWORD}24 volumes:25 - mssql_data:/var/opt/mssql26 networks:27 - umbraco-network2829volumes:30 mssql_data:3132networks:33 umbraco-network:34 driver: bridge35EOF3637# 2. Create the .env file38cat > .env << 'EOF'39SA_PASSWORD=YourStrong@Passw0rd40EOF4142# 3. Start the services43docker compose up -d4445# 4. View logs46docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/umbraco/run | bashTroubleshooting
- SQL Server container fails to start with password error: Ensure SA_PASSWORD meets complexity requirements (uppercase, lowercase, numbers, symbols)
- Umbraco installation wizard shows database connection error: Verify SQL Server container is fully started before accessing Umbraco (takes 30-60 seconds)
- Cannot access backoffice after initial setup: Navigate to http://localhost/umbraco and clear browser cache if redirects fail
- Document Type creation fails with database errors: Check SQL Server container logs for transaction deadlocks and restart mssql container if needed
- Template compilation errors in Umbraco: Ensure proper Razor syntax and model inheritance from Umbraco's base classes like ContentModel
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Ad Space
Shortcuts: C CopyF FavoriteD Download