PWO:PWO
This page is the official outline for the Paper World wiki. This page tracks all current and planned configuration items for the wiki. Completed items will be added to the PWO Billboard in the same format. Items within this list will be completed from the top, and new items will be added to the bottom.
Version context: MediaWiki 1.39.13 (PHP 8.1.33, MySQL 5.7.44, ICU 72.1) inside Docker, with NGINX SSL proxy. See Special:Version for full configuration details.
The Outline
The Paper World Wiki is a private, self-hosted MediaWiki 1.39.13 instance running in Docker with NGINX SSL proxying at wiki.anarkadia.net. It's being hosted via AWS using a t3.large EC2 Ubuntu instance and has 24gb of storage. Its purpose is to serve as a structured, extensible knowledge base with a clean, secure, and mobile-friendly interface. Core features include Vector for desktop, Timeless for mobile, Semantic MediaWiki with supporting extensions, strict editing permissions (sysop-only), and disabled talk pages. The project focuses on performance, security, and rich semantic querying while maintaining a polished visual experience across devices.
Core site & URLs (Continued)
Added Aug 08, 2025, Currently In-progress
'After that necessary (and hectic (thanks, CG)) interruption, we continue with progress to Core site & URLs.'
~ a very pissed director <3
We continue with finishing up some more necessary core site features. After these features, we should feel more comfortable with creating more pages.
- Sitemap: Plan a sitemap strategy (core
generateSitemap.php
or SimpleSitemap extension) and surface at/sitemap.xml
. - Database Backup: Construct a reliable database backup/snapshot system so docker containers and/or instance may be restarted without losing data, as well as changing the
db_data
volume name fromubuntu_db_data
topaperworld-wiki_db_data
.
- See Working Item Page: Database Backup for progress.
Optimization (Round 1)
Added Aug 11, 2025, Currently Pending
'clean me'
~ PWW internal files (probably)
Our first round of optimizations and cleanup must be done! The following are the files I'd like to target:
- LocalSettings.php: Haven't touched this one in a while, there could be some cleanup that could be done, and verify that
.env
is plugging variables reliably. - Dockerfile & docker-compose.yml: Streamline these files (and see if we can use a better solution than
PHP_INI_SCAN_DIR
for providing MediaWiki with addtl.conf.d
files. - /nginx/conf.d/default.conf: Streamline the primary configuration for Nginx; check for any redundant code and add futureproof code.
- renew-certs.sh: Script is messy and probably not production-grade. Assess.
- Other Small Files:
.env
(and.env.example
),.gitignore
, config files within/docker/mediawiki/conf.d/
Identity, email, users
Added Aug 08, 2025, Currently Needs Review
- Email transport: Email is enabled but no SMTP config; decide whether to wire real SMTP for password resets/notifications.
- User groups & rights: Edits are sysop-only and Talk is disabled; review if you want a publisher/editor group later.
- Rate limits & abuse: Configure `$wgRateLimits` (API & login throttles). Consider AbuseFilter if editing is re-opened.
Security & privacy
Added Aug 08, 2025, Currently Needs Review
- Cookies over TLS: With NGINX SSL, set `$wgForceHTTPS`, `$wgCookieSecure = true`, and `$wgCookieSameSite` (`Lax` recommended).
- CSP/headers: Keep CSP/HSTS in NGINX; optionally mirror minimal `$wgCSP` in MediaWiki.
- Interface editing: Confirm interface-admin workflow for editing MediaWiki: pages / gadgets.
- External fetches: Decide on external images, transclusion policies, and `$wgAllowImageTag` (likely off).
Skins & mobile
Added Aug 08, 2025, Currently Needs Review
- Default skins: Vector 2011 (desktop) + Timeless (mobile) with MobileFrontend autodetect — decide if Vector 2022 should be hidden or available.
- MobileFrontend knobs: `$wgMFAutodetectMobileView = true`; set `$wgMFDefaultSkinClass` explicitly to Timeless, tune MF features.
- Common CSS/JS: `MediaWiki:Common.css` is empty — plan baseline site-wide CSS (spacing, typography, links, tables, mobile tweaks).
Performance & caching
Added Aug 08, 2025, Currently Needs Review
- Object & parser cache: Currently `CACHE_ACCEL` only; consider Memcached/Redis for `$wgMainCacheType`, `$wgParserCacheType`, `$wgSessionCacheType`.
- Job queue: Set cron/systemd for `runJobs.php` (and SMW jobs). Tune `$wgRunJobsAsync` and batch sizes.
- ResourceLoader: Enable long-cache for RL modules via CDN/NGINX; review `$wgResourceLoaderMaxQueryLength`.
- Thumbnailing: Tune thumb sizes, sharpening/quality, and `$wgGenerateThumbnailOnParse` behavior.
Files & uploads
Added Aug 08, 2025, Currently Needs Review
- Allowed types: png/gif/jpg/webp/pdf/svg; BMP excluded — decide on SVG sanitization limits and PDF page/thumb density.
- File repo strategy: Decide on InstantCommons (currently off) or add ForeignFileRepo.
- Metadata & EXIF: Choose EXIF reading, geo stripping, and orientation handling.
Search & discovery
Added Aug 08, 2025, Currently Needs Review
- Search backend: Default MySQL full-text; consider CirrusSearch + Elasticsearch for stemming/rankings/SMW synergy.
- Namespaces to search: Tune `$wgNamespacesToBeSearchedDefault` for form/content namespaces.
- OpenSearch/RESTBase: Confirm opensearch descriptor exposure and API access.
SEO & sharing polish
Added Aug 08, 2025, Currently Needs Review
- PageImages/TextExtracts: Installed — decide how to use them for previews/cards (OG tags via templates/Module:).
- Canonical/prev/next: Add templates/modules to set canonical/structured data for long articles/series.
- Interwiki table: Populate and curate Interwiki map for outbound prefixes.
Content model & editing UX
Added Aug 08, 2025, Currently Needs Review
- Page Forms: Establish form page conventions, storage templates, categories; configure PF namespace defaults.
- TemplateStyles: Define per-template CSS strategy (scoped vs Common.css).
- CodeMirror/WikiEditor: Decide default editor activation and features for admins.
- HeaderTabs: Standardize usage for consistent UX.
- Categories/CategoryTree: Formalize taxonomy and where Intersection (DPL 1.7.0) is used vs SMW queries.
Semantic MediaWiki stack
Added Aug 08, 2025, Currently Needs Review
- Store & limits: Confirm store type (SQL), set query limits (`$smwgQMaxSize`, `$smwgQMaxDepth`, `$smwgQMaxLimit`).
- Special properties: Decide `$smwgPageSpecialProperties` values (e.g. DISPLAYTITLE).
- Namespaces with links: Configure `$smwgNamespacesWithSemanticLinks` beyond main namespace if needed.
- Text indexing: Enable SMW full-text integration if using Elasticsearch.
- Jobs & rebuilds: Schedule `rebuildData.php` after schema/property changes.
- Result formats: Audit allowed Semantic Result Formats and load supporting APIs.
API, bots & integrations
Added Aug 08, 2025, Currently Needs Review
- API exposure: Confirm read/write API posture; set CORS (`$wgAllowedCorsOrigins`) for external calls.
- Bot users: Create bots group with tailored rights for maintenance/import bots.
- Rate limits: Apply API throttles by IP/user to protect DB.
Logging, monitoring, and ops
Added Aug 08, 2025, Currently Needs Review
- Monolog channels: Route deprecation, exception, DB, and HTTP logs separately.
- Metrics: Decide on Prometheus/StatsD hooks or NGINX access-log dashboards.
- Backups: Formalize DB, files (`images/`), and config backups; test restores.
- Upgrades policy: Pin extensions to known-good commits for MW 1.39; plan LTS → LTS upgrades.
Internationalization & locale
Added Aug 08, 2025, Currently Needs Review
- Lang/variants: Currently `en`; decide if variant handling or fallbacks are needed.
- Time/formatting: Currently UTC; decide if default user-facing timezone overrides are desired.
NGINX/SSL awareness
Added Aug 08, 2025, Currently Needs Review
- Proxy params: Set `$wgUseCdn`/`$wgCdnServersNoPurge` if using NGINX caching; `$wgInternalServer` if using internal HTTP for jobs.
- Upload size vs NGINX: Align `client_max_body_size` with PHP `post_max_size`/`upload_max_filesize`.
- HSTS & redirects: Ensure HTTP→HTTPS and www→root canonicalization match `$wgServer`.
Nice-to-haves (future)
Added Aug 08, 2025, Currently Needs Review
- Gadgets: Establish gadgets policy & naming; build site utility modules.
- MultimediaViewer: Decide if default-on for all users.
- Math rendering: Choose rendering mode (MathML/SVG) for performance/appearance.
- Interwiki transclusions: Populate or restrict as needed.
- PageImages thumbnails: Set lead image conventions for clean link previews.