Відзначимо: коли .NET-розробник стикається із завданням швидко запустити CMS з кастомізацією під бізнес-логіку, вибір часто падає на Umbraco. Але стандартне встановлення через dotnet new — лише початок. Без правильної конфігурації БД, reverse proxy та моніторингу продакшн-стенд розсиплеться під першим навантаженням. Ми це пройшли на 50+ проєктах — від простих лендінгів до порталів з мільйонами запитів. У цій статті покажемо, як уникнути типових помилок та налаштувати Umbraco так, щоб воно працювало стабільно та економно. Замовте налаштування під ключ — і забудьте про проблеми з інфраструктурою.
Чому Umbraco на .NET?
Umbraco — одна з небагатьох CMS, які з коробки підтримують .NET. Це дає повний контроль над продуктивністю: можна використовувати асинхронні запити, кешування через Redis, background jobs з Hangfire. На відміну від PHP-двигунів, Umbraco на .NET обробляє складні дерева контенту до 5 разів швидше — в наших тестах різниця сягала 3–5 разів на операціях з великими обсягами даних. Крім того, використання .NET дозволяє гарантувати uptime на рівні 99,9% при правильній конфігурації.
Типові проблеми при встановленні
Найчастіше новачки спотикаються на трьох речах:
- Неправильний рядок підключення. Використовують SQLite в продакшені — при зростанні навантаження падають LOCK-помилки. Потрібен SQL Server з
TrustServerCertificate=True. - Забуті міграції. Після оновлення пакета не запускають міграції — БД залишається старої версії, сипляться exception.
- Кривий reverse proxy. Без налаштування заголовків
X-Forwarded-Forвтрачаються реальні IP користувачів, падає швидкість через відсутність keep-alive.
Як ми налаштовуємо Umbraco під продакшн
Ми використовуємо єдиний чек-лист, який гарантує стабільність під навантаженням. Розглянемо ключові етапи на прикладі VPS з Ubuntu 22.04 та SQL Server.
Системні вимоги
- .NET 8 SDK
- SQL Server 2019+ / SQL Server Express / SQLite (тільки для dev)
- IIS 10+ / Kestrel + Nginx або Apache
- Windows Server 2019+ або Linux (Ubuntu 20.04+)
- Мінімум 2 ГБ RAM, 20 ГБ диска
Встановлення Umbraco через CLI
Для встановлення Umbraco через CLI виконайте наступні команди:
# Шаблон для SQLite (розробка)
dotnet new umbraco -n MyProject --friendly-name "Admin" --email [email protected] --password "P@ssw0rd123" --connection-string "Data Source=|DataDirectory|/Umbraco.sqlite.db;Cache=Shared;Foreign Keys=True;Multithread Safety=True"
# Шаблон для SQL Server (продакшн)
dotnet new umbraco -n MyProject --connection-string "Server=localhost;Database=UmbracoDb;Trusted_Connection=True;TrustServerCertificate=True"
Конфігурація appsettings.json
Основний файл налаштувань, включаючи підключення до БД та Serilog для логування:
{
"ConnectionStrings": {
"umbracoDbDSN": "Server=srv;Database=UmbracoDb;User=sa;Password=secret;TrustServerCertificate=True",
"umbracoDbDSN_ProviderName": "Microsoft.Data.SqlClient"
},
"Umbraco": {
"CMS": {
"Global": {
"Id": "b9c6e1a1-0000-4000-8000-000000000001",
"SendVersionCheckResult": false,
"UseHttps": true,
"ReservedPaths": "~/.well-known",
"MainDomLock": "FileSystemMainDomLock"
},
"Security": {
"AllowPasswordReset": true,
"AuthCookieName": "UMB_UCONTEXT",
"UsernameIsEmail": true,
"UserPassword": {
"RequireDigit": true,
"RequireLowercase": true,
"RequireNonLetterOrDigit": false,
"RequireUppercase": true,
"RequiredLength": 10
}
},
"Content": {
"AllowedUploadFiles": ["jpg", "jpeg", "png", "gif", "webp", "svg", "pdf", "docx"],
"MaximumAllowedUploadSizeInBytes": 10485760,
"ResolveUrlsFromTextString": false
},
"DeliveryApi": {
"Enabled": true,
"ApiKey": "your-secret-key-here"
}
}
},
"Serilog": {
"MinimumLevel": {
"Default": "Warning",
"Override": {
"Microsoft": "Warning",
"Umbraco": "Warning"
}
},
"WriteTo": [
{
"Name": "File",
"Args": {
"path": "umbraco/Logs/UmbracoTraceLog.txt",
"rollingInterval": "Day",
"retainedFileCountLimit": 14
}
}
]
}
}
При правильному налаштуванні ви зможете заощадити до 30% на хостингових ресурсах за рахунок оптимізації кешування та стиснення. А завдяки автоматизації деплою витрати на супровід знижуються ще на 20–30%.
Налаштування веб-сервера
IIS — стандартний вибір для Windows. Додаємо handler для ASP.NET Core:
<!-- web.config -->
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\MyProject.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess">
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Production" />
</environmentVariables>
</aspNetCore>
</system.webServer>
</location>
</configuration>
Nginx + systemd на Linux:
server {
listen 443 ssl http2;
server_name mysite.com;
ssl_certificate /etc/letsencrypt/live/mysite.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mysite.com/privkey.pem;
client_max_body_size 20M;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
location /media/ {
alias /var/www/mysite/wwwroot/media/;
expires 30d;
add_header Cache-Control "public, immutable";
}
}
# /etc/systemd/system/mysite.service
[Unit]
Description=MyProject Umbraco site
After=network.target
[Service]
WorkingDirectory=/var/www/mysite
ExecStart=/usr/bin/dotnet /var/www/mysite/MyProject.dll
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=mysite
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
Активуємо сервіс: systemctl enable mysite && systemctl start mysite.
У рекомендаціях Microsoft по розгортанню ASP.NET Core вказані вимоги до reverse proxy.
Оновлення та бекапи
Для оновлення пакета виконайте команду dotnet add package Umbraco.Cms --version <версія>, потім запустіть проєкт — міграції застосуються автоматично. У продакшені спочатку запустіть міграції окремо: dotnet umbraco migrate. Бекап БД та папки wwwroot/media/ — обов'язковий етап перед оновленням.
Що входить в роботу
| Компонент | Опис |
|---|---|
| Вибір хостингу | Підбір тарифу VPS, встановлення ОС, налаштування брандмауера. |
| Встановлення Umbraco | Через CLI або Visual Studio, створення адміністратора, налаштування backoffice. |
| Конфігурація БД | Налаштування SQL Server, оптимізація індексів, планувальник бекапів. |
| Web-сервер | Налаштування Nginx/IIS, SSL-сертифікат, HTTP/2, gzip. |
| Моніторинг та логи | Serilog, налаштування ротації логів, алерти на помилки. |
| Документація та навчання | Передача доступів, інструкція з адміністрування, навчання редакторів. |
Процес роботи
- Аналітика — обговорюємо вимоги, навантаження, стек технологій.
- Проектування — обираємо хостинг, reverse proxy, схему БД.
- Реалізація — встановлення та налаштування за чек-листом, включаючи автоматизацію деплою.
- Тестування — навантажувальне тестування, перевірка міграцій, швидкості відгуку.
- Деплой — перемикання на продакшн, моніторинг перших годин роботи.
- Підтримка — передача документації, гарантійне обслуговування.
Строки та вартість
Встановлення на VPS з Nginx та SQL Server, налаштування backoffice та першого адміністратора — від 1 дня. Повний цикл з SSL, systemd-сервісом, налаштуванням бекапів та базовими типами контенту — 2–3 дні. Вартість розраховується індивідуально — зв'яжіться з нами, щоб отримати консультацію та точну оцінку.
Коли потрібен SQL Server замість SQLite?
| Критерій | SQLite | SQL Server |
|---|---|---|
| Продуктивність | Низька при конкурентному доступі | Висока, підтримка транзакцій |
| Резервне копіювання | Файловий backup | Online backup, point-in-time |
| Надійність | Немає вбудованої реплікації | Always On, кластеризація |
| Рекомендація | Тільки розробка | Продакшн будь-якої складності |
Ми гарантуємо стабільну роботу вашого Umbraco-проєкту завдяки досвіду сертифікованих інженерів. Замовте налаштування під ключ — і забудьте про проблеми з інфраструктурою. Отримайте консультацію по вашому проєкту — ми підберемо оптимальну конфігурацію.







