compose.yml
· 3.8 KiB · YAML
Brut
services:
element:
image: vectorim/element-web
container_name: element_web
restart: unless-stopped
configs:
- source: element_config
target: /app/config.json
mode: "0444"
networks:
- proxy
labels:
- traefik.enable=true
- traefik.http.services.element.loadbalancer.server.port=80
- traefik.http.routers.element.entrypoints=https
- traefik.http.routers.element.rule=Host(`${FQDN_ELEMENT}`)
continuwuation:
image: forgejo.ellis.link/continuwuation/continuwuity:latest
container_name: continuwuation
init: true
restart: unless-stopped
command: /sbin/conduwuit
volumes:
- continuwuation_db:/var/lib/continuwuity
configs:
- source: resolv_conf
target: /etc/resolv.confg
mode: "0400"
environment:
RUST_BACKTRACE: full
CONTINUWUITY_SERVER_NAME: ${FQDN_MATRIX}
CONTINUWUITY_DATABASE_PATH: /var/lib/continuwuity
CONTINUWUITY_ADDRESS: 0.0.0.0
CONTINUWUITY_ALLOW_REGISTRATION: false
CONTINUWUITY_ALLOW_FEDERATION: true
CONTINUWUITY_ALLOW_CHECK_FOR_UPDATES: true
CONTINUWUITY_TRUSTED_SERVERS: '["matrix.org"]'
CONDUWUIT_TRUSTED_PROXIES: 127.0.0.1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
CONTINUWUITY_PORT: 8008 # This must match with traefik's loadbalancer label
CONTINUWUITY_WELL_KNOWN: |
{
client=https://${FQDN_MATRIX},
server=${FQDN_MATRIX}:443
}
networks:
- proxy
labels:
- traefik.enable=true
- traefik.http.services.continuwuation.loadbalancer.server.port=8008
- traefik.http.routers.continuwuation.entrypoints=https
- traefik.http.routers.continuwuation.rule=Host(`${FQDN_MATRIX}`)
- traefik.http.routers.continuwuation.middlewares=cors-headers@docker,matrix-headers@docker
- traefik.http.middlewares.cors-headers.headers.accessControlAllowOriginList=*
- traefik.http.middlewares.cors-headers.headers.accessControlAllowHeaders=Origin,
X-Requested-With, Content-Type, Accept, Authorization
- traefik.http.middlewares.cors-headers.headers.accessControlAllowMethods=GET,
POST, PUT, DELETE, OPTIONS
- traefik.http.middlewares.matrix-headers.headers.customrequestheaders.X-Forwarded-Proto=https
volumes:
continuwuation_db: {}
configs:
resolv_conf:
content: |
nameserver 1.0.0.1
nameserver 1.1.1.1
element_config:
content: |
{
"default_server_config": {
"m.homeserver": {
"base_url": "https://${FQDN_MATRIX}"
},
"m.identity_server": {
"base_url": "https://vector.im"
}
},
"disable_custom_urls": false,
"disable_guests": false,
"disable_login_language_selector": false,
"disable_3pid_login": false,
"brand": "Element",
"integrations_ui_url": "http://localhost:8011/element",
"integrations_rest_url": "http://localhost:8011/api/v1/scalar",
"integrations_widgets_urls": [
"http://localhost:8011/widgets"
],
"bug_report_endpoint_url": "https://element.io/bugreports/submit",
"defaultCountryCode": "GB",
"showLabsSettings": false,
"features": {
"feature_pinning": true
},
"default_federate": true,
"default_theme": "light",
"roomDirectory": {
"servers": [
"matrix.org"
]
},
"piwik": false,
"enable_presence_by_hs_url": {
"https://matrix.org": false,
"https://matrix-client.matrix.org": false
},
"settingDefaults": {
"breadcrumbs": true
},
"jitsi": {
"preferredDomain": "jitsi.riot.im"
}
}
networks:
proxy:
external: true
| 1 | services: |
| 2 | element: |
| 3 | image: vectorim/element-web |
| 4 | container_name: element_web |
| 5 | restart: unless-stopped |
| 6 | configs: |
| 7 | - source: element_config |
| 8 | target: /app/config.json |
| 9 | mode: "0444" |
| 10 | networks: |
| 11 | - proxy |
| 12 | labels: |
| 13 | - traefik.enable=true |
| 14 | - traefik.http.services.element.loadbalancer.server.port=80 |
| 15 | - traefik.http.routers.element.entrypoints=https |
| 16 | - traefik.http.routers.element.rule=Host(`${FQDN_ELEMENT}`) |
| 17 | continuwuation: |
| 18 | image: forgejo.ellis.link/continuwuation/continuwuity:latest |
| 19 | container_name: continuwuation |
| 20 | init: true |
| 21 | restart: unless-stopped |
| 22 | command: /sbin/conduwuit |
| 23 | volumes: |
| 24 | - continuwuation_db:/var/lib/continuwuity |
| 25 | configs: |
| 26 | - source: resolv_conf |
| 27 | target: /etc/resolv.confg |
| 28 | mode: "0400" |
| 29 | environment: |
| 30 | RUST_BACKTRACE: full |
| 31 | CONTINUWUITY_SERVER_NAME: ${FQDN_MATRIX} |
| 32 | CONTINUWUITY_DATABASE_PATH: /var/lib/continuwuity |
| 33 | CONTINUWUITY_ADDRESS: 0.0.0.0 |
| 34 | CONTINUWUITY_ALLOW_REGISTRATION: false |
| 35 | CONTINUWUITY_ALLOW_FEDERATION: true |
| 36 | CONTINUWUITY_ALLOW_CHECK_FOR_UPDATES: true |
| 37 | CONTINUWUITY_TRUSTED_SERVERS: '["matrix.org"]' |
| 38 | CONDUWUIT_TRUSTED_PROXIES: 127.0.0.1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 |
| 39 | CONTINUWUITY_PORT: 8008 # This must match with traefik's loadbalancer label |
| 40 | CONTINUWUITY_WELL_KNOWN: | |
| 41 | { |
| 42 | client=https://${FQDN_MATRIX}, |
| 43 | server=${FQDN_MATRIX}:443 |
| 44 | } |
| 45 | networks: |
| 46 | - proxy |
| 47 | labels: |
| 48 | - traefik.enable=true |
| 49 | - traefik.http.services.continuwuation.loadbalancer.server.port=8008 |
| 50 | - traefik.http.routers.continuwuation.entrypoints=https |
| 51 | - traefik.http.routers.continuwuation.rule=Host(`${FQDN_MATRIX}`) |
| 52 | - traefik.http.routers.continuwuation.middlewares=cors-headers@docker,matrix-headers@docker |
| 53 | - traefik.http.middlewares.cors-headers.headers.accessControlAllowOriginList=* |
| 54 | - traefik.http.middlewares.cors-headers.headers.accessControlAllowHeaders=Origin, |
| 55 | X-Requested-With, Content-Type, Accept, Authorization |
| 56 | - traefik.http.middlewares.cors-headers.headers.accessControlAllowMethods=GET, |
| 57 | POST, PUT, DELETE, OPTIONS |
| 58 | - traefik.http.middlewares.matrix-headers.headers.customrequestheaders.X-Forwarded-Proto=https |
| 59 | volumes: |
| 60 | continuwuation_db: {} |
| 61 | configs: |
| 62 | resolv_conf: |
| 63 | content: | |
| 64 | nameserver 1.0.0.1 |
| 65 | nameserver 1.1.1.1 |
| 66 | element_config: |
| 67 | content: | |
| 68 | { |
| 69 | "default_server_config": { |
| 70 | "m.homeserver": { |
| 71 | "base_url": "https://${FQDN_MATRIX}" |
| 72 | }, |
| 73 | "m.identity_server": { |
| 74 | "base_url": "https://vector.im" |
| 75 | } |
| 76 | }, |
| 77 | "disable_custom_urls": false, |
| 78 | "disable_guests": false, |
| 79 | "disable_login_language_selector": false, |
| 80 | "disable_3pid_login": false, |
| 81 | "brand": "Element", |
| 82 | "integrations_ui_url": "http://localhost:8011/element", |
| 83 | "integrations_rest_url": "http://localhost:8011/api/v1/scalar", |
| 84 | "integrations_widgets_urls": [ |
| 85 | "http://localhost:8011/widgets" |
| 86 | ], |
| 87 | "bug_report_endpoint_url": "https://element.io/bugreports/submit", |
| 88 | "defaultCountryCode": "GB", |
| 89 | "showLabsSettings": false, |
| 90 | "features": { |
| 91 | "feature_pinning": true |
| 92 | }, |
| 93 | "default_federate": true, |
| 94 | "default_theme": "light", |
| 95 | "roomDirectory": { |
| 96 | "servers": [ |
| 97 | "matrix.org" |
| 98 | ] |
| 99 | }, |
| 100 | "piwik": false, |
| 101 | "enable_presence_by_hs_url": { |
| 102 | "https://matrix.org": false, |
| 103 | "https://matrix-client.matrix.org": false |
| 104 | }, |
| 105 | "settingDefaults": { |
| 106 | "breadcrumbs": true |
| 107 | }, |
| 108 | "jitsi": { |
| 109 | "preferredDomain": "jitsi.riot.im" |
| 110 | } |
| 111 | } |
| 112 | networks: |
| 113 | proxy: |
| 114 | external: true |
| 115 |