wiki-go is a free, open source project & work management project written in JavaScript and released under GPL-3.0. It has 618 GitHub stars, 53 forks and 33 open issues, and was last pushed 4 days ago. On this registry it ranks #57 of 67 tracked projects in Project & Work Management, with 5 head-to-head comparisons available.

LeoMoon Wiki-Go

docker builds binary builds version demo

Desktop

LeoMoon Wiki-Go is a modern, feature-rich, databaseless flat-file wiki platform built with Go. It provides a clean, intuitive interface for creating and managing knowledge bases, documentation, and collaborative content without requiring any external database.

No database. No bloat. Zero maintenance. Just Markdown.

Important Configuration Note with Non-SSL Setups

If you're running Wiki-Go without SSL/HTTPS and experiencing login issues, you need to set allow_insecure_cookies: true in your config.yaml file and restart Wiki-Go. This is because:

  1. By default, Wiki-Go sets the "Secure" flag on cookies for security
  2. Browsers reject "Secure" cookies on non-HTTPS connections
  3. This prevents login from working properly on HTTP-only setups

Security Note: Only use this setting in development or in trusted internal networks. For public-facing wikis, always use HTTPS.

Features

Features at a Glance

  • ✍️ Full Markdown editing with emoji, Mermaid diagrams, and LaTeX math
  • 🔍 Smart full-text search with highlighting and advanced filters
  • 📁 Hierarchical page structure with version history
  • 👥 User management, access control, and private wiki mode
  • 🔗 Link management with automatic metadata fetching and categorization
  • 💬 Comments with moderation and markdown support
  • 📋 Interactive Kanban boards for project management
  • ⚡ Instant setup via Docker or prebuilt binaries
  • 🧩 Custom logos, banners, shortcodes, and more

Perfect for internal documentation, personal knowledge bases, team wikis, or project management.

Content Management

  • Markdown Support: Write content using Markdown syntax for rich formatting
  • Emoji Shortcodes: Use emoji shortcodes like :smile: in your Markdown content
  • File Attachments: Upload and manage images and documents (supports jpg, jpeg, png, gif, svg, txt, log, csv, sfd, zip, pdf, docx, xlsx, pptx, mp4)
  • Link Management: Create and organize collections of links with automatic metadata fetching, descriptions, and categorization
  • Hierarchical Organization: Organize content in nested directories
  • Version History: Track changes with full revision history and restore previous versions
  • Document Management: Create, edit, and delete documents with a user-friendly interface
  • Document Sorting and Naming: Control the order of documents in the sidebar through slug names:
    • Documents are sorted alphabetically by their directory slug name
    • Document titles (displayed in the sidebar and heading) are taken from the first H1 heading in document.md
    • To manually sort documents, prefix slug names with numbers (e.g., 1-overview, 2-installation, 3-usage)
    • The slug name can differ from the displayed title, allowing for organized structure while maintaining readable titles
    • Example: A directory named 1-getting-started with document.md containing # Getting Started Guide will show as "Getting Started Guide" in the sidebar but be sorted first

Collaboration & Feedback

  • Comments System: Enable discussions on documents with a full-featured commenting system
  • Markdown in Comments: Format comments using the same Markdown syntax as in documents
  • Comment Moderation: Administrators can delete inappropriate comments
  • Disable Comments: Option to disable comments system-wide through the wiki settings

Search & Navigation

  • Full-Text Search: Powerful search functionality with support for:
    • Exact phrase matching (using quotes)
    • Inclusion/exclusion of terms
    • Highlighted search results
  • Breadcrumb Navigation: Clear path visualization for easy navigation
  • Sidebar Navigation: Quick access to document hierarchy

User Experience

  • Responsive Design: Works on desktop and mobile devices
  • Dark/Light Theme: Toggle between dark and light modes
  • Code Syntax Highlighting: Support for multiple programming languages
  • Math Rendering: LaTeX math formula support via MathJax
  • Diagrams: Mermaid diagram integration for creating flowcharts, sequence diagrams, etc.

