Houroux's picture
Publish Render-ready Polymarket collector
e2ce547 verified
Raw
History Blame Contribute Delete
1.97 kB
#!/usr/bin/env bash
set -euo pipefail
SOURCE_DIR="${1:-}"
INSTALL_DIR=/opt/polymarket-collector
DATA_DIR=/var/lib/polymarket-collector
ENV_FILE=/etc/polymarket-collector.env
if [[ -z "$SOURCE_DIR" || ! -f "$SOURCE_DIR/pyproject.toml" ]]; then
echo "Usage: sudo $0 /path/to/polymarket-collector" >&2
exit 2
fi
if [[ "${EUID}" -ne 0 ]]; then
echo "This installer must run as root." >&2
exit 2
fi
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install -y --no-install-recommends \
ca-certificates python3 python3-pip python3-venv rclone
if ! id polymarket >/dev/null 2>&1; then
useradd --system --home-dir "$DATA_DIR" --create-home \
--shell /usr/sbin/nologin polymarket
fi
mkdir -p "$INSTALL_DIR" "$DATA_DIR"
cp -a "$SOURCE_DIR/." "$INSTALL_DIR/"
python3 -m venv "$INSTALL_DIR/.venv"
"$INSTALL_DIR/.venv/bin/pip" install --no-cache-dir --upgrade pip
"$INSTALL_DIR/.venv/bin/pip" install --no-cache-dir "$INSTALL_DIR"
if [[ ! -f "$ENV_FILE" ]]; then
cp "$INSTALL_DIR/.env.example" "$ENV_FILE"
fi
chown root:polymarket "$ENV_FILE"
chmod 0640 "$ENV_FILE"
chown -R polymarket:polymarket "$DATA_DIR"
install -m 0644 "$INSTALL_DIR/deploy/polymarket-collector.service" \
/etc/systemd/system/polymarket-collector.service
install -m 0644 "$INSTALL_DIR/deploy/polymarket-backup.service" \
/etc/systemd/system/polymarket-backup.service
install -m 0644 "$INSTALL_DIR/deploy/polymarket-backup.timer" \
/etc/systemd/system/polymarket-backup.timer
install -m 0755 "$INSTALL_DIR/scripts/polymarket-backup" \
/usr/local/sbin/polymarket-backup
systemctl daemon-reload
systemctl enable --now polymarket-collector.service
echo
echo "Collector installed."
echo "Status: systemctl status polymarket-collector"
echo "Logs: journalctl -u polymarket-collector -f"
echo "Health: curl http://127.0.0.1:8080/healthz"
echo "Drive: run 'sudo rclone config', set RCLONE_REMOTE in $ENV_FILE,"
echo " then enable polymarket-backup.timer."