- Python 95.5%
- Rust 3%
- HTML 0.4%
- Shell 0.4%
- Go 0.2%
- Other 0.2%
|
|
||
|---|---|---|
| .ci | ||
| .github | ||
| changelog.d | ||
| complement | ||
| contrib | ||
| debian | ||
| demo | ||
| docker | ||
| docs | ||
| rust | ||
| schema | ||
| scripts-dev | ||
| stubs | ||
| synapse | ||
| synmark | ||
| tests | ||
| .codecov.yml | ||
| .coveragerc | ||
| .dockerignore | ||
| .editorconfig | ||
| .git-blame-ignore-revs | ||
| .gitignore | ||
| .rustfmt.toml | ||
| AUTHORS.rst | ||
| book.toml | ||
| build_rust.py | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CHANGES.md | ||
| CONTRIBUTING.md | ||
| flake.lock | ||
| flake.nix | ||
| INSTALL.md | ||
| LICENSE-AGPL-3.0 | ||
| LICENSE-COMMERCIAL | ||
| mypy.ini | ||
| poetry.lock | ||
| pyproject.toml | ||
| README.md | ||
| README.rst | ||
| sytest-blacklist | ||
| tox.ini | ||
| UPGRADE.rst | ||
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
starnapsebranch 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
.gitsuffix 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
The configuration options for Maunium Synapse are also available: https://mau.dev/maunium/synapse#configuration-reference.