``` _ _ _____ __ _____ ___ ____ ___ _____ | | | |/ _ \ \ / / |_ _/ _ \ | __ ) / _ \_ _| | |_| | | | \ \ /\ / / | || | | | | _ \| | | || | | _ | |_| |\ V V / | || |_| | | |_) | |_| || | |_| |_|\___/ \_/\_/ |_| \___/ |____/ \___/ |_| ``` > status: experimental # Bots The Varia XMPP botspace. These bots are written using [`slixmpp`](https://slixmpp.readthedocs.io/) and sometimes also [`xbotlib`](https://git.vvvvvvaria.org/decentral1se/xbotlib). # Write your own The idea is that you create a single python file and then using one of the above libraries, you write a single Python class which knows how to speak XMPP, join rooms, respond to commands etc. Probably the simplest place to start is by reading the [`xbotlib` getting started guide](https://git.vvvvvvaria.org/decentral1se/xbotlib#user-content-getting-started). # Deploy it on the Varia server Add a configuration entry to `/etc/supervisor/conf.d/bots.conf` like the following. ```conf [program:whisperbot] directory=/srv/gitea/clones/bots/whisperbot.xbotlib user=bot autostart=true autorestart=true environment=PATH="/srv/gitea/clones/bots/.venv/lib/python3.7/site-packages:%(ENV_PATH)s" command=/srv/gitea/clones/bots/.venv/bin/python3 whisperbot.py --password ``` Then `systemctl restart supervisorctl` and then check if it comes up with `supervisorctl status bots:`. Logs for all bots can be found in `/var/log/supervisor/`. Finally, when you git push your bot changes, a git hook will restart your bot.