Разработчикам
Быстрый старт
Руководство разработчика PageCharm
Подключение пакетов, база, storage и первый запуск sample.
1. Установите пакеты
Минимальная сборка состоит из ядра, UI, EF Core-провайдера и storage-провайдера. Sample использует SQLite и локальное файловое хранилище.
| Пакет | Для чего нужен |
|---|---|
PageCharm |
Ядро CMS: модели публичного сайта, маршрутизация контента, Razor-рендеринг, модули и query/helper API. |
PageCharm.Ui |
Русскоязычная админка, setup/login flow, admin API, управление блоками, шаблонами, контентом, медиа, настройками, бэкапами и пользователями. |
PageCharm.EntityFrameworkCore |
Общий EF Core-слой: PageCharmDbContext, конфигурации сущностей, миграционный runner и сервисы хранения данных. Обычно подтягивается provider-пакетом. |
PageCharm.EntityFrameworkCore.Sqlite |
SQLite provider и миграции. Лучший вариант для простого деплоя, небольших и средних сайтов, demo/sample и проектов без отдельного DB-сервера. |
PageCharm.EntityFrameworkCore.PostgreSql |
PostgreSQL provider и миграции. Хороший выбор для production, высокой нагрузки, сложных фильтров, индексов и масштабирования. |
PageCharm.EntityFrameworkCore.MySql |
Не входит в очищенный репозиторий и дистрибутив 1.0.0. |
PageCharm.Storage.Local |
Локальное хранение медиа, resized-пресетов и бэкапов в папках приложения. |
PageCharm.Storage.S3 |
S3-совместимое хранение файлов для production-сценариев с объектным storage/CDN. |
PageCharm.Abstractions |
Контракты и общие модели. Обычно ставится транзитивно; напрямую нужен, если вы пишете отдельные интеграции, модули или пакеты расширений. |
После размещения подготовленного feed по адресу https://pagecharm.ru/nuget/v3/index.json и настройки доступа к нему установите пакеты в проект сайта. Вместо <версия> укажите одну доступную версию PageCharm для всех пакетов.
PAGECHARM_VERSION='<версия>'
dotnet add package PageCharm --version "$PAGECHARM_VERSION"
dotnet add package PageCharm.Ui --version "$PAGECHARM_VERSION"
dotnet add package PageCharm.EntityFrameworkCore.Sqlite --version "$PAGECHARM_VERSION"
dotnet add package PageCharm.Storage.Local --version "$PAGECHARM_VERSION"
2. Подключите сервисы
В Program.cs регистрируется PageCharm, выбранная база, режим миграций и модули, которые сидируют структуру сайта.
3. Откройте админку
Админка доступна по /cms. Для первого пользователя задайте PageCharm:SetupToken в конфигурации или PAGECHARM_SETUP_TOKEN в окружении. Публичные страницы обслуживает fallback-маршрут MapPageCharm().
Пример
using PageCharm;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages();
builder.Services.AddPageCharm(options =>
{
options.Database.UseSqlite(
builder.Configuration.GetConnectionString("PageCharm") ?? "Data Source=ncms.db");
options.Migrations.Mode = builder.Environment.IsDevelopment()
? PageCharmMigrationMode.ApplyOnStartup
: PageCharmMigrationMode.Validate;
options.UseLocalStorage("wwwroot/uploads", "/uploads", "storage/backups");
});
builder.Services.AddPageCharmUi(options =>
{
options.Path = "/cms";
options.SetupToken = builder.Configuration["PageCharm:SetupToken"];
});
var app = builder.Build();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.MapPageCharmUi();
app.MapRazorPages();
app.MapPageCharm();
app.Run();
Production
В production режим ApplyOnStartup намеренно запрещен. Используйте Validate и применяйте миграции отдельным шагом.