anonymousland-synapse/docs/development/demo.md
Patrick Cloke 9a0172d49f
Clean-up demo scripts & documentation (#12143)
* Rewrites the demo documentation to be clearer, accurate, and moves it to our documentation tree.
* Improvements to the demo scripts:
	* `clean.sh` now runs `stop.sh` first to avoid zombie processes.
	* Uses more modern Synapse configuration (and removes some obsolete configuration).
	* Consistently use the HTTP ports for server name, etc.
	* Remove the `demo/etc` directory and place everything into the `demo/808x` directories.
2022-03-08 15:02:59 -05:00

1.7 KiB

Synapse demo setup

DO NOT USE THESE DEMO SERVERS IN PRODUCTION

Requires you to have a Synapse development environment setup.

The demo setup allows running three federation Synapse servers, with server names localhost:8080, localhost:8081, and localhost:8082.

You can access them via any Matrix client over HTTP at localhost:8080, localhost:8081, and localhost:8082 or over HTTPS at localhost:8480, localhost:8481, and localhost:8482.

To enable the servers to communicate, self-signed SSL certificates are generated and the servers are configured in a highly insecure way, including:

  • Not checking certificates over federation.
  • Not verifying keys.

The servers are configured to store their data under demo/8080, demo/8081, and demo/8082. This includes configuration, logs, SQLite databases, and media.

Note that when joining a public room on a different HS via "#foo:bar.net", then you are (in the current impl) joining a room with room_id "foo". This means that it won't work if your HS already has a room with that name.

Using the demo scripts

There's three main scripts with straightforward purposes:

  • start.sh will start the Synapse servers, generating any missing configuration.
    • This accepts a single parameter --no-rate-limit to "disable" rate limits (they actually still exist, but are very high).
  • stop.sh will stop the Synapse servers.
  • clean.sh will delete the configuration, databases, log files, etc.

To start a completely new set of servers, run:

./demo/stop.sh; ./demo/clean.sh && ./demo/start.sh