A supported fork of Mastodon that provides local posting and a wider range of content types.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
decentral1se e70be2a79e
fix URL
2 weeks ago
.drone.yml Use new image namespace 1 year ago
.env.sample feat: allow to customise toot char limit 5 months ago
.gitignore Initial commit 1 year ago
README.md fix URL 2 weeks ago
abra.sh feat: add assets script function 5 months ago
compose.oidc.yml chore: release new v3.4.6 7 months ago
compose.yml feat: allow to customise toot char limit 5 months ago
entrypoint.sh.tmpl Use the right value [ci skip] 1 year ago

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 YOURAPPDOMAIN config - be sure to change DOMAIN to something that resolves to your Docker swarm box
  6. abra app YOURAPPDOMAIN deploy 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.