Local docker-compose based development Setup for CAcert software
Go to file
Jan Dittberner af156f24c6 Configure mgr and mail containers
This commit configures IMAP to work properly and makes logs of mgr and
dovecot available.
2020-12-22 14:19:31 +01:00
docker Configure mgr and mail containers 2020-12-22 14:19:31 +01:00
.dockerignore Implement docker-compose setup for CAcert software 2020-12-20 14:52:15 +01:00
.editorconfig Add .editorconfig 2020-12-22 06:41:45 +01:00
.gitignore Implement docker-compose setup for CAcert software 2020-12-20 14:52:15 +01:00
.mrconfig Implement docker-compose setup for CAcert software 2020-12-20 14:52:15 +01:00
application.Dockerfile Add test mgr setup 2020-12-22 08:49:18 +01:00
docker-compose.yml Configure mgr and mail containers 2020-12-22 14:19:31 +01:00
imap.Dockerfile Implement docker-compose setup for CAcert software 2020-12-20 14:52:15 +01:00
mail.Dockerfile Configure mgr and mail containers 2020-12-22 14:19:31 +01:00
mariadb.Dockerfile Add test mgr setup 2020-12-22 08:49:18 +01:00
mgr.Dockerfile Configure mgr and mail containers 2020-12-22 14:19:31 +01:00
README.md Add test mgr setup 2020-12-22 08:49:18 +01:00
setup_test_ca.sh Add test mgr setup 2020-12-22 08:49:18 +01:00
smtp.Dockerfile Implement docker-compose setup for CAcert software 2020-12-20 14:52:15 +01:00

CAcert local development setup

This repository contains a local development environment setup for the CAcert software.

Prerequisites

sudo apt-get update
sudo apt-get install docker.io openssl myrepos
sudo adduser $USER docker
newgrp docker
python3 -m pip install --user -U docker-compose
# make sure that ~/.local/bin is in $PATH 

Usage

git clone https://git.dittberner.info/jan/cacert-devsetup.git
cd cacert-devsetup
mr checkout

Create a .env file that defines the following variables

Variable Usage
MYSQL_ROOT_PASSWORD Database root password
MYSQL_APP_USER Database application user
MYSQL_APP_PASSWORD Database application password
CLIENT_CERT_EMAIL email address for client certificate generated by setup_test_ca.sh
CLIENT_CERT_USERNAME user name for client certificate generated by setup_test_ca.sh
CLIENT_CERT_PASSWORD PKCS#12 keystore password for client certificate generated by setup_test_ca.sh
echo -e "MYSQL_ROOT_PASSWORD=$(openssl rand -base64 18)\nMYSQL_APP_USER=cacert_dev\nMYSQL_APP_PASSWORD=$(openssl rand -base64 18)" > .env
./setup_test_ca.sh
docker-compose up

After these steps you should be able to reach the CAcert application at https://test.cacert.localhost:8443/. The test manager application is reachable at https://mgr.cacert.localhost:9443/.

A client certificate is created by setup_test_ca.sh and is placed in testca/certs/clientcert.p12 which can be imported in a browser to support client certificate authentication.