StardustDL / acblog

An open source extensible static & dynamic blog system. (an alternative tool with same features at StardustDL/paperead)
https://acblog.github.io
Other
67 stars 18 forks source link
acblog backend blazor blog-engine cms content-management-system csharp docker dotnet dotnet-core frontend github-pages spa static-site-generator wasm wasm-ghpages

AcBlog

CI CD Homepage Mirrors License AcBlog.Tools.SDK

An open source extensible static & dynamic blog system.

cover

The homepage is powered by AcBlog hosted on GitHub Pages.

Screenshots

Home Posts Archives Search

Features

Guide

Full Static Hosting

GitHub Pages hosting, based on wasm-ghpages-generate-action and static-backend-generate-action.

Frontend

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

Backend

Static

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.

Dynamic

Use AcBlog's API server docker image:

docker pull acblog/api:latest
docker run -d -p 8000:80 acblog/api:latest

Compose

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.

SDK

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

Build

  1. Install .NET SDK 5.0, NodeJS 12.x and npm.
  2. Install Gulp & Libman
  3. Install psake
npm install -g gulp
dotnet tool install --global Microsoft.Web.LibraryManager.Cli
Set-PSRepository -Name PSGallery -InstallationPolicy Trusted; Install-Module -Name psake
  1. Restore dependencies

Add NuGet source: StardustDL's NUGET feeds.

Invoke-psake Restore
  1. Build project
Invoke-psake Build

Test & Benchmark

Invoke-psake CI

Dependencies

Status

Status