#!/bin/bash # Deploy FreeTAKServer to Proxmox container 111 on askaban ASKABAN_IP="192.168.0.152" CONTAINER_ID="111" REMOTE_DIR="/root/tac-aware" echo "=== TacAware FreeTAKServer Deployment ===" echo "Target: ${ASKABAN_IP}, Container: ${CONTAINER_ID}" # Check if .env exists if [ ! -f .env ]; then echo "Warning: .env file not found. Creating from .env.example..." cp .env.example .env echo "Please edit .env with your settings before deploying." exit 1 fi # Create tar archive echo "Creating archive..." tar --exclude='.git' --exclude='node_modules' --exclude='.env' \ -czf /tmp/tac-aware.tar.gz . # Copy to askaban echo "Copying to askaban..." scp /tmp/tac-aware.tar.gz root@${ASKABAN_IP}:/tmp/ # Execute deployment on askaban ssh root@${ASKABAN_IP} "bash -s" << 'ENDSSH' CONTAINER_ID="111" REMOTE_DIR="/root/tac-aware" # Create directory in container pct exec ${CONTAINER_ID} -- mkdir -p ${REMOTE_DIR} # Push tar to container and extract pct push ${CONTAINER_ID} /tmp/tac-aware.tar.gz ${REMOTE_DIR}/tac-aware.tar.gz # Extract in container pct exec ${CONTAINER_ID} -- bash -c "cd ${REMOTE_DIR} && tar -xzf tac-aware.tar.gz && rm tac-aware.tar.gz" # Copy .env if exists if [ -f /root/dev/tac-aware/.env ]; then pct push ${CONTAINER_ID} /root/dev/tac-aware/.env ${REMOTE_DIR}/.env fi # Deploy pct exec ${CONTAINER_ID} -- bash -c "cd ${REMOTE_DIR} && docker compose down 2>/dev/null || true && docker compose pull && docker compose up -d" # Show status echo "=== Container Status ===" pct exec ${CONTAINER_ID} -- docker ps ENDSSH echo "Deployment complete!"