Local docker-compose based development Setup for CAcert software
Go to file
2020-12-22 15:51:13 +01:00
docker Add cats to the docker-compose setup 2020-12-22 15:51:13 +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 cats to the docker-compose setup 2020-12-22 15:51:13 +01:00
cats.Dockerfile Add cats to the docker-compose setup 2020-12-22 15:51:13 +01:00
docker-compose.yml Add cats to the docker-compose setup 2020-12-22 15:51:13 +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 cats to the docker-compose setup 2020-12-22 15:51:13 +01:00
mgr.Dockerfile Add cats to the docker-compose setup 2020-12-22 15:51:13 +01:00
README.md Add test mgr setup 2020-12-22 08:49:18 +01:00
setup_test_ca.sh Add cats to the docker-compose setup 2020-12-22 15:51:13 +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.