diff --git a/docs/code_style.md b/docs/code_style.md
index 4d8e7c973d..e7c9cd1a5e 100644
--- a/docs/code_style.md
+++ b/docs/code_style.md
@@ -172,6 +172,6 @@ frobber:
```
Note that the sample configuration is generated from the synapse code
-and is maintained by a script, `scripts-dev/generate_sample_config`.
+and is maintained by a script, `scripts-dev/generate_sample_config.sh`.
Making sure that the output from this script matches the desired format
is left as an exercise for the reader!
diff --git a/docs/development/database_schema.md b/docs/development/database_schema.md
index a767d3af9f..d996a7caa2 100644
--- a/docs/development/database_schema.md
+++ b/docs/development/database_schema.md
@@ -158,9 +158,9 @@ same as integers.
There are three separate aspects to this:
* Any new boolean column must be added to the `BOOLEAN_COLUMNS` list in
- `scripts/synapse_port_db`. This tells the port script to cast the integer
- value from SQLite to a boolean before writing the value to the postgres
- database.
+ `synapse/_scripts/synapse_port_db.py`. This tells the port script to cast
+ the integer value from SQLite to a boolean before writing the value to the
+ postgres database.
* Before SQLite 3.23, `TRUE` and `FALSE` were not recognised as constants by
SQLite, and the `IS [NOT] TRUE`/`IS [NOT] FALSE` operators were not
diff --git a/docs/other/running_synapse_on_single_board_computers.md b/docs/other/running_synapse_on_single_board_computers.md
index ea14afa8b2..dcf96f0056 100644
--- a/docs/other/running_synapse_on_single_board_computers.md
+++ b/docs/other/running_synapse_on_single_board_computers.md
@@ -31,28 +31,29 @@ Anything that requires modifying the device list [#7721](https://github.com/matr
Put the below in a new file at /etc/matrix-synapse/conf.d/sbc.yaml to override the defaults in homeserver.yaml.
```
-# Set to false to disable presence tracking on this homeserver.
+# Disable presence tracking, which is currently fairly resource intensive
+# More info: https://github.com/matrix-org/synapse/issues/9478
use_presence: false
-# When this is enabled, the room "complexity" will be checked before a user
-# joins a new remote room. If it is above the complexity limit, the server will
-# disallow joining, or will instantly leave.
+# Set a small complexity limit, preventing users from joining large rooms
+# which may be resource-intensive to remain a part of.
+#
+# Note that this will not prevent users from joining smaller rooms that
+# eventually become complex.
limit_remote_rooms:
- # Uncomment to enable room complexity checking.
- #enabled: true
+ enabled: true
complexity: 3.0
# Database configuration
database:
+ # Use postgres for the best performance
name: psycopg2
args:
user: matrix-synapse
- # Generate a long, secure one with a password manager
+ # Generate a long, secure password using a password manager
password: hunter2
database: matrix-synapse
host: localhost
- cp_min: 5
- cp_max: 10
```
Currently the complexity is measured by [current_state_events / 500](https://github.com/matrix-org/synapse/blob/v1.20.1/synapse/storage/databases/main/events_worker.py#L986). You can find join times and your most complex rooms like this:
diff --git a/docs/postgres.md b/docs/postgres.md
index 0562021da5..de4e2ba4b7 100644
--- a/docs/postgres.md
+++ b/docs/postgres.md
@@ -153,9 +153,9 @@ database file (typically `homeserver.db`) to another location. Once the
copy is complete, restart synapse. For instance:
```sh
-./synctl stop
+synctl stop
cp homeserver.db homeserver.db.snapshot
-./synctl start
+synctl start
```
Copy the old config file into a new config file:
@@ -192,10 +192,10 @@ Once that has completed, change the synapse config to point at the
PostgreSQL database configuration file `homeserver-postgres.yaml`:
```sh
-./synctl stop
+synctl stop
mv homeserver.yaml homeserver-old-sqlite.yaml
mv homeserver-postgres.yaml homeserver.yaml
-./synctl start
+synctl start
```
Synapse should now be running against PostgreSQL.
diff --git a/docs/turn-howto.md b/docs/turn-howto.md
index eba7ca6124..3a2cd04e36 100644
--- a/docs/turn-howto.md
+++ b/docs/turn-howto.md
@@ -238,8 +238,9 @@ After updating the homeserver configuration, you must restart synapse:
* If you use synctl:
```sh
- cd /where/you/run/synapse
- ./synctl restart
+ # Depending on how Synapse is installed, synctl may already be on
+ # your PATH. If not, you may need to activate a virtual environment.
+ synctl restart
```
* If you use systemd:
```sh
diff --git a/docs/upgrade.md b/docs/upgrade.md
index f9be3ac6bc..0d0bb066ee 100644
--- a/docs/upgrade.md
+++ b/docs/upgrade.md
@@ -47,7 +47,7 @@ this document.
3. Restart Synapse:
```bash
- ./synctl restart
+ synctl restart
```
To check whether your update was successful, you can check the running
@@ -85,6 +85,27 @@ process, for example:
dpkg -i matrix-synapse-py3_1.3.0+stretch1_amd64.deb
```
+# Upgrading to v1.55.0
+
+## `synctl` script has been moved
+
+The `synctl` script
+[has been made](https://github.com/matrix-org/synapse/pull/12140) an
+[entry point](https://packaging.python.org/en/latest/specifications/entry-points/)
+and no longer exists at the root of Synapse's source tree. If you wish to use
+`synctl` to manage your homeserver, you should invoke `synctl` directly, e.g.
+`synctl start` instead of `./synctl start` or `/path/to/synctl start`.
+
+You will need to ensure `synctl` is on your `PATH`.
+ - This is automatically the case when using
+ [Debian packages](https://packages.matrix.org/debian/) or
+ [docker images](https://hub.docker.com/r/matrixdotorg/synapse)
+ provided by Matrix.org.
+ - When installing from a wheel, sdist, or PyPI, a `synctl` executable is added
+ to your Python installation's `bin`. This should be on your `PATH`
+ automatically, though you might need to activate a virtual environment
+ depending on how you installed Synapse.
+
# Upgrading to v1.54.0
## Legacy structured logging configuration removal
diff --git a/docs/usage/administration/admin_api/README.md b/docs/usage/administration/admin_api/README.md
index 2fca96f8be..3cbedc5dfa 100644
--- a/docs/usage/administration/admin_api/README.md
+++ b/docs/usage/administration/admin_api/README.md
@@ -12,7 +12,7 @@ UPDATE users SET admin = 1 WHERE name = '@foo:bar.com';
```
A new server admin user can also be created using the `register_new_matrix_user`
-command. This is a script that is located in the `scripts/` directory, or possibly
+command. This is a script that is distributed as part of synapse. It is possibly
already on your `$PATH` depending on how Synapse was installed.
Finding your user's `access_token` is client-dependent, but will usually be shown in the client's settings.
|