Shiro.py - Work in progress
Want to guess anime openings with your friends? Get Shiro to play song quizzes and enhance your guild with fun related anime features!
Table of Contents
The following setup is done with docker on debian. If you're using another os, it may variate a bit. If you don't like docker, you can also install everything on your own. But be aware, you won't get automatic patches then!
First of all you need to install docker. Check this tutorial
sudo apt-get update sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" sudo apt update sudo apt install docker-ce
Then you have to download and run the postgres docker image and mount it to a dir.
docker pull postgres mkdir -p $HOME/docker/volumes/postgres docker run --rm --name postgres -e POSTGRES_DATABASE=shiro -e POSTGRES_USER=shiro -e POSTGRES_PASSWORD=shiro -d -p 5432:5432 -v $HOME/docker/volumes/postgres:/var/lib/postgresql/data postgres
Also, you have to setup a Lavalink server in order for the bot to play music. More about Lavalink
docker pull fredboat/lavalink:master mkdir -p $HOME/docker/volumes/lavalink nano $HOME/docker/volumes/lavalink/application.yml # Paste default config from Lavalink and set password docker docker run --rm --name lavalink -v $HOME/docker/volumes/lavalink/application.yml:/opt/Lavalink/application.yml -d -p 2333:2333 fredboat/lavalink:master
After installing and running all requirements, we finally can start Shiro. It will automatically create all tables in the database. Configure
docker pull mrspinne/shiro.py:master docker run --rm --name shiro -e DISCORD_TOKEN=shiro -d mrspinne/shiro.py:master
The following will keep you docker container up to date. If you only want to auto update specific container, have a look here.
docker pull containrrr/watchtower docker run --rm --name watchtower -d -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower
The configuration file is located in
data/config.ini. If you use docker, it's recommended to pass config values via
environmental variables (or you mount the config).
Please note that sections marked with
optional in the
config.ini aren't supposed to be used by you.
Create a Discord application
config.ini (the part you have to configure)
[Discord] token = [Postgres] host = port = database = user = password = [Lavalink] host = port = password = region =
If you want to use envs, here is how to pass them. You can look up them from the config.
I'd like to hear your thoughts about the whole project. It's far from perfect so feel free to contribute.
All important links can be found on the landing page at https://shiro.pro.
Below are all bot lists, Shiro is currently on. (Only lists with widget shown)