pyinfra-deploy #7
41
README.md
41
README.md
|
@ -32,7 +32,7 @@ with an email address
|
||||||
you want to use as a team:
|
you want to use as a team:
|
||||||
|
|
||||||
```
|
```
|
||||||
teams-bot init --email das_synthikat@systemli.org --password p455w0rD
|
teams-bot init --email helpdesk@example.org --password p455w0rD
|
||||||
```
|
```
|
||||||
|
|
||||||
This command will show a QR code;
|
This command will show a QR code;
|
||||||
|
@ -44,13 +44,50 @@ Now to run it,
|
||||||
simply execute:
|
simply execute:
|
||||||
|
|
||||||
```
|
```
|
||||||
teams-bot init --email das_synthikat@systemli.org --password p455w0rD
|
teams-bot init --email helpdesk@example.org --password p455w0rD
|
||||||
```
|
```
|
||||||
|
|
||||||
The bot only works as long as this command is running.
|
The bot only works as long as this command is running.
|
||||||
Read more about [running bots on
|
Read more about [running bots on
|
||||||
bots.delta.chat](https://bots.delta.chat/howto.html).
|
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,
|
||||||
|
login to the user with ssh
|
||||||
|
and run
|
||||||
|
`export $(cat ~/.env | xargs) && ~/.local/lib/teams-bot.venv/bin/teams-bot init`
|
||||||
|
to initialize the bot,
|
||||||
|
create the crew,
|
||||||
|
and join the crew.
|
||||||
|
|
||||||
|
Then run
|
||||||
|
`systemctl --user start teams-bot`
|
||||||
|
to start the bot
|
||||||
|
and keep it running in the background.
|
||||||
|
|
||||||
|
You can view the log output
|
||||||
|
with `journalctl --user -fu teams-bot`
|
||||||
|
to confirm that it works.
|
||||||
|
|
||||||
## Development Environment
|
## Development Environment
|
||||||
|
|
||||||
To get started with developing,
|
To get started with developing,
|
||||||
|
|
|
@ -21,6 +21,7 @@ packages = find:
|
||||||
python_requires = >=3.8
|
python_requires = >=3.8
|
||||||
install_requires =
|
install_requires =
|
||||||
click
|
click
|
||||||
|
pyinfra
|
||||||
pickleDB
|
pickleDB
|
||||||
qrcode
|
qrcode
|
||||||
deltachat
|
deltachat
|
||||||
|
|
6
src/teams_bot/pyinfra_assets/setup-venv.sh
Normal file
6
src/teams_bot/pyinfra_assets/setup-venv.sh
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
python3 -m venv ~/.local/lib/teams-bot.venv
|
||||||
|
source ~/.local/lib/teams-bot.venv/bin/activate
|
||||||
|
pip install -U pip wheel
|
||||||
|
|
11
src/teams_bot/pyinfra_assets/teams-bot.service.j2
Normal file
11
src/teams_bot/pyinfra_assets/teams-bot.service.j2
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[Unit]
|
||||||
|
Description=run deltachat teams-bot: {{ bot_email }}
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/home/{{ unix_user }}/.local/lib/teams-bot.venv/bin/teams-bot run -v
|
||||||
|
EnvironmentFile=/home/{{ unix_user }}/.env
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=5s
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
Loading…
Reference in a new issue