Opsville: A Free Pixel-Art DevOps Town in Your Browser

Opsville is a small pixel-art town where every district is broken, and you are the one on call. It is free, it runs in your browser, and it is live today at devops-daily.com/opsville. Most quests open one of the simulators from our simulators page, then ask you three questions from our quiz bank. Fix all eight districts and the town gets its Launch Day.
This post covers the game first, then how we built it. Here is the 30-second trailer:

Prerequisites
- A modern browser on a desktop or a phone.
- A keyboard, a gamepad or a touch screen.
- No account. Your progress saves in your browser.
Walk into town
You start in the town square. Mayor Chris has a problem: the town goes live soon, and none of the districts work. That is the Launch Day story. Each district is a chapter, with a closing scene once you fix it. The Agent, the robot from our book The DevOps Survival Guide, waits in the square and comments when you walk into a new district.

There are 8 districts and 34 quests. The districts open one after another:
- Linux Lodge
- Docker Docks
- Git Garden
- CI/CD Railway
- Kubernetes Castle
- Observatory
- Security Fort
- Neon Data Depot
A broken district looks broken. Smoke rises from its landmark, its lamps flicker at night, and its people grumble. When you fix it, lights go up over its sign and its music opens up.

How a quest works
Walk up to someone and press E, or tap Talk on a phone. They give you a task, such as "The disk is full" in Linux Lodge. The quest opens a simulator from our site in a panel: the Linux terminal, the Fork Bomb Simulator, the Container Security Challenge, the Kubernetes Scheduler Challenge and more. When you finish, you answer three questions from our quiz bank. Two right answers pass the quest.
From Docker Docks on, each district ends with a boss. A boss quiz plays as a live incident: a status board with three systems that go from "Down" to "Fixed" as you answer.

Each quest gives you XP and a badge. Each cleared district gives you something new: a bike after Linux Lodge, a pet for each of the first five districts (a penguin, a little whale, a cat, a dog and a mini Agent), and new hats.
Things to do between quests
- The pager. After you fix Linux Lodge, an incident in an open district pages you now and then. You get two minutes to get there and 30 seconds to fix it. You can snooze it, or turn it off in Help.
- The daily quest. One question a day from the quiz bank. Seven days in a row earns the Streak beanie.
- Your house. You get a log cottage in Linux Lodge with your name on the sign. Inside, there is a cup for every cleared district and a medal for every badge. The garden next to it grows a plant for each day you played in the last four weeks.
- The newsstand. The latest DevOps Daily posts, in the town square.
- Photo mode. Press F, pick a frame and a filter, and save a PNG.
- Your look. A character creator on first start, and a wardrobe in the square for later changes.
- The Advent board. From 1 to 24 December, the town gets snow, lights and a board with one door a day.

Twelve lost packets are hidden around town. Find all of them, and an old hatch by the lake opens. Below it is a server room that has not been rebooted in a long time.

Accounts are optional
You can play the whole game without an account. If you sign in with a free DevOps Daily account, your save follows you to other devices. You can also join the weekly leaderboard (opt-in, with a board name only), help fill a weekly town goal with everyone else's XP, and race district speedruns.
The Help panel has a larger text switch. You can play with a keyboard, a gamepad or touch controls. If your system asks for reduced motion, the game turns off the moving effects. Sound is off until you turn it on.
How we built it
Vite, TypeScript and Phaser 3
Phaser draws the world: the map, the people, the weather and the effects. The panels, quizzes and HUD are plain HTML on top of the canvas.
The map is a text file
The whole world is one text file: 72 x 50 characters, where one character is one 16 x 16 tile. A build script turns it into Tiled JSON with ground, decor, collision and object layers. Moving a building is a diff you can review. Here are four rows from the top of the map:
P..*.:::.......::::.*..P................ggggg...P..%%%%........%%%%....P
P.v........)..:....v...P................SSDSS...P..HHHH........HHHH.T..P
P..*..T.:::::::.*..T.*.P........[.........:.....P..HHHH....]...HHHH....P
P.*.......:......*.....P########################P..........:...........P
P is a pine, : a stone path, # a rail track, g a grey roof, S a stone wall and D a door. Characters such as [ and ) are objects, defined in a list below the grid.
Static files inside the main site
The game builds with the base path /opsville/. A release script copies the build into the site's repo, adds the game's response headers, and opens one pull request. Cloudflare Pages deploys it with the rest of the static site. The game needs no server of its own.
Simulators in a frame
A quest loads /games/<slug>/embed?embed=opsville&run=<id> in a frame. When you finish, the simulator sends a message on the same origin:
// Sent by the simulator when the player finishes it
{ type: 'devops-daily:game-complete', game: '<slug>', run: '<id>' }
On phones the simulator opens in a new tab, and the same message goes over a BroadcastChannel. If no message arrives, a "Done, take the quiz" button covers it. Either way, the quiz is the real gate.
XP that the server decides
When you are signed in, the game only says "I finished quest X". The learning platform's API looks the quest up in its own list and decides the XP. Each quest counts once per player, two quests must be at least 30 seconds apart, and a player can count at most 24 quests in 24 hours. The rows live in the learning platform's existing Neon database, so the game did not need a new one. A test in the game fails when its quest list drifts from the server's list.
Art from two sources
The tiles and characters come from Kenney's CC0 packs: Tiny Town, Tiny Dungeon and RPG Urban Pack. The landmarks, signs and portraits are generated pixel art. A Python script cuts out their background, scales them to the pixel grid, and maps every colour to one warm palette shared with the tiles. That way both sources look like one game. The music is ours too: chords and patterns played with WebAudio, with no sound files.
Play it and tell us what breaks
Play Opsville free at devops-daily.com/opsville. Start in Linux Lodge, and see how far you get before the pager goes off.
Found a bug, or have an idea for a quest or a district? Open an issue on our GitHub repo and tell us.
We earn commissions when you shop through the links below.
Bitrise
Managed runners for GitHub Actions
Bitrise Build Hub runs your GitHub Actions jobs on M4 Macs and AMD Linux machines. Change runs-on and keep your workflows, secrets and logs on GitHub.
Atomsized
AWS platform engineering and GitOps
Design and automation for reliable AWS and Kubernetes platforms, safer delivery workflows, and preview and UAT environments your engineers can understand and own.
DigitalOcean
Cloud infrastructure for developers
Simple, reliable cloud computing designed for developers
DevDojo
Developer community & tools
Join a community of developers sharing knowledge and tools
SMTPfast
Developer-first email API
Send transactional and marketing email through a clean REST API. Detailed logs, webhooks, and embeddable signup forms in one dashboard.
QuizAPI
Developer-first quiz platform
Build, generate, and embed quizzes with a powerful REST API. AI-powered question generation and live multiplayer.
Want to support DevOps Daily and reach thousands of developers?
Become a SponsorTags
Found an issue?
Related Posts
Also worth your time on this topic
5 DevOps Books Worth Reading in 2026
A curated list of DevOps books that are actually worth your time in 2026, from beginner Linux guides to production Kubernetes patterns and the SRE bible.
CI/CD Pipeline Setup Checklist
Step-by-step checklist for a production-ready CI/CD pipeline: source control, builds, tests, security scans, deploy gates, secrets, and rollback paths.
1-2 hours
Helm Charts and Kubernetes Package Management
Learn Kubernetes application deployment and management using Helm charts with templates, values, and lifecycle management.
90 minutes