canary is a free, open source gaming project written in Lua and released under GPL-2.0. It has 652 GitHub stars, 911 forks and 70 open issues, and was last pushed 4 days ago. On this registry it ranks #58 of 58 tracked projects in Gaming, with 5 head-to-head comparisons available.

What is canary?

Canary is a free, open-source MMORPG server emulator for the OpenTibia community, written in C++20 and Lua, intended for server operators and developers who want to run their own Tibia-style game world.

What it is

Canary is the server core, datapacks, Lua scripts, database schema, build presets, automated tests and development tooling for an OpenTibia game server, written in C++20 and Lua and licensed under GPL-2.0. It is a fork of the OTServBR-Global project and is maintained by the opentibiabr organisation, with documentation hosted at docs.opentibiabr.com. The repository ships everything needed to stand up a full world, not just the runtime: the server itself, the data it serves, and the tooling around it.

The concrete problem Canary solves is that running an OpenTibia server normally requires assembling a core, datapacks, scripts, a database schema and build tooling by hand. Canary bundles all of these together, and its Docker quickstart replaces that manual assembly entirely by starting MariaDB, the published Canary runtime image, MyAAC as the website/admin AAC, and opentibiabr/login-server as the client login webservice in one compose stack.

Key capabilities

  • Runs a local test server without compiling Canary locally, using a lightweight Docker quickstart with default local endpoints at http://localhost:8080 for the website/admin, http://localhost:8088/login for the client login webservice, and game port 7172.
  • Provides multiprotocol runtime profiles covering the current, 11.00, and 8.60 runtime contracts, including port layout, client preparation, and a validation checklist.
  • Generates a Lua API reference and VSCode IntelliSense stubs from the C++ Lua bindings during startup when generateLuaApiDocs is enabled, with .luarc.json already adding docs/lua-api to the Lua Language Server workspace library.
  • Ships guarded start scripts — up.ps1 on Windows and up.sh on shell — that start the stack and clean safe Docker leftovers without removing database volumes.
  • Documents Linux recompiling with executable backups, covering seven-day retention, crash analysis, optional restart and WSL tests.
  • Includes hardware sizing and capacity planning documentation for measuring RAM and CPU and comparing training and hunting workloads.
  • Offers nightly development builds downloadable from GitHub Actions, alongside a shared build cache for worktrees and forks.

Who uses it and how

  • Server operators use the Docker quickstart for local development, testing, and LAN demos, running the stack from the docker directory with cp .env.dist .env followed by docker compose up -d --build.
  • Lua script developers work against the generated docs/lua-api reference and VSCode IntelliSense stubs, running tools/setup_vscode_lua_api.ps1 to configure their workspace.
  • Modellers and asset authors use Assets Editor as the single asset source of truth, exporting legacy-compatible .dat/.spr packages for 8.60 clients, alongside Remere's Map Editor for maps.
  • Client builders prepare compatible 8.60/11.00 CipSoft clients with the Tibia Extended Client Library for extended limits and config-driven login redirect, using OTClient Redemption or the Game Client to connect.
  • Contributors run the project's CI workflow and SonarCloud quality gate, with 70 open issues tracked against the repository.

Getting started

Run from the docker directory with cp .env.dist .env and then docker compose up -d --build, or use the guarded scripts .\up.ps1 and sh ./up.sh; the project Wiki covers build-from-source setup.

How it compares

It stands alone in this registry as the only OpenTibia MMORPG server emulator listed, so there are no directly comparable entries to weigh it against.

When to use it — and when not

The Docker quickstart is explicitly for local development, testing, and LAN demos and must not be exposed directly to the public Internet with the default test accounts and passwords, so anyone going public-facing has to harden the stack themselves. Self-hosters operate MariaDB, the Canary runtime image, MyAAC, and opentibiabr/login-server as separate services, and should note the 70 open issues as a signal of active, unfinished work; those seeking a packaged, zero-operations product will find this demands real operational effort.

project readme (upstream, from github) — read inline

Canary

Discord CI Quality Gate Status Repository size License

Canary is a free and open-source MMORPG server emulator for the OpenTibia community, written in C++20 and Lua. It is a fork of the OTServBR-Global project. The repository includes the server core, datapacks, Lua scripts, database schema, build presets, automated tests and development tooling used by the project.


Getting Started


Docker Quickstart

Canary includes a lightweight Docker quickstart for running a local test server without compiling Canary locally. The stack starts MariaDB, the published Canary runtime image, MyAAC as the website/admin AAC, and opentibiabr/login-server as the client login webservice.

This quickstart is for local development, testing, and LAN demos. Do not expose it directly to the public Internet with the default test accounts and passwords.

Run from the docker directory:

cp .env.dist .env
docker compose up -d --build

The docker directory also provides guarded start scripts that start the stack and clean safe Docker leftovers without removing database volumes:

.\up.ps1
sh ./up.sh

Default local endpoints:

  • Website/admin: http://localhost:8080
  • Client login webservice: http://localhost:8088/login
  • Game port: 7172

MyAAC's login.php is intentionally removed from the quickstart image. Clients should use login-server only. See docs/docker/quickstart-for-beginners.md for a beginner guide and docker/DOCKER.md for the full setup, environment variables, test account, and troubleshooting guide.


Documentation


Recommended Tools and Clients


Nightly Packages

Development builds can be downloaded from GitHub Actions artifacts. They are useful for testing recent changes from the main branch, but may include behavior that is not present in stable releases yet.


Running Tests

Tests can be run from the repository root using the tool versions and tasks pinned in .mise.toml:

mise install
mise run configure linux-debug
mise run build linux-debug
mise run test linux-debug

# Replace linux-debug with macos-debug or windows-debug as needed.

For detailed testing information including adding tests and framework usage, see tests/README.md.


Support & Community

For real-time support, join the OpenTibiaBR Discord.

The GitHub issue tracker should be used for bugs, improvements and technical project tasks. It is not a support forum.


Contributing

Contributions are welcome. You can help in several ways:

  • Report bugs through the Issue Tracker.
  • Submit improvements through Pull Requests.
  • Improve tests, documentation, scripts, datapacks, or C++ code.
  • Validate releases, nightly builds and recent changes.

Before contributing, read the Code of Conduct and the project Contributing guide.


Sponsorship

Canary is maintained by community contributors. To support development, visit the OpenTibiaBR sponsors page.


Acknowledgements

Thanks to all contributors of Canary, OTServBR-Global and the OpenTibia community.


License

This project is distributed under the GPL-2.0 license.

Frequently asked questions

Is canary free to use?

canary is open source under the GPL-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does canary do?

Canary Server 15.25 for OpenTibia community.

What is canary written in?

canary is primarily written in Lua. Its source is publicly available at https://github.com/opentibiabr/canary, and it has 652 GitHub stars.