aboutsummaryrefslogtreecommitdiff
path: root/setup.sh
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2026-07-04 16:31:13 +0530
committerAkshay Nair <phenax5@gmail.com>2026-07-04 16:31:57 +0530
commitef34b26068c4e25f929a584edda63b8878c063b3 (patch)
treeaaa2445b12807109f265e8869a54f76cb752da9e /setup.sh
parent1569f35ae6cd90b056cb237ba020c69d37ebafb5 (diff)
downloadbacchus-remote-ef34b26068c4e25f929a584edda63b8878c063b3.tar.gz
bacchus-remote-ef34b26068c4e25f929a584edda63b8878c063b3.zip
Create local dockerfiles override to manage send/cgit users/groups
Diffstat (limited to 'setup.sh')
-rwxr-xr-xsetup.sh33
1 files changed, 26 insertions, 7 deletions
diff --git a/setup.sh b/setup.sh
index 3742d48..3f05f3b 100755
--- a/setup.sh
+++ b/setup.sh
@@ -4,37 +4,56 @@ set -eu
ROOT_DIR=${ROOT_DIR:-"/opt/project"}
-setup() { packages; firewall; }
+configure() {
+ configure_user && configure_fs && configure_packages && configure_firewall
+}
services() { cd "$ROOT_DIR"; docker compose --profile services "$@"; }
core() { cd "$ROOT_DIR"; docker compose --profile core "$@"; }
# TODO: use --wait and add health checks
-start() { stop || true; services up -d; }
+start() { stop || true; services up -d "$@"; }
+
+startfg() { stop || true; services up "$@"; }
stop() { services down; }
-packages() {
+configure_packages() {
apt install \
docker.io docker-buildx docker-compose-v2 \
ufw
}
-firewall() {
+configure_firewall() {
ufw allow 443/tcp
ufw allow 80/tcp
ufw allow 22
ufw enable
}
+configure_user() {
+ groupadd -f -g 1001 git
+ useradd --shell /usr/sbin/nologin --no-create-home git --uid 1001 --gid 1001 || true
+ groupadd -f -g 1002 send
+ useradd --shell /usr/sbin/nologin --no-create-home send --uid 1002 --gid 1002 || true
+}
+
+configure_fs() {
+ mkdir -p /git
+ chown -R git:git /git
+ mkdir -p /uploads
+ chown -R send:send /uploads
+}
+
update() {
- apt update;
- services build --pull;
+ apt update
+ services build --pull
}
cmd="$1"; shift;
case "$cmd" in
- setup|update|start|stop|firewall|packages|services|core) "$cmd" "$@" ;;
+ update|start|startfg|stop|services|core) "$cmd" "$@" ;;
+ configure|configure_firewall|configure_user|configure_fs|configure_packages) "$cmd" "$@" ;;
*) echo "Invalid command: $cmd"; exit 1 ;;
esac