Skip to content

Repository files navigation

PureWiki - A Minimalist File-Based Wiki System

PureWiki is a lightweight, high-performance, and file-based wiki system built with native web technologies (PHP, HTML, CSS, JS). It is designed to be simple to deploy and manage, requiring absolutely no database, Node.js, npm, or complex build tools.

GitHub Release GitHub latest PHP Version GitHub code size in bytes

PureWiki Dashboard Screenshot

Tip

Try PureWiki without installation: demo.purewiki.org.

Table of Contents

Basic Features

Important

PureWiki is currently in a very early stage of development and is actively being worked on. As a result, there may be unexpected bugs, incomplete features, and breaking changes in future updates. Use in production environments with caution!

  • Flat File Wiki: All content is stored as JSON files, No Database Required.
  • No Node.js/Build Tools: Built purely with native web technologies.
  • Modern Editor: Integrated with Editor.js for clean, block-based editing, including custom plugins for Markdown, Grid layouts, Accordions, and more.
  • Built-in Caching: Features a static file caching system for fast wiki page access.
  • Authentication & Roles: Simple but effective role-based access control.
  • Comments System: Built-in comments system supporting per-page configurations, manual approval and a management page.
  • Drafts & History: Automatically saves drafts and maintains a full version history of your pages.
  • Built-in Search: Fast and simple full-text search capability.
  • Themes: Ready-to-use theme, easy to create your own themes.
  • Extensions: Extension API to add custom features, Editor.js plugins, settings, and API routes without altering the core codebase.
  • Integrated Updates: Backup and update your wiki directly from the dashboard via GitHub releases.

Installation

PureWiki is designed to be easy to install and run on any standard PHP web-hosting environment.

Requirements

  • PHP 8.1 or higher
  • PHP Extensions: gd (for image processing), zip (for updates/backups), curl (for updates/fetching), openssl
  • Web Server:
    • Apache (with mod_rewrite enabled, .htaccess is included)
    • Nginx (see nginx.conf.example for required configuration)

Setup Steps

  1. Download: Download the latest release .zip from GitHub or clone the repository into your web server's document root.
  2. Permissions: Ensure the web server has write access to the following directories (if they don't exist, ensure the parent directory is writable so the setup can create them):
    • /pages
    • /config
    • /cache
    • /backups
  3. Run Setup: Navigate to your domain in a web browser (e.g., https://yourdomain.com). You will be automatically redirected to the setup page.
  4. Follow the Setup: The setup page will guide you through creating your first admin account and setting your wiki's basic configuration.
  5. Login: Once complete, you will be redirected to the admin dashboard, always reachable at https://yourdomain.com/dashboard.

Local Development

For quick local testing without a full web server (like Apache or Nginx), you can use the built-in PHP development server. Run the following command in the project root:

php -S localhost:8000 router.php

The router.php script replicates the necessary .htaccess rewrite rules and ensures that sub-pages, assets, and language prefixes work correctly.

Configuration

Global settings can be managed through the Admin Dashboard (/dashboard/settings). This includes:

  • Wiki Name & Logo
  • Cache settings
  • Custom CSS/JS injection
  • SEO settings
  • User management
  • System status and manual updates

Configuration files are stored securely in the /config directory as JSON files.

Usage

The Frontend

The public face of your wiki is accessible at the root of your domain. It uses the default theme (based on PicoCSS) and renders your pages dynamically or serves them from the cache for maximum performance.

The Dashboard

Access the administration area at yourdomain.com/dashboard. Here, authorized users can:

  • Manage Pages: Create, edit, delete, and reorganize pages using a drag-and-drop tree view.
  • Edit Content: Use the block-based editor to write content, embed media, or write raw HTML and Markdown.
  • Manage Media: Upload and organize files and images.
  • Configure Settings: Admins can change global wiki settings.

File Structure

  • /pages/ - Where all your wiki content and media files are stored.
  • /config/ - System configuration and user data.
  • /cache/ - Frontend cache directory (includes search index).
  • /purewiki/ - The core application logic (PHP, Admin Dashboard, Editor JS, API).
  • /extensions/ - Directory for custom extensions and plugins.
  • /themes/ - Frontend layouts and styling.
  • /backups/ - System backups.
  • /logs/ - Debug logs (if dev_debug_output is enabled).

License

This project is licensed under the GNU Affero General Public License v3.0 (AGPLv3). See the LICENSE file for details.

Author / Maintainer

Contributions

Contributions, issues, and feature requests are welcome! Feel free to use GitHub Issues and Discussions.

Special Thanks

Also please check the CREDITS.md file for more information.

About

PureWiki is a lightweight, high-performance, and file-based wiki system built with native web technologies (PHP, HTML, CSS, JS).

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages