codeberg superseriousbusiness/gotosocial v0.21.0-rc1
v0.21.0-rc1 Sacrilegious Sloth

pre-release6 hours ago

Here's version 0.21.0-rc1 of GoToSocial! This is the first release candidate for v0.21.0 aka Sacrilegious Sloth

We're really proud of this one, the sloth is starting to feel really useable and good!

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

Release highlights

  • Domain Limits: You can now create domain limits in the admin section of the settings panel, in order to do things like limit + mute all accounts on a domain (except ones you follow), add content warnings to posts from limited domains, mark media as sensitive (or don't download it at all).
    Documented here: https://docs.gotosocial.org/en/latest/admin/domain_limits/
  • Indexable support: You can now mark your account as "indexable" by full-text search, in the settings panel. This will federate your preference to other servers, so that servers with full-text search functionality can include your posts in search results.
    Documented here: https://docs.gotosocial.org/en/latest/user_guide/settings/#mark-accounts-posts-as-full-text-indexable
  • Show reblogs on the web view of your profile (opt-in): A new setting in the settings panel allows you to opt-in to showing posts that you've boosted/reblogged on the web view of your profile. The default setting retains existing behavior (don't show boosts on the web view).
    Documented here: https://docs.gotosocial.org/en/latest/user_guide/settings/#include-boosts-on-the-web-view-of-your-profile
  • Better caching behavior for timelines. The number of database calls when browsing local + public timelines and lists should be significantly reduced.
  • Store + show reason for undownloaded media: When media fails to be downloaded from a remote instance, the reason why will be shown next to the post.
  • Include canQuote property on outgoing posts: Currently, this is always set to author-only, but it paves the way (and signals intent) for GtS to implement quote toots at some point.
  • Much improved OpenGraph previews: Whitespace is now preserved in OpenGraph previews, and media + formatting was rejigged, so linking to GoToSocial posts should result in much better OpenGraph-generated preview cards.
  • Expand/collapse all spoilers button on web view of threads: when viewing threads in the web view, you can now expand/collapse all spoilers at the click of a button.
  • S3 Object Info Caching: you can now configure cache.s3-object-info in order to mitigate expensive S3 info calls when doing nightly media cleanup.
  • Preserve significant whitespaces in incoming + outgoing posts: previously we were squashing a lot of whitespace together, which meant that, for example, indentation could get lost on posts federated into a GoToSocial instance. This is now fixed, so you can post poetry and whatnot without worrying about it looking like hot crap.
  • Millions of fucking bugfixes: we squashed a lot of them!

Migration notes

Upgrading

To upgrade to v0.21.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. On Postgres you can do this with pg_dump.
  3. Download and untar the new release, including the web assets and html templates, not just the binary.
  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. On Postgres you can do this with pg_dump.
  3. Pull the new docker container with docker pull docker.io/superseriousbusiness/gotosocial:0.21.0-rc1 or docker pull docker.io/superseriousbusiness/gotosocial:latest if this is a stable release and not a release candidate.
  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 cache.s3-object-info
  • Add cache.home-timeline-timeout
  • Add cache.list-timeline-timeout
  • Add cache.tag-timeline-timeout

