selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

markopolis logo

Self-host markopolis

3.0.2

Self-hosted Markdown publishing with REST API

ReleaseOpen SourceMIT
Updated2 years ago
LanguageTypescript
Setup difficultyModerate
ThemeDark mode
Stars
180
Ports
8080 (PocketBase API server), 3000 (SvelteKit frontend)
Requires
Python
Docker
ghcr.io/rishikanthc/markopolis
Install with Docker Compose

What is markopolis?

Markopolis is a self-hosted Markdown publishing platform created by Rishikanth Chandrasekaran. It lets you point the server at a folder of Markdown files and instantly serves them as a website with a clean UI. The platform includes a PocketBase backend exposing a REST API for programmatic access to notes, a SvelteKit frontend with dark/light themes, full-text fuzzy search, and support for Obsidian-flavored Markdown including callouts, equations, Mermaid diagrams, and code highlighting. A Python CLI tool (requiring Python 3.12+) handles publishing notes to the server. Deployment is via a single Docker image (ghcr.io/rishikanthc/markopolis) that runs both PocketBase on port 8080 and the frontend on port 3000. The project is MIT-licensed and actively maintained.

Should you self-host markopolis?

markopolis scores 42/100 on selfhost.directory (how scoring works) and ranks #62 of 81 in Notes & Editors. It has 180 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is MIT-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is Memos (86/100, 64 147 stars). It scores higher overall, so compare the two before you pick. See markopolis vs Memos side by side.

Features

  • CLI publishing tool
  • Custom frontend support
  • Full-Text Search
  • Markdown publishing
  • Mermaid diagrams
  • Obsidian Markdown support
  • REST API
  • Wikilinks

markopolis README

How to install markopolis

Install markopolis with Docker Compose

Docker and Docker Compose
Environment variables
POCKETBASE_URL, API_KEY, POCKETBASE_ADMIN_EMAIL, POCKETBASE_ADMIN_PASSWORD, TITLE, CAP1, CAP2, CAP3

version: '3.8'

services: markopolis: image: ghcr.io/rishikanthc/markopolis:latest ports: - "8080:8080" - "3000:3000" environment: - POCKETBASE_URL=http://127.0.0.1:8080 - API_KEY=test - POCKETBASE_ADMIN_EMAIL=admin@admin.com - POCKETBASE_ADMIN_PASSWORD=password - TITLE=Markopolis - CAP1=caption1 - CAP2=caption2 - CAP3=caption3 volumes: - ./pb_data:/app/db

Now you can deploy Markopolis by running docker-compse up -d

Requires generating a secure API_KEY and persistent storage for Markdown files

How to configure markopolis

  • API_KEYAPI key for protecting most API endpoints

    API key for protecting most API endpoints

  • CAP1Caption 1, text that appears below the site title

    Caption 1, text that appears below the site title

  • CAP2Caption 2

    Caption 2

  • CAP3Caption 3

    Caption 3

  • MARKOPOLIS_APIAPI key for the CLI tool (same as server API_KEY)

    API key for the CLI tool (same as server API_KEY)

  • MARKOPOLIS_CONFIG_PATHPath to YAML config file for CLI

    Path to YAML config file for CLI

  • MARKOPOLIS_DOMAINDomain of the deployment including protocol

    Domain of the deployment including protocol

  • POCKETBASE_ADMIN_EMAILAdmin account email for the database

    Admin account email for the database

  • POCKETBASE_ADMIN_PASSWORDAdmin account password for the database

    Admin account password for the database

  • POCKETBASE_URLhttp://127.0.0.1:8080PocketBase server URL (do not change)

    PocketBase server URL (do not change)

  • TITLEMarkopolisSite title

    Site title

markopolis releases & version history

More in Notes & Editors

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…