From 08263a540a849392b7419374adbb0b1315594de0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Wysoki=C5=84ski?= Date: Sun, 11 Dec 2022 08:52:03 +0000 Subject: [PATCH] chore: add README.md (#54) Reviewed-on: https://gitea.dwysokinski.me/twhelp/dcbot/pulls/54 --- README.md | 96 +++++++++++++++++++++++++++++++++++++++++ docs/migration.png | Bin 0 -> 19047 bytes docs/notifications.png | Bin 0 -> 29857 bytes 3 files changed, 96 insertions(+) create mode 100644 README.md create mode 100644 docs/migration.png create mode 100644 docs/notifications.png diff --git a/README.md b/README.md new file mode 100644 index 0000000..2589cb7 --- /dev/null +++ b/README.md @@ -0,0 +1,96 @@ +# dcbot + +![img.png](docs/notifications.png) + +A minimalist Discord bot that sends notifications of gained/lost villages. + +## Getting started + +### Development + +#### Setting up the environment + +Prerequisites: + +1. **Go** (>= 1.19) +2. **Node.js** (LTS, needed for commitlint) +3. **Kubernetes** (>= 1.25.0) + 1. **minikube** + 2. **Docker Desktop** +4. **Docker CLI** +5. **Skaffold** +6. **pre-commit** +7. **IDE/Code editor** (e.g. Goland, VSCode, vim, neovim) +8. **API** from [core](https://gitea.dwysokinski.me/twhelp/core) +9. [**Bot token**](https://discord.com/developers/docs/topics/oauth2#bots) +8. **direnv** (optional, but recommended) + +```shell +# if you have direnv installed +direnv allow + +# install git hooks and required tools +make install + +# copy secret.example.yml +cp ./k8s/overlays/dev/secret.example.yml ./k8s/overlays/dev/secret.yml +# encode a bot token +echo -n 'token' | base64 +# add the encoded token to secret.yml +vim ./k8s/overlays/dev/secret.yml + +# run all required services +skaffold run --port-forward=true --tail=true + +# stop all of them +skaffold delete +``` + +#### Running unit tests + +At least one of the following is required to run unit tests: + +- Docker ([dockertest](https://github.com/ory/dockertest) will spin up a database) +- Postgres database + +```shell +# Docker +go test -v ./... + +# Postgres database +TESTS_DB_DSN=postgres://dcbot:dcbot_pass@127.0.0.1/dcbot go test -v ./... +``` + +#### Creating a new database migration + +```shell +# create a migration +go run ./cmd/dcbot/main.go db create go migration 1 +``` + +![img.png](docs/migration.png) + +## Configuration options + +Configuration options can be specified via environment variables. + +| Env variable | Default | Description | +|--------------------------------|-----------------|----------------------------------------------------------------------------------------------------------------| +| ``APP_MODE`` | ``development`` | Whether to use development or production settings | +| ``DB_DSN`` | | **Required.** Syntax: ``postgres://user:password@host:5432/db?sslmode=disable``. Only Postgres is supported. | +| ``DB_MAX_OPEN_CONNECTIONS`` | ``5`` | Maximum number of open connections to the database (https://pkg.go.dev/database/sql#DB.SetMaxOpenConns) | +| ``DB_MAX_IDLE_CONNECTIONS`` | ``2`` | Maximum number of connections in the idle connection pool (https://pkg.go.dev/database/sql#DB.SetMaxIdleConns) | +| ``DB_CONNECTION_MAX_LIFETIME`` | ``3m`` | Maximum amount of time a connection may be reused (https://pkg.go.dev/database/sql#DB.SetConnMaxLifetime) | +| ``TWHELP_URL`` | | **Required.** API URL (e.g. https://tribalwarshelp.com) | +| ``TWHELP_TIMEOUT`` | ``10s`` | Time limit for requests to TWHelp | +| ``BOT_TOKEN`` | | **Required.** https://discord.com/developers/docs/topics/oauth2#bots | +| ``BOT_MAX_GROUPS_PER_SERVER`` | ``10`` | Max number of groups per server | +| ``BOT_MAX_MONITORS_PER_GROUP`` | ``10`` | Max number of monitors per group | + +## License + +Distributed under the MIT License. See ``LICENSE`` for more information. + +## Contact + +Dawid WysokiƄski - [contact@dwysokinski.me](mailto:contact@dwysokinski.me) \ No newline at end of file diff --git a/docs/migration.png b/docs/migration.png new file mode 100644 index 0000000000000000000000000000000000000000..10cdb92e66231c75417eaa17590867ec3353572e GIT binary patch literal 19047 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

mO&hYz%#Dct6u7WN)JO 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