mezzotre/README.md

59 lines
2.3 KiB
Markdown

# Mezzotre
[![Build Status](https://ci.poldebra.me/api/badges/polpetta/mezzotre/status.svg?ref=refs/heads/devel)](https://ci.poldebra.me/polpetta/mezzotre)
Mezzotre is a DnD content management system. Currently, it is still in the first development stages and everything is
still evolving, goals included.
The whole system is based on Java17+ for the language, incoming Webhooks from Telegram, Jooby backend to handle the
requests, PostgresSQL to store data and long-term chat context information.
## Shipping and running
Keep in mind that Mezzotre is meant to be run behind a reverse proxy handling all the TLS stuff.
In the root of the project you can find a `docker-compose.yml` file that can be a useful starting point to generate your
configuration. Finally, you can use the same docker-compose definition as a developer to have a live version running.
Simply run:
```shell
DEBUG_OPTS=debug- docker-compose up -d --build && docker-compose logs -f
```
to run a debug instance. Omit the `DEBUG_OPTS` env variable for a "production" style environment. Note that this
configuration requires an `.env` file (that is not committed for obvious reasons) containing the database password and a
valid Telegram Bot token.
To configure Webhook configuration for your bot, open up a terminal and type:
```shell
curl -F "url=https://example.com/api/tg" https://api.telegram.org/bot<YOUR BOT TOKEN>/setWebhook
```
## Building
Build is achieved through Maven. To build a `jar` run:
```shell
mvn package -DskipTests=true -Dmaven.test.skip=true -Dmaven.site.skip=true -Dmaven.javadoc.skip=true
```
In the `target/` folder wou will find an uber-jar and optionally the possibility to run it via a script and to setup
auto-startup via systemd or openrc units.
## Developing
### Automatic testing
You can simply run tests with `mvn test`. This will run `UT` and `IT` tests together.
### Manual testing
For a manual approach, just open a terminal and type `mvn jooby:run`. Assuming you have a database locally available
(check out [application.conf](conf/application.conf)) and a valid Telegram token set (maybe as enviroment variable) you
can develop and see live changes of your Mezzotre on the fly. Finally, by using Postman, you can simulate incoming
Telegram events.
## License
This software is under AGPL3+. You can find all details in the [LICENSE](LICENSE) file.