Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
pull/28860/head
Michael Telatynski 2025-01-06 14:45:15 +00:00
parent f1c392dd08
commit eaca3f83d6
No known key found for this signature in database
GPG Key ID: A2B008A5F49F5D0D
3 changed files with 17 additions and 5 deletions

View File

@ -227,7 +227,11 @@ has to be disabled in Playwright on Firefox & Webkit to retain routing functiona
Anything testing VoIP/microphone will need to have `@no-webkit` as fake microphone functionality is not available
there at this time.
## Colima
## Supporter container runtimes
We use testcontainers to spin up various instances of Synapse, Matrix Authentication Service, and more.
It supports Docker out of the box but also has support for Podman, Colima, Rancher, you just need to follow some instructions to achieve it:
https://node.testcontainers.org/supported-container-runtimes/
If you are running under Colima, you may need to set the environment variable `TMPDIR` to `/tmp/colima` or a path
within `$HOME` to allow bind mounting temporary directories into the Docker containers.

View File

@ -144,7 +144,9 @@ const DEFAULT_CONFIG = {
email_entrypoint: "email/violation",
data: {
client_registration: {
// allow non-SSL and localhost URIs
allow_insecure_uris: true,
// EW doesn't have contacts at this time
allow_missing_contacts: true,
},
},

View File

@ -20,13 +20,15 @@ const TAG = "develop@sha256:17cc0a301447430624afb860276e5c13270ddeb99a3f6d1c6d51
const DEFAULT_CONFIG = {
server_name: "localhost",
public_baseurl: "",
public_baseurl: "", // set by start method
pid_file: "/homeserver.pid",
web_client: false,
soft_file_limit: 0,
// Needs to be configured to log to the console like a good docker process
log_config: "/data/log.config",
listeners: [
{
// Listener is always port 8008 (configured in the container)
port: 8008,
tls: false,
bind_addresses: ["::"],
@ -41,6 +43,7 @@ const DEFAULT_CONFIG = {
},
],
database: {
// An sqlite in-memory database is fast & automatically wipes each time
name: "sqlite3",
args: {
database: ":memory:",
@ -102,11 +105,13 @@ const DEFAULT_CONFIG = {
enable_registration_without_verification: true,
disable_msisdn_registration: false,
registrations_require_3pid: [],
registration_shared_secret: "secret",
enable_metrics: false,
report_stats: false,
// These placeholders will be replaced with values generated at start
registration_shared_secret: "secret",
macaroon_secret_key: "secret",
form_secret: "secret",
// Signing key must be here: it will be generated to this file
signing_key_path: "/data/localhost.signing.key",
trusted_key_servers: [],
password_config: {
@ -116,6 +121,7 @@ const DEFAULT_CONFIG = {
session_timeout: "300s",
},
background_updates: {
// Inhibit background updates as this Synapse isn't long-lived
min_batch_size: 100000,
sleep_duration_ms: 100000,
},
@ -144,9 +150,9 @@ export class SynapseContainer extends GenericContainer {
const signingKey = randB64Bytes(32);
this.withWaitStrategy(Wait.forHttp("/health", 8008)).withCopyContentToContainer([
{ target: "/data/localhost.signing.key", content: `ed25519 x ${signingKey}` },
{ target: this.config.signing_key_path, content: `ed25519 x ${signingKey}` },
{
target: "/data/log.config",
target: this.config.log_config,
content: YAML.stringify({
version: 1,
formatters: {