You can see a diff of the config file here: https://codeberg.org/superseriousbusiness/gotosocial/compare/v0.20.3...v0.21.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 twenty minutes 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 docker.io/superseriousbusiness/gotosocial:0.21.0-rc1
Linux Armv8/ARM64 (64-bit) 🟢 Full linux_arm64.tar.gz docker.io/superseriousbusiness/gotosocial:0.21.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

  • b0863b60e19c62acd0b5ff1f52b01fecd7d01025: [feature] add a status visibility debug endpoint (#4682) (@gruf)
  • 9696ef4fbed83877faa916e96fc843d766783918: [feature] Opt-in to show boosts on web view of profile (respecting visibility settings) (#4680) (@kipvandenbos)
  • 8ac11f58db23daba3d2ad72f5a8d0c01f28cbe70: [feature] Add language dropdown to sign-in form, fall back to first instance language if not provided (#4679) (@kipvandenbos)
  • c4f1988a30a013f132f98a84274583305c066c39: [feature/frontend] Expand/collapse all spoilers button for threads (#4672) (@kipvandenbos)
  • dd294194f43c82141cc8beb5367f4edd17806529: [performance] Create index for poll expiry scheduling to prevent long startup times (#4670) (@kipvandenbos)
  • 043649969478ffbfdc9e998b9db069d85783e91f: [feature] include canQuote = author only, on outgoing posts (#4662) (@kipvandenbos)
  • 696fc6661931937d45f6c1d023d0246b071bed7f: [feature] Preserve whitespace in opengraph meta description elements (#4658) (@kipvandenbos)
  • c6079206fd18360981d57b1da27a47247bf3b035: [feature] add more fields to nodeinfo metadata (#4463) (@Candinya)
  • d4521f91841dc4bc7dded69e52e53772e44e3bba: [feature] Send out and serve polite LikeRequest, ReplyRequest, and AnnounceRequest objects (#4642) (@kipvandenbos)
  • 29e7d442b42fa9dd4a4a772ea84cfdd3ef1acd55: [performance] small performance improvement for ffmpeg nowasm builds (#4628) (@gruf)
  • c74c5b74049bf9530a4c3fa5ba99c63fdd85d178: [feature] Implement domain limit StatusesPolicy and AccountsPolicy side effects (#4621) (@kipvandenbos)
  • e1186f45943dd59786f4e29f5e6be95f11e56d07: [feature] Add domain limit follows policy side effects (#4617) (@kipvandenbos)
  • e8e27f44128eb8b070cd2044fada153fabbe58d4: [feature] Prepend domain limit content warning to posts as appropriate (#4618) (@kipvandenbos)
  • b1ffb66ba3eb9bb7b2ceeb8d092a860ab75cd7e9: [feature] add /api/v1/admin/media_purge endpoint (#4613) (@kipvandenbos)
  • 74718a6cecd7eb18a03167fc41b722e57d7e4a27: [feature] Add domain limit media Reject and MarkSensitive side effects (#4611) (@kipvandenbos)
  • 8cb4a5d652b3836ba83047f222d9a160a2843a13: [performance] add local, public and tag timeline caches (#4582) (@gruf)
  • c75483a1057b8465999439322258b587ad9b4b17: [feature/frontend] Add settings panel section for creating, updating, and deleting domain limits (#4567) (@kipvandenbos)
  • d489dcb1710181630a762158074291fb5439bf1a: [feature] support for toot:indexable (#4538) (@vyr)
  • 409380304dc977e1e26e5f6dad0f1e2df9563dcd: [feature] Implement stub authorize_interaction route (#4557) (@kegi)
  • fd2f293a9e3e1ea9c2e755fba9596022af8abf69: [feature] Add domain limit DB model and API endpoints (#4554) (@kipvandenbos)
  • dfcc6bc3c32fce5b4d5bc95ad61dca8765f41ada: [performance] remove hard reliance on .Cached field to indicate whether media / emoji is cached (#4545) (@gruf)
  • 4c36a0f34a11b667acd59a6c0270fda0d3c05f66: [performance] add optional S3 object info caching (#4546) (@gruf)
  • d6a7c43215c0e0f825db458faf6d9d571e91b66f: [performance] when transforming media, perform read operations of large files using mmap (#4541) (@gruf)
  • c4292158514afea8a7757aef07dbe99758b0eb0a: [performance] reduce account stats database calls (#4496) (@gruf)
  • 7fad9e40a691da5d88d146ebbc0d1540841f7a20: [performance] cache account IDs in home timeline query not in exclusive lists (#4502) (@gruf)
  • 433619fd67ec54b8d362b8833d35fb11ac3eef8a: [performance] pull in latest httpsig with performance enhancements and bugfixes (#4500) (@gruf)
  • 8d6209fe4f18c292d36bb1c0db002bc73db8581e: [feature] granular admin scopes for custom emojis (#4489) (@vyr)
  • 5fd52369c98eb83b735533674bcc4c3b227f69d2: [performance] handle emoji refreshes asynchronously when fetched as part of account|status dereferences (#4486) (@gruf)

Bug fixes

  • 7fa9ed12ce98829a0bcab67bbbf7dbd63427147a: [bugfix] Check boosted statuses for media when doing web media_only statuses queries (#4685) (@kipvandenbos)
  • c4f98bd7bd5524b97a20afb0b430b4f39ba14056: [bugfix/performance] Bail early during remote emoji deref when max size is 0. (#4681) (@technomancy)
  • 409b286dc269aa4da17f88f7617e585937f16a82: [bugfix] Fix statuses not being timelined + notified when dereffed rather than delivered (#4667) (@kipvandenbos)
  • c5d255fb3363df10918e7c7613e5e08ef3a12662: [bugfix] Use ipv6 cidr for trusted proxies req when clientIP is ipv6; check for empty clientIP before parsing (#4666) (@kipvandenbos)
  • 55df1b8cf9481cff654e31512051544455cd17ff: [bugfix] Disallow registration via sign up page when OIDC is enabled (#4665) (@kipvandenbos)
  • c1708c211f721e33b4984a3d391a37b6f3ffc11f: [bugfix] Don't return 500 when someone tries to Delete or Update something they don't own (#4663) (@kipvandenbos)
  • ce571b73d8ee3fc7c83ac8da9901e44e0e54c850: [bugfix] Don't return 500 Internal Server Error for QuoteAuthorization deletes (#4661) (@kipvandenbos)
  • 6151130843a6eef595ea6f2197ec408722c2cbbb: [bugfix] Don't allow decrement of account stats below 0 (#4657) (@kipvandenbos)
  • 9afd66f653353978b6927f949182b43bb5cd8997: [bugfix/frontend] web/template/page_header.tmpl: use singular verb if necessary (#4600) (@r-ricci)
  • ac4ecf695f8e6ba9d727d99fb36ee7c8882e5981: [bugfix] Updated the example Grafana dashboard for the new metric names in GoToSocial 0.20.0. (#4525) (@VirtualWolf)
  • 314ae57a38cdfd5d1df8e517f89f662570d67a17: [bugfix] Check that token is defined before logging the user out (#4632) (@prettysunflower)
  • 531ada22ceaa7f8eacafcc3d3f0fd2eab951280f: [bugfix] Mark targets of pre-approved polite interaction requests as no longer pending approval (#4647) (@kipvandenbos)
  • 3c6817fbcafd35da3bd69fa902beffd8a7d1c69b: [bugfix] Allow mention namestrings to include unicode emoji in username + domain parts (#4609) (@kipvandenbos)
  • 9a6004bffe9461dbd37190866ca1dce7c16cdb7c: [bugfix] ensure oneOf and anyOf properties serialized as arrays (#4608) (@gruf)
  • a9cefbb9ef06b7325132e471516fa50f62e881f7: [bugfix] Check follow req as well as follow when building relationship model (#4605) (@kipvandenbos)
  • 9a84303db92f95be665677490434f1ef36150670: [bugfix] Remove follow (req) notifications on Follow Undo (#4604) (@kipvandenbos)
  • 3c5b43e2fe9e2ebedfd8b6f141727b28c9ea390b: [bugfix] Fix my migration crimes (#4602) (@kipvandenbos)
  • a54a30b4d50cdafd11d58ebef3823b47c8937d9f: [bugfix] Preserve significant whitespace for new local plain posts + incoming remote posts (#4599) (@kipvandenbos)
  • 73c5da325decdaf458a8dcbf99227f560c859c45: [bugfix] don't apply visibility / status filtering when requesting your own account statuses (#4597) (@gruf)
  • 9b5c8d6a27ea16ac9cac99d89822b141bf6c136e: [bugfix] potential race condition on status unboost (#4596) (@gruf)
  • 05b294d8a1d45f20b1291debbd5547fa6a13a7de: [bugfix] Return unboosted status with reblogged=false (#4593) (@kipvandenbos)
  • e5cf4b65b7893d98db137c1a5477c50d4494fee1: [bugfix] ensure followed status tags have mute checks applied (#4569) (@gruf)
  • e9ea8098616060c4be61000b175a78daa55ab5ac: [bugfix] potential panic on update poll vote (#4578) (@gruf)
  • 70edae82527737358c0bec000b11400de48d71b1: [bugfix] Add Swagger docs for the user:notification stream (#4555) (@vyr)
  • b0b1f5a2be7d0cbb22faad9c7efc93b8f19980e1: [bugfix] Fix async-emoji-loading (#4553) (@gruf)
  • 4cabe7efb70d239764af3ea9510c41f541b83d43: [bugfix] Add Swagger docs for blur filter action (#4551) (@vyr)
  • 2c92445ec7854723decffcbf63d8822f199c6b4d: [bugfix] update go-mmap to macOS-compatible version (#4550) (@vyr)
  • 25d9f7c8bb8dc3a098fb003e8640d261d6e38372: [bugfix] more RSS validation issues (#4517) (@gruf)
  • 6fd14bc4fd23b0944799fbabe2034d4792640f32: [bugfix] Fix invalid period parameter when generating the TOTP URL (#4536) (@TwizzyDizzy)
  • b5607c756bf082202c0f97fa8527c512899ac74c: [bugfix] recheck for just-processed-emoji within mutex lock before starting processing (#4505) (@gruf)
  • a7fb24ed3532efb518f7e1caba5756fb89b48751: [bugfix] Fix HTTP return code for Likes of remote statuses (#4504) (@kipvandenbos)
  • 4a95bd5e1d2dce871553f015b05f8013083baf80: [bugfix] rss feed validation (#4499) (@gruf)
  • c495a128e90b8c9e6eff93591479264477de2ccd: [bugfix] Fix "client IP could not be parsed" error msg (#4497) (@kipvandenbos)
  • 566a0bc912cc58d4f38abdd20bd4554656c37503: [bugfix] repeated posts on timeline endpoints (#4494) (@gruf)

Chores & version bumps

  • 5e2e0d9e7e896c6b65c6cd68888a2fe8de070849: [chore] update dependencies (#4686) (@gruf)
  • f5fb5a6897ae92a0fa7be7f6d72fee485b203f45: [chore] move zero size media check into transport dereference function (#4684) (@gruf)
  • 581f9a81b3272db51bf67f397effdfd08846b32e: [chore] update dependencies (#4683) (@gruf)
  • 0efa81bb9af0d540c18e4f2ce65bed8c1536dc06: [chore] some twiddling (#4674) (@gruf)
  • f9f62e49dda91541556743460d2170db89b71d70: [chore] updated dependencies (#4673) (@gruf)
  • 74d5a2fb30362c10ab522b6be2235cb1f05ac952: [chore] Clean up web push subscription if access token no longer exists (#4669) (@kipvandenbos)
  • 53ad3d6b8eb99ec678540328f71113613b646913: [chore] Dick about with ogmeta tags a bit more (#4656) (@kipvandenbos)
  • 5295d4fad83a6b38b015d175d21da9a50dce7c28: [chore] More interaction tidying (#4655) (@kipvandenbos)
  • 513a4e55072de1a39b6d9bd37b811ceabf7e815b: [chore/frontend] Opengraph: for statuses with media, omit account and instance avatars (#4638) (@belkadan)
  • 5d824d2698b97c46e9fb56e8681f25e4f8d161b6: [chore/performance] avoid serializing empty / null AS properties (#4651) (@kipvandenbos)
  • 3d89f8f2f8b7e7ab44f22203a7cee2c466f8875e: [chore] updated dependencies (#4644) (@gruf)
  • af53aa0e2b4f34526773a654f5b6148434bc01a4: [chore] Remove deprecated always and with_approval properties in favor of automatic_approval and manual_approval (#4643) (@kipvandenbos)
  • 131f26db1f1c34dba9e1fa318c0beb3120440678: [chore] updated dependencies (#4637) (@gruf)
  • 5aa0a6dbc5ab67ba0f0affb2ad9734346ef79e54: [chore] updated dependencies (#4634) (@gruf)
  • 42a231a98b6e844392bd1a6de6bc1ced5deeff83: [chore] store basic error details when failing to process remote media (#4625) (@gruf)
  • b310e99b436357bb34b98f1b9233f3c9c69aaab0: [chore] update dependencies (#4629) (@gruf)
  • b619f902eb57988028867aaba777fbb085981e77: [chore] Update robots.txt md5 hashes for etags (#4623) (@kipvandenbos)
  • cbaf51337522d85d2e744033529c000c95d8aee3: [chore] Update robots.txt with latest list of "ai" bullshit user-agents (#4622) (@kipvandenbos)
  • b6cfb7cddc332cf43c64fe9a12c050346a2fc07e: [chore] update dependencies (#4620) (@gruf)
  • 07f8d985f30878a1c9e18140a1bd74e2e7e8ac41: [chore] make timeline cache timeouts configurable (#4616) (@gruf)
  • 63f5c7e459730370ea1ef52ef614d55b4fd02969: [chore] update dependencies (#4615) (@gruf)
  • 5e6de65c0b56a43bcf2cc17bc85918149deb740e: [chore] tweak default timeline timeouts (#4614) (@gruf)
  • 1309d1e998b30af468996e8d02a1fdd7eac4b3f1: [chore] move packages to external repo (#4610) (@gruf)
  • 6018e13823d34745c63e10949f8e289107ccd1be: [chore] update dependencies (#4612) (@gruf)
  • ffc182831681fc24c60205107900fde6d43dc8ca: [chore] update dependencies (#4607) (@gruf)
  • 4996d894d14bdaa98533ec54bef570c898a1e14d: [chore] Flag release archive files as 0644 explicitly (#4603) (@kipvandenbos)
  • 826f69e815500de9927705eff87a6757babb864f: [chore] update dependencies (#4601) (@gruf)
  • 4780662511879d8357a88d1d55fdc7a437693326: [chore] Swap Application and Service actor types for better Smithereen compat (#4598) (@kipvandenbos)
  • 9c08aaf292d693e3727f7b060ab50e2c29ed5e90: [chore] Update some git template stuff (#4595) (@kipvandenbos)
  • 56143a7e7748519acac6d463b9406d1c588f74bb: [chore] Update goreleaser build tags, add env vars (#4592) (@kipvandenbos)
  • dd4452a467ee7afec6fb11df515095e348a2b2cb: [chore] Use stable in docs links instead of latest (#4591) (@kipvandenbos)
  • 60bed4346b27f4a9d6546bd9923c20673f97da58: [chore] update go-ffmpreg v0.6.15 -> v0.6.16 (#4587) (@gruf)
  • 91af26428605ffa49d7b34ecbea90d824ff09e53: [chore] add nooidc build tag to support building without OIDC support (#4586) (@gruf)
  • 93ef092af66d63bfdb76c5f1ba88d0d16c979050: [chore] update dependencies (#4585) (@gruf)
  • dd36113768b05da6932f46193ae8b1d2e5219966: [chore] add a useful comment on logging package implementation details (#4581) (@gruf)
  • f2523fc5e915428a651181752cab7ac467c8cd53: [chore] adds compile time checks for unsafe pointer casting (#4576) (@gruf)
  • 7e9dfb09cbb900ac3b820336dfcc32fb4b4647e2: [chore] don't add disabled http handlers (#4572) (@gruf)
  • e46149d0698f270452142872b886bbb7b953b8ee: [chore] async media / emoji api fiddling (#4487) (@gruf)
  • 5a77d3dbd57381d5559857a3e58af647a837f646: [chore] update dependencies (#4568) (@gruf)
  • 7cca808919cdf0c9542a0b38900955c5f7f0a62e: [chore] Go back to using name for attachment alt text for now, add note in docs (#4559) (@kipvandenbos)
  • 72b2711d50ac4a69b364650b19c5ef4cbf64aa34: [chore] Apply schema for OpenAPI errors (#4511) (@vyr)
  • 2d4cec604880aa68744d7f9995e17404aab76af6: [chore] update dependencies (#4547) (@gruf)
  • 457c333b35fbc9e16c7ffebc2b9db6da08b69bc9: [chore] add useful instructions for LLM agents operating on the gotosocial codebase :innocent: (#4543) (@gruf)
  • 04d7b9e7be4b1043ac3361c132d55ae6edc10476: [chore] update dependencies (#4542) (@gruf)
  • 8fb03afed54b2610f8d74c6351757bbfdd8a47c0: [chore] update dependencies (#4539) (@gruf)
  • cd24983542e568a761b5eab7d55e0031b1623f48: [chore] add a 'nos3' build tag to support compiling without S3 storage support (#4522) (@gruf)
  • 871f2a2b6b048546ef400ad4550fb12db6acc630: [chore] add a 'nosqlite' and 'nopostgres' build tags to support compiling without certain database support (#4523) (@gruf)
  • 7084a0b52334285f862775258653d64ea12ae7b9: [chore] reduce binary size (#4519) (@gruf)
  • 6cdb58fd376a10f68e5ec1c52373746d798a7734: [chore/frontend] Use autocomplete="one-time-code" for 2fa input (#4516) (@kipvandenbos)
  • 98a6b2fce22bdbabc46bc60e80954a39fe3ba788: [chore] fix typo in web push notification title (#4514) (@mkljczk)
  • bf3ee3bbe2112e25394c83b1f73ae4ff4a172b6c: [chore] update dependencies (#4507) (@gruf)
  • 23aa4c7c9f4e2a02f9075a1c82b5c9c219be5cf4: [chore] Better handling of Gone accounts during PostInbox (return 202 Accepted instead of 401 Unauthorized) (#4506) (@kipvandenbos)
  • f63280f5d0b7e448fa1ed2bc8b3b8f9e8998a438: [chore] Rationalize HTTP return codes for fedi endpoints, other tidying up (#4503) (@kipvandenbos)
  • 16f58b25d185a766c7d28a73768b2e65c99031ee: [chore/performance] Use CTE for list select statuses query (#4501) (@kipvandenbos)
  • d3a5d3b924fa21a1b39b0688e23a756c71c0cd8c: [chore] update dependencies (#4495) (@gruf)

Documentation

  • 3b4454d574e7e367e0bf919b1c263d82c2958516: [docs] fix indentation in interaction controls doc (#4650) (@kipvandenbos)
  • b45385d19761e6e3b250915bf8eb6151bfc56efd: [docs] Update interaction control docs to >=v0.21.0 way of doing things (#4648) (@kipvandenbos)
  • 17208a6fb249b6ee8d6e927df3ab38e1a04e5dac: [docs] Add docs for domain limits (#4624) (@kipvandenbos)
  • 3b4a98b169521ac9a6024450d209c0dd6e1a7393: [docs] update slurp's repository URL (#4580) (@cdn0x12)
  • ecececcf099407fa77346de8c95fc93e120e6693: [docs] Update docs to differentiate between Service, Person, and Application actor types, add FEDERATION.md linking to docs (#4566) (@kipvandenbos)
  • 0e10e7febadcb5e570e6da846d43b4b9574d196f: [docs] Document setting OTEL_EXPORTER_PROMETHEUS_HOST for Docker (#4498) (@kipvandenbos)

Don't miss a new gotosocial release

NewReleases is sending notifications on new releases.