Skip to content
forked from StardustDL/acblog

An open source extensible static & dynamic blog system.

License

Notifications You must be signed in to change notification settings

Sidmarek/acblog

 
 

Repository files navigation

AcBlog

CI Homepage Mirrors License

An open source extensible static & dynamic blog system.

Features

  • Based on WebAssembly
  • Single Page APP
    • Installable
    • Offline
  • Frontend
    • WebAssembly: full static files
    • SPA with server prerender
  • Backend
    • Static-file backend with generator
    • Dynamic server backend
  • Post
    • Category & Keywords
    • Markdown rendering
    • LaTeX math rendering
    • Password protection
    • Table of contents
  • Slides
    • Preview & Full page
  • Note
  • Docker deployment
    • Docker Client.WebAssembly
    • Docker Client.WebAssembly.Host
    • Docker Server.API

Guide

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

Backend

Static

Use AcBlog's static generator:

dotnet tool install -g AcBlog.Tools.StaticGenerator --version 0.0.1 \
  --add-source https://www.myget.org/F/stardustdl/api/v3/index.json

acblog-sgen -o ./dist

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 --version 0.0.1 \
  --add-source https://www.myget.org/F/stardustdl/api/v3/index.json

acblog --help

Build

  1. Install .NET Core SDK 3.1, NodeJS 12.x and npm.
  2. Install Gulp & Libman
npm install -g gulp
dotnet tool install --global Microsoft.Web.LibraryManager.Cli
  1. Restore dependencies
pwsh -c tools.ps1 restore
  1. Build project
dotnet build

Test & Benchmark

pwsh -c tools.ps1 test

pwsh -c tools.ps1 benchmark

About

An open source extensible static & dynamic blog system.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 68.9%
  • HTML 25.2%
  • JavaScript 2.7%
  • PowerShell 1.3%
  • Other 1.9%