Skip to content

Releases: superseriousbusiness/gotosocial

v0.18.1 Less Scroingly Sloth

24 Feb 11:25
fd670c6
Compare
Choose a tag to compare

Hiya! Here's a bugfix release of GoToSocial!

We added ETag cache control handling to robots.txt, to make it easier for crawlers to be able to tell which instances they should and shouldn't index.

If you're updating to this version from v0.18.0, it's a very easy update with no db migrations or config file changes :)

If you're updating to this version from a version before v0.18.0, please follow the update instructions from v0.18.0, but replace 0.18.0 with 0.18.1 throughout. Be aware that the update to 0.18.x contains some very long migrations. Please do read the notes carefully.

Migration notes

Upgrading

To upgrade to v0.18.1 from a previous release:

Binary/tar

  1. Stop GoToSocial.
  2. Back up your database! If you're running on SQLite, this is as simple as copying your sqlite.db file, eg., cp sqlite.db sqlite.db.backup.
  3. Download and untar the new release, including the web assets and html templates.
  4. Edit your config.yaml file if necessary (see below).
  5. Start GoToSocial.
  6. Wait patiently for any migrations to run, do not interrupt migrations or you could leave your db in a broken state and will have to restore from backup!
  7. Enjoy your updated instance.

Docker

  1. Stop GoToSocial.
  2. Back up your database! If you're running on SQLite, this is as simple as copying your sqlite.db file, eg., cp sqlite.db sqlite.db.backup.
  3. Pull the new docker container (superseriousbusiness/gotosocial:0.18.1 or superseriousbusiness/gotosocial:latest)
  4. Edit your config.yaml file or environment variables if necessary (see below).
  5. Start GoToSocial.
  6. Wait patiently for any migrations to run, do not interrupt migrations or you could leave your db in a broken state and will have to restore from backup!
  7. Enjoy your updated instance.

config.yaml

No changes since v0.18.0.

Database Migrations

None since v0.18.0.

Which release archive/container should I use?

GoToSocial releases binary builds for 64-bit Linux, FreeBSD, and NetBSD operating systems. We also release Docker builds for 64-bit Linux.

OS Architecture Support level Binary archive Docker
Linux x86-64/AMD64 (64-bit) 🟒 Full linux_amd64.tar.gz superseriousbusiness/gotosocial:0.18.1
Linux Armv8/ARM64 (64-bit) 🟒 Full linux_arm64.tar.gz superseriousbusiness/gotosocial:0.18.1
FreeBSD x86-64/AMD64 (64-bit) 🟒 Full freebsd_amd64.tar.gz Not provided
FreeBSD Armv8/ARM64 (64-bit) 🟒 Full freebsd_arm64.tar.gz Not provided
NetBSD x86-64/AMD64 (64-bit) 🟒 Full netbsd_amd64.tar.gz Not provided
NetBSD Armv8/ARM64 (64-bit) 🟒 Full netbsd_arm64.tar.gz Not provided

nowasm

For your convenience, we also provide UNSUPPORTED, EXPERIMENTAL BUILDS, created using the nowasm tag, in the downloads list below. There is no Docker build for nowasm.

GoToSocial releases built with nowasm use the Go-native, modernc version of SQLite instead of the WASM one, and will use on-system ffmpeg and ffprobe binaries for media processing.

Using a nowasm build is currently the only way to run GoToSocial on a 32-bit system.

For more information on running a nowasm build, see the nowasm documentation page.

Changelog

Features and performance

v0.18.0 Scroingly Sloth

22 Feb 15:40
c9de6c9
Compare
Choose a tag to compare

Here's GoToSocial v0.18.0 Scroingly Sloth!

Please read the migration notes carefully for instructions on how to upgrade to this version. This version contains several very long migrations so you will need to be patient when upgrading, and backup your database first!!

Release highlights

  • Status edit support: one of our most-requested features! You can now edit your own statuses, and see instance edit history from other accounts too (if your instance has them stored).
  • Push notifications: probably the second most-requested feature! GoToSocial can now send push notifications to clients via their configured push providers.
    You may need to uninstall / reinstall client applications, or log out and back in again, for this feature to work. (And if you're using Tusky, make sure you've got ntfy installed).
  • Global instance css customization: admins can now apply custom CSS across their entire instance via the settings panel.
  • Domain permission subscriptions: it's now possible to configure your instance to subscribe to CSV, JSON, or plaintext lists of domain permissions.
    Each night, your instance will fetch and automatically create domain permissions (or permission drafts) based on what it finds in a subscribed list.
    See the domain permission subscription documentation for more information.
  • Trusted-proxies helper: instances with improperly configured trusted-proxies settings will now show a warning on the homepage, so admins can make sure their instance is configured correctly. Check your own instance homepage after updating to see if you need to do anything.
  • Better outbox sorting: messages from GoToSocial are now delivered more quickly to people you mention, so conversations across instances should feel a bit snappier.
  • Log in button: there's now a login button in the top right of the instance homepage, which leads to a helpful page about clients, with a link to the settings panel. Should make things less confusing for new users!
  • Granular stats controls: with the instance-stats-mode setting, admins can now choose if and how their instance serves stats via the nodeinfo endpoints. Existing behavior from v0.17.0 is the default.
  • Post backdating: via the API you can now backdate posts (if enabled in config.yaml). This is our first step towards making it possible to import your post history from elsewhere into your GoToSocial instance. While there's no way to do this in the settings panel yet, you can already use third-party tools like Slurp to import posts from a Mastodon export (see Slurp).
  • Configurable sign-up limits: you can now configure your sign-up backlog length and sign-up throttling (defaults remain the same).
  • NetBSD and FreeBSD builds: yep!
  • Respect users prefers-color-scheme preference: there's now a light mode default theme to complement our trusty dark mode theme, and the theme will switch based on a visitor's prefers-color-scheme configuration. This applies to all page and profiles, with the exception of some custom themes. Works in the settings panel too!

Migration notes

Upgrading

To upgrade to v0.18.0 from a previous release:

Binary/tar

  1. Stop GoToSocial.
  2. Back up your database! If you're running on SQLite, this is as simple as copying your sqlite.db file, eg., cp sqlite.db sqlite.db.backup.
  3. Download and untar the new release, including the web assets and html templates.
  4. Edit your config.yaml file if necessary (see below).
  5. Start GoToSocial.
  6. Wait patiently for any migrations to run, do not interrupt migrations or you could leave your db in a broken state and will have to restore from backup!
  7. Enjoy your updated instance.

Docker

  1. Stop GoToSocial.
  2. Back up your database! If you're running on SQLite, this is as simple as copying your sqlite.db file, eg., cp sqlite.db sqlite.db.backup.
  3. Pull the new docker container (superseriousbusiness/gotosocial:0.18.0 or superseriousbusiness/gotosocial:latest)
  4. Edit your config.yaml file or environment variables if necessary (see below).
  5. Start GoToSocial.
  6. Wait patiently for any migrations to run, do not interrupt migrations or you could leave your db in a broken state and will have to restore from backup!
  7. Enjoy your updated instance.

config.yaml

The configuration file has changed since the previous release.

  • Add instance-subscriptions-process-from (default "23:00").
  • Add instance-subscriptions-process-every (default "24h").
  • Add instance-stats-mode (default "" ie., existing v0.17.0 behavior).
  • Add instance-allow-backdating-statuses (default true).
  • Add accounts-registration-daily-limit (default 10 ie., existing v0.17.0 behavior).
  • Add accounts-registration-backlog-limit (default 20 ie., existing v0.17.0 behavior).

You can see a diff of the config file here: v0.17.4...v0.18.0#diff-c071e03510b2c57e193a44503fd9528a785f0f411497cc75841a9f8d0b1ac622

Database Migrations

⚠️⚠️⚠️

This release contains several large database migrations which will run the first time you start up this new version.

Be sure not to interrupt this migration process.

This will take anywhere between a minute and maybe an hour or even more (on slower hardware / with bigger database size).

If running with sqlite, you will need to ensure you have sufficient free space for the transaction / wal file to grow while running migrations. Aim to have about 80% of your db size free. For example, if your sqlite.db file is 10GiB, you should try to have at least 8GiB of free space before triggering the update. After the migration the wal file will be flushed again (do not do this manually, let sqlite do it).

Please be patient!

⚠️⚠️⚠️

Which release archive/container should I use?

GoToSocial releases binary builds for 64-bit Linux, FreeBSD, and NetBSD operating systems. We also release Docker builds for 64-bit Linux.

OS Architecture Support level Binary archive Docker
Linux x86-64/AMD64 (64-bit) 🟒 Full linux_amd64.tar.gz superseriousbusiness/gotosocial:0.18.0
Linux Armv8/ARM64 (64-bit) 🟒 Full linux_arm64.tar.gz superseriousbusiness/gotosocial:0.18.0
FreeBSD x86-64/AMD64 (64-bit) 🟒 Full freebsd_amd64.tar.gz Not provided
FreeBSD Armv8/ARM64 (64-bit) 🟒 Full freebsd_arm64.tar.gz Not provided
NetBSD x86-64/AMD64 (64-bit) 🟒 Full netbsd_amd64.tar.gz Not provided
NetBSD Armv8/ARM64 (64-bit) 🟒 Full netbsd_arm64.tar.gz Not provided

nowasm

For your convenience, we also provide UNSUPPORTED, EXPERIMENTAL BUILDS, created using the nowasm tag, in the downloads list below. There is no Docker build for nowasm.

GoToSocial releases built with nowasm use the Go-native, modernc version of SQLite instead of the WASM one, and will use on-system ffmpeg and ffprobe binaries for media processing.

Using a nowasm build is currently the only way to run GoToSocial on a 32-bit system.

For more information on running a nowasm build, see the nowasm documentation page.

Changelog

Features and performance

Read more

v0.18.0-rc3

20 Feb 14:51
8829ee1
Compare
Choose a tag to compare
v0.18.0-rc3 Pre-release
Pre-release

Here's the third (hopefully final?) release candidate for GoToSocial v0.18.0.

Please read the migration notes carefully for instructions on how to upgrade to this version.

For instructions to update to this release candidate from versions < v0.18.0-rc1, see the v0.18.0-rc1 release candidate notes, but replace v0.18.0-rc1 with v0.18.0-rc3 throughout.

Release highlights

Compared to rc2:

  • Fixed a couple bugs
  • Batched migrations so they should run smoother and give more feedback to users
  • Adding forward-compatibility code for future Approval objects

Migration notes

Upgrading

To upgrade to v0.18.0-rc3 from a previous release:

Binary/tar

  1. Stop GoToSocial.
  2. Back up your database! If you're running on SQLite, this is as simple as copying your sqlite.db file, eg., cp sqlite.db sqlite.db.backup.
  3. Download and untar the new release, including the web assets and html templates.
  4. Edit your config.yaml file if necessary (see below).
  5. Start GoToSocial.
  6. Wait patiently for any migrations to run, do not interrupt migrations or you could leave your db in a broken state and will have to restore from backup!
  7. Enjoy your updated instance.

Docker

  1. Stop GoToSocial.
  2. Back up your database! If you're running on SQLite, this is as simple as copying your sqlite.db file, eg., cp sqlite.db sqlite.db.backup.
  3. Pull the new docker container (superseriousbusiness/gotosocial:0.18.0-rc3 or superseriousbusiness/gotosocial:latest)
  4. Edit your config.yaml file or environment variables if necessary (see below).
  5. Start GoToSocial.
  6. Wait patiently for any migrations to run, do not interrupt migrations or you could leave your db in a broken state and will have to restore from backup!
  7. Enjoy your updated instance.

