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.
- Wiki.
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 --buildThe docker directory also provides guarded start scripts that start the stack
and clean safe Docker leftovers without removing database volumes:
.\up.ps1sh ./up.shDefault 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.
- Docker beginner quickstart.
- System documentation.
- Lua API reference and VSCode IntelliSense stubs. Canary generates these files from the C++ Lua bindings during startup when
generateLuaApiDocsis enabled. The repository.luarc.jsonalready addsdocs/lua-apito the Lua Language Server workspace library; for VSCode workspace settings, runtools/setup_vscode_lua_api.ps1.
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.
Tests can be run directly from the repository root using CMake test presets:
# Configure and build tests for your platform
cmake --preset linux-debug && cmake --build --preset linux-debug
# Run all tests
ctest --preset linux-debug
# For other platforms use:
# ctest --preset macos-debug
# ctest --preset windows-debugFor detailed testing information including adding tests and framework usage, see tests/README.md.
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.
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.
Canary is maintained by community contributors. To support development, visit the OpenTibiaBR sponsors page.
Thanks to all contributors of Canary, OTServBR-Global and the OpenTibia community.
This project is distributed under the GPL-2.0 license.