Skill for creating and setting up Orchard Core web applications. Covers project creation, CMS module configuration, adding modules to the web project, running setup, testing with the Blog recipe, and configuring tenants for multi-site testing.
You are an Orchard Core expert. Generate project setup instructions and configuration for Orchard Core web applications.
dotnet new templates or manual project creation.Program.cs file configures Orchard Core services and middleware..csproj file.# Install the Orchard Core templates
dotnet new install OrchardCore.ProjectTemplates
# Create a new CMS web application
dotnet new occms -n {{ProjectName}}
cd {{ProjectName}}
# Run the application
dotnet run
Create a new ASP.NET Core web application:
dotnet new web -n {{ProjectName}}
cd {{ProjectName}}
# Add the Orchard Core CMS package
dotnet add package OrchardCore.Application.Cms.Targets --version 3.*
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddOrchardCms();
var app = builder.Build();
app.UseStaticFiles();
app.UseOrchardCore();
app.Run();
var builder = WebApplication.CreateBuilder(args);
builder.Services
.AddOrchardCms()
.AddSetupFeatures("OrchardCore.AutoSetup")
.ConfigureServices(tenantServices =>
{
// Register tenant-level services here
})
.Configure((app, routes, services) =>
{
// Configure tenant-level middleware here
});
var app = builder.Build();
app.UseStaticFiles();
app.UseOrchardCore();
app.Run();
Add NuGet packages for the modules you need. All modules — whether from OrchardCore directly, Lombiq, or any community source — must be installed in the web project (the startup project of the solution):
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="OrchardCore.Application.Cms.Targets" Version="3.*" />
<!-- Third-party modules are also added to the web project -->
<PackageReference Include="Lombiq.HelpfulExtensions.OrchardCore" Version="1.*" />
</ItemGroup>
</Project>
To add a local CMS module to the web project (your own or any third-party module):
<ItemGroup>
<!-- Reference a local module project in the web project -->
<ProjectReference Include="../MyModule/MyModule.csproj" />
<ProjectReference Include="../ThirdParty.Module/ThirdParty.Module.csproj" />
</ItemGroup>
After running the application, navigate to / to access the setup screen:
If OrchardCore:DatabaseProvider is configured, the provider is fixed and
cannot be changed on the Setup screen. If the provider requires a connection
string, it remains available unless both OrchardCore:DatabaseProvider and
OrchardCore:ConnectionString are configured; in that case the connection
string is also fixed and is not editable. Setup requires a connection string
only when the selected provider needs one and no saved value exists.
Configure automatic setup in appsettings.json:
{
"OrchardCore": {
"OrchardCore_AutoSetup": {
"AutoSetupPath": "",
"Tenants": [
{
"ShellName": "Default",
"SiteName": "{{SiteName}}",
"SiteTimeZone": "America/New_York",
"DatabaseProvider": "Sqlite",
"RecipeName": "Blog",
"UserName": "admin",
"Email": "admin@example.com",
"Password": "{{SecurePassword}}"
}
]
}
}
}
The Blog recipe sets up a complete blogging site with:
# Create a project and run it
dotnet new occms -n MyBlogSite
cd MyBlogSite
dotnet run
# Navigate to https://localhost:5001
# Select the "Blog" recipe during setup
Place recipe files in the Recipes folder of your module:
{
"name": "{{RecipeName}}",
"displayName": "{{DisplayName}}",
"description": "{{Description}}",
"author": "{{Author}}",
"website": "{{Website}}",
"version": "1.0.0",
"issetuprecipe": true,
"categories": ["default"],
"tags": [],
"steps": [
{
"name": "Feature",
"enable": [
"OrchardCore.Contents",
"OrchardCore.ContentTypes",
"OrchardCore.Title",
"OrchardCore.Alias",
"OrchardCore.Autoroute",
"OrchardCore.Html",
"OrchardCore.Menu",
"OrchardCore.Navigation",
"OrchardCore.Themes",
"OrchardCore.Admin",
"OrchardCore.Settings",
"TheTheme",
"TheAdmin"
],
"disable": []
},
{
"name": "Themes",
"Site": "TheTheme",
"Admin": "TheAdmin"
}
]
}
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer