Added a systemd unit file to the distribution
authorArt Cancro <ajc@citadel.org>
Wed, 11 Aug 2021 03:50:30 +0000 (23:50 -0400)
committerArt Cancro <ajc@citadel.org>
Wed, 11 Aug 2021 03:50:30 +0000 (23:50 -0400)
citadel.service [new file with mode: 0644]
run-citadel.sh

diff --git a/citadel.service b/citadel.service
new file mode 100644 (file)
index 0000000..4fcdc5c
--- /dev/null
@@ -0,0 +1,17 @@
+# Put this in /etc/systemd/system/citadel.service for the easiest installation ever!
+
+[Unit]
+Description=Citadel Server
+After=network.target
+Requires=docker.service
+ExecStartPre=-/usr/bin/mkdir /usr/local/citadel
+
+[Service]
+ExecStart=/usr/bin/docker run -i --rm --network host --volume=/usr/local/citadel:/citadel-data citadeldotorg/citadel:latest
+ExecReload=/bin/kill
+KillMode=process
+Restart=on-failure
+LimitCORE=infinity
+
+[Install]
+WantedBy=multi-user.target
index 398c779bd002777e2eaeab36fdc948c3811df6d4..8b1ede55a8381774a856da68f01fce5bf34886e2 100755 (executable)
@@ -5,14 +5,12 @@
 # The container expects a persistent volume called "citadel-data" in which it will keep everything.
 # The remainder of the container is ephermal and can be deleted at any time.
 
-
-# Parse the command line arguments
-
 migrate_mode=false
 database_cleanup_mode=false
 volume_mode=false
 bind_mode=false
 
+# Parse the command line arguments
 while getopts ":mdv:h:" o
 do
        case "${o}" in
@@ -56,8 +54,9 @@ elif ${bind_mode} ; then
        CTDL_VOL=bind
 else
        volume_mode=true
-       CTDL_VOL=volume
-       CTDL_DIR=citadel-data
+       CTDL_VOL=bind
+       CTDL_DIR=/usr/local/citadel
+       mkdir /usr/local/citadel >/dev/null 2>/dev/null
 fi
 
 if ( ${migrate_mode} && ${database_cleanup_mode} ) ; then
@@ -65,7 +64,7 @@ if ( ${migrate_mode} && ${database_cleanup_mode} ) ; then
        exit 3
 fi
 
-docker run -it --rm $1 -c || exit 1
+docker run -i --rm citadel -c || exit 1
 
 n_args=""
 c_args=""
@@ -80,16 +79,9 @@ fi
 
 exec docker run \
        --name citadel \
-       -it \
+       -i \
        --rm \
        ${n_args} \
        --mount type=${CTDL_VOL},source=${CTDL_DIR},target=/citadel-data \
-       $1 ${c_args}
-
-#      Explanation of the above options:
-#
-#      --name citadel                  Create a container named "citadel"
-#      -it                             Run in the foreground
-#      --rm                            Delete the container when it exits
-#      --network host                  Bind directly to the host's network ports instead of creating a separate interface
-#      --mount                         This identifies where on the host our persistent Citadel database is found
+       citadel \
+       ${c_args}