This is a fork of Mastodon, with some thoughtbot customizations.
See the upstream README for everything else.
- Character limit has been increased from 500 to 5000,
- Account avatar and headers have been bumped from 2 to 10 megabytes,
- We don't run the existing GitHub Actions workflows (as we trust upstream),
- We've got Kubernetes manifests in
deploy
, using the thoughtbot Helm chart, - We use Flightctl for managing AWS & Kubernetes access,
To keep up-to-date, we rebase our customizations on top of the most recent release tag.
You'll want a local remote to referencing upstream:
git remote add upstream https://github.com/mastodon/mastodon.git
Then:
git fetch upstream
git rebase v4.2.10
git push -f origin main
We run our instance on a Digital Ocean droplet. The deployment doesn't diverge much from the non-Docker steps in the release notes.
You can login using the SSH key, which is stored in the thoughtbot 1Password vault.
Backup the database, then run through these steps:
# switch to directory with Mastodon codebase
cd /home/mastodon/live
su - mastodon
# fetch latest upstream / origin branches & tags
git pull
# upgrade dependencies
rbenv install
bundle install
yarn install --frozen-lockfile
# prep the assets
RAILS_ENV=production bundle exec rails assets:precompile
# run the migrations
RAILS_ENV=production bundle exec rake db:migrate
# switch back to root user
exit
# restart processes
systemctl restart mastodon-sidekiq
systemctl reload mastodon-web
systemctl restart mastodon-streaming