Skip to content

ProfessionalWiki/NeoWiki

Repository files navigation

NeoWiki

NeoWiki is a collaborative knowledge management system on top of MediaWiki and graph databases.

Mastodon Bluesky X

Technical Documentation

See docs/, especially docs/concepts/glossary.md.

Development

To work on NeoWiki (edit code, run tests, see changes live), bring up the bundled dev stack:

make dev

This builds a dev-mode image, brings up the stack (mediawiki, db, neo, test_neo, node watcher, mailcatcher), runs first-time install and seed, and waits until the wiki is reachable. It prints the URL when ready (the default is http://localhost:8484 but the actual port is auto-allocated; see Reserved ports).

Mailcatcher web UI is at the port make dev printed (default 8025, configurable via MAILCATCHER_PORT in Docker/.env).

The node sidecar runs npm run build:watch, so TypeScript changes under resources/ext.neowiki/ rebuild automatically.

To also expose Neo4j Browser and the Bolt endpoint to the host (single-worktree use), use make dev-tools instead. URLs print when the stack comes up.

Running tests and tools

make phpunit              # full PHPUnit suite
make phpunit filter=Foo   # single test class
make cs                   # phpcs + phpstan
make tsci                 # vitest + build + lint
make bash                 # shell into the mediawiki container
make logs                 # tail logs
make reset                # wipe DB + Neo and reseed demo data

For all targets, run make help.

Per-worktree dev environments

Each clone or worktree is a self-contained stack. Run make dev from any NeoWiki checkout and it will allocate its own port and project namespace, so multiple worktrees can run side by side without collision. See Reserved host ports for the auto-allocation ranges.

To override the MediaWiki port: make dev port=8488 or MW_SERVER_PORT=8488 make dev.

Customizing dev config

Create Docker/LocalSettings.local.php (gitignored) for per-worktree overrides. Common uses:

  • Loading additional MediaWiki extensions for an integration test
  • Custom debug toggles
  • Hook overrides for a specific feature branch

Example:

<?php
wfLoadExtension( 'SomeExtension' );
$wgDebugLogGroups['neowiki'] = '/tmp/neowiki-debug.log';

Try-it-out and server deployment

For a prebuilt try-it-out stack or server deployment with Caddy, see Docker/README.md.

About

AI-ready knowledge management system that combines collaborative editing and knowledge graph.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors