Releases: superseriousbusiness/gotosocial
v0.17.3 Most Selective Sloth
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.
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
- Stop GoToSocial.
- 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
. - Download and untar the new release, including the web assets and html templates.
- Edit your config.yaml file if necessary (see below).
- Start GoToSocial.
- 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!
- Enjoy your updated instance.
Docker
- Stop GoToSocial.
- 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
. - Pull the new docker container (
superseriousbusiness/gotosocial:0.17.3
orsuperseriousbusiness/gotosocial:latest
) - Edit your config.yaml file or environment variables if necessary (see below).
- Start GoToSocial.
- 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!
- 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
- 6f4cb2f: [bugfix] sets the max value placeholders to MaxInt32 instead of MaxInt (#3517) (@NyaaaWhatsUpDoc)
Chores & version bumps
- e855a02: [chore] update docs assets path (#3514) (@tsmethurst)
Documentation
v0.17.2 Ridiculously Selective Sloth
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.
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
- Stop GoToSocial.
- 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
. - Download and untar the new release, including the web assets and html templates.
- Edit your config.yaml file if necessary (see below).
- Start GoToSocial.
- 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!
- Enjoy your updated instance.
Docker
- Stop GoToSocial.
- 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
. - Pull the new docker container (
superseriousbusiness/gotosocial:0.17.2
orsuperseriousbusiness/gotosocial:latest
) - Edit your config.yaml file or environment variables if necessary (see below).
- Start GoToSocial.
- 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!
- 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
- f3b2eca: [feature] add support for hinting via api/v_/instance preferred image / video max sizes (#3505) (@NyaaaWhatsUpDoc)
Bug fixes
- d8a8386: [bugfix] incorrect /api/v_/instance domain uri fields (#3477) (@NyaaaWhatsUpDoc)
- 7ec6509: [bugfix] support classifying correct video codec without audio as webm (#3494) (@NyaaaWhatsUpDoc)
- 8f288f1: [bugfix] determine mime-type to use during ffprobe evaluation stage, don't bother checking against file extension (#3506) (@NyaaaWhatsUpDoc)
- e953d80: [bugfix] Fix setting immediate
expires_at
value on filter endpoints (#3513) (@tsmethurst)
Chores & version bumps
- 8f4a96c: [chore]: Bump github.com/tdewolff/minify/v2 from 2.21.0 to 2.21.1 (#3489) (@dependabot[bot])
- e86592b: [chore] pull in go-ffmpreg v0.4.1 (#3485) (@NyaaaWhatsUpDoc)
- 1954ccb: [chore]: Bump github.com/minio/minio-go/v7 from 7.0.78 to 7.0.79 (#3488) (@dependabot[bot])
- c8647f7: [chore] Bump http-proxy-middleware from 2.0.6 to 2.0.7 in /web/source (#3481) (@dependabot[bot])
- 3b037d1: [chore] Bump elliptic from 6.5.7 to 6.6.0 in /web/source (#3495) (@dependabot[bot])
- 49eb8f6: [chore] Fix minor typo in About template (#3502) (@fl4nn)
- d2820a1: [chore]: Bump github.com/minio/minio-go/v7 from 7.0.79 to 7.0.80 (#3511) (@dependabot[bot])
- 51cb6ca: update go-sqlite3 => v0.20.0 (#3483) (@NyaaaWhatsUpDoc)
- 53aaeb1: previously we were using the ffmpeg runner for ffprobe 🤦 (#3512) (@NyaaaWhatsUpDoc)
Documentation
v0.17.1 Very Selective Sloth
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.
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
- Stop GoToSocial.
- 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
. - Download and untar the new release, including the web assets and html templates.
- Edit your config.yaml file if necessary (see below).
- Start GoToSocial.
- 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!
- Enjoy your updated instance.
Docker
- Stop GoToSocial.
- 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
. - Pull the new docker container (
superseriousbusiness/gotosocial:0.17.1
orsuperseriousbusiness/gotosocial:latest
) - Edit your config.yaml file or environment variables if necessary (see below).
- Start GoToSocial.
- 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!
- 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
- ffc86f9: [bugfix] Fix occasionally streaming empty messages (#3456) (@tsmethurst)
- fab7d17: [bugfix] Fix filter title unique constraint (#3458) (@tsmethurst)
Chores & version bumps
- a48cce8: [chore] Upgrade golangci-lint, ignore existing int overflow warnings (#3420) (@untitaker)
- 9f6a1f7: [chore] Set some additional git attributes (#3454) (@daenney)
- 602c858: [chore] Thumbnail only first frame of animated media (#3448) (@tsmethurst)
- 0d0314b: [chore] Fix loop issue in streaming 🤦 (#3457) (@tsmethurst)
- ea1bf5f: [chore]: Bump github.com/yuin/goldmark from 1.7.6 to 1.7.8 (#3470) (@dependabot[bot])
- f301ec6: [chore]: Bump github.com/tdewolff/minify/v2 from 2.20.37 to 2.21.0 (#3468) (@dependabot[bot])
- e9299e1: [chore]: Bump github.com/prometheus/client_golang from 1.20.4 to 1.20.5 (#3469) (@dependabot[bot])
Documentation
v0.17.0 Selective Sloth
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
- Stop GoToSocial.
- 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
. - Download and untar the new release, including the web assets and html templates.
- Edit your config.yaml file if necessary (see below).
- Start GoToSocial.
- 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!
- Enjoy your updated instance.
Docker
- Stop GoToSocial.
- 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
. - Pull the new docker container (
superseriousbusiness/gotosocial:0.17.0
orsuperseriousbusiness/gotosocial:latest
) - Edit your config.yaml file or environment variables if necessary (see below).
- Start GoToSocial.
- 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!
- 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
andmedia-video-max-size
. - Add
media-local-max-size
andmedia-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
- b08c1bd: [feature] Implement types[] param for notifications (#3009) (@VyrCossont)
- d2b3d37: [feature/frontend] Reports frontend v2 (#3022) (@tsmethurst)
- 7b1ccbd: [feature] add worker task serialization logic (#2989) (@NyaaaWhatsUpDo...
v0.17.0-rc5
Here's version 0.17.0-rc5 of GoToSocial.
We fixed a couple bugs! And changed some deployment stuff! And updated some library versions!
Please read the migration notes carefully for instructions on how to upgrade to this version!
Migration notes
Upgrading
To upgrade to v0.17.0-rc5 from a previous release:
Binary/tar
- Stop GoToSocial.
- 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
. - Download and untar the new release, including the web assets and html templates.
- Edit your config.yaml file if necessary (see below).
- Start GoToSocial.
- 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!
- Enjoy your updated instance.
Docker
- Stop GoToSocial.
- 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
. - Pull the new docker container (
superseriousbusiness/gotosocial:0.17.0-rc5
orsuperseriousbusiness/gotosocial:latest
) - Edit your config.yaml file or environment variables if necessary (see below).
- Start GoToSocial.
- 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!
- Enjoy your updated instance.
config.yaml
No configuration file changes in this release candidate compared to 0.17.0-rc4.
However, there are configuration file changes between this version and 0.16.0. Read the release notes of 0.17.0-rc1 for more information.
Database Migrations
No database migrations in this release candidate compared to 0.17.0-rc4.
However, there are some very long database migrations between this version and 0.16.0. Read the release notes of 0.17.0-rc1 for more information.
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-rc5 |
Linux | Armv8/ARM64 (64-bit) | 🟢 Full | linux_arm64.tar.gz | superseriousbusiness/gotosocial:0.17.0-rc5 |
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-rc5-moderncsqlite |
Linux | Armv7/ARM32 (32-bit) | 🟡 Partial2 | linux_armv7_moderncsqlite.tar.gz | superseriousbusiness/gotosocial:0.17.0-rc5-moderncsqlite |
Linux | Armv6/ARM32 (32-bit) | 🟡 Partial2 | linux_armv6_moderncsqlite.tar.gz | superseriousbusiness/gotosocial:0.17.0-rc5-moderncsqlite |
Linux | x86-32/i386 (32-bit) | 🟡 Partial2 | linux_386_moderncsqlite.tar.gz | superseriousbusiness/gotosocial:0.17.0-rc5-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
What's Changed
- [bugfix] Account.last_status_at is a date, not datetime by @untitaker in #3419
- [chore] Update goreleaser, add release notes template by @tsmethurst in #3421
- [chore] goreleaser - use custom previous tag by @tsmethurst in #3422
- [chore/bugfix] goreleaser make previous_tag cmd busybox-compatible by @tsmethurst in #3423
- [chore] Ensure current tag not set as
GORELEASER_PREVIOUS_TAG
by @tsmethurst in #3424 - [docs] fix httpsig repo typo by @cy7sh in #3426
- [chore/docs] Add
/gotosocial/.cache
to Docker container, documentGTS_WAZERO_COMPILATION_CACHE
by @tsmethurst in #3425 - [feature] for an sqlite database with journal mode != WAL, use maximum of 1 open connection by @NyaaaWhatsUpDoc in #3428
- [chore] Clarify supported platforms, add notes + docs by @tsmethurst in #3427
- [chore]: Bump github.com/yuin/goldmark from 1.7.4 to 1.7.6 by @dependabot in #3430
- [chore]: Bump github.com/minio/minio-go/v7 from 7.0.77 to 7.0.78 by @dependabot in #3431
- [feature/OFFICIALLY UNSUPPORTED] add nowasm build tag to disable building with WebAssembly by @NyaaaWhatsUpDoc in #3429
- [docs] Document experimental, unsupported
nowasm
tag by @tsmethurst in #3436
Full Changelog: v0.17.0-rc4...v0.17.0-rc5
v0.17.0-rc4
If updating to this release candidate from another 0.17.0 release candidate, there's one smaller migration which should take something like a minute to ten minutes depending on your software. Please be patient!
For instructions to update to this release candidate from versions < v0.17.0-rc1, see the v0.17.0-rc1 release candidate notes, but replace v0.17.0-rc1
with v0.17.0-rc4
throughout.
No config file changes between other release candidates and this version.
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 or OpenBSD, use the moderncsqlite
version instead. See the table below:
OS | Architecture | Binary archive | Docker |
---|---|---|---|
Linux | x86-64/AMD64 (64-bit) | linux_amd64.tar.gz | superseriousbusiness/gotosocial:0.17.0-rc4 |
Linux | x86-32/i386 (32-bit) | linux_386.tar.gz | superseriousbusiness/gotosocial:0.17.0-rc4 |
Linux | Armv8/ARM64 (64-bit) | linux_arm64.tar.gz | superseriousbusiness/gotosocial:0.17.0-rc4 |
Linux | Armv7/ARM32 (32-bit) | linux_armv7.tar.gz | superseriousbusiness/gotosocial:0.17.0-rc4 |
Linux | Armv6/ARM32 (32-bit) | linux_armv6.tar.gz | superseriousbusiness/gotosocial:0.17.0-rc4 |
OpenBSD | x86-64/AMD64 (64-bit) | openbsd_amd64_moderncsqlite.tar.gz | superseriousbusiness/gotosocial:0.17.0-rc4-moderncsqlite |
FreeBSD | x86-64/AMD64 (64-bit) | freebsd_amd64_moderncsqlite.tar.gz | superseriousbusiness/gotosocial:0.17.0-rc4-moderncsqlite |
Changes
- [chore] Create modernc sqlite builds alongside default wasm; add openbsd builds by @tsmethurst in #3413
- [bugfix] Ensure
pending_approval
set on statuses + status faves by @tsmethurst in #3415 - [bugfix] Check interaction policies properly on incoming Likes by @tsmethurst in #3416
- [chore] Don't cc Accept of likes to followers by @tsmethurst in #3417
Full Changelog: v0.17.0-rc3...v0.17.0-rc4
v0.17.0-rc3
For instructions to update to this release candidate from versions < v0.17.0-rc1, see the v0.17.0-rc1 release candidate notes, but replace v0.17.0-rc1
with v0.17.0-rc3
throughout.
No config file changes between v0.17.0-rc2 or v0.17.0-rc1 and this version.
Bugfixes
- [bugfix] Fix replies not being stored pending approval by @tsmethurst in #3409
- [bugfix] Add missing
</a>
on about page by @tsmethurst in #3410 - [bugfix/frontend] Don't show replies to hidden parents; return 404 if no "main" thread by @tsmethurst in #3411
Full Changelog: v0.17.0-rc2...v0.17.0-rc3
v0.17.0-rc2
For instructions to update to this release candidate from versions < v0.17.0-rc1, see the v0.17.0-rc1 release candidate notes, but replace v0.17.0-rc1
with v0.17.0-rc2
throughout.
If updating from 0.17.0-rc1 to this version, there's a small index update that needs to run, which should be very fast.
No config file changes between v0.17.0-rc1 and this version.
Detailed changelog
Features / performance
- [performance] remove the sqlite pragma optimize analysis limit on connection close by @NyaaaWhatsUpDoc in #3386
- [feature/frontend] Add Moonlight hunt theme by @tsmethurst in #3393
- [feature] Distribute Accepts to followers; process Accepts of remote interactions by @tsmethurst in #3404
Bugfixes
- [bugfix] Fix incorrect reply shown in interaction request by @tsmethurst in #3344
- [bugfix] s3 media uploaded without content-type by @NyaaaWhatsUpDoc in #3353
- [bugfix] fix media limit reader check by @NyaaaWhatsUpDoc in #3363
- [bugfix] better handle ogg container format by @NyaaaWhatsUpDoc in #3365
- [bugfix] visibility after implicit approval not getting invalidated by @NyaaaWhatsUpDoc in #3370
- [bugfix] Carry-over "PinnedAt" when refreshing status by @tsmethurst in #3373
- [bugfix] fix slice init length by @cuishuang in #3382
- [bugfix] Include own account in conversation when no other accounts involved by @tsmethurst in #3387
- [bugfix] Don't try to add nil filtered statuses to context by @tsmethurst in #3388
- [bugfix] Account for nil reply when serializing int req by @tsmethurst in #3389
- [bugfix] Update select of pending interaction requests to account for potential nil URI by @tsmethurst in #3392
- [bugfix] Return 501 (not implemented) if user tries to schedule post by @tsmethurst in #3395
- [bugfix] Only allow boosting post from non-interaction-policy-aware instance if public or unlisted by @tsmethurst in #3396
Chores
- [chore] reduce number admin process workers by @NyaaaWhatsUpDoc in #3354
- [chore] Fix some contrast issues in themes; performance tweaks by @tsmethurst in #3358
- [chore] update go-sched pkg by @NyaaaWhatsUpDoc in #3357
- [chore] bump go-byteutil v1.2.0 -> v1.3.0 by @NyaaaWhatsUpDoc in #3356
- [chore] update gruf / {go-cache, go-maps, go-kv} by @NyaaaWhatsUpDoc in #3361
- [chore] final bits of fiddling with solarized by @tsmethurst in #3364
- [chore] update modernc/sqlite to v1.33.1 (with our concurrency workaround) by @NyaaaWhatsUpDoc in #3367
- [chore] Update apparmor example file by @tsmethurst in #3368
- [chore] use string formatting package agnostic way of printing request attemps by @NyaaaWhatsUpDoc in #3371
- [chore]: Bump github.com/ncruces/go-sqlite3 from 0.18.3 to 0.18.4 by @dependabot in #3375
- [chore]: Bump go.uber.org/automaxprocs from 1.5.3 to 1.6.0 by @dependabot in #3376
- [chore] update go-structr to v0.8.11 by @NyaaaWhatsUpDoc in #3380
- [chore] Change order of error checking after PostInbox by @tsmethurst in #3394
- [chore/themes] Tweak colors on new themes by @tsmethurst in #3397
- [chore] update go-ffmpreg to v0.3.1 by @NyaaaWhatsUpDoc in #3398
- [chore]: Bump golang.org/x/net from 0.29.0 to 0.30.0 by @dependabot in #3402
- [chore]: Bump golang.org/x/image from 0.20.0 to 0.21.0 by @dependabot in #3399
- [chore] update go-sqlite3 to v0.19.0 by @NyaaaWhatsUpDoc in #3406
Docs
- [docs] Don't run SQLite on networked storage by @daenney in #3369
- [docs] Update smtp docs to mention starttls + port 587 by @tsmethurst in #3378
- [docs] Make
protocol
config option really explicit by @tsmethurst in #3391
Full Changelog: v0.17.0-rc1...v0.17.0-rc2
v0.17.0-rc1
Release highlights
Hello everyone! This is the first release candidate for v0.17.0 of GoToSocial! We've absolutely jam-packed this release (candidate) with goodies:
- 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 0.17.0-rc1 from a previous release:
Binary/tar
- Stop GoToSocial
- Back up your database! For sqlite, this is as simple as copying your
sqlite.db
file. - Untar the new release, including the web assets and html templates.
- Edit your config.yaml file as necessary (see below).
- Start GoToSocial
- Wait patiently for migrations to run and do not interrupt them.
Docker
- Stop GoToSocial.
- Back up your database! For sqlite, this is as simple as copying your
sqlite.db
file. - Pull the new docker container (
superseriousbusiness/gotosocial:0.17.0-rc1
orsuperseriousbusiness/gotosocial:latest
) - Edit your config.yaml file as necessary (see below).
- Start GoToSocial.
- Wait patiently for migrations to run and do not interrupt them.
config.yaml
The configuration file has changed since the previous release. You can see a diff of the config file here: v0.16.0...v0.17.0-rc1#diff-c071e03510b2c57e193a44503fd9528a785f0f411497cc75841a9f8d0b1ac622
- Add
db-postgres-connection-string
. - Remove
media-image-max-size
andmedia-video-max-size
. - Add
media-local-max-size
andmedia-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.
Database Migrations
Detailed changelist
Features + performance
- [feature] Implement types[] param for notifications by @VyrCossont in #3009
- [feature/frontend] Reports frontend v2 by @tsmethurst in #3022
- [feature] add worker task serialization logic by @NyaaaWhatsUpDoc in #2989
- [feature] Rain Forest Theme by @xmgz in #3021
- [feature] Default to WASM-based SQLite driver by @daenney in #3053
- [feature] Set some security related headers by @daenney in #3065
- [feature/frontend] Allow setting alt-text for avatar + header by @tsmethurst in #3086
- [feature] support processing of (many) more media types by @NyaaaWhatsUpDoc in #3090
- [feature/frontend] Better visual separation between "main" thread and "replies" by @tsmethurst in #3093
- [feature/frontend] Add player for audio files; use thumbnail for
poster
by @tsmethurst in #3099 - [feature] more filetype support! by @NyaaaWhatsUpDoc in #3107
- [feature] Allow users to set default interaction policies per status visibility by @tsmethurst in #3108
- [feature] use webp for thumbnails by @NyaaaWhatsUpDoc in #3116
- [feature/frontend] Respect
prefers-reduced-motion
for avatars, headers, and emojis by @tsmethurst in #3118 - [feature] add flac support by @NyaaaWhatsUpDoc in #3121
- [feature] Conversations API by @VyrCossont in #3013
- [feature] Allow user to set "bot" flag; show bot icon on profile by @tsmethurst in #3135
- [feature] Federate interaction policies + Accepts; enforce policies by @tsmethurst in #3138
- [feature] Implement following hashtags by @VyrCossont in #3141
- [feature] persist worker queues to db by @NyaaaWhatsUpDoc in #3042
- [performance] limit ffprobe read time to at most 1s after start of file by @NyaaaWhatsUpDoc in #3155
- [feature] Object store custom URL (S3) by @CDN18 in #3046
- [feature] Allow users to export data via the settings panel by @tsmethurst in #3140
- [feature] Implement Mastodon-compatible roles by @VyrCossont in #3136
- [feature] Allow import of following and blocks via CSV by @tsmethurst in #3150
- [feature] Beef up our AI opt-outs by @daenney in #3165
- [feature] Use gifv type for short soundless mp4 videos by @tsmethurst in #3182
- handle db-url by @winston0410 in #3178
- [performance] move thumbnail generation to go code where possible by @NyaaaWhatsUpDoc in #3183
- [performance] use native Go code to probe JPEGs by @NyaaaWhatsUpDoc in #3206
- [feature] Use
local_only
field, deprecatefederated
field by @tsmethurst in #3222 - [performance] ffmpeg ffprobe wrapper improvements by @NyaaaWhatsUpDoc in #3225
- [feature] Interaction requests client api + settings panel by @tsmethurst in #3215
- [performance] use single-threaded image transfor...
v0.16.0 Snappy Sloth
Hello internet!
Roll up roll up and see ye all version 0.16.0 of GoToSocial, codename SNAPPY SLOTH.
Release highlights
- Sign up / registration: In this release, you can open your instance to new registrations (aka sign-ups) via the new signup page at
https://[your-instance.tld]/signup
. No more manually creating new users via the CLI :)
Documentation here: https://docs.gotosocial.org/en/latest/admin/signups/ - Accounts overview for moderators: To support the new sign-up feature, and help instance admins to moderate, we made a new section in the settings panel where admins + moderators can get an overview of accounts, and filter by instance, status, and more. You'll find this new accounts view in the settings panel.
- Totally reworked message delivery system and worker queues: We've completely reworked the way GoToSocial sends out messages to your followers and performs worker-related tasks; this should drastically increase the speed that outgoing messages are delivered, especially for users with lots of followers. It also paves the way for future work in terms of persisting worker and message queues over restarts.
- Account mutes: The account mute API endpoints are now implemented, meaning you can put (timed) mutes of accounts in place, to hide statuses from specific accounts from your home timeline, and/or hide notifications from muted accounts.
- Accurate account stats: This release introduces code to pull up-to-date counts of statuses, followers, and following from remote instances and show these stats via the API. So now in your client of choice, you should see an accurate count of the number of statuses and followers/following of a given account, no more "0 followers, 0 following, 0 statuses".
- HTTP header permissions settings: The settings panel now has a section that allows admins to set regular expressions to deny requests depending on HTTP headers.
Documentation here: https://docs.gotosocial.org/en/latest/admin/request_filtering_modes/ - Filters v2 implementation: We've now implemented the v2 API for filters, which means you can create more complex filters to hide keywords or statuses, and more clients should be able to create filters on GoToSocial.
- Send test email: Admins can now use the settings panel to send a test email, to check if their SMTP (email) configuration is valid.
- Profile API: Clients that use the profile API to delete avatar + header images should now work, since we've now implemented this part of the API.
- Search operators: We've added a first search operator to GoToSocial, so when you're searching for statuses, you can add
from:@[username]@[domain]
to your search term, to search only within statuses created by the given account (while still respecting the search limitations we already had in place).
Documentation here: https://docs.gotosocial.org/en/latest/user_guide/search/ - Email change: Users can now change their email address in the settings panel without admin intervention.
Documentation here: https://docs.gotosocial.org/en/latest/user_guide/settings/#email-change - Memory usage optimizations: GoToSocial now uses memory more conservatively than before; you should only need about 150-200MiB of memory to run GtS with a full cache, and it will spike less.
Migration notes
Upgrading
To upgrade to 0.16.0 from a previous release:
Binary/tar
- Stop GoToSocial
- Untar the new release, including the web assets and html templates.
- Edit your config.yaml file as necessary (see below).
- Start GoToSocial
Docker
- Stop GoToSocial.
- Pull the new docker container (
superseriousbusiness/gotosocial:0.16.0
orsuperseriousbusiness/gotosocial:latest
) - Start GoToSocial.
config.yaml
The configuration file has changed since the previous release. You can see a diff of the config file here: v0.15.0...v0.16.0#diff-c071e03510b2c57e193a44503fd9528a785f0f411497cc75841a9f8d0b1ac622
Database Migrations
Detailed Changelog
Features + Performance
- [performance] massively improved ActivityPub delivery worker efficiency by @NyaaaWhatsUpDoc in #2812
- [feature] New user sign-up via web page by @tsmethurst in #2796
- [performance] update GetAccountsByIDs() to use the new multi cache loader endpoint by @NyaaaWhatsUpDoc in #2828
- [feature] Admin accounts endpoints; approve/reject sign-ups by @tsmethurst in #2826
- [performance] cached oauth database types by @NyaaaWhatsUpDoc in #2838
- [feature/performance] Store account stats in separate table by @tsmethurst in #2831
- [feature] Stub status history endpoint by @tsmethurst in #2847
- [feature] Status source endpoint by @tsmethurst in #2848
- [feature] Stub account mutes endpoint by @tsmethurst in #2852
- [feature] Stub conversations endpoint by @tsmethurst in #2853
- [performance] update remaining worker pools to use queues by @NyaaaWhatsUpDoc in #2865
- [feature] Page through accounts as moderator by @tsmethurst in #2881
- [feature] Add HTTP header permission section to frontend by @tsmethurst in #2893
- feature: filters v2 server-side warning/hiding by @VyrCossont in #2793
- [performance] update go-structr -> v0.8.2 which includes some minor memory usage improvements by @NyaaaWhatsUpDoc in #2904
- [performance] update go-structr and go-mutexes with memory usage improvements by @NyaaaWhatsUpDoc in #2909
- [performance] cache v2 filter keyword regular expressions by @NyaaaWhatsUpDoc in #2903
- [performance] update storage backend and make use of seek syscall when available by @NyaaaWhatsUpDoc in #2924
- [experiment] add alternative wasm sqlite3 implementation available via build-tag by @NyaaaWhatsUpDoc in #2863
- [feature/frontend] Let admins send test email to validate SMTP config by @tsmethurst in #2934
- [feature] Debug admin endpoint to clear caches by @tsmethurst in #2940
- Implement profile API by @VyrCossont in #2926
- [feature] Implement Filter API v2 by @VyrCossont in #2936
- [feature] Add from: search operator and account_id query param by @VyrCossont in #2943
- [feature/frontend] Add debug sections to settings panel by @tsmethurst in #2950
- [performance] bump go-structr to v0.8.5 to improve memory usage by @NyaaaWhatsUpDoc in #2955
- [feature] log worker startup counts by @NyaaaWhatsUpDoc in #2958
- [feature] do not uncache status / emoji media if attached status is bookmarked by @NyaaaWhatsUpDoc in #2956
- [feature] Self-serve email change for users by @tsmethurst in #2957
- [feature] User muting by @VyrCossont in #2960
- Implement filters_changed stream event by @VyrCossont in #2972
- [feature] filter API v2: restore keywords_attributes and statuses_attributes by @VyrCossont in #2995
Bugfixes
- [bugfix] Include MIME email headers to avoid mangling non-ascii text by @tsmethurst in #2827
- [bugfix] fix get all tokens by @tsmethurst in #2841
- [bugfix] Fix minor API issue w/ boosted statuses by @tsmethurst in #2846
- [bugfix] nil panic when deleting status by @NyaaaWhatsUpDoc in #2849
- [bugfix] Fix incorrect field name for status source, add helpful message by @tsmethurst in #2854
- [bugfix] fix error string typo by @NyaaaWhatsUpDoc in #2873
- [bugfix] paging rel links by @NyaaaWhatsUpDoc in #2883
- [bugfix] retry on http 500 errors inclusive by @NyaaaWhatsUpDoc in #2886
- [bugfix] further paging mishaps by @NyaaaWhatsUpDoc in https://...