WikiOasis Salt is the production configuration management system for the WikiOasis wiki farm — a multi-tenant MediaWiki hosting platform serving dozens of wikis across dedicated server roles. Built on SaltStack, it declaratively manages every layer of the infrastructure: web servers, load balancers, databases, caches, search nodes, monitoring, and the bare-metal hypervisors that host them all. The repository is licensed under the GNU General Public License v3 and draws lineage from Telepedia’s configuration, which itself was adapted from Miraheze’s Puppet install and ultimately from the Wikimedia Foundation’s infrastructure work — attributions appear in individual modules where applicable.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/wikioasis/salt/llms.txt
Use this file to discover all available pages before exploring further.
Repository layout
The repository contains two top-level directories that mirror Salt’s own conventions.salt/ tree contains the state files — the instructions Salt follows to converge each minion to the desired configuration. The pillar/ tree contains pillar data — structured YAML that parameterises those states with environment-specific values (IP addresses, package versions, credentials, etc.). Secrets such as database passwords and API keys live exclusively in pillar/private/, which is gitignored and must be created on the Salt master by hand.
Server roles
WikiOasis runs distinct minion roles, each identified by a naming pattern. The Salt master uses these glob patterns intop.sls to target the right states at the right servers.
| Role | Minion pattern | Purpose |
|---|---|---|
| MediaWiki application | mw* | Serve wiki HTTP requests behind HAProxy |
| Staging | staging* | Canary / pre-production MediaWiki server |
| Task / job runner | task* | Background job queue processing |
| Load balancer | proxy* | HAProxy front-ends that route traffic to backends |
| Database | db* | MariaDB servers per wiki cluster |
| Redis cache | redis* | In-memory caching and session storage |
| Search | opensearch* | OpenSearch cluster for full-text wiki search |
| Monitoring | monitoring* | Icinga 2, Grafana, Prometheus, and StatsD |
| Bare-metal hypervisor | metal* | Proxmox hosts that run the VM fleet |
| Applications | apps* | General-purpose application server (Phorge, Zep, etc.) |
| Salt master | salt* | The Salt master itself (receives only monitoring states) |
ovvin.wonet DNS domain. For example, the first MediaWiki server in the US-East-01 rack is mw-us-east-011.ovvin.wonet.
The repository should work out of the box once the private pillar data is added. See the Private Pillar guide for the required secrets.
Where to go next
Quickstart
Clone the repo, configure salt-master, and apply your first state in minutes.
Architecture
Deep-dive into server roles, network topology, and how targeting works.
Configuration
Understand pillar data, top files, and how to manage secrets.