config.yaml

No changes since v0.18.0-rc2.

Database Migrations

None since v0.18.0-rc2.

Which release archive/container should I use?

GoToSocial releases binary builds for 64-bit Linux, FreeBSD, and NetBSD operating systems. We also release Docker builds for 64-bit Linux.

OS Architecture Support level Binary archive Docker
Linux x86-64/AMD64 (64-bit) 🟒 Full linux_amd64.tar.gz superseriousbusiness/gotosocial:0.18.0-rc3
Linux Armv8/ARM64 (64-bit) 🟒 Full linux_arm64.tar.gz superseriousbusiness/gotosocial:0.18.0-rc3
FreeBSD x86-64/AMD64 (64-bit) 🟒 Full freebsd_amd64.tar.gz Not provided
FreeBSD Armv8/ARM64 (64-bit) 🟒 Full freebsd_arm64.tar.gz Not provided
NetBSD x86-64/AMD64 (64-bit) 🟒 Full netbsd_amd64.tar.gz Not provided
NetBSD Armv8/ARM64 (64-bit) 🟒 Full netbsd_arm64.tar.gz Not provided

nowasm

For your convenience, we also provide UNSUPPORTED, EXPERIMENTAL BUILDS, created using the nowasm tag, in the downloads list below. There is no Docker build for nowasm.

GoToSocial releases built with nowasm use the Go-native, modernc version of SQLite instead of the WASM one, and will use on-system ffmpeg and ffprobe binaries for media processing.

Using a nowasm build is currently the only way to run GoToSocial on a 32-bit system.

For more information on running a nowasm build, see the nowasm documentation page.

Changelog

Features and performance

Bug fixes

Read more

v0.18.0-rc2

13 Feb 14:42
1ee56d6
Compare
Choose a tag to compare
v0.18.0-rc2 Pre-release
Pre-release

Here's version 0.18.0-rc2 of GoToSocial.

Please read the migration notes carefully for instructions on how to upgrade to this version.

For instructions to update to this release candidate from versions < v0.18.0-rc1, see the v0.18.0-rc1 release candidate notes, but replace v0.18.0-rc1 with v0.18.0-rc2 throughout.

Migration notes

Upgrading

To upgrade to v0.18.0-rc2 from a previous release:

Binary/tar

  1. Stop GoToSocial.
  2. Back up your database! If you're running on SQLite, this is as simple as copying your sqlite.db file, eg., cp sqlite.db sqlite.db.backup.
  3. Download and untar the new release, including the web assets and html templates.
  4. Edit your config.yaml file if necessary (see below).
  5. Start GoToSocial.
  6. Wait patiently for any migrations to run, do not interrupt migrations or you could leave your db in a broken state and will have to restore from backup!
  7. Enjoy your updated instance.

Docker

  1. Stop GoToSocial.
  2. Back up your database! If you're running on SQLite, this is as simple as copying your sqlite.db file, eg., cp sqlite.db sqlite.db.backup.
  3. Pull the new docker container (superseriousbusiness/gotosocial:0.18.0-rc2 or superseriousbusiness/gotosocial:latest)
  4. Edit your config.yaml file or environment variables if necessary (see below).
  5. Start GoToSocial.
  6. Wait patiently for any migrations to run, do not interrupt migrations or you could leave your db in a broken state and will have to restore from backup!
  7. Enjoy your updated instance.

config.yaml

The configuration file has changed since the previous release candidate.

  • Added instance-allow-backdating-statuses.
  • Added accounts-registration-daily-limit.
  • Added accounts-registration-backlog-limit.

You can see a diff of the config file here: v0.18.0-rc1...v0.18.0-rc2#diff-c071e03510b2c57e193a44503fd9528a785f0f411497cc75841a9f8d0b1ac622

Database Migrations

No new migrations since v0.18.0-rc1.

Which release archive/container should I use?

GoToSocial releases binary builds for 64-bit Linux, FreeBSD, and NetBSD operating systems. We also release Docker builds for 64-bit Linux.

OS Architecture Support level Binary archive Docker
Linux x86-64/AMD64 (64-bit) 🟒 Full linux_amd64.tar.gz superseriousbusiness/gotosocial:0.18.0-rc2
Linux Armv8/ARM64 (64-bit) 🟒 Full linux_arm64.tar.gz superseriousbusiness/gotosocial:0.18.0-rc2
FreeBSD x86-64/AMD64 (64-bit) 🟒 Full freebsd_amd64.tar.gz Not provided
FreeBSD Armv8/ARM64 (64-bit) 🟒 Full freebsd_arm64.tar.gz Not provided
NetBSD x86-64/AMD64 (64-bit) 🟒 Full netbsd_amd64.tar.gz Not provided
NetBSD Armv8/ARM64 (64-bit) 🟒 Full netbsd_arm64.tar.gz Not provided

nowasm

For your convenience, we also provide UNSUPPORTED, EXPERIMENTAL BUILDS, created using the nowasm tag, in the downloads list below. There is no Docker build for nowasm.

GoToSocial releases built with nowasm use the Go-native, modernc version of SQLite instead of the WASM one, and will use on-system ffmpeg and ffprobe binaries for media processing.

Using a nowasm build is currently the only way to run GoToSocial on a 32-bit system.

For more information on running a nowasm build, see the nowasm documentation page.

Changelog

Features and performance

Bug fixes

Read more

v0.17.4 The Most Selective Sloth You've Ever Seen

12 Feb 17:16
Compare
Choose a tag to compare

Here's version 0.17.4 of GoToSocial. This is a very important security bugfix release that addresses a dereferencing bug which, when triggered under a specific set of circumstances, can cause loss of account data on affected instances.

We recommend everyone on v0.17.3 or below updates to this version as soon as possible.

