Overview
Discover what makes WikiDocs powerful
WikiDocs is a lightweight, self‑hosted wiki engine that eschews traditional databases in favor of plain Markdown files stored on the filesystem. From a developer’s standpoint, it offers a simple yet powerful API surface that can be embedded into existing PHP projects or run as an isolated service behind Apache or Nginx. The core of the application is a PHP front‑end that parses Markdown, renders HTML, and manages page revisions by keeping a history of file snapshots in the same directory tree. This design eliminates database migrations, schema management, and ORM overhead while still providing full version control via file timestamps and optional Git integration.
Language
Web Server
Markup
Math
Overview
WikiDocs is a lightweight, self‑hosted wiki engine that eschews traditional databases in favor of plain Markdown files stored on the filesystem. From a developer’s standpoint, it offers a simple yet powerful API surface that can be embedded into existing PHP projects or run as an isolated service behind Apache or Nginx. The core of the application is a PHP front‑end that parses Markdown, renders HTML, and manages page revisions by keeping a history of file snapshots in the same directory tree. This design eliminates database migrations, schema management, and ORM overhead while still providing full version control via file timestamps and optional Git integration.
Technical Stack & Architecture
- Language: PHP 8.x (object‑oriented, with optional type hints).
- Web Server: Apache2 or Nginx (mod_rewrite or try_files rules).
- Markup: Markdown parsed by a PHP library (likely
Parsedownor similar). - Math: KaTeX rendered client‑side; no server‑side processing.
- Storage: Flat‑file system under a
/datasetsdirectory; each page is a.mdfile, revisions are stored as copies or in arevisions/subfolder. - Front‑end: Vanilla JS with WYSIWYG editor (likely a lightweight library like Quill or TinyMCE), syntax highlighting via Prism.js, dark mode CSS.
- Deployment: Docker image pre‑configured with Apache/PHP; supports volume mounts for persistent data and environment variables (
PUID,PGID). - Extensibility: Configuration file
config.inc.phpexposes paths, authentication mode (public/private), and URL rewrite rules. Custom CSS can be dropped intostyles/styles-custom.css. No plugin system is documented, but the flat‑file nature makes it trivial to hook into pre/post render events by editing core PHP files.
Core Capabilities
- Unlimited revisions: Each edit creates a new file snapshot; the revision history is exposed via URLs like
/revisions/<page>.md. - Attachments & Images: Uploads are stored in a dedicated
attachments/directory; images can be pasted from clipboard or uploaded, then referenced with Markdown image syntax. - Namespaces: Pages are organized by directory structure; the engine automatically generates an index and sitemap for each namespace.
- Multi‑language support: Header tags (
lang="en", etc.) can be added; the engine serves localized content based on request headers or URL prefixes. - Public/Private browsing: Authentication can be toggled; the demo shows a simple password “demo” but the code supports session‑based auth or integration with external OAuth providers.
- API hooks: While no REST API is exposed, developers can extend the PHP code to expose endpoints for CRUD operations or integrate with external services (e.g., CI/CD pipelines that push Markdown to the
/datasetsfolder).
Deployment & Infrastructure
Because WikiDocs relies only on PHP and the filesystem, it scales horizontally by adding read replicas behind a load balancer; write operations require a shared filesystem (NFS, GlusterFS, or cloud object storage with sync). Docker images simplify containerization: a single docker run command brings up the full stack, and volumes persist data across restarts. For production, recommend mounting /datasets to a dedicated storage volume and configuring Apache/Nginx with proper caching headers for static assets.
Integration & Extensibility
- Custom CSS: Drop a
styles-custom.cssfile to override default styling without touching the core. - Git Hooks: Since revisions are files, a Git repository can be initialized in
/datasetsto leverage external tooling (e.g., CI pipelines, diff viewers). - Webhooks: Not natively supported, but developers can add PHP scripts that trigger on file changes (using
inotifyor polling) to push notifications to Slack, Teams, or other services. - Embedding: The rendering engine can be included as a library in other PHP projects; the
renderPage()function (hypothetical) accepts Markdown content and returns sanitized HTML.
Developer Experience
- Documentation: The README provides clear Docker usage, manual setup steps, and web‑server configuration snippets.
- Community: The project is maintained by a single creator with occasional contributors; issue tracker and pull requests are responsive.
- Configuration: The
config.inc.phpfile is simple to edit; most settings are path‑based and can be overridden via environment variables when containerized. - Testing: No automated tests are bundled, but the flat‑file nature allows for quick manual verification of features.
Use Cases
- Internal Knowledge Base – Teams can host a lightweight wiki without a database, simplifying backups and migrations.
- Documentation for Open‑Source Projects – The Markdown focus aligns with GitHub/Bitbucket docs; developers can sync
/datasetsto a repo. - Educational Resources – Instructors can deploy on campus servers, provide private or public access, and track revisions of lecture notes.
- Rapid Prototyping – Developers can spin up a wiki in minutes to prototype documentation or API specs before committing to a full‑featured CMS.
Advantages Over Alternatives
| Criterion | WikiDocs | Typical Wiki Platforms |
|---|---|---|
| Database‑free | ✔️ No DB migrations or maintenance | ❌ Often require |
Open SourceReady to get started?
Join the community and start self-hosting WikiDocs today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Shynet
Privacy‑first web analytics without cookies
Mergeable
Better inbox for GitHub pull requests
Bracket
Manage tournaments effortlessly
Ever Gauzy
All-in-one business management platform for the sharing economy
rgit
Rust‑powered Git web interface with fast metadata and dark mode
Sourcehut
Open-source development platform without tracking or ads
