Skip to content
alexohneanderPublic

About

Your Self-Hosted, Open-Source Raid Bot for World of Warcraft

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

99 Commits

Folders and files

Repository files navigation

OpenSim

OpenSim is a self-hosted World of Warcraft gear simulator. It uses SimulationCraft to run the simulations and displays the resulting HTML report.

OpenSim showing selected items for a Top Gear simulation

Run with Docker

git clone https://github.com/alexohneander/OpenSim.git
cd OpenSim
docker compose up --build --scale worker=2

Open http://localhost:8000. Use docker compose down to stop the services; Redis data remains in its named volume.

Deploy to Kubernetes

The Helm chart creates a Deployment and ClusterIP Service. Ingress and Gateway API routes are optional; enable either or both as needed. Install the relevant Ingress controller or Gateway API CRDs/controller in your cluster first.

helm upgrade --install opensim ./helm/opensim \
  --namespace opensim --create-namespace \
  --values ./helm/opensim/examples/ingress-values.yaml

For Gateway API, use the Gateway values example. See the chart README for configuration details.

Simulate your character

  1. Install the SimulationCraft WoW addon.
  2. Copy the complete profile generated by the addon into the profile field.
  3. Run a simulation for your currently equipped gear, or select items from ### Gear from Bags and run Run Top Gear simulation.

Selected bag items are grouped by gear slot. SimC simulates every combination that chooses one selected item per selected slot, while retaining the original character as the baseline in the same HTML report. You can select up to 20 items, with a limit of 100 combinations per run.

Each submitted simulation gets a unique link in the browser address bar. Reopening or refreshing that link restores the report (or resumes showing the queue position while it is still waiting). Results are retained for 24 hours.

Simulation options included in a pasted profile, such as the # Simulation Options section exported by Raidbots, are passed through to SimulationCraft. The defaults iterations=1000, target_error=0.05, and threads=4 are only used when the profile does not set those options. Enable Use Raidbots simulation options to apply the Raidbots-style preset (100,000 iterations, one target, raid buffs, detailed reporting, and the other listed Raidbots settings); these preset values take precedence over matching profile options.

Development

The frontend is a Next.js static export; the FastAPI backend serves that export and enqueues SimulationCraft jobs in Redis. Separate workers run simulations; the frontend waits for job completion and then displays the report. The Dockerfile builds the frontend and packages it with the SimC backend. At startup, the backend reads the bundled SimulationCraft version and exposes it in the site footer. GitHub Actions publishes images to ghcr.io/alexohneander/opensim on pushes to main; pull requests only build the image without publishing it. After a successful build on main, the workflow updates helm/opensim/values-dev.yaml to the immutable full-SHA image tag so Argo CD can deploy it. Make the GHCR package public if your Kubernetes cluster should pull it without registry credentials. Run local development with docker compose up --build --scale worker=2; Redis persists its queue and result data in a named volume. See backend/README.md and frontend/README.md for component-specific details.

About

Your Self-Hosted, Open-Source Raid Bot for World of Warcraft

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Packages

Used by

Contributors

Languages