diff --git a/deploy.sh b/deploy.sh index a90cc30..3184fa7 100755 --- a/deploy.sh +++ b/deploy.sh @@ -1,7 +1,6 @@ #!/bin/bash # Deploy FreeTAKServer to Proxmox container 111 on askaban -set -e ASKABAN_IP="192.168.0.152" CONTAINER_ID="111" @@ -9,7 +8,6 @@ REMOTE_DIR="/root/tac-aware" echo "=== TacAware FreeTAKServer Deployment ===" echo "Target: ${ASKABAN_IP}, Container: ${CONTAINER_ID}" -echo # Check if .env exists if [ ! -f .env ]; then @@ -19,32 +17,41 @@ if [ ! -f .env ]; then exit 1 fi -# Copy files to container 111 on askaban -echo "Copying files to container ${CONTAINER_ID}..." -ssh root@${ASKABAN_IP} "pct exec ${CONTAINER_ID} -- mkdir -p ${REMOTE_DIR}" - -# Create tar archive and copy to container +# Create tar archive +echo "Creating archive..." tar --exclude='.git' --exclude='node_modules' --exclude='.env' \ - -czf /tmp/tac-aware.tar.gz -C /root/dev/tac-aware . + -czf /tmp/tac-aware.tar.gz . -ssh root@${ASKABAN_IP} "pct exec ${CONTAINER_ID} -- mkdir -p /tmp/deploy && \ - cd /tmp/deploy && tar -xzf -" < /tmp/tac-aware.tar.gz +# Copy to askaban +echo "Copying to askaban..." +scp /tmp/tac-aware.tar.gz root@${ASKABAN_IP}:/tmp/ -# Copy extracted files to correct location in container -ssh root@${ASKABAN_IP} "pct exec ${CONTAINER_ID} -- bash -c 'cp -r /tmp/deploy/* ${REMOTE_DIR}/ 2>/dev/null || true'" +# Execute deployment on askaban +ssh root@${ASKABAN_IP} "bash -s" << 'ENDSSH' +CONTAINER_ID="111" +REMOTE_DIR="/root/tac-aware" -# Deploy on container -echo "Starting deployment in container..." -ssh root@${ASKABAN_IP} << EOF -pct exec ${CONTAINER_ID} -- bash -c "cd ${REMOTE_DIR} && \ - docker compose down && \ - docker compose pull && \ - docker compose up -d && \ - echo '=== Containers Status ===' && \ - docker ps" -EOF +# 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 echo "Deployment complete!" -echo "FreeTAKServer UI should be available at: http://${FTS_IP:-192.168.0.152}:5000" -echo "FreeTAKServer ports: 8080, 8087, 8089, 8443, 9000, 19023"