An open source extensible static & dynamic blog system.
The homepage is powered by AcBlog hosted on GitHub Pages.
- A mirror homepage on Gitee.
- Based on WebAssembly & SignalR
- Single Page APP
- Installable
- Offline
- Frontend
- WebAssembly: full static files
- SPA by WebAssembly with server prerender
- SPA without WebAssembly by communicating with server
- Backend
- Static-file backend with generator
- Dynamic server backend
- Post
- Category & Keywords
- Markdown rendering
- LaTeX math rendering
- Diagram rendering
- Media links
- Password protection
- Table of contents
- Slides
- Preview & Full page
- Note
- Custom pages
- Custom layout
- Full HTML
- Visitor statistic
- Comments
- Archives with timeline
- Sitemap
- Feeds (Atom & RSS)
- Search (Open Search supported)
- Docker deployment
GitHub Pages hosting, based on wasm-ghpages-generate-action and static-backend-generate-action.
Use AcBlog's WebAssembly client docker image:
docker pull acblog/wasm:latest
docker run -d -p 8000:80 acblog/wasm:latest
You can use volumn to apply settings:
docker run -d \
-v $PWD/appsettings.json:/app/appsettings.json \
-v $PWD/manifest.json:/app/manifest.json \
-p 8000:80 acblog/wasm:latest
For GitHub Pages hosting, you can use wasm-ghpages-generate-action.
Use AcBlog's WebAssembly hosted client docker image:
docker pull acblog/wasm-host:latest
docker run -d -p 8000:80 acblog/wasm-host:latest
You can use volumn to apply settings:
docker run -d \
-v $PWD/appsettings.json:/app/appsettings.json \
-v $PWD/manifest.json:/app/wwwroot/manifest.json \
-p 8000:80 acblog/wasm-host:latest
Use AcBlog's server client docker image (no WebAssembly):
docker pull acblog/client:latest
docker run -d -p 8000:80 acblog/client:latest
You can use volumn to apply settings:
docker run -d \
-v $PWD/appsettings.json:/app/appsettings.json \
-p 8000:80 acblog/client:latest
Use AcBlog's SDK:
dotnet tool install -g AcBlog.Tools.Sdk \
--add-source https://sparkshine.pkgs.visualstudio.com/StardustDL/_packaging/feed/nuget/v3/index.json
acblog init
acblog remote add origin "./dist"
acblog push
For GitHub Pages hosting, you can use static-backend-generate-action.
Use AcBlog's API server docker image:
docker pull acblog/api:latest
docker run -d -p 8000:80 acblog/api:latest
Use docker-compose to deploy WebAssembly hosted client and Api server:
cd docker/deploy
docker-compose up
Maybe you need to restart api container after database initializing.
Use AcBlog's command-line Sdk tool to communicate with AcBlog server.
dotnet tool install -g AcBlog.Tools.Sdk \
--add-source https://sparkshine.pkgs.visualstudio.com/StardustDL/_packaging/feed/nuget/v3/index.json
acblog --help
- Install .NET SDK 5.0, NodeJS 12.x and npm.
- Install Gulp & Libman
- Install psake
npm install -g gulp
dotnet tool install --global Microsoft.Web.LibraryManager.Cli
Set-PSRepository -Name PSGallery -InstallationPolicy Trusted; Install-Module -Name psake
- Restore dependencies
Add NuGet source: StardustDL's NUGET feeds.
Invoke-psake Restore
- Build project
Invoke-psake Build
Invoke-psake CI
- .NET & ASP.NET For basic framework.
- Entity Framework For database access.
- ant-design-blazor For UI designs.
- scriban For layouts.
- RazorComponents.Markdown For Markdown rendering.
- loment For comment service.
- listat For statistic service.