grove
at @12
1#!/bin/sh
2# Build and run grove on grove.host. Run from the project root: deploy/deploy.sh
3# The server's store is /opt/grove2/data; it's never overwritten here.
4set -eu
5HOST=${GROVE_HOST:-root@grove.host}
6
7rsync -a --delete --exclude target --exclude .grove ./ "$HOST:/opt/grove2/src/"
8ssh "$HOST" sh -eu <<'REMOTE'
9cd /opt/grove2/src
10docker build -q -t grove2 -f deploy/Dockerfile . >/dev/null
11mkdir -p /opt/grove2/data
12docker rm -f grove2 >/dev/null 2>&1 || true
13docker run -d --name grove2 --restart unless-stopped --network grove_default -v /opt/grove2/data:/data grove2 >/dev/null
14cp deploy/grove.caddy /opt/grove/sites/grove.caddy
15mkdir -p /opt/grove/sites/grove2
16cp deploy/grove.routes /opt/grove/sites/grove2/grove.routes
17docker exec grove-caddy-1 caddy reload --config /etc/caddy/Caddyfile --adapter caddyfile
18sleep 1
19docker exec grove2 wget -qO- http://127.0.0.1:4800/api/health
20echo
21REMOTE