If updating to this version from 0.16.0 or below, please follow the instructions for v0.17.0, replacing 0.17.0 with 0.17.4 throughout. ⚠️ Be aware that updating to this version from 0.16.0 or below will involve some serious database migrations. Check the 0.17.0 release notes carefully for more details on this. ⚠️

If updating to this version from 0.17.x, follow the instructions below.

Migration notes

Upgrading

To upgrade to v0.17.4 from a previous release:

Binary/tar

  1. Stop GoToSocial.
  2. Back up your database! If you're running on SQLite, this is as simple as copying your sqlite.db file, eg., cp sqlite.db sqlite.db.backup.
  3. Download and untar the new release, including the web assets and html templates.
  4. Edit your config.yaml file if necessary (see below).
  5. Start GoToSocial.
  6. Wait patiently for any migrations to run, do not interrupt migrations or you could leave your db in a broken state and will have to restore from backup!
  7. Enjoy your updated instance.

Docker

  1. Stop GoToSocial.
  2. Back up your database! If you're running on SQLite, this is as simple as copying your sqlite.db file, eg., cp sqlite.db sqlite.db.backup.
  3. Pull the new docker container (superseriousbusiness/gotosocial:0.17.4 or superseriousbusiness/gotosocial:latest)
  4. Edit your config.yaml file or environment variables if necessary (see below).
  5. Start GoToSocial.
  6. Wait patiently for any migrations to run, do not interrupt migrations or you could leave your db in a broken state and will have to restore from backup!
  7. Enjoy your updated instance.

config.yaml

No changes since v0.17.3.

Database Migrations

No migrations since v0.17.3.

Which release archive/container should I use?

Tl;dr: Regardless of whether you're using SQLite or Postgres as your DB driver, you most likely you want the regular version without moderncsqlite in the name.

However, if you're on FreeBSD, 32-bit Linux or 32-bit ARM, we recommend using the moderncsqlite version instead.

You may need to change some configuration options too. See the table below:

OS Architecture Support level Binary archive Docker
Linux x86-64/AMD64 (64-bit) 🟒 Full linux_amd64.tar.gz superseriousbusiness/gotosocial:0.17.4
Linux Armv8/ARM64 (64-bit) 🟒 Full linux_arm64.tar.gz superseriousbusiness/gotosocial:0.17.4
FreeBSD x86-64/AMD64 (64-bit) 🟒 Full1 freebsd_amd64_moderncsqlite.tar.gz None provided
Linux x86-32/i386 (32-bit) 🟑 Partial2 linux_386_moderncsqlite.tar.gz superseriousbusiness/gotosocial:0.17.4-moderncsqlite
Linux Armv7/ARM32 (32-bit) 🟑 Partial2 linux_armv7_moderncsqlite.tar.gz superseriousbusiness/gotosocial:0.17.4-moderncsqlite
Linux Armv6/ARM32 (32-bit) 🟑 Partial2 linux_armv6_moderncsqlite.tar.gz superseriousbusiness/gotosocial:0.17.4-moderncsqlite

FreeBSD

moderncsqlite version currently recommended, though you might have success with the regular WASM SQLite version.

If running with regular WASM SQLite and having instability or memory issues, the following settings may help:

db-max-open-conns-multiplier: 0
db-sqlite-journal-mode: "TRUNCATE"
db-sqlite-synchronous: "FULL"

32-bit

moderncsqlite version is needed, as performance with regular WASM SQLite is not guaranteed when running on 32-bit.

Remote media processing will likely not work with reasonable performance, so you should set the following config variables to prevent download of remote media onto your instance:

media-remote-max-size: 0
media-emoji-remote-max-size: 0

Changelog

