#!/usr/bin/env sh set -eu setup() { packages; firewall; } start() { cd /opt/project stop; docker compose up -d } stop() { cd /opt/project docker compose down send nginx-proxy redis cgit } packages() { apt install \ docker.io docker-buildx docker-compose-v2 \ ufw } firewall() { ufw allow 443/tcp ufw allow 80/tcp ufw allow 22 ufw enable } update() { apt update || true; cd /opt/project && docker compose build --pull } cmd="$1"; shift; case "$cmd" in setup|update|start|stop|firewall|packages) "$cmd" "$@" ;; *) echo "Invalid command: $cmd"; exit 1 ;; esac