Administration

  • Access Rules: Path-based access control with public, private, and group-restricted visibility
  • User Groups: Assign users to one or more groups to grant access to restricted documents
  • User Management: Create and manage users with different permission levels (admin, editor, viewer)
  • Admin Panel: Configure wiki settings through a web interface
  • Statistics: Track document metrics and site usage

Advanced Features

  • Custom Shortcodes: Extend markdown with special shortcodes like :::stats recent=5::: for additional functionality
  • Media Embedding: Embed images, videos, and other media in your documents
  • Print Friendly: Optimized printing support for documentation
  • API Access: RESTful API for programmatic access to wiki content

Project Management

  • Interactive Kanban Boards: Transform any document into a visual project management board
  • Drag & Drop Tasks: Move tasks between columns with intuitive drag-and-drop functionality
  • Multiple Boards: Support for multiple kanban boards within a single document
  • Task Management: Create, edit, and organize tasks with full markdown formatting support
  • Real-time Updates: Changes are automatically saved and synchronized
  • Nested Tasks: Support for sub-tasks and hierarchical task organization

Demo Site

You can try out Wiki-Go using the live demo below. The demo site resets every hour, and all uploaded or edited content will be wiped automatically.

Get Started

Docker (quick test)

# Pull the latest image
docker pull leomoonstudios/wiki-go

# Run with default configuration
docker run -d \
  --name wiki-go \
  -p 8080:8080 \
  -v "$(pwd)/data:/wiki/data" \
  leomoonstudios/wiki-go

Docker Compose

Option 1 – Plain HTTP (port 8080)

Use the supplied docker-compose-http.yml:

docker-compose -f docker-compose-http.yml up -d

This starts Wiki-Go on http://localhost:8080. Ideal when you terminate TLS at a reverse-proxy (Nginx/Traefik/Caddy). Remember to set allow_insecure_cookies: true in data/config.yaml if the proxy–>container hop is plain HTTP.

To use the original client address for login throttling, add only the reverse proxy's exact IP address or network to server.trusted_proxies. The default empty list ignores all forwarded-IP headers.

For standalone Nginx running on the same machine, when proxy_pass points to an IPv4 loopback address such as http://127.0.0.1:3030, use:

server:
    trusted_proxies:
        - "127.0.0.1"

Add ::1 only when Nginx connects to Wiki-Go through IPv6 loopback. For Docker, use the dedicated Compose network's actual proxy address or CIDR rather than trusting every private network.

Nginx reverse-proxy configuration (click to expand)
server {
    listen 80;
    server_name wiki.example.com;

    # Redirect all HTTP to HTTPS (assuming you use Let's Encrypt on 443)
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name wiki.example.com;

    ssl_certificate     /etc/letsencrypt/live/wiki.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/wiki.example.com/privkey.pem;

    # --- proxy to Wiki-Go container running on HTTP (port 8080) ---
    location / {
        proxy_pass http://wiki-go:8080;

        # Recommended headers
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
    }
}

Compose example for the Nginx service:

  nginx:
    image: nginx:alpine
    container_name: wiki-nginx
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
      - /etc/letsencrypt:/etc/letsencrypt:ro
    depends_on:
      - wiki-go
Option 2 – Native HTTPS (port 443)
# Place certificate + key in ./ssl/
mkdir -p ssl
docker-compose -f docker-compose-ssl.yml up -d

docker-compose-ssl.yml maps host port 443 → container port 443 and mounts your certificate/key. Enable TLS in the application config (see below).


Native TLS Configuration

In data/config.yaml set:

server:

readme truncated — read the full docs on github

Frequently asked questions

Is wiki-go free to use?

wiki-go is open source under the GPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does wiki-go do?

A modern, feature-rich, databaseless flat-file wiki platform built with Go.

What is wiki-go written in?

wiki-go is primarily written in JavaScript. Its source is publicly available at https://github.com/leomoon-studios/wiki-go, and it has 618 GitHub stars.