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, sfd, 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
Users with these groups can access restricted sections.

Define path-based access rules for sections of your wiki, then assign users to groups in the Users tab. Rules are evaluated in order. First match wins.

Active Rules

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.

Create and manage backups of your wiki data. Backups include all documents, images, and configuration files.

Available Backups

Loading backups...

Add/Edit Access Rule

Selected: /

Add Column

Security Policy

Supported Versions

Use this section to tell people about which versions of Wiki-Go are currently being supported with security updates.

Version Supported
latest

Reporting a Vulnerability

We take the security of Wiki-Go seriously. If you believe you've found a security vulnerability, please follow these steps:

  1. Do not disclose the vulnerability publicly or on the public issue tracker.
  2. Submit your findings through our contact form.
  3. Allow time for us to review and address the vulnerability before any public disclosure.
  4. We'll respond as quickly as possible to acknowledge receipt of your report.

Security Features

Wiki-Go includes several security features:

Role-Based Access Control

Wiki-Go implements a hierarchical role system combined with path-based access rules for comprehensive access management.

User Roles

Each user is assigned one of three roles:

Permission Admin Editor Viewer
View documents
Add documents
Edit documents
Delete documents
Move documents
Manage versions
Post comments
Delete comments
Manage users
Manage access rules
Manage settings

Roles are hierarchical, admins bypass all access rule restrictions and always have full access.

User Groups

Users can be assigned to one or more groups for fine-grained access control:

users:
  - username: alice
    role: editor
    groups: [finance, hr]
  - username: bob
    role: viewer
    groups: [finance]

Groups work in conjunction with access rules to restrict document visibility.

Path-Based Access Rules

Access rules define who can view specific documents or folders based on URL path patterns.

Access Levels

Who can view Public Private Restricted
Unauthenticated users
Authenticated users
Group members
Admin users

Pattern Matching

Rules use glob-style patterns:

Pattern Matches
/finance/** /finance, /finance/reports, /finance/2024/q1
/docs/* /docs/readme (single level only)
/secret Exactly /secret

Rule Evaluation

  1. Rules are evaluated in order (first match wins)
  2. If no rule matches:
    • Private wiki: Authenticated users only
    • Public wiki: Everyone has access
  3. Admins always have access regardless of rules

Example Configuration

access_rules:
  - pattern: "/finance/**"
    access: restricted
    groups: [finance, executives]
    description: "Financial documents - finance team only"
  
  - pattern: "/internal/**"
    access: private
    description: "Internal docs - any authenticated user"
  
  - pattern: "/public/**"
    access: public
    description: "Public documentation"

Managing Access Rules

Access rules are managed through the Admin Interface under Settings → Access Rules tab. From there you can:

Rules are automatically saved to config.yaml, manual editing of the config file is not required.

Login Rate Limiting

Wiki-Go includes built-in protection against brute force attacks by temporarily banning IP addresses after multiple failed login attempts.

How It Works

  1. Monitoring Failed Attempts: The system tracks failed login attempts by IP address.
  2. Exponential Backoff: Ban durations double with each subsequent failure, providing increasing protection against persistent attacks.
  3. Configurable Parameters: All aspects of the rate limiting system can be customized via the admin interface.
  4. Persistence: Ban data is stored in data/temp/login_ban.json and persists across application restarts.

Default Settings

The login ban system is enabled by default with the following settings:

User Experience

  1. First 3 failures → Standard error message ("Invalid username or password")
  2. After 3 failures → 1-minute ban with message "Too many failed login attempts; try again later"
  3. After ban expires, next failure → 2-minute ban (doubling each time)
  4. Ban durations continue doubling up to the configured maximum
  5. Successful login resets all ban state for that IP address

Configuration

Administrators can adjust the login ban settings through:

  1. Admin Interface: Settings → Security tab
  2. Config File: Edit the security section in config.yaml

Example config.yaml section:

security:
  login_ban:
    enabled: true
    max_failures: 5
    window_seconds: 180
    initial_ban_seconds: 60
    max_ban_seconds: 86400  # 24 hours

Error Messages

Session Security

Wiki-Go implements secure session management with persistence capabilities.

Storage and Persistence

Session Lifecycle

Security Recommendations

For secure deployment of Wiki-Go, we recommend:

  1. Always use HTTPS in production environments.
  2. Set allow_insecure_cookies: false (the default) to enforce secure cookies.
  3. Change the default admin password immediately after installation.
  4. Set strong passwords for all accounts, especially admin accounts.
  5. Enable login rate limiting through the security settings to prevent brute force attacks.
  6. Configure access rules for sensitive documents, use restricted access with groups for confidential content.
  7. Regularly review access rules to ensure rule order and group assignments are correct.
  8. Regularly update to the latest version for security patches.
  9. Use a reverse proxy like Nginx, Caddy, or Traefik for additional security layers.
  10. Back up your data regularly to prevent data loss.
  11. Set appropriate file upload size limits to prevent denial of service attacks.
  12. Regularly review user accounts and group memberships to ensure only authorized users have access.

Dependency Management

Wiki-Go uses Go modules for dependency management. All dependencies are vendored to ensure reproducible builds.

Security Practices

Our security practices include:

  1. Regular code review with a focus on security
  2. Input validation to prevent injection attacks
  3. Proper error handling to avoid information leakage
  4. Use of standard libraries for cryptographic operations
  5. Secure session management
  6. Principle of least privilege for user roles

Known Issues

No known security issues at this time.

Security Contact

For security concerns, please use our contact form.

Attached Files

Loading attached files...

Comments

No comments yet. Be the first to comment!

Search Results