This is the official Wiki project from HytaleModding, hosted at https://wiki.hytalemodding.dev. It allows mod teams to create and manage documentation for their mods, making it easy for players and developers to find the information they need.
Before you start, make sure you have the following installed:
- PHP 8.2 or newer
- Composer
- Node.js 18 or newer
- Bun
- Git
You also need these PHP extensions enabled:
fileinfoiconvpdo_sqlitesqlite3
You can check the PHP extensions required by the lockfile with:
composer check-platform-reqsClone the repository and install the project dependencies:
git clone https://github.com/HytaleModding/wiki.git
cd wiki
composer install
bun installCreate your local environment file and application key:
cp .env.example .env
php artisan key:generateCreate the local SQLite database, run migrations, seed demo data, and link storage:
touch database/database.sqlite
php artisan migrate --seed
php artisan storage:linkStart the local development server:
composer devThe app will be available at http://localhost:8000.
GitHub sync is event-driven through a GitHub App. Create an app with Contents: Read-only and Metadata: Read-only repository permissions, enable user authorization (OAuth), install it on the repositories that provide documentation, and subscribe it to Push events. Set its webhook URL to https://your-wiki-domain/webhooks/github and its user authorization callback URL to https://your-wiki-domain/api/github/callback.
Users connect by installing that shared app into their own personal account or organization and choosing which repositories it can access. The wiki then reads the repositories visible to the authorized user from that installation.
Configure these values in production:
GITHUB_APP_ID=your-app-id
GITHUB_APP_CLIENT_ID=your-client-id
GITHUB_APP_CLIENT_SECRET=your-client-secret
GITHUB_APP_SLUG=your-app-slug
GITHUB_APP_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----"
GITHUB_WEBHOOK_SECRET=a-long-random-secretEach verified push queues a sync for the matching repository. Keep a queue worker running in production. GITHUB_TOKEN remains supported only as a legacy fallback; GitHub App installation tokens are used for normal synchronization.
After seeding the database, you can log in with:
| Password | |
|---|---|
admin@example.com |
password |
user@example.com |
password |
collaborator@example.com |
password |
Run the frontend development server only:
bun run devBuild frontend assets:
bun run buildRun frontend formatting, linting, and type checks:
bun run qualityRun PHP tests and style checks:
composer testFormat PHP code with Laravel Pint:
./vendor/bin/pintTo rebuild your local database from scratch and seed it again:
php artisan migrate:fresh --seedIf composer install fails with a message like requires ext-iconv, your PHP CLI installation is missing a required extension. Composer can detect and report missing extensions, but extensions are installed through your operating system, package manager, PHP version manager, or Docker image.
Run this to see which php.ini file your terminal PHP is using:
php --iniRun this to list enabled PHP extensions:
php -mFor the most reproducible local setup, use a PHP environment manager or Docker image that includes the required extensions instead of installing extensions one by one on each machine.
If you'd like to contribute to this project, you can follow our Contributing Guide.