Bug fixes

  • aebb846: [bugfix] harden checks for remotes masquerading as local, and return correct local account redirects early (#3706) (@NyaaaWhatsUpDoc)

v0.18.0-rc1

06 Feb 16:24
00bd0f7
Compare
Choose a tag to compare
v0.18.0-rc1 Pre-release
Pre-release

Here's the first release candidate of GoToSocial v0.18.0!

Please read the migration notes carefully for instructions on how to upgrade to this version. This version contains several very long migrations so you will need to be patient when upgrading, and backup your database first!!

Release highlights

  • Status edit support: one of our most-requested features! You can now edit your own statuses, and see instance edit history from other accounts too (if your instance has them stored).
  • Push notifications: probably the second most-requested feature! GoToSocial can now send push notifications to clients via their configured push providers.
    You may need to uninstall / reinstall client applications, or log out and back in again, for this feature to work. (And if you're using Tusky, make sure you've got ntfy installed).
  • Global instance css customization: admins can now apply custom CSS across their entire instance via the settings panel.
  • Domain permission subscriptions: it's now possible to configure your instance to subscribe to CSV, JSON, or plaintext lists of domain permissions.
    Each night, your instance will fetch and automatically create domain permissions (or permission drafts) based on what it finds in a subscribed list.
    See the domain permission subscription documentation for more information.
  • Trusted-proxies helper: instances with improperly configured trusted-proxies settings will now show a warning on the homepage, so admins can make sure their instance is configured correctly.
  • Better outbox sorting: messages from GoToSocial are now delivered more quickly to people you mention, so conversations across instances should feel snappier.
  • Log in button: there's now a login button in the top right of the instance homepage, which leads to a helpful page about clients, with a link to the settings panel. Should make things less confusing for new users!
  • Granular stats controls: with the instance-stats-mode setting, admins can now choose if and how their instance serves stats via the nodeinfo endpoints. Existing behavior from v0.17.0 is the default.

Migration notes

Upgrading

To upgrade to v0.18.0-rc1 from a previous release:

Binary/tar

  1. Stop GoToSocial.
  2. Back up your database! If you're running on SQLite, this is as simple as copying your sqlite.db file, eg., cp sqlite.db sqlite.db.backup.
  3. Download and untar the new release, including the web assets and html templates.
  4. Edit your config.yaml file if necessary (see below).
  5. Start GoToSocial.
  6. Wait patiently for any migrations to run, do not interrupt migrations or you could leave your db in a broken state and will have to restore from backup!
  7. Enjoy your updated instance.

Docker

  1. Stop GoToSocial.
  2. Back up your database! If you're running on SQLite, this is as simple as copying your sqlite.db file, eg., cp sqlite.db sqlite.db.backup.
  3. Pull the new docker container (superseriousbusiness/gotosocial:0.18.0-rc1 or superseriousbusiness/gotosocial:latest)
  4. Edit your config.yaml file or environment variables if necessary (see below).
  5. Start GoToSocial.
  6. Wait patiently for any migrations to run, do not interrupt migrations or you could leave your db in a broken state and will have to restore from backup!
  7. Enjoy your updated instance.

config.yaml

The configuration file has changed since the previous release.

  • Added instance-subscriptions-process-from.
  • Added instance-subscriptions-process-every.
  • Added instance-stats-mode.

You can see a diff of the config file here: v0.17.3...v0.18.0-rc1#diff-c071e03510b2c57e193a44503fd9528a785f0f411497cc75841a9f8d0b1ac622

Database Migrations

⚠️⚠️⚠️

This release may contain database migrations which will run the first time you start up this new version.

Be sure not to interrupt this migration process.

This will take anywhere between a couple seconds and up to an hour or more (on slower hardware).

Please be patient!

⚠️⚠️⚠️

Which release archive/container should I use?

GoToSocial releases binary builds for 64-bit Linux, FreeBSD, and NetBSD operating systems. We also release Docker builds for 64-bit Linux.

OS Architecture Support level Binary archive Docker
Linux x86-64/AMD64 (64-bit) 🟒 Full linux_amd64.tar.gz superseriousbusiness/gotosocial:0.18.0-rc1
Linux Armv8/ARM64 (64-bit) 🟒 Full linux_arm64.tar.gz superseriousbusiness/gotosocial:0.18.0-rc1
FreeBSD x86-64/AMD64 (64-bit) 🟒 Full freebsd_amd64.tar.gz Not provided
FreeBSD Armv8/ARM64 (64-bit) 🟒 Full freebsd_arm64.tar.gz Not provided
NetBSD x86-64/AMD64 (64-bit) 🟒 Full netbsd_amd64.tar.gz Not provided
NetBSD Armv8/ARM64 (64-bit) 🟒 Full netbsd_arm64.tar.gz Not provided

nowasm

For your convenience, we also provide UNSUPPORTED, EXPERIMENTAL BUILDS, created using the nowasm tag, in the downloads list below. There is no Docker build for nowasm.

GoToSocial releases built with nowasm use the Go-native, modernc version of SQLite instead of the WASM one, and will use on-system ffmpeg and ffprobe binaries for media processing.

Using a nowasm build is currently the only way to run GoToSocial on a 32-bit system.

For more information on running a nowasm build, see the nowasm documentation page.

Changelog

Features and performance

Read more

v0.17.3 Most Selective Sloth

06 Nov 13:29
6f4cb2f
Compare
Choose a tag to compare

Hello hello, hopefully the final bugfix of the 0.17.x release while we get on with 0.18.0 :)

There was a bug in 0.17.2 where some Java-based clients didn't like some of the large numbers used in the /api/v1/instance and /api/v2/instance responses, so we made them smaller. That's it!

If updating to this version from 0.16.0 or below, please follow the instructions for v0.17.0, replacing 0.17.0 with 0.17.3 throughout. ⚠️ Be aware that updating to this version from 0.16.0 or below will involve some serious database migrations. Check the 0.17.0 release notes carefully for more details on this. ⚠️

If updating to this version from 0.17.x, follow the instructions below.

Migration notes

Upgrading

To upgrade to v0.17.3 from a previous release:

Binary/tar

  1. Stop GoToSocial.
  2. Back up your database! If you're running on SQLite, this is as simple as copying your sqlite.db file, eg., cp sqlite.db sqlite.db.backup.
  3. Download and untar the new release, including the web assets and html templates.
  4. Edit your config.yaml file if necessary (see below).
  5. Start GoToSocial.
  6. Wait patiently for any migrations to run, do not interrupt migrations or you could leave your db in a broken state and will have to restore from backup!
  7. Enjoy your updated instance.

Docker

  1. Stop GoToSocial.
  2. Back up your database! If you're running on SQLite, this is as simple as copying your sqlite.db file, eg., cp sqlite.db sqlite.db.backup.
  3. Pull the new docker container (superseriousbusiness/gotosocial:0.17.3 or superseriousbusiness/gotosocial:latest)
  4. Edit your config.yaml file or environment variables if necessary (see below).
  5. Start GoToSocial.
  6. Wait patiently for any migrations to run, do not interrupt migrations or you could leave your db in a broken state and will have to restore from backup!
  7. Enjoy your updated instance.

config.yaml

No changes since 0.17.2.

Database Migrations

⚠️⚠️⚠️

This release may contain database migrations which will run the first time you start up this new version.

Be sure not to interrupt this migration process.

This will take anywhere between a couple seconds and ten minutes or more (on slower hardware).

Please be patient!

⚠️⚠️⚠️

Which release archive/container should I use?

Tl;dr: Regardless of whether you're using SQLite or Postgres as your DB driver, you most likely you want the regular version without moderncsqlite in the name.

However, if you're on FreeBSD, 32-bit Linux or 32-bit ARM, we recommend using the moderncsqlite version instead.

You may need to change some configuration options too. See the table below:

