Create New Document

The title of your document (will be displayed as H1)
URL-friendly name (no spaces, use dashes)
Path where to create document (optional, use forward slashes to create subdirectories)

Move/Rename Document

Current location of the document
New path for the document (including the slug)
This only changes the document's path. It does not modify the document's title (H1 heading).

Delete Document

Are you sure you want to delete this document? This action cannot be undone.

Warning: If this is a folder, all contents including subfolders and documents will be deleted.

Message

Message content goes here.

Confirm Action

Are you sure?

Attachments

Allowed file types: jpg, jpeg, png, gif, svg, webp, txt, log, csv, zip, pdf, docx, xlsx, pptx, mp4 (Max: 1MB)

Document Files

Loading attached files...

Document History

Previous Versions

Loading versions...

Preview

Select a version to preview

Wiki Settings

Language for the user interface
Number of versions to keep per document. Set to 0 to disable versioning.
Maximum allowed file size for uploads in MB.

User Management

Add New User

Leave empty to keep current password

Import markdown files from a ZIP archive. Files will be processed and stored in the appropriate document structure. Directory structure in the ZIP (category/subcategory) will be preserved in the wiki.

Upload a ZIP file containing markdown (.md) files to import.

Install

Important Configuration Note with Non-SSL Setups

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

  1. By default, LeoMoon 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.

Native TLS Configuration

In data/config.yaml set:

server:
  host: 0.0.0.0
  port: 443            # container listens on 443
  allow_insecure_cookies: false
  ssl: true            # enable built-in HTTPS
  ssl_cert: /path/to/certificate.crt
  ssl_key:  /path/to/private.key

If ssl: false (default) the app serves plain HTTP on port (8080 by default) and you can run it behind a reverse proxy instead.

The Docker image published by GitHub exposes both 8080 and 443 so you can choose either scenario at runtime (see below).


Native TLS Configuration

In data/config.yaml set:

server:
  host: 0.0.0.0
  port: 443            # container listens on 443
  allow_insecure_cookies: false
  ssl: true            # enable built-in HTTPS
  ssl_cert: /path/to/certificate.crt
  ssl_key:  /path/to/private.key

If ssl: false (default) the app serves plain HTTP on port (8080 by default) and you can run it behind a reverse proxy instead.

The Docker image published by GitHub exposes both 8080 and 443 so you can choose either scenario at runtime.


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.

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.


Binary

Download the latest release for your platform from the GitHub Releases page.

# Run the application
./wiki-go  # or wiki-go.exe on Windows

Build from Source

Requirements:

# Clone the repository
git clone https://github.com/leomoon-studios/wiki-go.git
cd wiki-go

# Build the binary
go build -o wiki-go

# Run the application
./wiki-go  # or wiki-go.exe on Windows

Attached Files

Loading attached files...

Comments

No comments yet. Be the first to comment!

Search Results