{"full_name":"mastodon/mastodon","owner":"mastodon","name":"mastodon","url":"https://github.com/mastodon/mastodon","description":"Your self-hosted, globally interconnected microblogging community","homepage":"https://joinmastodon.org","topics":[],"language":"Ruby","license":"AGPL-3.0","avatar":"https://avatars.githubusercontent.com/u/24979032?v=4","created_at":"2016-02-22T15:01:25Z","pushed_at":"2026-11-10T09:14:50Z","metrics":{"stars":50502,"forks":7542,"watchers":713,"issues":13339,"prs":25702,"releases":382,"issues_open":null,"issues_closed":null,"prs_open":null,"prs_closed":null,"prs_merged":null,"discussions":1949},"growth":{"day":{"stars":1,"forks":3,"base_day":"2026-11-09"}},"history":{"dates":["2026-11-09","2026-11-10"],"stars":[50501,50502],"forks":[7539,7542],"watchers":[713,713],"issues_open":[null,null],"prs_open":[null,null]},"boards":{},"same_owner":[],"issues":[{"number":12423,"title":"Support Post Migration","comments":308,"created_at":"2019-11-18T18:42:50Z"},{"number":8565,"title":"“Disable replies” feature","comments":250,"created_at":"2018-09-02T09:00:10Z"},{"number":20117,"title":"Rename content warning (CW) to content notice (CN)","comments":165,"created_at":"2022-11-08T11:39:53Z"},{"number":34,"title":"Backfill statuses from remote accounts when first subscribed","comments":145,"created_at":"2016-09-10T17:38:09Z"},{"number":139,"title":"Support groups","comments":120,"created_at":"2016-11-05T17:09:31Z"},{"number":6942,"title":"[FEATURE] Follow public local timelines from other instances","comments":108,"created_at":"2018-03-28T07:23:23Z"},{"number":861,"title":"Add a \"Local timeline\" privacy option","comments":90,"created_at":"2017-04-04T16:29:34Z"},{"number":2668,"title":"Multi-tenancy with custom domains","comments":81,"created_at":"2017-04-30T22:31:18Z"}],"discussions":[{"number":41591,"title":"New self hosted instance doesn't find users from big ones","comments":0,"category":"Q&A","created_at":"2026-11-08T17:58:39Z"},{"number":41583,"title":"db-1 ... FATAL:  role \"postgres\" does not exist","comments":1,"category":"Q&A","created_at":"2026-11-08T12:47:41Z"},{"number":41521,"title":"The future of the \"Posts and other pages will (...)\" column","comments":1,"category":"Q&A","created_at":"2026-11-05T00:53:12Z"},{"number":41373,"title":"API fetch of remote statuses","comments":1,"category":"Q&A","created_at":"2026-10-28T04:59:05Z"},{"number":41295,"title":"GitLab's CVE-2026-89078, CVE-2026-93577, CVE-2026-97229 and CVE-2026-110264","comments":0,"category":"Q&A","created_at":"2026-10-23T16:02:44Z"},{"number":41226,"title":"Is possible to search by type of post ?","comments":1,"category":"Q&A","created_at":"2026-10-21T11:16:40Z"},{"number":41201,"title":"[UX Feedback] In-app coach-mark tour for first-time users","comments":0,"category":"General","created_at":"2026-10-20T16:23:37Z"},{"number":41168,"title":"Mangled URLs","comments":0,"category":"Q&A","created_at":"2026-10-19T18:48:34Z"}],"latest_release":{"name":"v4.7.5","tag":"v4.7.5","published_at":"2026-11-03T15:28:59Z","body":"<h1><picture>\r\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"./lib/assets/wordmark.dark.png?raw=true\">\r\n  <source media=\"(prefers-color-scheme: light)\" srcset=\"./lib/assets/wordmark.light.png?raw=true\">\r\n  <img alt=\"Mastodon\" src=\"./lib/assets/wordmark.light.png?raw=true\" height=\"34\">\r\n</picture></h1>\r\n\r\n## Changelog\r\n\r\n### Security\r\n\r\n- Fix password authentication bypass for inactive accounts ([GHSA-3xjw-gv43-3w62](https://github.com/mastodon/mastodon/security/advisories/GHSA-3xjw-gv43-3w62))\r\n- Fix DoS through JSON-LD compaction (#41482 by @ClearlyClaire, [GHSA-cf49-73r7-rxj6](https://github.com/mastodon/mastodon/security/advisories/GHSA-cf49-73r7-rxj6))\r\n- Fix `Forwarded` header taking precedence over `X-Forwarded-For` (#41481 by @ClearlyClaire, [GHSA-qp4r-p842-mw5c](https://github.com/mastodon/mastodon/security/advisories/GHSA-qp4r-p842-mw5c))\r\n  - If your reverse-proxy setup uses `Forwarded` instead of `X-Forwarded-For`, please make sure it ignores user-provided `X-Forwarded-For` headers.\r\n  - If you are using our provided `nginx.conf`, please consider updating it.\r\n- Updated dependencies, in particular to address security advisories in `addressable`, `loofah`, `rack`, and `rails-html-sanitizer`\r\n\r\n### Changed\r\n\r\n- Change invites use counts to not decrease if an invited user deletes their account (#41458 by @ClearlyClaire)\r\n\r\n## Upgrade notes\r\n\r\nTo get the code for v4.7.5, use `git fetch && git checkout v4.7.5`.\r\n\r\n> [!NOTE]\r\n> As always, make sure you have backups of the database before performing any upgrades. If you are using docker-compose, this is how a backup command might look: `docker exec mastodon_db_1 pg_dump -Fc -U postgres postgres > name_of_the_backup.dump`\r\n\r\n### Dependencies\r\n\r\nExternal dependencies have not changed since v4.6.0.\r\n\r\n- Ruby: 3.3 or newer\r\n- PostgreSQL: 14 or newer\r\n- Elasticsearch (recommended, for full-text search): 7.x (OpenSearch should also work)\r\n- LibreTranslate (optional, for translations): 1.3.3 or newer\r\n- Redis: 7.0 or newer\r\n- Node: 22 or newer\r\n- libvips: 8.13 or newer\r\n- FFMpeg: 5.1 or newer\r\n\r\n### Update steps\r\n\r\nThe following instructions are for updating from 4.7.4.\r\n\r\nIf you are upgrading directly from an earlier release, please carefully read the upgrade notes for the skipped releases as well, as they often require extra steps such as database migrations. In particular, it is very important to read the [4.7.0 release notes](https://github.com/mastodon/mastodon/releases/tag/v4.7.0).\r\n\r\n### Non-Docker\r\n\r\n> [!TIP]\r\n> The `charlock_holmes` gem may fail to build on some systems with recent versions of gcc.\r\nIf you run into this issue, try `BUNDLE_BUILD__CHARLOCK_HOLMES=\"--with-cxxflags=-std=c++17\" bundle install`.\r\n\r\n1. Install dependencies with `bundle install` and `yarn install --immutable`\r\n2. Restart all Mastodon processes.\r\n\r\n### When using Docker\r\n\r\n1. Restart all Mastodon processes."},"readme":true,"readme_zh":false,"news":[],"stale":false,"snapshot_at":"2026-11-10T09:35:25Z","history_start":"2026-09-06"}