OS Architecture Support level Binary archive Docker
Linux x86-64/AMD64 (64-bit) 🟒 Full linux_amd64.tar.gz superseriousbusiness/gotosocial:0.17.3
Linux Armv8/ARM64 (64-bit) 🟒 Full linux_arm64.tar.gz superseriousbusiness/gotosocial:0.17.3
FreeBSD x86-64/AMD64 (64-bit) 🟒 Full1 freebsd_amd64_moderncsqlite.tar.gz None provided
Linux x86-32/i386 (32-bit) 🟑 Partial2 linux_386_moderncsqlite.tar.gz superseriousbusiness/gotosocial:0.17.3-moderncsqlite
Linux Armv7/ARM32 (32-bit) 🟑 Partial2 linux_armv7_moderncsqlite.tar.gz superseriousbusiness/gotosocial:0.17.3-moderncsqlite
Linux Armv6/ARM32 (32-bit) 🟑 Partial2 linux_armv6_moderncsqlite.tar.gz superseriousbusiness/gotosocial:0.17.3-moderncsqlite

FreeBSD

moderncsqlite version currently recommended, though you might have success with the regular WASM SQLite version.

If running with regular WASM SQLite and having instability or memory issues, the following settings may help:

db-max-open-conns-multiplier: 0
db-sqlite-journal-mode: "TRUNCATE"
db-sqlite-synchronous: "FULL"

32-bit

moderncsqlite version is needed, as performance with regular WASM SQLite is not guaranteed when running on 32-bit.

Remote media processing will likely not work with reasonable performance, so you should set the following config variables to prevent download of remote media onto your instance:

media-remote-max-size: 0
media-emoji-remote-max-size: 0

Changelog

Bug fixes

Chores & version bumps

Documentation

v0.17.2 Ridiculously Selective Sloth

05 Nov 13:20
e953d80
Compare
Choose a tag to compare

Here's bugfix version 0.17.2 of GoToSocial!

If updating to this version from 0.16.0 or below, please follow the instructions for v0.17.0, replacing 0.17.0 with 0.17.2 throughout. ⚠️ Be aware that updating to this version from 0.16.0 or below will involve some serious database migrations. Check the 0.17.0 release notes carefully for more details on this. ⚠️

If updating to this version from 0.17.1, or 0.17.0, follow the instructions below.

Release highlights

  • Small filter bugfixes.
  • Some small tweaks to /api/v1/instance and /api/v2/instance
  • Better support for soundless webm files

Migration notes

Upgrading

To upgrade to v0.17.2 from a previous release:

Binary/tar

  1. Stop GoToSocial.
  2. Back up your database! If you're running on SQLite, this is as simple as copying your sqlite.db file, eg., cp sqlite.db sqlite.db.backup.
  3. Download and untar the new release, including the web assets and html templates.
  4. Edit your config.yaml file if necessary (see below).
  5. Start GoToSocial.
  6. Wait patiently for any migrations to run, do not interrupt migrations or you could leave your db in a broken state and will have to restore from backup!
  7. Enjoy your updated instance.

Docker

  1. Stop GoToSocial.
  2. Back up your database! If you're running on SQLite, this is as simple as copying your sqlite.db file, eg., cp sqlite.db sqlite.db.backup.
  3. Pull the new docker container (superseriousbusiness/gotosocial:0.17.2 or superseriousbusiness/gotosocial:latest)
  4. Edit your config.yaml file or environment variables if necessary (see below).
  5. Start GoToSocial.
  6. Wait patiently for any migrations to run, do not interrupt migrations or you could leave your db in a broken state and will have to restore from backup!
  7. Enjoy your updated instance.

config.yaml

The configuration file has changed since the previous release.

  • Add media-image-size-hint with a default of 5MiB.
  • Add media-video-size-hint with a default of 40MiB.

You can see a diff of the config file here: v0.17.1...v0.17.2#diff-c071e03510b2c57e193a44503fd9528a785f0f411497cc75841a9f8d0b1ac622

Database Migrations

⚠️⚠️⚠️

This release may contain database migrations which will run the first time you start up this new version.

Be sure not to interrupt this migration process.

This will take anywhere between a couple seconds and ten minutes or more (on slower hardware).

Please be patient!

⚠️⚠️⚠️

Which release archive/container should I use?

Tl;dr: Regardless of whether you're using SQLite or Postgres as your DB driver, you most likely you want the regular version without moderncsqlite in the name.

However, if you're on FreeBSD, 32-bit Linux or 32-bit ARM, we recommend using the moderncsqlite version instead.

You may need to change some configuration options too. See the table below:

OS Architecture Support level Binary archive Docker
Linux x86-64/AMD64 (64-bit) 🟒 Full linux_amd64.tar.gz superseriousbusiness/gotosocial:0.17.2
Linux Armv8/ARM64 (64-bit) 🟒 Full linux_arm64.tar.gz superseriousbusiness/gotosocial:0.17.2
FreeBSD x86-64/AMD64 (64-bit) 🟒 Full1 freebsd_amd64_moderncsqlite.tar.gz None provided
Linux x86-32/i386 (32-bit) 🟑 Partial2 linux_386_moderncsqlite.tar.gz superseriousbusiness/gotosocial:0.17.2-moderncsqlite
Linux Armv7/ARM32 (32-bit) 🟑 Partial2 linux_armv7_moderncsqlite.tar.gz superseriousbusiness/gotosocial:0.17.2-moderncsqlite
Linux Armv6/ARM32 (32-bit) 🟑 Partial2 linux_armv6_moderncsqlite.tar.gz superseriousbusiness/gotosocial:0.17.2-moderncsqlite

FreeBSD

moderncsqlite version currently recommended, though you might have success with the regular WASM SQLite version.

If running with regular WASM SQLite and having instability or memory issues, the following settings may help:

db-max-open-conns-multiplier: 0
db-sqlite-journal-mode: "TRUNCATE"
db-sqlite-synchronous: "FULL"

32-bit

moderncsqlite version is needed, as performance with regular WASM SQLite is not guaranteed when running on 32-bit.

