This directory contains the tooling necessary to build an OCI compatible container of the Citadel System using Docker. Copyright (c) 2019-2023 by Art Cancro This program is open source software, distributed under the terms of the GNU General Public License, version 3. It runs on the Linux operating system, which uses the Linux kernel. This builds a container that hosts the entire Citadel system, including the Citadel Server, along with WebCit and all supporting libraries. We are containerizing it to make it easy to deploy, not to turn it into a microservice, so please don't bother with the comments about containerizing a monolithic application. The container exposes a multitude of ports and expects a persistent volume to be mounted to /citadel-data , where the database, TLS key/certificate, and any uploaded files will be stored. It also accepts a build variable `branch` which can be set to any valid branch or tag in the git repository from which to build the container. To build the container image, simply run the following command from this directory: docker build -t citadel . The resulting image can be run as a standalone container. It will expose ports for all of the services provided by Citadel Server, and two instances of WebCit (HTTP and HTTPS). Use the "run-citadel.sh" script to start the container, or use it to learn what information needs to be supplied. In particular, you need to map a persistent volume to the data directory, otherwise you will lose all of your data when the container is upgraded.