aboutsummaryrefslogtreecommitdiffstats
path: root/services/radicale/fs/sbin
diff options
context:
space:
mode:
authorThomas Vanbesien <tvanbesi@proton.me>2026-06-03 17:12:58 +0200
committerThomas Vanbesien <tvanbesi@proton.me>2026-06-03 17:48:25 +0200
commitba3a7bc94421f93818f9196bd8a2c32eb7d9d940 (patch)
tree952392f7cce20e3848caefbf98ec8316894cc1ca /services/radicale/fs/sbin
parent9d6c353c5ef82f862ad06ef84b13e65567997201 (diff)
downloadnet_services-ba3a7bc94421f93818f9196bd8a2c32eb7d9d940.tar.gz
net_services-ba3a7bc94421f93818f9196bd8a2c32eb7d9d940.zip
feat: better initialization script
Rename `tools/build` → `net_services` `net_services` can be run from anywhere (previously it was not creating the fs archives in the right place). It also creates the directories specified in `.env`, generate a self-signed certificate if no certificate is available, initialize the first Radicale user if missing, and copy example configuration files if missing for cgit. `generate_self_signed_cert` has been removed (its code is in `net_services`)
Diffstat (limited to 'services/radicale/fs/sbin')
-rwxr-xr-xservices/radicale/fs/sbin/cmd.sh33
1 files changed, 33 insertions, 0 deletions
diff --git a/services/radicale/fs/sbin/cmd.sh b/services/radicale/fs/sbin/cmd.sh
new file mode 100755
index 0000000..4d09e75
--- /dev/null
+++ b/services/radicale/fs/sbin/cmd.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+set -eu
+
+conf=/etc/radicale/conf.ini
+
+if [ ! -d /data/collections/.git ]; then
+ # Initialize git repository (for storage)
+ echo "Starting server..."
+ /venv/bin/radicale --config "$conf" --logging-level error &
+ radicale_pid=$!
+ echo "Waiting for server to start..."
+ until curl -sf http://127.0.0.1:5232; do sleep 1; done
+ echo "Server started"
+
+ cd /data/collections
+ git init --initial-branch=radicale
+ git config user.name radicale
+ git config user.email radicale@domain.tld
+ cat <<EOF >.gitignore
+.Radicale.cache
+.Radicale.lock
+.Radicale.tmp-*
+EOF
+ git add -A && (git diff --cached --quiet || git commit -m "Initialization commit")
+
+ echo "Restarting server..."
+ kill "$radicale_pid"
+ wait "$radicale_pid"
+else
+ echo "Initialization skipped"
+fi
+
+exec /venv/bin/radicale --config "$conf"