team-bot/README.md

110 lines
2.4 KiB
Markdown

# Teams Bot
This bot connects your team to the outside
and makes it addressable.
Configure this bot with your team address
(e.g. helpdesk@example.org),
and add all your **team members** to the **crew**.
Then,
every time **an outsider** writes to your team address,
the bot opens a new **relay group** with all of you;
you can use the relay group to discuss the request in private
and when you have come to a conclusion,
**answer** the **request**.
The bot will forward the answer to the outsider
in the name of the team,
hiding the identities of the team members.
## Setup
To install this bot,
run:
```
git clone https://git.0x90.space/missytake/teams-bot
cd teams-bot
pip install .
```
Now you can configure it
with an email address
you want to use as a team:
```
teams-bot init --email helpdesk@example.org --password p455w0rD
```
This command will show a QR code;
scan it with Delta Chat
to become part of the "team",
the verified group which manages the Teams Bot.
Now to run it,
simply execute:
```
teams-bot run -v
```
The bot only works as long as this command is running.
Read more about [running bots on
bots.delta.chat](https://bots.delta.chat/howto.html).
### Deploy with pyinfra
If you use [pyinfra](https://pyinfra.com/) to manage a server,
you can deploy this bot with it.
Just import it into your [deploy.py file](https://docs.pyinfra.com/en/2.x/getting-started.html#create-a-deploy) like this:
```
from teams_bot.pyinfra import deploy_teams_bot
deploy_teams_bot(
unix_user='root', # an existing UNIX user (doesn't need root or sudo privileges)
bot_email='helpdesk@example.org', # the email address your team wants to use
bot_passwd='p4ssw0rd', # the password to the email account
)
```
After you deployed it,
you need to do two steps manually:
First,
to initialize the bot,
create the crew,
and join the crew,
login to the user with ssh
and run:
```
export $(cat ~/.env | xargs) && ~/.local/lib/teams-bot.venv/bin/teams-bot init
```
Then,
to start the bot
and keep it running in the background,
run:
```
systemctl --user start teams-bot
```
You can view the log output
with `journalctl --user -fu teams-bot`
to confirm that it works.
## Development Environment
To get started with developing,
run:
```
python3 -m venv venv
. venv/bin/activate
pip install pytest tox black pytest-xdist
pip install -e .
DCC_NEW_TMP_EMAIL='https://ci.testrun.org/new_email?t=1h_2364962873z' tox
```