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.
Tip
Try PureWiki without installation: demo.purewiki.org.
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.
PureWiki is designed to be easy to install and run on any standard PHP web-hosting environment.
- 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_rewriteenabled,.htaccessis included) - Nginx (see nginx.conf.example for required configuration)
- Apache (with
- Download: Download the latest release
.zipfrom GitHub or clone the repository into your web server's document root. - 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
- Run Setup: Navigate to your domain in a web browser (e.g.,
https://yourdomain.com). You will be automatically redirected to the setup page. - Follow the Setup: The setup page will guide you through creating your first admin account and setting your wiki's basic configuration.
- Login: Once complete, you will be redirected to the admin dashboard, always reachable at
https://yourdomain.com/dashboard.
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.phpThe router.php script replicates the necessary .htaccess rewrite rules and ensures that sub-pages, assets, and language prefixes work correctly.
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.
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.
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.
/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).
This project is licensed under the GNU Affero General Public License v3.0 (AGPLv3). See the LICENSE file for details.
Contributions, issues, and feature requests are welcome! Feel free to use GitHub Issues and Discussions.
- Editor.js - For the block-based editor.
- Pico.css - For the default theme styling.
- Parsedown - For Markdown parsing.
- PHPMailer - For email functionality.
- Prism.js - For code highlighting.
- Iconify - For icon management.
- Croppie - For image cropping.
Also please check the CREDITS.md file for more information.
