Установка и настройка Umbraco (.NET)

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Установка и настройка Umbraco (.NET)
Средняя
от 1 рабочего дня до 3 рабочих дней
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    874
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    851

Установка и настройка Umbraco (.NET)

Umbraco 13/14 работает на .NET 8. Устанавливается через dotnet CLI или шаблон в Visual Studio. База данных — SQL Server (продакшн) или SQLite (разработка). Требует знакомства с ASP.NET Core — это не PHP-движок, который разворачивается за пять минут.

Системные требования

  • .NET 8 SDK
  • SQL Server 2019+, SQL Server Express или SQLite
  • IIS 10+ / Kestrel / nginx как reverse proxy
  • Windows Server 2019+ или Linux (Ubuntu 20.04+)

Установка через CLI

# установить шаблоны Umbraco
dotnet new install Umbraco.Templates

# новый проект
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"

cd MyProject

# запуск
dotnet run

Для SQL Server вместо SQLite:

dotnet new umbraco -n MyProject \
  --connection-string "Server=localhost;Database=UmbracoDb;Trusted_Connection=True;TrustServerCertificate=True"

Структура appsettings.json

{
  "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"
      }
    }
  }
}

Настройка IIS

<!-- 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 как reverse proxy

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";
    }
}

Настройка как systemd-сервис (Linux)

# /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
systemctl status mysite

Конфигурация логирования

{
  "Serilog": {
    "MinimumLevel": {
      "Default": "Warning",
      "Override": {
        "Microsoft": "Warning",
        "Umbraco": "Warning"
      }
    },
    "WriteTo": [
      {
        "Name": "File",
        "Args": {
          "path": "umbraco/Logs/UmbracoTraceLog.txt",
          "rollingInterval": "Day",
          "retainedFileCountLimit": 14
        }
      }
    ]
  }
}

Обновление Umbraco

# обновить пакет
dotnet add package Umbraco.Cms --version 13.x.x

# запустить миграции — автоматически при старте
dotnet run

# или через CLI Umbraco
dotnet umbraco migrate

Umbraco выполняет миграции схемы БД при старте приложения. В продакшне рекомендуется запустить migrations отдельно перед сменой кода.

Резервное копирование

Для SQL Server:

BACKUP DATABASE [UmbracoDb]
TO DISK = N'D:\Backups\UmbracoDb_20240315.bak'
WITH NOFORMAT, NOINIT, NAME = 'UmbracoDb-Full',
     SKIP, NOREWIND, NOUNLOAD, STATS = 10;

Плюс синхронизация папки wwwroot/media/ — там хранятся загруженные файлы.

Сроки

Установка на VPS с Nginx и SQL Server, настройка backoffice и первого администратора: 1 день. С SSL, systemd-сервисом, настройкой бэкапов и базовыми типами контента: 2–3 дня.