codeberg superseriousbusiness/gotosocial v0.16.0-rc1
v0.16.0-rc1 Snappy Sloth

latest releases: v0.19.2, v0.19.1, v0.19.0...
pre-release15 months ago

Hello you nerds, dorks, and dweebs :heart:

This here is the first release candidate for 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-rc1 from a previous release:

Binary/tar

  1. Stop GoToSocial
  2. Untar the new release, including the web assets and html templates.
  3. Edit your config.yaml file as necessary (see below).
  4. Start GoToSocial

Docker

  1. Stop GoToSocial.
  2. Pull the new docker container (superseriousbusiness/gotosocial:0.16.0-rc1 or superseriousbusiness/gotosocial:latest)
  3. Start GoToSocial.

config.yaml

The configuration file has changed since the previous release. You can see a diff of the config file here: https://github.com/superseriousbusiness/gotosocial/compare/v0.15.0...v0.16.0-rc1#diff-c071e03510b2c57e193a44503fd9528a785f0f411497cc75841a9f8d0b1ac622

Database Migrations

⚠️ 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 couple seconds and ten minutes or more (on slower hardware). Please be patient! ⚠️

Detailed Changelog

Features + Performance

  • [performance] massively improved ActivityPub delivery worker efficiency by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2812
  • [feature] New user sign-up via web page by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2796
  • [performance] update GetAccountsByIDs() to use the new multi cache loader endpoint by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2828
  • [feature] Admin accounts endpoints; approve/reject sign-ups by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2826
  • [performance] cached oauth database types by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2838
  • [feature/performance] Store account stats in separate table by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2831
  • [feature] Stub status history endpoint by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2847
  • [feature] Status source endpoint by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2848
  • [feature] Stub account mutes endpoint by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2852
  • [feature] Stub conversations endpoint by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2853
  • [performance] update remaining worker pools to use queues by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2865
  • [feature] Page through accounts as moderator by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2881
  • [feature] Add HTTP header permission section to frontend by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2893
  • feature: filters v2 server-side warning/hiding by @VyrCossont in https://github.com/superseriousbusiness/gotosocial/pull/2793
  • [performance] update go-structr -> v0.8.2 which includes some minor memory usage improvements by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2904
  • [performance] update go-structr and go-mutexes with memory usage improvements by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2909
  • [performance] cache v2 filter keyword regular expressions by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2903
  • [performance] update storage backend and make use of seek syscall when available by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2924
  • [experiment] add alternative wasm sqlite3 implementation available via build-tag by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2863
  • [feature/frontend] Let admins send test email to validate SMTP config by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2934
  • [feature] Debug admin endpoint to clear caches by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2940
  • Implement profile API by @VyrCossont in https://github.com/superseriousbusiness/gotosocial/pull/2926
  • [feature] Implement Filter API v2 by @VyrCossont in https://github.com/superseriousbusiness/gotosocial/pull/2936
  • [feature] Add from: search operator and account_id query param by @VyrCossont in https://github.com/superseriousbusiness/gotosocial/pull/2943
  • [feature/frontend] Add debug sections to settings panel by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2950
  • [performance] bump go-structr to v0.8.5 to improve memory usage by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2955
  • [feature] log worker startup counts by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2958
  • [feature] do not uncache status / emoji media if attached status is bookmarked by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2956
  • [feature] Self-serve email change for users by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2957
  • [feature] User muting by @VyrCossont in https://github.com/superseriousbusiness/gotosocial/pull/2960
  • Implement filters_changed stream event by @VyrCossont in https://github.com/superseriousbusiness/gotosocial/pull/2972

