Skip to content

snarfed/bounce

Repository files navigation

Switch platforms, keep your people

Bounce lets you migrate from one social network to another and keep all of your followers. It currently supports Mastodon, Pixelfed, Bluesky, and micro.blog

https://bounce.anew.social/

License: This project is placed in the public domain. You may also use it under the CC0 License.

Development

Pull requests are welcome! First, fork and clone this repo. Then, install the Google Cloud SDK and run gcloud components install cloud-firestore-emulator to install the Firestore emulator. Once you have them, set up your environment by running these commands in the repo root directory:

gcloud config set project bounce-migrate
python3 -m venv local
source local/bin/activate
pip install -r requirements.txt

Now, run the tests to check that everything is set up ok:

gcloud emulators firestore start --host-port=:8089 --database-mode=datastore-mode < /dev/null >& /dev/null &
python3 -m unittest discover

Finally, run this in the repo root directory to start the web app locally:

GAE_ENV=localdev FLASK_ENV=development flask run -p 8080

If you send a pull request, please include (or update) a test for the new functionality!

If you hit an error during setup, check out the oauth-dropins Troubleshooting/FAQ section.

You may need to change granary, oauth-dropins, mf2util, or other dependencies as well as as Bounce. To do that, clone their repo locally, then install them in "source" mode with e.g.:

pip uninstall -y granary
pip install -e <path to granary>

To deploy to the production instance on App Engine - if @snarfed has added you as an owner - run:

gcloud -q beta app deploy --no-cache --project bounce-migrate *.yaml