pyinfra-deploy #7

Merged
missytake merged 10 commits from pyinfra-deploy into main 2023-10-09 06:10:40 +00:00
4 changed files with 57 additions and 2 deletions

View file

@ -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,

View file

@ -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

View 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

View 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