Releases: hometown-fork/hometown
Hometown v1.1.1 (Mastodon 4.0.5)
DO NOT USE THIS RELEASE! It had some critical bugs. We have merged a version from Mastodon with bugfixes which is available here: https://github.com/hometown-fork/hometown/releases/tag/v4.0.6%2Bhometown-1.1.1
This is a security release that keeps us up to date with Mastodon v4.0.5. Please see the 4.0.5 release notes for details.
Thank you @nachtjasmin and @mistydemeo for your help while I'm traveling.
Upgrade steps
There is no need to precompile assets for this release, but please note that the minimal supported ImageMagick version has been bumped to 6.9.7-7. There are also instructions at the 4.0.5 release notes for hardening your nginx configuration - this is not required but it's recommended by the Mastodon team.
git remote update && git checkout v4.0.5+hometown-1.1.1
- Install dependencies:
bundle install
andyarn install
- Restart all Mastodon processes
Hometown v1.1.1 (Mastodon 4.0.4)
This is a security release, that updates us to Mastodon v4.0.4. The security bug affected servers that use LDAP for authentication, which is not enabled by default (or indeed, usually at all) on Hometown servers.
Upgrade steps
The recommended Ruby version has been bumped to 3.0.6. If you are using rbenv
, you will be require to install it with RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.0.6
. You may need to update rbenv
itself with git -C /home/mastodon/.rbenv/plugins/ruby-build pull
.
There is no need to precompile assets for this release.
git remote update && git checkout v4.0.4+hometown-1.1.1
- Install dependencies:
bundle install
andyarn install
- Restart all Mastodon processes
Hometown v1.1.1 (Mastodon 4.0.2)
This is a security release, as I was alerted to an issue where edits to local-only posts were being federated. This has been an issue since Hometown v1.1.0, the big Mastodon v4 update (which is listed in version strings as v4.0.2+hometown-1.1.0
).
This also contains a fix to how to username autocomplete works on servers that don't have full-text search enabled.
The security issue
In the previous Hometown version v1.1.0, when a user makes a local-only post, that post does not federate. Which is good. But if a user edits the local-only post, a message gets sent out into the fediverse saying: "post X, which is local-only, was edited, and here is the new content of the post".
What happens, at least on Mastodon servers that receive this edit message, is the server goes looking for the original post to modify, sees it doesn't exist, and throws away the message. This means that at least on Mastodon or Hometown servers, the leaked content was not rendered in any user-facing timelines, but an admin who happened to be checking their rejected messages queue might have seen the leaked content. And it is likely that any non-malicious server out there also similarly rejected the messages out of hand.
I am really sorry about this error. I should have caught it, I didn't, and I thank the admin who pointed this out to me.
The fix to autocomplete
There is a Mastodon bug that I submitted a fix for where autocompletion for user names would suggest popular users before people you follow. This only applied to servers that don't have elasticsearch enabled. I fixed that issue, and it will be fixed in a future Mastodon release, but Hometown users get it a bit early.
Upgrade steps
This is a very small update, and there are no changes to the frontend so you don't even need to recompile your assets.
git remote update && git checkout v4.0.2+hometown-1.1.1
- Restart all Mastodon processes
Hometown v1.1.0 (Mastodon 4.0.2)
Hello! This is a BIG update to Hometown. Notably we are now up to date with Mastodon v4.0.2, though I have made a lot of tweaks to the v4 user interface based on feedback from people.
Table of Contents
- The v4 update
- Tweaks I made to Mastodon v4
- New features
- Upgrading from Mastodon v4.0.2 to Hometown
- Upgrading from v3.5.5+hometown-1.0.8
The v4 update
So there is a ton of new stuff in Mastodon v4.0.2. You can [read the full changelog at the Mastodon Github](https://github.com/mastodon/mastodon/releases/tag/v4.0.0), but some big changes of note are:
- Completely new layout in the mobile web app
- You can now follow hashtags -- when viewing a hashtag you will see an "follow" icon in the upper right. If you click it, you'll receive updates from that hashtag in your home feed.
- You can now edit posts via the web app. Click the three dot icon on a post you made and hit "Edit". Note that a log of your edits will be viewable to anyone who can see the post. You can't use "Edit" to change the privacy of a post or its local/federated status. The "Delete & redraft" option is still available too.
- The filtering system is pretty different now. You can put multiple keywords under a single filter rule, and there is the option to put keywords behind a CW instead of just hiding it completely.
Tweaks I made to Mastodon v4
- You can now expand and retract the right-hand menu in the v4 mobile and tablet layouts -- just press the "hamburger" menu icon in the upper right
- Mastodon changed things so when you view a profile, clicking the profile pic zooms in on the profile pic. I think this is good, but it left people with no quick way to open the actual full profile for remote users. On Hometown, when you view a remote profile, you can click the display name to go to the profile page.
- On Mastodon v4, they changed the timestamp link on a focused post to not open the remote server but instead to link to its rendering on your server. I restored this to v3 behavior since timestamps are pretty universally understood on social media to be links to canonical urls.
- I have reverted the About page to be like it was in v3, since the v4 About page is... not very helpful.
- I changed a bunch of other things from v4 but mostly to retain old functionality. So you won't notice any changes, and that's a good thing.
New features
- For users
- Users now have a "show full username (including domain) for remote users" option in their settings. Basically it means that mentions of accounts on your own server render as
@username
but remote accounts render as@[email protected]
. [Full explanation here.](#1247) You can turn it off so it's short names for everyone, too. - Media (images, gifs, video, audio) you see in your timelines that lacks text descriptions now has a warning symbol in the lower-right, to indicate that the media lacks alt text and you might not wish to boost it. [More information here.](#1165)
- Users now have a "show full username (including domain) for remote users" option in their settings. Basically it means that mentions of accounts on your own server render as
- For admins
- The maximum length for the "why do you want to join?" text for registering a new account has been raised from 420 characters to 5000 characters (nice?). Thanks @nileshtrivedi
- There is now a "Hometown" tab under "Administration --> Server Settings" where Hometown-specific sitewide settings go. This includes the default RSS opt-out setting for new users (which was in v1.0.8), and also the next bullet point...
- ...a setting to set the default federation for posts for new users. If it is checked, a brand new account will have its posts set to federated by default. if uncheck, a brand new account will have its posts set to local-only by default. Existing users are unaffected.
- You can now export and import block lists as CSV files. The buttons are on your Moderation -> Federation menu in the upper right. This will make sharing blocks with other admins easier. (I believe this is coming in a Mastodon update soon, I just pulled in their code early.) Thanks @enbylenore, @ClearlyClaire, and @Tak for the work.
- There are now options for
tootctl media remove
that let you remove the header and avatar images of inactive accounts. This is also merged to Mastodon and I pulled it in early. Thanks to @evanphilip, @ClearlyClaire - Local only posts now have a
localOnly
property set totrue
in their activitypub json objects (this is for better support from third party clients for local-only posting) - You may now tweak the CSS of media items that lack descriptive text. These items can be modified in the custom CSS widget via the
.media-missing-description
selector
You can see the full list of changes in Hometown v1.1.0 here:
Upgrading from Mastodon v4.0.2 to Hometown
Follow the instructions on initial migration from Mastodon.
Upgrading from v3.5.5+hometown-1.0.8
If you already have Hometown installed and are upgrading from v3.5.5+hometown-1.0.8
, do the following:
Important prerequisites
First, back up your DB as always: pg_dump -Fc mastodon_production > backup.dump
The recommended Ruby version has been bumped to 3.0.4. You can upgrade, or you can continue using the old version by overwriting the .ruby-version file with e.g. 3.0.3 which was recommended previously. The minimum version you can use is 2.7.
The minimum Node.js version has been bumped to 14. If you are running an older version of Node.js, stuff won't work. Importantly, v18 as of this moment doesn't work either. Make sure you are running v14 or v16.
Important v4 warnings
ingress
queue. If you are running a relatively "normal" sidekiq install you won't have to worry about this, though.
So, Mastodon docs say this:
ℹ️ The
AUTHORIZED_FETCH
option no longer affects the REST API to allow the web app to function properly for logged out users. The information available through the REST API was previously available on HTML pages. To restore previous behaviour, use new environment variableDISALLOW_UNAUTHENTICATED_API_ACCESS
.
But if you are running with AUTHORIZED_FETCH
for some reason you really, really ought to read this bug report: mastodon#20777 -- there are big issues with the way this works in v4 and I assume fixes are coming but if AUTHORIZED_FETCH
is something you care about, maybe don't upgrade Hometown yet.
ℹ️ Make sure your installed systemd service files (mastodon-web.service
, mastodon-sidekiq.service
and mastodon-streaming.service
) are up to date, or you may experience failures when uploading some media files. The newest versions of these files are here: https://github.com/mastodon/mastodon/tree/main/dist
When upgrading your systemd files to the ones above, please note that if you host your media on a different volume from /home/mastodon/live
, even if it's symlinked, you'll need to provide an additional line in each service file like ReadWritePaths=/path/to/volume/with/media
Upgrade steps
git remote update && git checkout v4.0.2+hometown-1.1.0
bundle install
yarn install
- Run the pre-deployment database migrations by specifying the
SKIP_POST_DEPLOYMENT_MIGRATIONS=true
environment variable:SKIP_POST_DEPLOYMENT_MIGRATIONS=true RAILS_ENV=production bundle exec rails db:migrate
- Precompile the assets:
RAILS_ENV=production bundle exec rails assets:precompile
- Restart all Mastodon processes
- Run post-deployment migrations:
RAILS_ENV=production bundle exec rails db:migrate
- Restart all Mastodon processes again
...and hopefully you're now up and running!
Hometown v1.0.8 (Mastodon 3.5.5)
Hello! This is an upgrade to Hometown that fixes some bugs and adds a few new features. The Mastodon version remains at 3.5.5, so no changes there.
New user-facing features
- the "I don't like it" reporting option now lets you report stuff instead of kind of, uh, scolding you
- new toggle when you make a poll that lets you set it to multiple-choice
- new option under automatic post deletion that lets you keep your local-only posts
- new option to opt out of having a public RSS feed
- also a new Site Setting for admins to opt people out of RSS by default until they opt in (default behavior on a clean Hometown install is for everyone to have RSS with the option to turn off, but privacy-minded admins can choose to make RSS being off the default)
Fixes
- fix links in the footer
- fix how inline images are rendered in
Article
posts from places like write.as
Behind the scenes stuff
- change our version string so third party clients can better detect when someone is using Hometown
- add a field to the API for default federation settings so third party clients can respect that setting
The full list of pull requests and issues is also available here: https://github.com/orgs/hometown-fork/projects/1/views/1
This release is up to date with Mastodon v3.5.5, so please check there for individual patch notes if you're upgrading from Mastodon 3.5.3 or lower.
IMPORTANT NOTE: If you are upgrading from Mastodon 3.5.2 and you are getting weird compilation errors, make sure you are running at least Node v12.22.0, 14.17.0, or any version of Node 16. If you're totally lost, you can run
node --version
to check what version you're running, and installing Node is different in every environment so best to google for "how to install node 16 on [describe your web host or linux version]".
If you're installing Hometown for the first time, please follow the instructions on the wiki. You should have Mastodon v3.5.5 installed. Follow those instructions to install Hometown v3.5.5+hometown-1.0.8
.
Upgrading from v1.0.7+3.5.5
If you already have Hometown installed and are upgrading from v1.0.7, do the following:
-
back up your DB as always:
pg_dump -Fc mastodon_production > backup.dump
-
git remote update && git checkout v3.5.5+hometown-1.0.8
-
bundle install
-
yarn install
-
Migrate the DB:
RAILS_ENV=production bundle exec rails db:migrate
-
Precompile the assets:
RAILS_ENV=production bundle exec rails assets:precompile
-
Restart all Mastodon processes
Hometown v1.0.7 (Mastodon 3.5.5)
Hello! This is an upgrade to Hometown that fixes some Hometown features and brings it up to speed with Mastodon v3.5.5, including the important security updates for 3.5.5 and the fixes/features from 3.5.3. Special thanks to @johnholdun for contributing so much to this release.
New features
- updated German translation provided by @garritfra and @Michcioperz
- improve the ability for admins to use Custom CSS to customize the federation dropdown thanks @johnholdun
Fixes
- fixes to how Articles render thanks to @therabidbanana
- tags page no longer leaks hashtagged local-only posts thanks @johnholdun
- fix lists so you can once again change the "Show replies to" settings thanks @johnholdun
- fix follower-only pinned statuses showing to logged-out users thanks @johnholdun
This release is up to date with Mastodon v3.5.5, so please check there for individual patch notes if you're upgrading from Mastodon 3.5.3 or lower.
IMPORTANT NOTE: If you are upgrading from Mastodon 3.5.2 and you are getting weird compilation errors, make sure you are running at least Node v12.22.0, 14.17.0, or any version of Node 16. If you're totally lost, you can run
node --version
to check what version you're running, and installing Node is different in every environment so best to google for "how to install node 16 on [describe your web host or linux version]".
If you're installing Hometown for the first time, please follow the instructions on the wiki. You should have Mastodon v3.5.5 installed. Follow those instructions to install Hometown v1.0.7+3.5.5
.
Upgrading from v1.0.6+3.5.2
If you already have Hometown installed and are upgrading from v1.0.6, do the following:
git remote update && git checkout v1.0.7+3.5.5
bundle install
yarn install
- Precompile the assets:
RAILS_ENV=production bundle exec rails assets:precompile
- Restart all Mastodon processes
Hometown v1.0.6 (Mastodon 3.5.2)
Hooray! A new feature release! It's almost all bugfixes and very minor features so it's getting a patch release.
New features
- Polish translation of Hometown specific text, thanks to @mkljczk!
- "About" pages now show in limited federation mode. The reasoning here is that while you certainly want to hide your discoverability features from external servers, you do want your Code of Conduct etc to be viewable by everyone. Thanks @exstral!
- The "Compose" field is no longer auto-focused. Auto-focusing this as Mastodon does assumes that you are going to make a post when you load the page. This often isn't true, and it means that keyboard shortcut users have to tab out before beginning to navigate. Thanks @raboof for the PR and thanks @rkingett for the accessibility check re: screen readers.
Fixes
- remove extra fields from
Gemfile.lock
. This was causingbundler
errors on upgrade for some people. Thanks @mistydemeo! - Tweaks to the Macaron theme
- Exclusive lists no longer reset to normal lists when you rename them. Thanks @ljcooke!
- The
:local_only:
emoji now works in CW text. Thanks @killpack! - Remove some stray Mastodon branding, thanks @exstral!
This release is up to date with Mastodon v3.5.2, so please check there for individual patch notes if you're upgrading from Mastodon 3.5.1 or lower.
If you're installing Hometown for the first time, please follow the instructions on the wiki. You should have Mastodon v3.5.2 installed. Follow those instructions to install Hometown v1.0.5+3.5.2
, and then follow these instructions here to upgrade to Hometown v1.0.6+3.5.2
.
Upgrading from v1.0.6+3.5.2
If you already have Hometown installed and are upgrading from v1.0.5, do the following:
git remote update && git checkout v1.0.6+3.5.2
- Precompile the assets:
RAILS_ENV=production bundle exec rails assets:precompile
- Restart all Mastodon processes
Hometown v1.0.5 (Mastodon 3.5.2)
This release brings us up to par with all the features in Mastodon 3.5.2, including stuff like:
- auto-deletion of posts after a set time
- animated GIF custom emoji support
- better search results
- better list UI
...and many, many, many other changes. You can read about them here:
This release is up to date with Mastodon v3.5.2, so please check there for individual patch notes if you're upgrading from a lower Hometown version than v1.0.5+3.4.6
. If you're installing Hometown for the first time, please follow the instructions on the wiki.
Upgrading from v1.0.5+3.4.6
If you already have Hometown installed and are upgrading from v1.05+3.4.6
, do the following:
git remote update && git checkout v1.0.5+3.5.2
As always, make sure you have backups of the database before performing any upgrades. If you are using docker-compose, this is how a backup command might look: docker exec mastodon_db_1 pg_dump -Fc -U postgres postgres > name_of_the_backup.dump
- If you are using Elasticsearch for full text search, be advised that you must be running at least Elasticsearch 7.0
- If you are using Docker, the PostgreSQL version in docker-compose.yml has been changed from 9.6 to 14, requires manual upgrade
Docker only:
- The PostgreSQL container version in our docker-compose.yml configuration has been changed from 9.6 to 14 due to EOL (End-of-Life) of 9.6. Detailed instructions on how to migrate your data is [available here](mastodon#16947).
Non-Docker only:
- If you are using
rbenv
, [update the list of available versions](https://github.com/rbenv/rbenv#updating-the-list-of-available-ruby-versions) and install Ruby 3.0.3 by doingRUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.0.3
- you may need to install
jemalloc
. On Ubuntu this is done withsudo apt-get install libjemalloc-dev
- you may need to install
- Install dependencies:
bundle install
andyarn install
Both Docker and non-Docker:
-
Run the pre-deployment database migrations by specifying the
SKIP_POST_DEPLOYMENT_MIGRATIONS=true
environment variable:- Non-Docker:
SKIP_POST_DEPLOYMENT_MIGRATIONS=true RAILS_ENV=production bundle exec rails db:migrate
- Docker:
docker-compose run --rm -e SKIP_POST_DEPLOYMENT_MIGRATIONS=true web rails db:migrate
- Non-Docker:
-
Precompile the assets:
- Non-Docker:
RAILS_ENV=production bundle exec rails assets:precompile
- Docker: The assets are already precompiled during the build step
- Non-Docker:
-
Restart all Mastodon processes
-
Clear cache:
- Non-Docker:
RAILS_ENV=production bin/tootctl cache clear
- Docker:
docker-compose run --rm web bin/tootctl cache clear
- Non-Docker:
-
Now that the new code is running, we can finish the database migrations. This will run the post-deployment ones:
- Non-Docker:
RAILS_ENV=production bundle exec rails db:migrate
- Docker:
docker-compose run --rm web rails db:migrate
- Non-Docker:
-
Restart all Mastodon processes
Security Update! Hometown v1.0.5 (Mastodon 3.4.6)
This release brings us the security patches in v3.4.6 (plus all the nice stuff from releases between 3.4.0 and this one, too).
Changes this release:
- updating to Mastodon 3.4.6
This release is up to date with Mastodon v3.4.6, so please check there for individual patch notes if you're upgrading from a lower Mastodon version. If you're installing Hometown for the first time, please follow the instructions on the wiki.
Upgrading from v1.0.5+3.4.0
If you already have Hometown installed and are upgrading from v1.05+3.4.0
, do the following:
git remote update && git checkout v1.0.5+3.4.6
As always, make sure you have backups of the database before performing any upgrades. If you are using docker-compose, this is how a backup command might look: docker exec mastodon_db_1 pg_dump -Fc -U postgres postgres > name_of_the_backup.dump
Non-Docker only:
- Install dependencies:
bundle install
andyarn install
Both Docker and non-Docker:
-
Run the pre-deployment database migrations:
- Non-Docker:
RAILS_ENV=production bundle exec rails db:migrate
- Docker:
docker-compose run --rm web rails db:migrate
- Non-Docker:
-
Precompile the assets:
- Non-Docker:
RAILS_ENV=production bundle exec rails assets:precompile
- Docker: The assets are already precompiled during the build step
- Non-Docker:
-
Restart all Mastodon processes
Hometown v1.0.5 (Mastodon 3.4.0)
Whereas the last Mastodon update took me many months to make happen, this one I managed within 24 hours. Phew. Enjoy the latest changes from Mastodon 3.4.0. (I am still working on the next Hometown release in terms of new features.)
Changes this release:
- updating to Mastodon 3.4.0
This release is up to date with Mastodon v3.4.0, so please check there for individual patch notes if you're upgrading from a lower Mastodon version. If you're installing Hometown for the first time, please follow the instructions on the wiki.
Upgrading from v1.0.5+3.3.0
If you already have Hometown installed and are upgrading from v1.05+3.3.0
, do the following:
git remote update && git checkout v1.0.5+3.4.0
As always, make sure you have backups of the database before performing any upgrades. If you are using docker-compose, this is how a backup command might look: docker exec mastodon_db_1 pg_dump -Fc -U postgres postgres > name_of_the_backup.dump
Non-Docker only:
- Install dependencies:
bundle install
andyarn install
Both Docker and non-Docker:
-
Run the pre-deployment database migrations by specifying the
SKIP_POST_DEPLOYMENT_MIGRATIONS=true
environment variable:- Non-Docker:
SKIP_POST_DEPLOYMENT_MIGRATIONS=true RAILS_ENV=production bundle exec rails db:migrate
- Docker:
docker-compose run --rm -e SKIP_POST_DEPLOYMENT_MIGRATIONS=true web rails db:migrate
- Non-Docker:
-
Precompile the assets:
- Non-Docker:
RAILS_ENV=production bundle exec rails assets:precompile
- Docker: The assets are already precompiled during the build step
- Non-Docker:
-
Restart all Mastodon processes
-
Clear cache:
- Non-Docker:
RAILS_ENV=production bin/tootctl cache clear
- Docker:
docker-compose run --rm web bin/tootctl cache clear
- Non-Docker:
-
Now that the new code is running, we can finish the database migrations. This will run the post-deployment ones:
- Non-Docker:
RAILS_ENV=production bundle exec rails db:migrate
- Docker:
docker-compose run --rm web rails db:migrate
- Non-Docker:
-
Restart all Mastodon processes