Files
tac-aware/deploy.sh
T
2026-05-03 14:40:32 +02:00

61 lines
1.7 KiB
Bash
Executable File

#!/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
echo "Building FTS image..."
pct exec ${CONTAINER_ID} -- bash -c "cd ${REMOTE_DIR} && docker compose build freetakserver"
pct exec ${CONTAINER_ID} -- bash -c "cd ${REMOTE_DIR} && docker compose down 2>/dev/null || true && docker compose up -d"
# Show status
echo "=== Container Status ==="
pct exec ${CONTAINER_ID} -- docker ps
ENDSSH
echo "Deployment complete!"