Bugfixes

  • [bugfix] Include MIME email headers to avoid mangling non-ascii text by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2827
  • [bugfix] fix get all tokens by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2841
  • [bugfix] Fix minor API issue w/ boosted statuses by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2846
  • [bugfix] nil panic when deleting status by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2849
  • [bugfix] Fix incorrect field name for status source, add helpful message by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2854
  • [bugfix] fix error string typo by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2873
  • [bugfix] paging rel links by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2883
  • [bugfix] retry on http 500 errors inclusive by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2886
  • [bugfix] further paging mishaps by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2884
  • [bugfix] flaky paging test by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2888
  • [bugfix] function queue memory pools limitlessly grow by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2882
  • [bugfix/chore] Tidy up remaining references to workers in cmd by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2889
  • [bugfix] Lock when checking/creating notifs to avoid race by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2890
  • [bugfix] add missing caches to the main cache sweep command by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2891
  • [bugfix] close + drain body if response is too large by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2897
  • [bugfix] fix cache size calculations by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2907
  • [bugfix/frontend] Fix emoji values not resetting on upload by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2905
  • [bugfix] concurrent map writes in dereferencer media processing maps by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2964
  • [bugfix] Don't nil emojis + fields on blocked accounts by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2968
  • [bugfix] update media if more than just url changes by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2970
  • [bugfix] Filter fixes by @VyrCossont in https://github.com/superseriousbusiness/gotosocial/pull/2971
  • [bugfix/frontend] Use re2 syntax for regex validation by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2978

