Open source & self-hosting
Why open source?
Building an open source product means you're building in public. The best part about building in public for us is inviting opinions from other game developers about how to make Talo as flexible and accessible as possible. Different games and different team sizes have different requirements and it's important to take these requirements on board.
Open source also provides significant benefits to you as a developer. Firstly, we're keeping a public changelog and list of releases. This means that when upgrading to the latest version of Talo, you know exactly what's changed and what you need to take into account. Secondly, you're free to contribute any fixes for bugs you find instead of having to wait for us to prioritise it. See the contributing section for more about how to do this.
What license is Talo released under?
We're distributing Talo under the AGPLv3 license. This license benefits you as a developer by allowing you to view and modify the code and benefits us because any commercialization of Talo needs to be contributed back in some way.
AGPLv3 is a common license used by other teams with similar missions to us - like Lago and Plausible (which we use for privacy-first analytics). You can read more about why they chose this license to understand why we also made the same choice.
How does self-hosting work?
We publish our frontend and backend Docker images publicly. Our frontend is a simple NGINX server that hosts the Talo dashboard and our backend exposes a HTTP server. The backend communicates with a MySQL database and uses Redis for in-memory storage. We've kept Talo's infrastructure as simple as possible to make it easy for contributors.
While Docker is the easiest way to self-host Talo, you can also clone the individual repositories and host them directly on your server(s).
Choose your own adventure
We've added two example configurations to our GitHub repository so you can get up-and-running in minutes. There's a basic example using Docker Compose and an example with SSL configured with a reverse proxy.
We're keeping a list of configuration options updated so you can customise your Talo instance as needed.
How can I contribute?
Talo is currently divided into four main repositories:
- TaloDev/frontend: This is the dashboard you interact with and where you see all your players and data.
- TaloDev/backend: This is the backend that processes requests from the frontend, communicates with the database and handles security.
- TaloDev/unity: Our Unity SDK is a convenient wrapper around the Talo HTTP API to communicate with your backend. This repository also hosts all of our Unity examples including examples for leaderboards and save files.
- TaloDev/docs: You can find all the documentation here for all of Talo's individual components as well as integrations and self-hosting guides.
We strongly encourage you to test your code where appropriate before contributing using unit tests or integration tests. Individual set-up guides and requirements can be found inside these repositories.