Moonglade is a personal blogging platform built for developers, optimized for seamless deployment on Microsoft Azure. It features essential blogging tools: posts, comments, categories, tags, archives, and pages.
- Stable Code: Always use the Release branch. Avoid deploying from
master
. - Security: Enable HTTPS and HTTP/2 on your web server for optimal security and performance.
- Deployment Options: While Azure is recommended, Moonglade can run on any cloud provider or on-premises.
- China Regulation: In China, Moonglade runs in read-only mode due to local regulations. If you are in China, please consider alternative platforms.
This mirrors how edi.wang is deployed, utilizing a variety of Azure services for maximum speed and security. No automated script is provided—manual resource creation is required.
Get started in 10 minutes with minimal Azure resources using our automated deployment script.
Tools | Alternatives |
---|---|
Visual Studio 2022 | VS Code + .NET 8.0 SDK |
SQL Server 2022 | LocalDB, PostgreSQL, or MySQL |
Tip: SQL Server Express (free) is sufficient for most production uses.
Database | Example Connection String (appsettings.json > ConnectionStrings > MoongladeDatabase ) |
---|---|
SQL Server | Server=(local);Database=moonglade;Trusted_Connection=True; |
MySQL | Server=localhost;Port=3306;Database=moonglade;Uid=root;Pwd=***; |
PostgreSQL | User ID=***;Password=***;Host=localhost;Port=5432;Database=moonglade;Pooling=true; |
- Build and run
./src/Moonglade.sln
- Access your blog:
- Home:
https://localhost:17251
- Admin:
https://localhost:17251/admin
- Default username:
admin
- Default password:
admin123
- Default username:
- Home:
Most settings are managed in
appsettings.json
. For blog settings, use the/admin/settings
UI.
- By default: Local accounts (manage via
/admin/settings/account
) - Microsoft Entra ID (Azure AD) supported. Setup guide
Configure the ImageStorage
section in appsettings.json
to choose where blog images are stored.
Create an Azure Blob Storage container with appropriate permissions:
{
"Provider": "azurestorage",
"AzureStorageSettings": {
"ConnectionString": "YOUR_CONNECTION_STRING",
"ContainerName": "YOUR_CONTAINER_NAME"
}
}
- Enable CDN in admin settings for faster image delivery.
Set up a MinIO Server:
{
"Provider": "miniostorage",
"MinioStorageSettings": {
"EndPoint": "localhost:9600",
"AccessKey": "YOUR_ACCESS_KEY",
"SecretKey": "YOUR_SECRET_KEY",
"BucketName": "YOUR_BUCKET_NAME",
"WithSSL": false
}
}
Windows:
{
"Provider": "filesystem",
"FileSystemPath": "C:\\UploadedImages"
}
Linux:
{
"Provider": "filesystem",
"FileSystemPath": "/var/UploadedImages"
}
Enable comment moderation via the Moonglade.ContentSecurity Azure Function:
"ContentModerator": {
"Provider": "",
"ApiEndpoint": "",
"ApiKey": ""
}
For notifications on new comments, replies, webmentions, and pingbacks, use Moonglade.Email Azure Function:
"Email": {
"ApiEndpoint": "",
"ApiKey": ""
}
Enable notifications in the admin portal.
Name | Feature | Status | Endpoint |
---|---|---|---|
RSS | Subscription | Supported | /rss |
Atom | Subscription | Supported | /atom |
OPML | Subscription | Supported | /opml |
Open Search | Search | Supported | /opensearch |
Pingback | Social | Supported | /pingback |
Webmention | Social | Supported | /webmention |
Reader View | Reader Mode | Supported | N/A |
FOAF | Social | Supported | /foaf.xml |
IndexNow | SEO | Supported | N/A |
RSD | Discovery | Deprecated | N/A |
MetaWeblog | Blogging | Deprecated | N/A |
Dublin Core | SEO | Basic | N/A |
对于中国访客,我们有一份特供的免责申明。请确保你已经阅读并理解其内容:免责申明(仅限中国访客)