All checks were successful
		
		
	
	continuous-integration/drone/push Build is passing
				
			Co-authored-by: Davide Polonio <poloniodavide@gmail.com> Reviewed-on: #2
		
			
				
	
	
		
			61 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Mezzotre
 | |
| 
 | |
| [](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" \
 | |
|  -F "allowed_updates=[\"message\", \"edited_message\", \"channel_post\", \"edited_channel_post\", \"inline_query\", \"choosen_inline_result\", \"callback_query\", \"poll\", \"poll_answer\", \"my_chat_member\", \"chat_member\", \"chat_join_request\"]" \
 | |
|  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.
 |