Files
iiEasy/deploy-nomad.sh

66 lines
2.0 KiB
Bash
Raw Permalink Normal View History

#!/bin/bash
# Deploy iiEasy to Nomad
# Usage:
# export NOMAD_ADDR=http://192.168.1.16:4646
# export NOMAD_HOST=192.168.1.16
# export NOMAD_USER=its
# ./deploy-nomad.sh
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
NOMAD_HOST="${NOMAD_HOST:-192.168.1.16}"
NOMAD_USER="${NOMAD_USER:-its}"
NOMAD_ADDR="${NOMAD_ADDR:-http://${NOMAD_HOST}:4646}"
STRAPI_PUBLIC_URL="${STRAPI_PUBLIC_URL:-http://${NOMAD_HOST}:1337}"
echo "=== iiEasy Nomad Deploy ==="
echo "Nomad: $NOMAD_ADDR"
echo "Strapi URL (for frontend): $STRAPI_PUBLIC_URL"
echo ""
# 1. Build Docker images
echo "Building frontend..."
docker build --build-arg VITE_STRAPI_URL="$STRAPI_PUBLIC_URL" -t iieasy-frontend:latest .
echo "Building Strapi..."
docker build -t iieasy-strapi:latest ./iiEasy
# 2. Save images and copy to Nomad node
echo "Saving images..."
docker save iieasy-frontend:latest iieasy-strapi:latest -o /tmp/iieasy-images.tar
echo "Copying to $NOMAD_USER@$NOMAD_HOST..."
scp /tmp/iieasy-images.tar "$NOMAD_USER@$NOMAD_HOST:/tmp/"
# 3. On remote: load images, create dirs, run job
echo "Loading images and deploying on Nomad node..."
ssh "$NOMAD_USER@$NOMAD_HOST" bash -s << REMOTE
set -e
docker load -i /tmp/iieasy-images.tar
rm -f /tmp/iieasy-images.tar
# Create host volume dirs (if using client-host-volumes.hcl.example)
sudo mkdir -p /opt/nomad/iieasy/postgres-data /opt/nomad/iieasy/uploads
sudo chown -R 999:999 /opt/nomad/iieasy/postgres-data 2>/dev/null || true
sudo chmod -R 755 /opt/nomad/iieasy/postgres-data /opt/nomad/iieasy/uploads
echo "Images loaded. Run 'nomad job run' from a machine with Nomad CLI."
REMOTE
# 4. Run Nomad job (from local machine if nomad CLI and NOMAD_ADDR are set)
if command -v nomad &>/dev/null; then
echo ""
echo "Submitting Nomad job..."
export NOMAD_ADDR
nomad job run nomad/iieasy.nomad.hcl
echo ""
echo "Done. Check: nomad job status iieasy"
else
echo ""
echo "Nomad CLI not found. Copy nomad/ to the server and run:"
echo " NOMAD_ADDR=http://127.0.0.1:4646 nomad job run iieasy.nomad.hcl"
fi