Okupa mi coche - Docker containers for the backend
Guide for seting up a local development environment for the backend.
Setup
- Install Docker in local machine
- Add following line to /etc/hosts
127.0.0.1 okupamicoche-keycloak okupamicoche-synapse
- Create docker network okupamicoche
docker network create okupamicoche
- Run dockerized Keycloak
cd docker/keycloak
docker run --name okupamicoche-keycloak -p 8443:8443 -v $(pwd)/https:/etc/x509/https \
-e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin --network=okupamicoche \
-e KEYCLOAK_IMPORT=/tmp/realm.json -v $(pwd)/okupamicoche-realm-export.json:/tmp/realm.json quay.io/keycloak/keycloak:16.1.0
- Build Synapse container
cd docker/synape
docker build -t okupamicoche-synapse .
- Generate data folder for Synapse
docker run -it --rm \
--mount type=volume,src=synapse-data,dst=/data \
-e SYNAPSE_SERVER_NAME=okupamicoche-synapse \
-e SYNAPSE_REPORT_STATS=no \
okupamicoche-synapse generate
- Run dockerized Synapse
docker run --name okupamicoche-synapse -p 8008:8008 --mount type=volume,src=synapse-data,dst=/data \
-e SYNAPSE_CONFIG_PATH=/homeserver.yaml \
-v $(pwd)/homeserver.yaml:/homeserver.yaml -v $(pwd)/okupamicoche-appservice.yaml:/okupamicoche-appservice.yaml \
--network=okupamicoche okupamicoche-synapse
- (Optional) Add keycloak certificate to local machine Some clients (Quaternion, Nheko) fail with self-signed certificates. You can install the root certificate (docker/synape/keycloak-root.crt) in you local machine. For example, in Linux:
sudo cp docker/synapse/keycloak-root.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
Run
docker start okupamicoche-keycloak
docker start okupamicoche-synapse
Inspect containter
docker exec -t -i okupamicoche-synapse /bin/bash
Manage Keycloak
Go to https://localhost:8443/auth/admin and login with user=admin pass=admin
Renew/create SSL certificates for development
- Install mkcert from https://github.com/FiloSottile/mkcert
- Create and install CA root certificate
mkcert -install
3. Create certificate for Keycloak
mkcert okupamicoche-keycloak localhost 127.0.0.1 ::1
4. Copy okupamicoche-keycloak+3.pem to docker/keycloak/https/tls.crt
5. Copy okupamicoche-keycloak+3-key.pem to docker/keycloak/https/tls.key
6. Copy /usr/local/share/ca-certificates/mkcert_development_CA_*.crt to docker/synapse/keycloak-root.crt