Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/StardustDL/acblog
An open source extensible static & dynamic blog system. (an alternative tool with same features at StardustDL/paperead)
https://github.com/StardustDL/acblog
acblog backend blazor blog-engine cms content-management-system csharp docker dotnet dotnet-core frontend github-pages spa static-site-generator wasm wasm-ghpages
Last synced: 15 days ago
JSON representation
An open source extensible static & dynamic blog system. (an alternative tool with same features at StardustDL/paperead)
- Host: GitHub
- URL: https://github.com/StardustDL/acblog
- Owner: StardustDL
- License: other
- Created: 2020-04-28T06:20:38.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-05-12T15:04:54.000Z (over 1 year ago)
- Last Synced: 2024-05-15T20:12:17.733Z (6 months ago)
- Topics: acblog, backend, blazor, blog-engine, cms, content-management-system, csharp, docker, dotnet, dotnet-core, frontend, github-pages, spa, static-site-generator, wasm, wasm-ghpages
- Language: C#
- Homepage: https://acblog.github.io
- Size: 1.08 MB
- Stars: 66
- Watchers: 3
- Forks: 17
- Open Issues: 27
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# AcBlog
![CI](https://github.com/acblog/acblog/workflows/CI/badge.svg) ![CD](https://github.com/acblog/acblog/workflows/CD/badge.svg)
[![Homepage](https://img.shields.io/github/workflow/status/acblog/acblog.github.io/Deploy/src?label=homepage)](https://github.com/acblog/acblog.github.io) ![Mirrors](https://img.shields.io/github/workflow/status/acblog/mirrors/Mirror/master?label=mirrors) ![License](https://img.shields.io/github/license/acblog/acblog.svg)
[![AcBlog.Tools.SDK](https://buildstats.info/nuget/AcBlog.Tools.SDK)](https://www.nuget.org/packages/AcBlog.Tools.SDK/)An open source extensible static & dynamic blog system.
![cover](https://repository-images.githubusercontent.com/259549650/50d50d00-9073-11ea-8e72-0d3f1d3a7d8c)
The [homepage](https://acblog.github.io) is powered by AcBlog hosted on GitHub Pages.
- A mirror homepage on [Gitee](https://acblog.gitee.io).
## Screenshots
![Home](https://github.com/StardustDL/own-staticfile-hosting/raw/master/acblog/images/preview-home.png)
![Posts](https://github.com/StardustDL/own-staticfile-hosting/raw/master/acblog/images/preview-post.png)
![Archives](https://github.com/StardustDL/own-staticfile-hosting/raw/master/acblog/images/preview-archive.png)
![Search](https://github.com/StardustDL/own-staticfile-hosting/raw/master/acblog/images/preview-search.png)## Features
- 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
- [![Docker](https://img.shields.io/docker/pulls/acblog/wasm.svg)](https://hub.docker.com/r/acblog/wasm) Client.WebAssembly
- [![Docker](https://img.shields.io/docker/pulls/acblog/wasm-host.svg)](https://hub.docker.com/r/acblog/wasm-host) Client.WebAssembly.Host
- [![Docker](https://img.shields.io/docker/pulls/acblog/client.svg)](https://hub.docker.com/r/acblog/client) Client.Server
- [![Docker](https://img.shields.io/docker/pulls/acblog/api.svg)](https://hub.docker.com/r/acblog/api) Server.API## Guide
### Full Static Hosting
GitHub Pages hosting, based on [wasm-ghpages-generate-action](https://github.com/acblog/wasm-ghpages-generate-action) and [static-backend-generate-action](https://github.com/acblog/static-backend-generate-action).
- [Demo Project](https://github.com/acblog/acblog.github.io)
- [中文说明](https://stardustdl.gitee.io/posts/Development%2FAcBlog-staticgen)### Frontend
Use AcBlog's WebAssembly client docker image:
```sh
docker pull acblog/wasm:latest
docker run -d -p 8000:80 acblog/wasm:latest
```You can use volumn to apply settings:
```sh
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](https://github.com/acblog/wasm-ghpages-generate-action).
---
Use AcBlog's WebAssembly hosted client docker image:
```sh
docker pull acblog/wasm-host:latest
docker run -d -p 8000:80 acblog/wasm-host:latest
```You can use volumn to apply settings:
```sh
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):
```sh
docker pull acblog/client:latest
docker run -d -p 8000:80 acblog/client:latest
```You can use volumn to apply settings:
```sh
docker run -d \
-v $PWD/appsettings.json:/app/appsettings.json \
-p 8000:80 acblog/client:latest
```### Backend
#### Static
Use AcBlog's SDK:
```sh
dotnet tool install -g AcBlog.Tools.Sdk \
--add-source https://sparkshine.pkgs.visualstudio.com/StardustDL/_packaging/feed/nuget/v3/index.jsonacblog init
acblog remote add origin "./dist"
acblog push
```For GitHub Pages hosting, you can use [static-backend-generate-action](https://github.com/acblog/static-backend-generate-action).
#### Dynamic
Use AcBlog's API server docker image:
```sh
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:
```sh
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.
```sh
dotnet tool install -g AcBlog.Tools.Sdk \
--add-source https://sparkshine.pkgs.visualstudio.com/StardustDL/_packaging/feed/nuget/v3/index.jsonacblog --help
```## Build
1. Install .NET SDK 5.0, NodeJS 12.x and npm.
2. Install Gulp & Libman
3. Install psake```ps1
npm install -g gulp
dotnet tool install --global Microsoft.Web.LibraryManager.Cli
Set-PSRepository -Name PSGallery -InstallationPolicy Trusted; Install-Module -Name psake
```4. Restore dependencies
Add NuGet source: [StardustDL's NUGET feeds](https://sparkshine.pkgs.visualstudio.com/StardustDL/_packaging/feed/nuget/v3/index.json).
```ps1
Invoke-psake Restore
```1. Build project
```ps1
Invoke-psake Build
```## Test & Benchmark
```sh
Invoke-psake CI
```## Dependencies
- [.NET](https://github.com/dotnet/runtime) & [ASP.NET](https://github.com/dotnet/aspnetcore) For basic framework.
- [Entity Framework](https://github.com/dotnet/efcore) For database access.
- [ant-design-blazor](https://github.com/ant-design-blazor/ant-design-blazor) For UI designs.
- [scriban](https://github.com/lunet-io/scriban) For layouts.
- [RazorComponents.Markdown](https://github.com/StardustDL/RazorComponents.Markdown) For Markdown rendering.
- [loment](https://github.com/StardustDL/loment) For comment service.
- [listat](https://github.com/StardustDL/listat) For statistic service.## Status
![Status](https://buildstats.info/github/chart/acblog/acblog?branch=master)