installation

This page describes how to install, maintain and develop Conzept on your own system(s).

step 1: Get the Conzept source

sudo apt install -y git unzip
git clone --depth 1 https://github.com/waldenn/conzept.git
cd conzept
cp settings.conf.example settings.conf

step 2: Configure Conzept

Now edit the Conzept settings file for your system. The available settings are described here.

You must set the “CONZEPT_HOSTNAME” and “CONZEPT_EMAIL” (required for the HTTPS certificate).

vi settings.conf

step 3: Install docker

Docker logo
cd scripts
./docker_install_ubuntu.sh

[ NOTE: You now need to logout and then login again after running this script, to make sure the group permission are active. ]

[ TODO: Add support for Apple macOS ]

step 4: Build the docker image

Build the Conzept docker image:

docker compose build

Run the docker image and create a correct HTTPs certificate:

cd scripts
sudo ./init-https.sh

docker-based local-development

Set “CONZEPT_HOSTNAME=localhost” in settings.conf

Optionally: In “docker-compose.yml” uncomment the app-volume-mapping lines during development.

Optionally: Prevent fetching the Wikipedia-covers, by setting “CONZEPT_COVER_FETCH” to “false”. (FIXME: not yet working!)

Optionally: Set “CONZEPT_STAGING” to “true”, to avoid hitting CertBot request-limits while testing the “init-https.sh” command.

Build and update the running Conzept docker image:

cd scripts
./cached_local_build_update.sh

updating production

  • Commit any production changes to the Git first.
    • Check: Set “staging” to “0” in “init-https.sh”
  • On the production server:
cd scripts
./git_build_update.sh
  • TODO: Handle existing settings
...
  • Build the Conzept docker image:
docker compose build
  • Restart the Docker image:
docker compose up -d

common docker commands

  • Fetch an image:
    • docker pull [image-name:image-version]
  • List installed images:
    • docker images
  • Build an image:
    • docker compose build
  • Build an image, without any cache:
    • docker compose build –no-cache
  • Remove an image:
    • docker rmi -f conzept
  • Create a new container (from an image)
    • docker run -d –name conzept
  • Start/stop a container:
    • docker compose down
    • docker stop conzept
    • docker start conzept
  • List running containers:
    • docker ps
  • Run a command within a container (note: no data persistence between start/stops):
    • docker exec -it conzept /bin/bash
  • start/stop/restart Docker:
    • sudo service docker stop
    • sudo rm /var/lib/docker/network/files/local-kv.db (use in case of connection-already-in-use)
    • sudo service docker start
    • sudo systemctl restart docker
  • “permission denied” issues on Ubuntu (*):
    • sudo aa-remove-unknown
    • docker container kill $(docker ps -q)
  • cleanup your docker system
    • docker system prune
    • docker system prune –all –volumes