Setup Opsdroid as a service on Ubuntu 18.04 with systemd
I wrote previously on how to setup a Raspberry Pi 3 with Opsdroid a while back and needed to update the process for my web host just a bit.
I wrote a post on how to setup a Raspberry Pi 3 with Opsdroid a while back and needed to update the process for my web host just a bit.
You may have Python and Pip already installed, but just in case here is the way you would get Opdroid installed on a fresh box [Install docs for reference].
# Update apt-get $ sudo apt-get update # Install pip for Python 3 and locales $ sudo apt-get install python3-pip language-pack-en git # Ensure pip is up-to-date $ pip3 install --upgrade pip # Install opsdroid $ sudo pip3 install opsdroid # Run opsdroid $ opsdroid start
We start Opsdroid just to get a generic config created. The basic config has just enough to get you rollin'. You can stop the service via ctrl-C once it is online.
Create a Systemd Service
Open up your favorite command line text editor. We will be creating a systemd service file.
$ sudo nano /etc/systemd/system/opsdroid.service
Now paste the following in. Edit the $USER to your user that you will be installing and running the service as.
[Unit] Description=opsdroid chatbot service Documentation=https://docs.opsdroid.dev/en/stable/ [Service] WorkingDirectory=/home/$USER ExecStart=/home/$USER/.local/bin/opsdroid User=$USER Type=simple Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target
Save the file and exit [ctrl+O, Enter, and ctrl+X for the nano text editor]
Reload and Set Service as Enabled
I do this initially with a default config to make sure everything is working. I break the service enough when configuring it, and like to know if the out of the box the service is working as intended.
# Services reload $ sudo systemctl daemon-reload # Start, Enable, and Check the status $ sudo systemctl start opsdroid.service $ sudo systemctl enable opsdroid.service $ sudo systemctl status opsdroid
Once you are all done with the above you can start automating your life with "chatops".