Add your own service
In a nutshell, the all services are just a docker compose file that is rendered
into the target machine through jinja2 filters. Variables into jinja context
are taken from ansible and <role>/defaults/main.yml and from hosts/your-server>.yml.
If you would need more information then you can even send new variables into the context
from your custom <role>/tasks/main.yml file is able to remotely execute commands and
record their output. So you can do pretty much anything.
The basic structure for a service can be found in roles/lokal/example with explanations.
The most complicated thing is not to expose ports to public internet but to set
traefik labels correctly so you expose your service to the public internet.