Установка CMS
Установка и запуск кода CMS
Установки TutoCito CMS выполняется менаджером пакетов apt из локального .deb пакета. Для чего достаточно выпонить в терминале сервера строку, состоящую из двух команд:
wget https://tutocito.com/api/updates/download/cmsTCpro_<version>.deb &&
sudo apt install ./cmsTCpro_<version>.deb
Первая команда выполняет скачивание пакета в текущую деректорию, а вторая - распаковывает, устанвливает и запускает. Перед запуском этой команды проверьте номер последней текущей версии пакета, чтобы откорректировать в командной строке, иначе установки не произойдет. Номер текущей версии можно увидеть в личном кабинете, там же можно получить лицензионный ключ продукта.
Код приложения CMS будет размещен в директории /var/www/cmsTCpro. Там же будет находится папка /base - с файлами базы данных в которой хранится все содержимое вашего сайта. Делайте регулярные копии этой папки чтобы обеспечить возможность восстановления при случайной потере данных.
Работу приложения после установки можно проверить в браузере по адресу http://localhost:4000. Приложение запускается как системная служба, поэтому управлять ей можно командами:
- Проверить статус:
sudo systemctl status cmsTCpro.service - Запустить/Остановить:
sudo systemctl start cmsTCpro.service \ sudo systemctl stop cmsTCpro.service - Включить автозагрузку:
sudo systemctl enablecmsTCpro.service - Перезагрузить конфигурацию:
sudo systemctl restartcmsTCpro.service
Это системный файл запускающий приложение:
/etc/systemd/system/cmsTCpro.service
[Unit]
Description=Example .NET Blazor Web App running on Linux
[Service]
WorkingDirectory=/var/www/cmsTCpro
ExecStart=/usr/bin/dotnet /var/www/cmsTCpro/cmsTC.dll
--urls='http://127.0.0.1:4000'
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
Настройка веб-сервера NGINX
Создайте новый файл конфигурации NGINX с приведенным содержимым и с указанным именем. Замените в нем example.com
на ваш домен и проверьте путь к файлам сертификата .key и .crt. Если файлы сертификатов отсутствуют, их необходимо создать
по инструкции хостинга или самостоятельно, например с использованием Certbot Let's Encrypt.
/etc/nginx/site-enabled/default
# MIME-типы и расширение для .razor.js
include /etc/nginx/mime.types;
types {
application/javascript razor.js;
}
# Upstream для ASP.NET Core приложения
upstream app_server {
server 127.0.0.1:4000;
}
# ============================================
# Редирект с www.example.com → example.com
# ============================================
server {
listen 80;
listen 443 ssl;
server_name www.example.com;
# SSL-сертификаты (Certbot)
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# Постоянный редирект на основной домен
return 301 https://example.com$request_uri;
}
# ============================================
# Основной сервер: example.com
# ============================================
server {
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
server_name example.com;
# server_name localhost;
# SSL-сертификаты (Certbot)
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# Корневая директория
root /var/www/cmsTCpro/wwwroot;
# --------------------------------------------
# Проксирование запросов на ASP.NET Core
# --------------------------------------------
location / {
# Ограничение частоты запросов (защита от ботов)
# zone=bot_limit, burst=20 — всплеск до 20 запросов
# nodelay — лишние запросы отклоняются сразу с 503
limit_req zone=bot_limit burst=20 nodelay;
# Проксирование на upstream
proxy_pass http://app_server;
proxy_http_version 1.1; # Обязательно для WebSockets
# Заголовки для корректной работы прокси
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
# Отключение буферизации для потоковой передачи (JS-модули, SignalR)
proxy_buffering off;
}
# --------------------------------------------
# Статические HTML-файлы
# --------------------------------------------
location /html {
root /var/www;
index index.html index.nginx-debian.html;
try_files $uri $uri/ =404;
}
}
Перегрузите веб-сервер:
$ sudo systemctl restart nginx
и проверьте через браузер работу вашего сайта.

