#Installatie:
You only need to expose port 443 (HTTPS) on your public IP.
All Matrix client communication and server-to-server federation is done over HTTPS.

Dus ingressroute van entrypoint 443 naar poort 8008 is voldoende. 
Je hoeft niks open te zetten op de internet router

#configuratie STUN & TURN:

als je de container directory "data" mount op een pvc dan vind je daar de bestanden:

homeserver.db      homeserver.db-wal  matrix-lp.allarddcs.nl.log.config   media_store
homeserver.db-shm  homeserver.yaml    matrix-lp.allarddcs.nl.signing.key

homeserver.yaml bevat:

turn_uris:
  - "turn:coturn-lp.allarddcs.nl:3478?transport=udp"
  - "turn:coturn-lp.allarddcs.nl:3478?transport=tcp"
stun_uris:
  - "stun:stun.l.google.com:19302"
  - "stun:stun1.l.google.com:19302"
  - "stun:stun2.l.google.com:19302"

#registratie admin:

kubectl exec -it matrix-644984f6b7-d7jcp -n matrix -- register_new_matrix_user http://localhost:8008  -u admin -p Matrix01@ \
        -a -k f0hE.OTU8UXQ44yIHPWtO+8CKhM-b:QZNngk_qhE8EvgmP-3h@

#registratie gewone gebruiker:

kubectl exec -it matrix-644984f6b7-d7jcp -n matrix -- register_new_matrix_user http://localhost:8008  -u diederick -p Matrix01@ \
        --no-admin -k f0hE.OTU8UXQ44yIHPWtO+8CKhM-b:QZNngk_qhE8EvgmP-3h@

#algemeen:

usage: register_new_matrix_user [-h] [-u USER] [--exists-ok] [-p PASSWORD | --password-file PASSWORD_FILE] [-t USER_TYPE]                                [-a | --no-admin] (-c CONFIG | -k SHARED_SECRET)
                                [server_url]

Used to register new users with a given homeserver when registration has been disabled. The homeserver must be configured with
the 'registration_shared_secret' option set.

positional arguments:
  server_url            URL to use to talk to the homeserver. By default, tries to find a suitable URL from the configuration
                        file. Otherwise, defaults to 'http://localhost:8008'.

options:
  -h, --help            show this help message and exit
  -u USER, --user USER  Local part of the new user. Will prompt if omitted.
  --exists-ok           Do not fail if user already exists.
  -p PASSWORD, --password PASSWORD
                        New password for user. Will prompt for a password if this flag and `--password-file` are both omitted.
  --password-file PASSWORD_FILE
                        File containing the new password for user. If set, will override `--password`.
  -t USER_TYPE, --user_type USER_TYPE
                        User type as specified in synapse.api.constants.UserTypes
  -a, --admin           Register new user as an admin. Will prompt if --no-admin is not set either.
  --no-admin            Register new user as a regular user. Will prompt if --admin is not set either.
  -c CONFIG, --config CONFIG
                        Path to server config file. Used to read in shared secret.
  -k SHARED_SECRET, --shared-secret SHARED_SECRET
                        Shared secret as defined in server config file.
#COTURN:

#check udp:

nc -zvu coturn-lp.allarddcs.nl 3478
nc -zv coturn-lp.allarddcs.nl 3478
nc -zv coturn-lp.allarddcs.nl 5349

#checken certificaat:
kubectl describe secret coturn-cert -n matrix

#HOOKSHOT


#passkey genereren en in secret zetten. Passkey wordt gebruikt om andere sleutels versleuteld op te slaan.

openssl genpkey -out passkey.pem -outform PEM -algorithm RSA -pkeyopt rsa_keygen_bits:4096
kubectl -n matrix create secret generic hookshot-passkey --from-file=passkey.pem

#opvragen access token:

curl -X POST "https://matrix-lp.allarddcs.nl/_matrix/client/v3/login"   -H "Content-Type: application/json"   -d '{
    "type": "m.login.password",
    "user": "admin",
    "password": "Matrix01@"
  }'

syt_YWRtaW4_laSGClQJFMQNKKjqyfVj_1XLp4x

#room aanmaken:

curl -k -X POST \
  -H "Authorization: Bearer syt_YWRtaW4_bUqQKyFkonSgjkghnuxY_4IsleV" \
  -H "Content-Type: application/json" \
  -d '{"name":"harbor","preset":"private_chat"}' \
  "https://matrix-lp.allarddcs.nl/_matrix/client/v3/createRoom"

{"room_id":"!AmeLKsUWrKBIkosFbY:matrix-lp.allarddcs.nl"}

#toevoegen hookshot bot aan room:

curl -X POST \
  -H "Authorization: Bearer syt_YWRtaW4_bUqQKyFkonSgjkghnuxY_4IsleV" \
  -H "Content-Type: application/json" \
  "https://matrix-lp.allarddcs.nl/_synapse/admin/v1/join/AmeLKsUWrKBIkosFbY:matrix-lp.allarddcs.nl" \
  -d '{
    "user_id": "@hookshot:matrix-lp.allarddcs.nl"
  }'

Opmerking: doordat de bot is toegevoegd wordt de status van de room veranderd in: gemanaged door de appservice. 
Daardoor kun je de room niet publiceren en ook geen leden uitnodigen.

#toevoegen allardhook aan room:

curl -k -X POST   -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
   "https://matrix-lp.allarddcs.nl/_synapse/admin/v1/join/!BPcyrRUfYdBJrFVdlV:matrix-lp.allarddcs.nl" \
  -d '{
    "user_id": "@allard:matrix-lp.allarddcs.nl"
  }'

#herstarten hookshot

#transformationFunction in state-event schrijven:

curl -k -X PUT   -H "Authorization: Bearer $ACCESS_TOKEN"   -H "Content-Type: application/json"   "https://matrix-lp.allarddcs.nl/_matrix/client/r0/rooms/!BPcyrRUfYdBJrFVdlV:matrix-lp.allarddcs.nl/state/uk.half-shot.matrix-hookshot.generic.hook/generic-1"   -d @harbor-webhook.json
