A supported fork of Mastodon that provides local posting and a wider range of content types.
Go to file
3wc 91383be9c2
continuous-integration/drone/push Build is failing Details
Update abra syntax in examples (finally) [mass update]
2023-01-19 16:02:27 -08:00
.drone.yml Use new image namespace 2021-06-21 12:28:36 +02:00
.env.sample feat: allow to customise toot char limit 2022-05-09 07:51:55 +02:00
.gitignore Initial commit 2021-05-07 13:34:21 +02:00
README.md Update abra syntax in examples (finally) [mass update] 2023-01-19 16:02:27 -08:00
abra.sh feat: add assets script function 2022-05-09 08:02:37 +02:00
compose.oidc.yml feat: latest hometown on the v1.0.6 branch 2022-09-29 15:09:08 +02:00
compose.yml feat: latest hometown on the v1.0.6 branch 2022-09-29 15:09:08 +02:00
entrypoint.sh.tmpl Use the right value [ci skip] 2021-07-01 18:29:34 +02:00

README.md

Hometown

A supported fork of Mastodon that provides local posting and a wider range of content types.

This repository is a copy of coop-cloud/mastodon but with a fresh README and some Hometown specific configuration. It seems like a good idea to keep the deployment separate since the apps may diverge in their deployment or configuration instructions at some point despite best wishes to remain as mainline Mastodon as possible.

Basic usage

  1. Set up Docker Swarm and abra
  2. Deploy coop-cloud/traefik
  3. abra app new mastodon
  4. Follow the secrets setup docs
  5. abra app config YOURAPPDOMAIN - be sure to change DOMAIN to something that resolves to your Docker swarm box
  6. abra app deploy YOURAPPDOMAIN to deploy the app

You'll need to run a docker exec -it <streaming-service-id> /bin/bash and do the following:

export OTP_SECRET=$(cat /run/secrets/otp_secret)
export SECRET_KEY_BASE=$(cat /run/secrets/secret_key_base)
export DB_PASS=$(cat /run/secrets/db_password)
bundle exec rake db:setup

Then, on your host (outside of the containers), you'll need to fix permissions for the volume (see #2):

chown -R 991:991 /var/lib/docker/volumes/<service-name>_app/_data

And finally, within the app container, create an admin account:

export OTP_SECRET=$(cat /run/secrets/otp_secret)
export SECRET_KEY_BASE=$(cat /run/secrets/secret_key_base)
export DB_PASS=$(cat /run/secrets/db_password)
tootctl accounts create <username> --email <email> --confirmed --role admin

Secrets setup

Mastodon expects secrets generated by specific tools. Uou can run these commands via the scripts interface with abra.

abra app cmd <domain> secrets --local

Tips & Tricks

Auto-complete is not working?

Check the sidekiq logs (/sidekiq/retries), is a bunch of stuff failing? What is the error?

If it looks anything like blocked by: [FORBIDDEN/12/index read-only / allow delete (api)]; then it might mean that your elastic search service has put itself into "read-only" state. This could be due to running close to no free disk space one time. ES doesn't undo this state, even when you have more free disk space once more, so you need to handle this manually:

abra app run <domain> es bash
curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'

Then head back to the sidekiq retries panel and retry one job. You should see the ticket of retries go down by one if if passed. Then you can "retry all" and they should get scheduled & run.