1
Fork 0
element-hq/synapse with patches for starstruck.systems https://starstruck.systems
  • Python 95.4%
  • Rust 3.3%
  • HTML 0.4%
  • Shell 0.3%
  • Go 0.2%
  • Other 0.1%
Find a file
star a7ccc40ace
fix: dont explode
Signed-off-by: star <star@starstruck.systems>
2026-10-16 22:10:12 +01:00
.ci Schema diff CI: Fix hanging when Rust module changes (#20129) 2026-08-20 16:43:24 +01:00
.github Fix Sytest job failing on daily Twisted trunk workflow (#20293) 2026-10-06 10:44:03 +00:00
changelog.d 1.163.0 2026-10-14 09:22:00 -05:00
complement Bump the all-go-dependencies group in /complement with 2 updates (#20271) 2026-09-25 11:40:11 +00:00
contrib Document how to capture a JSON snapshot of a Grafana dashboard (#20048) 2026-08-05 11:11:30 -05:00
debian 1.163.0 2026-10-14 09:22:00 -05:00
demo Profile endpoint rate limit (#20218) 2026-09-18 12:00:45 +01:00
docker Docker: support workers for MSC4140 single lookup (#20262) 2026-09-24 16:41:59 +01:00
docs Use beautifulsoup4 instead of lxml for URL previews (#19301) 2026-10-02 15:46:34 +01:00
rust Advertise support for Matrix v1.15 (#20286) 2026-09-30 16:17:12 +01:00
schema 1.163.0rc1 2026-10-06 10:12:33 -05:00
scripts-dev Update release script to check more often for actions being completed (every 1m) (#20093) 2026-08-12 11:54:53 -05:00
stubs Bump Twisted in poetry.lock from 25.5.0 to 26.4.0 (#20259) 2026-09-29 17:50:55 +00:00
synapse fix: dont explode 2026-10-16 22:10:12 +01:00
synmark Port Clock functions to use Duration class (#19229) 2025-12-01 13:55:06 +00:00
tests chore: fix up test 2026-10-16 22:10:10 +01:00
.codecov.yml Disable codecov reports to GH comments. 2019-07-31 10:56:02 +01:00
.coveragerc Fix coverage in sytest and use plugins for buildkite (#5922) 2019-08-29 22:19:57 +10:00
.dockerignore Align comments in .dockerignore with synapse-private pro branch (#20224) 2026-09-17 10:09:17 -05:00
.editorconfig Apply correct editorconfig to .pyi files (#14526) 2022-11-22 18:33:28 +00:00
.git-blame-ignore-revs Ignore Python language refactors (.git-blame-ignore-revs) (#19150) 2025-11-10 22:34:30 +00:00
.gitignore add before and after filter to redact user method (/_synapse/admin/v1/user/$user_id/redact) (#19802) 2026-07-01 17:28:22 +01:00
.rustfmt.toml Prevent dirty Cargo.lock changes from install (#18693) 2025-07-18 10:28:10 -05:00
AUTHORS.rst Automatically delete empty groups/communities (#6453) 2019-12-16 12:12:40 +00:00
book.toml Bump mdbook from 0.4.17 -> 0.5.2 and remove custom table-of-contents plugin (#19356) 2026-01-07 18:46:03 +00:00
build_rust.py Drop Python 3.9, bump tests/builds to Python 3.10 (#19099) 2025-10-29 12:15:00 -05:00
Cargo.lock Bump the all-rust-dependencies group across 1 directory with 6 updates (#20268) 2026-09-29 15:47:19 +01:00
Cargo.toml Fix building rust with nightly (#15906) 2023-07-10 16:24:04 +01:00
CHANGES.md 1.163.0 2026-10-14 09:22:00 -05:00
CONTRIBUTING.md Update the contributing guide after reliecensing (#16772) 2024-01-03 11:31:03 +00:00
flake.lock Fix nix flake 2024-11-20 15:01:56 +00:00
flake.nix Use beautifulsoup4 instead of lxml for URL previews (#19301) 2026-10-02 15:46:34 +01:00
INSTALL.md Update book location 2023-12-13 16:15:22 +00:00
LICENSE-AGPL-3.0 make dual licensing explicit (#18134) 2025-02-05 13:40:10 +00:00
LICENSE-COMMERCIAL make dual licensing explicit (#18134) 2025-02-05 13:40:10 +00:00
mypy.ini Migrate dev dependencies to PEP 735 dependency groups (#19490) 2026-03-17 14:45:28 +00:00
poetry.lock Constrain txredisapi version to avoid incompatible breaking changes in txredisapi@1.6.0 (#20354) 2026-10-14 08:47:40 -05:00
pyproject.toml 1.163.0 2026-10-14 09:22:00 -05:00
README.md meta: Update README 2026-10-16 22:10:12 +01:00
README.rst Fix a few readme links regarding ESS (#19070) 2026-09-24 09:58:57 +00:00
sytest-blacklist Use full GitHub links instead of bare issue numbers. (#16637) 2023-11-15 08:02:11 -05:00
tox.ini Drop Python 3.9, bump tests/builds to Python 3.10 (#19099) 2025-10-29 12:15:00 -05:00
UPGRADE.rst Update book location 2023-12-13 16:15:22 +00:00

Starnapse

Starnapse is a patchset applied on top of Element's Synapse. It borrows several patches from Maunium Synapse, some odd patches from other forks, and maintains several new features, as well as several bug fixes that keep starstruck.systems running.

Important

STARNAPSE IS NOT A HARD FORK! IT IS BARELY A SOFT FORK!

Please don't expect support, quality, compatibility, etc - this is specifically designed for starstruck.systems. If you run into issues or have questions, feel free to contact me in my Matrix room: #startopic:starstruck.systems. Do not expect Synapse support. I have no idea how Synapse works, I am a monkey with a typewriter.

Please do not blindly run this fork without reading the following changes:

Some features include:

  • More to-device messages per /v3/sync (to allow clients to catch up on what they missed faster).
  • Federation denylist.
    • Federation "event spoiling" (redacting outgoing events to specific servers).
  • Removal of the admin requirement to un-redact events.
  • The User-Agent and version string has been changed to Starnapse.
  • Enhanced ignores (replies to ignored events will also be implicitly ignored).

Several fixes are applied too:

  • Federation key expiry is ignored (to work around a CPU exhaustion bug).
  • Joining a remote room no longer spuriously fails (weird missing event bug).
  • Creating a v12 room with a creator in the power levels preset silently removes the user rather than erroring.
  • "Partial joins" have been disabled (to stop the scourge of rooms that never de-partialed).
  • Incoming policy server signature checks are disabled (to work around a CPU exhaustion bug).

Several other patches are also applied. See the commit history for a list: https://git.nexy7574.co.uk/star/starnapse/commits/branch/starnapse.

Note

The starnapse branch is rebased on each Synapse tag and is consequently force pushed.

Installing

pip install -U git+https://git.nexy7574.co.uk/star/starnapse.git

Warning

The .git suffix may be required, otherwise the forge's anti-bot measures may block your clone attempt.

Pre-compiled wheels are not available yet. The package name is still matrix-synapse.

Config reference

The following new configuration options are introduced when using this patchset:

federation:
  # Servers to "spoil" outgoing events for (server soft-blocking).
  # Servers in this list will receive tampered copies of events, forcing them to redact them locally before continuing.
  # This allows you to prevent specific remote servers seeing the contents of your events.
  # Exact server names are required - glob and regex is not supported.
  # This is a nuclear option!
  spoil_servers:
    - server.example
    - evil.server.example
  # When an event is being sent to a spoiled remote (above), if the event's sender is not in this list, the event
  # will not be spoiled. This allows you to limit whose events are spoilt.
  # If the list is empty/not provided, all users are spoilt.
  spoil_users:
    - "@user1:starstruck.example"
  # Servers to outright deny federation with (server hard-blocking).
  # Servers in this list will not be permitted to make federation requests to your server at all, and all outgoing
  # federation requests to blocked remotes (including end-to-end encryption and media) will also be prevented.
  # Exact server names are required - glob and regex is not supported.
  # This is a double nuclear option!
  federation_domain_denylist:
    - denied.domain.example