Steam Bridge for Beeper
using mx-puppet-steam and bbctl
Jason LaGuidice @shadowdrake:beeper.com Last updated 4/17/2024
This guide will get the old mx-puppet-steam bridge running, connected to Beeper's servers, and available for use. This guide is based on a Proxmox LXC using their latest Ubuntu container image at the time of this guide creation. It is not intended to be comprehensive but should provide coverage and documentation of the sticking points which are missing or not described well enough in the instructions for Beeper's bridge manager or the Steam bridge instructions.
Prerequisites
- Proxmox 8
- Ubuntu LXC image available
This guide will use nano
as the text editor but any other feasible text editor can be used in its place
If you decide to use a VM instead of an LXC or are otherwise not connected as root
add sudo
before basically all commands. This guide was intended to be run-as-root though it's not strictly required. Note other changes regarding permissions may be necessary to the update script and throughout the guide if you are not a root user.
- Create a new LXC using ubuntu or debian as the base image
- Start the container, update it with
apt update && apt dist-upgrade -y
, fix that annoying locale bug with the Proxmox Ubuntu LXC template - Install docker. Steps below for convenience
- Install go:
apt install golang -y
- Install git:
apt install git -y
- Clone the bridge manager repository:
git clone https://github.com/beeper/bridge-manager
- Create a convenience update script:
nano ./update.sh
Paste the following into nano:
chmod +x ./update.sh
- Run
./update.sh
which will build the bridge manager from the latest commit of the repository and copy it to your current directory mkdir docker-config
- Log into the bridge manager
./bbctl login
- Enter your e-mail address
- Enter the code sent to your e-mail
-
Register the new bridge:
./bbctl register sh-mx-puppet-steam
. Save the generated output file, an example output is shown below. Replace all values with the ones provided to you by the bridge manager
a. First is the registration file:
b. Second is the additional bridge configuration:
- Create an initial configuration file for the bridge
nano ./docker-config/config.yaml
and paste the following after changing the details noted in brackets
- Save and exit nano
nano ./docker-config/steam-registration.yaml
and paste the following after changing the details noted in brackets. Please note the homeserver url is constructed of multiple entries
- Start the docker container:
docker run -d -p 6000:6000 --name mx-puppet-steam --restart=always -v /root/docker-config:/data icewind1991/mx-puppet-steam:latest
- Start the bridge manager proxy
./bbctl proxy -r /root/docker-config/steam-registration.yaml
- Send a message to your bridge bot:
@sh-mx-puppet-steambot:beeper.local
. The bot should join the room when it is created, and respond to thehelp
command. If this works, close the proxy and move on to the next step - Automate bridge manager proxy startup with systemd
nano /etc/systemd/system/bbctl.sh-mx-puppet-steam.service
- Paste the following into nano
systemctl enable bbctl.sh-mx-puppet-steam.service
systemctl start bbctl.sh-mx-puppet-steam.service
- Login to the bot by sending it a message with
link [steam username] [steam password]
. If you have Steam guard enabled it will ask you for a Steam guard code
Double Puppeting
Double puppeting may not work without manually entering a matrix auth token. Without double puppeting, when you are sent a message for the first time a room will be created and you will be invited to it, but not automatically joined. You can use the token which was granted to the copy of the bridge manager running this bridge.
- In the LXC running the bridge, run
nano ~/.config/bbctl/config.json
- Find the
access_token
tag in the file, and copy it out. It seems to begin withsyt_
- Send a message to the bridge bot:
setmatrixtoken [YOUR access_token]
and the bot should respond it was set successfully