A simple bot for liking and re-posting posts on bluesky. Written in go-lang.
This bot is used by the account @iampunkbot on bluesky.
Punkbot is used re-post and like original posts (not replies to posts) that match a one or more defined strings or hashtags.
In order to do this the bot connects to JetStream, Bluesky's JSON firehose. The bot scans all original posts and when a match if found it likes and re-posts it.
The bot doesn't currently persist any data from Bluesky, but may record stats in the future.
The best way to run punkbot is with Docker. For other methods of running punkbot, click here
The punkbot docker image supports amd64 and arm64 architectures. You can pull the image with:
docker pull mrstringer/punkbot
In order to run punkbot
, you'll need:
- A Bluesky account
- An app password for your bluesky account
- A completed configuration file
Head to bsky.app and create a new account.
A simple guide for creating an app password can be found here
Follow this guide to learn how to write a punkbot config file.
With the docker image downloaded, the configuration file prepared and the application password created, punkbot can now be run.
The config files needs to be mounted in the container and the password needs to be passed via a command line variable. Due to the design of punkbot, it is recommended to run with the docker restart option 'unless-stopped'. The command to run is as follows:
docker container run -d --restart=unless-stopped -v <YOUR CONFIG FILE>:/app/botcnf.yml -e PUNKBOT_PASSWORD='<YOUR APP PASSWORD>' mrstringer/punkbot
With the above command, punkbot will run until stopped and it's log output can
be monitored with command docker logs <container id>
Logging level, logging location and some other options are controlled by passing specific command line arguments. These are documented here
I hope you find this project useful. Report any issues the usual way.