Solo Blogging System

repository·master·Indexed 23 days ago

https://github.com/88250/solo

A lightweight, open-source blogging system designed for programmers. Solo version 4.4.0 supports deployment via Docker with MySQL or H2 databases, features a variety of built-in skins, and provides options for static site generation, GitHub synchronization, and Markdown post imports.

Tokens
6K
Snippets
10
Records
42
Agent score
81%

What's inside Solo

  1. Overview of Solo blog system

    master
    Solo is a small, beautiful, and open-source blog system specifically designed for programmers. It features a distributed community experience where articles can be pushed as posts to the community, and community replies are automatically linked as blog comments. It supports advanced Markdown editing, multiple skins, and various data import/export formats.
  2. Switch themes via URL parameter

    master

    You can preview or switch themes by adding a skin parameter to the URL on the homepage (/).

    Usage: http://yourdomain.com/?skin=Finding

    Behavior:

    1. The skin parameter is only processed on the homepage (/).
    2. If a valid skin is provided, it is saved in a Cookie.
    3. To clear the cookie and return to the default theme, use ?skin=default or provide a non-existent skin name.
    4. This is useful for developers to test themes or for bloggers to let visitors experiment with different looks.
    http://88250.b3log.org/?skin=Finding
  3. Configure Markdown editor modes

    master

    The editor supports different rendering modes. You can configure the editor mode in the settings. Features include:

    • Immediate Rendering Mode: Similar to Typora, it provides a live preview while retaining Markdown markup.
    • Split-screen Preview: A rewritten mode for side-by-side editing and previewing.
  4. Key features of Solo

    master

    Solo provides a comprehensive set of features for blogging and content management:

    • Markdown Support: Uses Vditor, supporting WYSIWYG, Instant Rendering, and Split View modes.
    • Content Organization: Tag aggregation classification, custom navigation links, and signature columns.
    • Article Management: Random/Related/Pinned articles, update reminders, and custom permanent links.
    • Site Customization: Multi-skin support with multi-end adaptation, custom SEO parameters, announcements, and footers.
    • Technical Capabilities: Code syntax highlighting, mathematical formulas, flow charts, and staves.
    • Data Portability: Import from Hexo, Jekyll, or Markdown; Export to SQL, JSON, or Markdown.
    • Advanced Integrations: Support for Atom, RSS, and Sitemap; CDN static resource separation (configurable via jsDelivr); Built-in HTTPS + CDN file storage.
    • Deployment & Backup: Pull GitHub repository for automatic backup; support for generating and exporting static sites for GitHub Pages.
    • Collaboration: Multi-user writing and team blog support.
  5. Deploy Solo using Docker with H2 Database

    master

    For a simpler setup, you can use the H2 database. Ensure you mount a volume for the H2 data to persist it.

    docker run --detach --name solo --volume ~/solo_h2/:/opt/solo/h2/ --publish 8080:8080 \
        --env RUNTIME_DB="H2" \
        --env JDBC_USERNAME="root" \
        --env JDBC_PASSWORD="123456" \
        --env JDBC_DRIVER="org.h2.Driver" \
        --env JDBC_URL="jdbc:h2:/opt/solo/h2/db;MODE=MYSQL" \
        b3log/solo --listen_port=8080 --server_scheme=http --server_host=localhost --server_port=
    docker run --detach --name solo --volume ~/solo_h2/:/opt/solo/h2/ --publish 8080:8080 \
        --env RUNTIME_DB="H2" \
        --env JDBC_USERNAME="root" \
        --env JDBC_PASSWORD="123456" \
        --env JDBC_DRIVER="org.h2.Driver" \
        --env JDBC_URL="jdbc:h2:/opt/solo/h2/db;MODE=MYSQL" \
        b3log/solo --listen_port=8080 --server_scheme=http --server_host=localhost --server_port=