MCPSERV.CLUB
Wiki-Go

Wiki-Go

Self-Hosted

Databaseless flat‑file wiki built in Go

Active(88)
405stars
0views
Updated 1 day ago
Wiki-Go screenshot 1
1 / 5

Overview

Discover what makes Wiki-Go powerful

Wiki‑Go is a self‑hosted, flat‑file wiki written entirely in Go. It eliminates the need for an external database by persisting pages, metadata and user accounts as plain Markdown files on disk. The application exposes a lightweight HTTP API for CRUD operations, search, and authentication while rendering the UI with server‑side templating. This design makes it ideal for developers who prefer a minimal runtime footprint, deterministic deployment, and straightforward version control of content.

Language

Web Framework

Templating

Storage

Overview

Wiki‑Go is a self‑hosted, flat‑file wiki written entirely in Go. It eliminates the need for an external database by persisting pages, metadata and user accounts as plain Markdown files on disk. The application exposes a lightweight HTTP API for CRUD operations, search, and authentication while rendering the UI with server‑side templating. This design makes it ideal for developers who prefer a minimal runtime footprint, deterministic deployment, and straightforward version control of content.

Technical Stack & Architecture

  • Language: Go 1.22+ – leveraging the language’s static binaries, excellent concurrency model and built‑in HTTP server.
  • Web Framework: The standard net/http package with a small router (chi) for routing, middleware and context handling.
  • Templating: Go’s html/template for server‑side rendering, with optional client‑side JavaScript enhancements (e.g., Mermaid, KaTeX).
  • Storage: File‑system based. Each page is a Markdown file (document.md) stored in a hierarchical directory that mirrors the sidebar structure. Metadata (tags, version history) is kept in accompanying JSON/YAML sidecar files.
  • Authentication: Cookie‑based session management. Sessions are signed with HMAC and optionally encrypted; the allow_insecure_cookies flag is required for HTTP‑only setups.
  • Search: Full‑text indexing powered by bleve or a custom in‑memory inverted index, enabling instant keyword search with highlighting and advanced filters.

Core Capabilities & APIs

  • Markdown Editor: Supports GitHub‑flavored Markdown, emoji shortcodes, Mermaid diagrams and LaTeX math via KaTeX.
  • Hierarchical Pages & Versioning: Each edit creates a new revision stored in a .wiki subfolder; APIs allow retrieval, diffing and rollback.
  • Link & Asset Management: Uploads are stored in an assets directory; link collections expose a JSON endpoint for programmatic consumption.
  • User & Permission System: Role‑based access control (admin, editor, viewer) with optional private wiki mode. API endpoints for user CRUD and password reset.
  • Comments & Moderation: Threaded comments stored alongside pages; moderation API to approve or delete.
  • Kanban Boards: Optional board feature backed by JSON files; exposes CRUD endpoints for columns and cards.

Deployment & Infrastructure

Wiki‑Go ships as a single static binary, making it trivially deployable on any Linux distribution or Windows. Docker images are available on GitHub Packages, simplifying CI/CD pipelines. The application runs as a single process, so horizontal scaling can be achieved with reverse‑proxy load balancers (NGINX/Traefik) and shared network file storage or distributed filesystems like GlusterFS or Ceph for the content directory. For high‑availability, a stateless deployment can be paired with external authentication providers (OAuth2/OpenID Connect) and a shared session store.

Integration & Extensibility

  • Plugins: A minimal plugin interface allows developers to hook into page rendering, search, or authentication. Plugins are Go packages compiled into the binary.
  • Webhooks: External services can subscribe to events (page created, updated, deleted) via HTTP callbacks.
  • Shortcodes & Customization: The templating system supports custom shortcodes, enabling dynamic content such as embedded charts or API calls.
  • CLI & SDK: A command‑line tool can batch import/export pages, and the HTTP API can be consumed by any language. No SDK is required thanks to RESTful JSON endpoints.

Developer Experience

Configuration is YAML‑based (config.yaml) and supports environment variable overrides, making it easy to integrate into existing infrastructure. Documentation is concise with clear endpoint definitions and example payloads. The community is active on GitHub, providing issue tracking, pull requests, and quick response times. Licensing under MIT ensures no vendor lock‑in, encouraging fork‑and‑customize workflows.

Use Cases

  • Internal Documentation Hub: Teams can host a lightweight wiki with fine‑grained access control and version history, all under source‑control.
  • Knowledge Base for SaaS Products: Deploy a self‑hosted knowledge base that can be extended with custom shortcodes to embed live metrics.
  • Project Management: Leverage the Kanban board feature for lightweight task tracking without a separate tool.
  • Personal Knowledge Management: Build a local, offline‑first wiki that syncs to a shared drive.

Advantages Over Alternatives

  • Zero Database: Eliminates database maintenance, backups and migrations.
  • Performance & Simplicity: Go binaries are small; startup time is <200 ms, and memory usage stays under 50 MiB for moderate workloads.
  • Deterministic Deployments: Content lives in the repository; CI/CD can publish new versions with a single docker build or binary release.
  • Extensible Architecture: Plugin hooks and webhooks make it straightforward to integrate with CI pipelines, external auth providers or custom analytics.
  • Open Source & MIT: Full freedom to modify the core, add features or rebrand without licensing constraints.

In sum, Wiki‑Go offers developers a fast, low‑maintenance wiki solution that blends the familiarity of Markdown with robust access control and extensibility, all packaged in a single Go binary ready for production deployment.

Open SourceReady to get started?

Join the community and start self-hosting Wiki-Go today

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
other
License
GPL-3.0
Stars
405
Technical Specs
Pricing
Open Source
Database
None
Docker
Official
Supported OS
LinuxDocker
Author
leomoon-studios
leomoon-studios
Last Updated
1 day ago