Remote media processing will likely not work with reasonable performance, so you should set the following config variables to prevent download of remote media onto your instance:

media-remote-max-size: 0
media-emoji-remote-max-size: 0

Changelog

Features and performance

Bug fixes

Chores & version bumps

Documentation

v0.17.1 Very Selective Sloth

21 Oct 12:45
8a93300
Compare
Choose a tag to compare

Here's bugfix version 0.17.1 of GoToSocial!

If updating to this version from 0.16.0 or below, please follow the instructions for v0.17.0, replacing 0.17.0 with 0.17.1 throughout. ⚠️ Be aware that updating to this version from 0.16.0 or below will involve some serious database migrations. Check the 0.17.0 release notes carefully for more details on this. ⚠️

If updating to this version from 0.17.0, follow the instructions below.

Release highlights

  • Fixed a streaming bug which may have been causing issues with some clients like Elk and Ice Cubes.
  • Add alt-text/descriptions for default avatar + header images.

Migration notes

Upgrading

To upgrade to v0.17.1 from a previous release:

Binary/tar

  1. Stop GoToSocial.
  2. Back up your database! If you're running on SQLite, this is as simple as copying your sqlite.db file, eg., cp sqlite.db sqlite.db.backup.
  3. Download and untar the new release, including the web assets and html templates.
  4. Edit your config.yaml file if necessary (see below).
  5. Start GoToSocial.
  6. Wait patiently for any migrations to run, do not interrupt migrations or you could leave your db in a broken state and will have to restore from backup!
  7. Enjoy your updated instance.

Docker

  1. Stop GoToSocial.
  2. Back up your database! If you're running on SQLite, this is as simple as copying your sqlite.db file, eg., cp sqlite.db sqlite.db.backup.
  3. Pull the new docker container (superseriousbusiness/gotosocial:0.17.1 or superseriousbusiness/gotosocial:latest)
  4. Edit your config.yaml file or environment variables if necessary (see below).
  5. Start GoToSocial.
  6. Wait patiently for any migrations to run, do not interrupt migrations or you could leave your db in a broken state and will have to restore from backup!
  7. Enjoy your updated instance.

config.yaml

No changes compared to 0.17.0.

Database Migrations

This release contains one database migration which will run the first time you start up this new version.

Be sure not to interrupt this migration process.

This will probably take only a couple of seconds, though if you're on SQLite, the ANALYZE that's run afterwards may take a bit of time.

Which release archive/container should I use?

Tl;dr: Regardless of whether you're using SQLite or Postgres as your DB driver, you most likely you want the regular version without moderncsqlite in the name.

However, if you're on FreeBSD, 32-bit Linux or 32-bit ARM, we recommend using the moderncsqlite version instead.

You may need to change some configuration options too. See the table below:

OS Architecture Support level Binary archive Docker
Linux x86-64/AMD64 (64-bit) 🟒 Full linux_amd64.tar.gz superseriousbusiness/gotosocial:0.17.1
Linux Armv8/ARM64 (64-bit) 🟒 Full linux_arm64.tar.gz superseriousbusiness/gotosocial:0.17.1
FreeBSD x86-64/AMD64 (64-bit) 🟒 Full1 freebsd_amd64_moderncsqlite.tar.gz None provided
Linux x86-32/i386 (32-bit) 🟑 Partial2 linux_386_moderncsqlite.tar.gz superseriousbusiness/gotosocial:0.17.1-moderncsqlite
Linux Armv7/ARM32 (32-bit) 🟑 Partial2 linux_armv7_moderncsqlite.tar.gz superseriousbusiness/gotosocial:0.17.1-moderncsqlite
Linux Armv6/ARM32 (32-bit) 🟑 Partial2 linux_armv6_moderncsqlite.tar.gz superseriousbusiness/gotosocial:0.17.1-moderncsqlite

FreeBSD

moderncsqlite version currently recommended, though you might have success with the regular WASM SQLite version.

If running with regular WASM SQLite and having instability or memory issues, the following settings may help:

db-max-open-conns-multiplier: 0
db-sqlite-journal-mode: "TRUNCATE"
db-sqlite-synchronous: "FULL"

32-bit

moderncsqlite version is needed, as performance with regular WASM SQLite is not guaranteed when running on 32-bit.

Remote media processing will likely not work with reasonable performance, so you should set the following config variables to prevent download of remote media onto your instance:

media-remote-max-size: 0
media-emoji-remote-max-size: 0

Changelog

Features and performance

  • 8a93300: [feature] Add image descriptions for default avatar + header; don't allow editing default desc (#3473) (@tsmethurst)

Bug fixes

Chores & version bumps

Documentation

v0.17.0 Selective Sloth

15 Oct 10:42
3ad49f7
Compare
Choose a tag to compare

⚠️ This release contains several database migrations which will run the first time you start up this new version. Be sure not to interrupt this migration process. This will take anywhere between a few seconds and an hour or even longer (on slower hardware / big databases). Please be patient! Back up your database file before updating! We had to rejig the entire statuses table to introduce interaction policies (see below). ⚠️

Hello everyone! This is the first ever BETA release of GoToSocial. Say hello to v0.17.0 Selective Sloth.

We've absolutely jam-packed this release with goodies!

Please read the migration notes carefully for instructions on how to upgrade to this version.

