Releases: EdiWang/Moonglade
v14.7.1
New Features
- Admin Menu Update: The admin menu now follows the Microsoft Fluent Design System, providing a more modern and intuitive user experience.
- Automatic Database Schema Migration: Moonglade can now automatically migrate database schemas when upgrading to a new version. This feature supports all versions starting from v14.1.0. Currently, only SQL Server is supported, but more database targets will be added in future releases.
Updates and Fixes
- Self-Hosted Editors: TinyMCE and Monaco Editor are now self-hosted instead of being served from a CDN, improving reliability in various network conditions.
- Consistent Captcha Fonts: Linux deployments now display the same font for captcha images as Windows deployments, ensuring a consistent user experience across platforms.
- Default Time Zone Setting: The default time zone setting during new setups is now set to UTC, promoting a standardized time reference.
- Azure Deployment Location: The default deployment location in Azure has been changed to West US, optimizing regional performance.
- Monitoring Upgrade: Migrated from App Insights to Azure Monitor with OpenTelemetry for enhanced monitoring and observability.
- HTTP Header Fixes: Fixed several middleware issues where correct HTTP headers were not being retrieved.
- Performance Optimization: Various performance improvements have been implemented to enhance overall system efficiency.
- .NET Patch: Updated .NET to version 8.0.8, ensuring the latest security and performance enhancements.
v14.6.0
New Features
- Update design to better fit modern screen sizes
- Display abstract for posts in admin portal
- Disable auto-lowercasing of query strings
- Post abstract that is manually written will not be limited to only 400 characters long
- Add pronouns settings
Update and Fixes
- Show environment warning in console instead of page top
- Update AzureQuickDeploy.ps1 to use P0V3 SKU by default
- More strict China detection on production environment to comply with regulations in China
v14.5.0
New Features
- Support the "Webmention" protocol
Update and Fixes
- Bump Monaco editor to latest version
- Bump TinyMCE to latest version
- Bump .NET runtime to latest version
- API resilience improvements
- Logging improvements
- A few UI design improvements
- Change default days of showing warning for post slug modification to 3 days
Upgrade from Previous Version
SQL Server
Run migration script in ./Deployment/mssql-migration.sql
-- v14.4.1 - v14.5.x
ALTER TABLE Post DROP COLUMN IsOriginal
GO
ALTER TABLE Post DROP COLUMN OriginLink
GO
EXEC sp_rename 'Pingback', 'Mention'
GO
ALTER TABLE Mention ADD Worker NVARCHAR(16)
GO
UPDATE Mention SET Worker = N'Pingback'
GO
Other Databases
I don't have knowledge of MySQL and PostgreSql. Please refer to SQL Server migration script and do it yourself.
v14.4.1
New Features
- Local account authentication is changed to one single account only
- Users can view local account login history
- Deployment behind Azure Front Door will see
X-Azure-FDID
header value in the about page of admin portal
Update and Fixes
- Logging enhancement for post, page, tag, category, friend link operations
- Remove
.bmp
format from default image extensions list - Deprecate MetaWeblog API support
- Deprecate old password hashing method
- Deprecate
NUglify
library - Migrate data accessing infrastructure to
ardalis/Specification
- Remove default CSP rules for IIS, adding CSP is now fully under user's control in web server platforms
- Geo location HTTP header name is now
x-geo-match
to further decouple with Azure - Bump .NET to 8.0.5
Upgrade from Previous Version
SQL Server
Run migration script in ./Deployment/mssql-migration.sql
-- v14.3.x - v14.4.1
CREATE TABLE [dbo].[LoginHistory](
[Id] [int] IDENTITY(1,1) NOT NULL,
[LoginTimeUtc] [datetime] NOT NULL,
[LoginIp] [nvarchar](64) NULL,
[LoginUserAgent] [nvarchar](128) NULL,
[DeviceFingerprint] [nvarchar](128) NULL,
CONSTRAINT [PK_LoginHistory] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
DROP TABLE [LocalAccount]
GO
EXEC sys.sp_rename
@objname = N'Category.RouteName',
@newname = 'Slug',
@objtype = 'COLUMN'
GO
IF EXISTS (
SELECT 1
FROM sys.columns c
JOIN sys.objects o ON c.object_id = o.object_id
WHERE o.name = 'Post' AND c.name = 'InlineCss'
)
BEGIN
ALTER TABLE Post DROP COLUMN InlineCss;
END;
GO
Other Databases
I don't have knowledge of MySQL and PostgreSql. Please refer to SQL Server migration script and do it yourself.
v14.3.3
New Features
- Add zh-Hant language support
- New email notification API, decouple with Azure to let user have the ability to create their own API besides Azure
Update and Fixes
- Remove "Sort By" dropdown selector
- Remove IP rate limiting feature, it should be managed by WAF
- Upgrade to TinyMCE 7.0
- Patch .NET to 8.0.3
Upgrade from Previous Version
If you are using Email notification, please migrate to the new email API and add configuration in appsettings.json
"Email": {
"ApiEndpoint": "",
"ApiKey": ""
}
v14.2.0
New Features
- Markdown editor is now using Monaco, still with image uploading capability
- Update default site icon
- Use system native scrollbar
- Small design improvements
Update and Fixes
- Remove
Experimental:ShowTwitterShareButton
flag, this can be achieved by customize footer settings - Move "hot tag amount" settings to general settings to be more relavent
- Remove "show admin login button" settings, nobody uses this
- Shorten Meta Keyword to 256 characters for better web standard
- Use
RedirectPermanent()
for legacy /image requests on CDN enabled systems - Seperate ipv4 and ipv6 display in startup console output
- Move "RemoveTrailingSlashRule" within program control, now you don't have to set up it in web server configuration files
- Allow 1024 characters for foot JavaScript settings
- Upgrade TinyMCE editor
- Remove x-xss-protection header in default web.Release.config file due to MDN doc warning
- Remove unnecessary asp-append-version for several CSS files
v14.1.0
New Features
- Support custom ranking for friend links #731
- Support code highlight for
shell
andwasm
language - New settings for adding custom
script
tag to HTML foot - Add server time zone information in Admin about page
- Add Azure App Service information in Admin about page when the deployment is on Azure App Service
Update and Fixes
- Remove code highlight for
less
language - Optimize favicon and webmanifest
- Microsoft Clarity is added to default CSP rules for IIS
- Minimal UI layout adjustment
- Use local files instead of CDN for built-in webfonts
- Bump Bootstrap to 5.3.2
- Patch Monaco editor
- Remove dependency on
Spectre.Console
- General bug fixes
Upgrade from Previous Version
If your deployment is in China
According to #767, Moonglade will not start if your deployment is in China since this version.
In order for you to backup your data during the migration process, edit appsettings.json
, set DetectChina
flag to "allow"
. Although Moonglade will continue to run, please note this is NOT a solution, future changes may remove this flag.
Run database migration script
SQL Server
-- v14.1.0
ALTER TABLE FriendLink ADD [Rank] INT
GO
UPDATE FriendLink SET [Rank] = 0
GO
ALTER TABLE FriendLink ALTER COLUMN [Rank] INT NOT NULL
GO
MySQL (by GPT4)
ALTER TABLE FriendLink ADD `Rank` INT;
UPDATE FriendLink SET `Rank` = 0;
ALTER TABLE FriendLink MODIFY `Rank` INT NOT NULL;
Other Databases
I don't know about other databases, please refer to MSSQL script and migrate them yourself.
v14.0.1
New Features
- Refresh forestage UI design, more like Microsoft fluent design language
- Improve Admin UI design, more like Microsoft fluent design language
- Support ATOM subscription for categories
- Comment moderator now uses a standalone Azure Function, users now have the ability to create their own APIs by any technology they like, without modifying Moonglade source code
- Add settings to show date only or date with time for published posts
- Add experimental app settings to show X(Twitter) share button
Update and Fixes
- Upgrade to .NET 8.0
- Rename
AzureAD
toEntraID
according to this announcement from Microsoft - Deprecated Qiniu image storage provider
- Fixed wrong RSS cache partition that will result in incorrect RSS subscription results
- For IIS publish, removed "Redirect Misc Homepage URLs to canonical homepage URL" rule in web.config, it's up to user now
- Most data exporting features now generate CSV on front-end, API will now provide a standard JSON object
- Upgrade TinyMCE editor to v6.7.2
- Upgrade Monaco editor to v0.44.0
- Remove PHP language from code editor
- Output
ASPNETCORE_ENVIRONMENT
value to console on startup - Connection string will be output to console on startup in Debug mode
- Remove Microsoft CDN options in Azure Deployment script, because users will choose from varies of CDN options on and off Azure
Upgrade from Previous Version
- Update server runtime to .NET 8.0
- If you are using Azure AD authentication, rename
AzureAd
toEntraID
inappsettings.json
- Rename
ForwardedForHeaderName
toHeaderName
inappsettings.json
- If you are using Docker, please use port 8080 instead of 80 according to this .NET 8 breaking change from Microsoft