#!/bin/bash

sudo mkdir -p /opt/docker/truecommand
sudo chown -R $USER:docker /opt/docker

if ! command -v setfacl &> /dev/null; then
  sudo apt update && sudo apt install acl -y
fi

setfacl -Rm u:$USER:rwx /opt/docker
setfacl -Rm d:$USER:rwx /opt/docker

cat << EOF > docker-compose.yaml
---
version: "3.7"

services:
  app:
    restart: unless-stopped
    image: ixsystems/truecommand
    volumes:
      - /opt/docker/truecommand:/data
    ports:
      - 80:80
      - 443:443

EOF

cat << EOF > update.sh
#!/usr/bin/env bash

echo "Bringing down stack..."
docker compose down

echo "Checking permissions..."
if getfacl /opt/docker/truecommand | grep -q "${USER}"; then
  echo "  Permissions good!"
else
  echo "  Fixing permissions, please provide sudo access"
  sudo setfacl -Rm u:$USER:rwx /opt/docker/truecommand
  sudo setfacl -Rm d:u:$USER:rwx /opt/docker/truecommand
fi

echo "Creating new backup..."
tar cfz backups/$(date +%Y%m%d-%H%M%S).tar.gz /opt/docker/truecommand

echo "Updating stack..."
docker compose pull
docker compose up -d

echo "Deleting backups older than 30 days..."
find backups -type f -mtime +30 -delete

EOF

docker compose pull
docker compose up -d