Release highlights

  • Interaction policies: This release gives you the ability to set interaction policies on your statuses using the settings panel. Interaction policies let you determine who can reply to, like, or boost your statuses. You can accept or reject interactions as you wish; accepted replies will be added to your replies collection, and unwanted replies will be dropped. This feature is still a work-in-progress as we will almost certainly have some kinks to work out in terms of implementation etc, but we wanted to get it into people's hands as quickly as possible.
    User docs here: https://docs.gotosocial.org/en/latest/user_guide/settings/#default-interaction-policies
    Federation docs here: https://docs.gotosocial.org/en/latest/federation/posts/#interaction-policy
  • Much wider range of support for different media types: In this release we've embedded a webassembly build of ffmpeg into the GoToSocial binary, so that users can post many different types of media than previously, including mp3, flac, and other audio types, and many more video types. Admins: you don't need to have ffmpeg installed on your server for this to work.
  • Audio player: to complement the new media types, we adapted our current video player to also play audio, so people visiting your profile can play MP3s and FLACs. Album art is supported when embedded in the audio file!
  • Header/avatar alt text: You can now set alt-text for your avatar + header images, so that screenreader users visiting your profile can read a description of your beautiful face.
  • Better threading model for statuses: On the web view of a thread, conversations are now indented at different levels, to make it easier to see who's replying to whom.
  • Prefers-reduced-motion is now supported, so that folks with animations turned off in their operating system or browser aren't confronted with lots of animation when they open your profile.
  • Conversations view: You can now view a list of your direct message conversations, making it much easier to keep track of who you're talking to.
  • Import/export csv files: It's now possible to import Mastodon-compatible CSV files for accounts you follow and accounts you block, making it much easier to migrate across instances. Export of these files is supported too.
  • Exclusive lists: You can now mark lists as "exclusive", which means that posts from accounts in an exclusive list will show up only in that list and not in your home timeline.
  • Show/hide posts on your profile: Previously only Public posts were shown on your web profile. This is still the default, but you can now choose to show unlisted posts on your web profile too (the Mastodon default), or to show no posts at all.
  • Lots of new themes: solarized, brutalist, ecks pee, and more.
  • Store worker queue on restart: when you stop the instance, pending tasks are stored into the database, and loaded again when you start up the instance, so that no tasks get lost between restarts.

Migration notes

Upgrading

To upgrade to v0.17.0 from a previous release:

Binary/tar

  1. Stop GoToSocial.
  2. Back up your database! If you're running on SQLite, this is as simple as copying your sqlite.db file, eg., cp sqlite.db sqlite.db.backup.
  3. Download and untar the new release, including the web assets and html templates.
  4. Edit your config.yaml file if necessary (see below).
  5. Start GoToSocial.
  6. Wait patiently for any migrations to run, do not interrupt migrations or you could leave your db in a broken state and will have to restore from backup!
  7. Enjoy your updated instance.

Docker

  1. Stop GoToSocial.
  2. Back up your database! If you're running on SQLite, this is as simple as copying your sqlite.db file, eg., cp sqlite.db sqlite.db.backup.
  3. Pull the new docker container (superseriousbusiness/gotosocial:0.17.0 or superseriousbusiness/gotosocial:latest)
  4. Edit your config.yaml file or environment variables if necessary (see below).
  5. Start GoToSocial.
  6. Wait patiently for any migrations to run, do not interrupt migrations or you could leave your db in a broken state and will have to restore from backup!
  7. Enjoy your updated instance.

config.yaml

The configuration file has changed since the previous release.

  • Add db-postgres-connection-string.
  • Remove media-image-max-size and media-video-max-size.
  • Add media-local-max-size and media-remote-max-size.
  • Add media-ffmpeg-pool-size.
  • Add storage-s3-redirect-url.
  • Change http-client.timeout default from 10s to 30s to reduce occurrence of "could not download media" message.

You can see a diff of the config file here: v0.16.0...v0.17.0#diff-c071e03510b2c57e193a44503fd9528a785f0f411497cc75841a9f8d0b1ac622

Database Migrations

⚠️⚠️⚠️

This release contains several VERY LONG database migrations which will run the first time you start up this new version.

Be sure not to interrupt this migration process.

This will take anywhere between a couple seconds and an hour or maybe even more (on slower hardware).

Please be patient!

⚠️⚠️⚠️

Which release archive/container should I use?

Tl;dr: Regardless of whether you're using SQLite or Postgres as your DB driver, you most likely you want the regular version without moderncsqlite in the name.

However, if you're on FreeBSD, 32-bit Linux or 32-bit ARM, we recommend using the moderncsqlite version instead.

You may need to change some configuration options too. See the table below:

OS Architecture Support level Binary archive Docker
Linux x86-64/AMD64 (64-bit) 🟒 Full linux_amd64.tar.gz superseriousbusiness/gotosocial:0.17.0
Linux Armv8/ARM64 (64-bit) 🟒 Full linux_arm64.tar.gz superseriousbusiness/gotosocial:0.17.0
FreeBSD x86-64/AMD64 (64-bit) 🟒 Full1 freebsd_amd64_moderncsqlite.tar.gz None provided
Linux x86-32/i386 (32-bit) 🟑 Partial2 linux_386_moderncsqlite.tar.gz superseriousbusiness/gotosocial:0.17.0-moderncsqlite
Linux Armv7/ARM32 (32-bit) 🟑 Partial2 linux_armv7_moderncsqlite.tar.gz superseriousbusiness/gotosocial:0.17.0-moderncsqlite
Linux Armv6/ARM32 (32-bit) 🟑 Partial2 linux_armv6_moderncsqlite.tar.gz superseriousbusiness/gotosocial:0.17.0-moderncsqlite

FreeBSD

moderncsqlite version currently recommended, though you might have success with the regular WASM SQLite version.

If running with regular WASM SQLite and having instability or memory issues, the following settings may help:

db-max-open-conns-multiplier: 0
db-sqlite-journal-mode: "TRUNCATE"
db-sqlite-synchronous: "FULL"

32-bit

moderncsqlite version is needed, as performance with regular WASM SQLite is not guaranteed when running on 32-bit.

Remote media processing will likely not work with reasonable performance, so you should set the following config variables to prevent download of remote media onto your instance:

media-remote-max-size: 0
media-emoji-remote-max-size: 0

Changelog

Features and performance

Read more