Chores + Version Bumps

  • [chore] update go-structr => v0.6.2 (fixes nested field ptr following) by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2822
  • [chore]: Bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.24.0 to 1.25.0 by @dependabot in https://github.com/superseriousbusiness/gotosocial/pull/2818
  • [chore] Delete the unnecessary #, because this # lead to the wrong URL. by @KyoSakuyo in https://github.com/superseriousbusiness/gotosocial/pull/2830
  • [chore]: Bump golang.org/x/crypto from 0.21.0 to 0.22.0 by @dependabot in https://github.com/superseriousbusiness/gotosocial/pull/2835
  • [chore]: Bump golang.org/x/net from 0.23.0 to 0.24.0 by @dependabot in https://github.com/superseriousbusiness/gotosocial/pull/2834
  • [chore] bump bun library versions by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2837
  • [chore] Turn accounts-registration-open false by default by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2839
  • [chore] bump to modernc.org/sqlite v1.29.5 -> v1.29.7 by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2850
  • [chore]: Bump github.com/KimMachineGun/automemlimit from 0.5.0 to 0.6.0 by @dependabot in https://github.com/superseriousbusiness/gotosocial/pull/2859
  • [chore] Update robots.txt by @daenney in https://github.com/superseriousbusiness/gotosocial/pull/2856
  • [chore] bump modernc.org/sqlite to v1.29.8 (with our concurrency workaround) by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2855
  • [chore]: Bump github.com/miekg/dns from 1.1.58 to 1.1.59 by @dependabot in https://github.com/superseriousbusiness/gotosocial/pull/2861
  • [chore]: Bump codeberg.org/gruf/go-mutexes from 1.4.0 to 1.4.1 by @dependabot in https://github.com/superseriousbusiness/gotosocial/pull/2860
  • [chore] Refactor settings panel routing (and other fixes) by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2864
  • [chore] Settings refactor 2: the re-refactoring-ing by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2866
  • [chore] Upgrade our Go version to 1.22 by @daenney in https://github.com/superseriousbusiness/gotosocial/pull/2862
  • [chore] Bump go swagger by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2871
  • [chore] Update setting testrig loglevel by @daenney in https://github.com/superseriousbusiness/gotosocial/pull/2870
  • [chore] Update the flags passed to goreleaser by @daenney in https://github.com/superseriousbusiness/gotosocial/pull/2869
  • [chore] update Docker container to use new go swagger hash by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2872
  • [chore]: Bump go.opentelemetry.io/otel/sdk from 1.25.0 to 1.26.0 by @dependabot in https://github.com/superseriousbusiness/gotosocial/pull/2879
  • [chore]: Bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc from 1.25.0 to 1.26.0 by @dependabot in https://github.com/superseriousbusiness/gotosocial/pull/2878
  • [chore] Fix conflict in workers tests by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2880
  • [chore]: Bump github.com/minio/minio-go/v7 from 7.0.69 to 7.0.70 by @dependabot in https://github.com/superseriousbusiness/gotosocial/pull/2877
  • [chore]: Bump github.com/tdewolff/minify/v2 from 2.20.19 to 2.20.20 by @dependabot in https://github.com/superseriousbusiness/gotosocial/pull/2875
  • [chore] include attemptno in httpclient logs by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2887
  • [frontend] Do optimistic update when approving/rejecting/suspending account by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2892
  • [chore]: Bump golang.org/x/image from 0.15.0 to 0.16.0 by @dependabot in https://github.com/superseriousbusiness/gotosocial/pull/2898
  • [chore]: Bump github.com/gin-contrib/gzip from 1.0.0 to 1.0.1 by @dependabot in https://github.com/superseriousbusiness/gotosocial/pull/2899
  • [chore]: Bump codeberg.org/gruf/go-structr from 0.7.0 to 0.8.0 by @dependabot in https://github.com/superseriousbusiness/gotosocial/pull/2902
  • [chore]: Bump golang.org/x/oauth2 from 0.19.0 to 0.20.0 by @dependabot in https://github.com/superseriousbusiness/gotosocial/pull/2900
  • [chore] bump modernc.org/sqlite v1.29.8 -> v1.29.9 (concurrency workaround) by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2906
  • [chore]: Bump golang.org/x/net from 0.24.0 to 0.25.0 by @dependabot in https://github.com/superseriousbusiness/gotosocial/pull/2914
  • [chore]: Bump golang.org/x/crypto from 0.22.0 to 0.23.0 by @dependabot in https://github.com/superseriousbusiness/gotosocial/pull/2915
  • [chore]: Bump github.com/gin-contrib/sessions from 1.0.0 to 1.0.1 by @dependabot in https://github.com/superseriousbusiness/gotosocial/pull/2916
  • [chore]: Bump github.com/gin-contrib/cors from 1.7.1 to 1.7.2 by @dependabot in https://github.com/superseriousbusiness/gotosocial/pull/2912
  • [chore] dependabot updates by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2922
  • [chore]: Bump github.com/tdewolff/minify/v2 from 2.20.24 to 2.20.25 by @dependabot in https://github.com/superseriousbusiness/gotosocial/pull/2923
  • [chore]: Bump github.com/jackc/pgx/v5 from 5.5.5 to 5.6.0 by @dependabot in https://github.com/superseriousbusiness/gotosocial/pull/2929
  • [chore]: Bump github.com/tdewolff/minify/v2 from 2.20.25 to 2.20.32 by @dependabot in https://github.com/superseriousbusiness/gotosocial/pull/2927
  • [chore] Fix report email link by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2932
  • [chore] Small styling + link issues by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2933
  • [chore] make wasm sqlite3 available to goreleaser via env var by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2938
  • [chore/bugfix] Don't cache MovedTo account by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2939
  • [chore] improved startup / shutdown by @NyaaaWhatsUpDoc in https://github.com/superseriousbusiness/gotosocial/pull/2925
  • [chore] Make worker run startup messages debug output by @daenney in https://github.com/superseriousbusiness/gotosocial/pull/2944
  • [chore] little startup tweaks by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2941
  • [chore]: Bump github.com/spf13/viper from 1.18.2 to 1.19.0 by @dependabot in https://github.com/superseriousbusiness/gotosocial/pull/2954
  • Compile filter keyword regexps when touched through PutFilter or UpdateFilter by @VyrCossont in https://github.com/superseriousbusiness/gotosocial/pull/2951
  • [chore] Fiddle with CI tests; use wasmsqlite3 by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2966
  • [chore] Use (created) instead of date for outgoing HTTP signatures by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2969
  • [chore] Update WASM go-sqlite3 to v0.16.1 by @daenney in https://github.com/superseriousbusiness/gotosocial/pull/2976
  • [chore] Warn about email/password change when using OIDC by @tsmethurst in https://github.com/superseriousbusiness/gotosocial/pull/2975

Docs

  • [docs] Remove last references to RPi by @daenney in https://github.com/superseriousbusiness/gotosocial/pull/2885
  • [docs] Fix link in general configuration by @wuhang2003 in https://github.com/superseriousbusiness/gotosocial/pull/2946
  • [docs]: Document build tag for WASM SQLite by @daenney in https://github.com/superseriousbusiness/gotosocial/pull/2942

New Contributors

  • @KyoSakuyo made their first contribution in https://github.com/superseriousbusiness/gotosocial/pull/2830
  • @wuhang2003 made their first contribution in https://github.com/superseriousbusiness/gotosocial/pull/2946

Full Changelog: https://github.com/superseriousbusiness/gotosocial/compare/v0.15.0...v0.16.0-rc1

Don't miss a new gotosocial release

NewReleases is sending notifications on new releases.