#!/usr/bin/env bash # Create the app DB + role + TimescaleDB extension, write the env file. set -euo pipefail DBPASS=$(openssl rand -hex 24) # role (create or reset password) sudo -u postgres psql -c "CREATE ROLE hbcloud LOGIN PASSWORD '$DBPASS';" 2>/dev/null \ || sudo -u postgres psql -c "ALTER ROLE hbcloud LOGIN PASSWORD '$DBPASS';" # database sudo -u postgres psql -tAc "SELECT 1 FROM pg_database WHERE datname='cannabuddy'" | grep -q 1 \ || sudo -u postgres createdb -O hbcloud cannabuddy # timescaledb extension sudo -u postgres psql -d cannabuddy -v ON_ERROR_STOP=1 -c "CREATE EXTENSION IF NOT EXISTS timescaledb;" >/dev/null # env file (root-only) — the app + go-auth read DATABASE_URL from here mkdir -p /etc/cannabuddy touch /etc/cannabuddy/cloud.env && chmod 600 /etc/cannabuddy/cloud.env grep -q '^DATABASE_URL=' /etc/cannabuddy/cloud.env 2>/dev/null \ && sed -i "s#^DATABASE_URL=.*#DATABASE_URL=postgres://hbcloud:$DBPASS@127.0.0.1:5432/cannabuddy#" /etc/cannabuddy/cloud.env \ || echo "DATABASE_URL=postgres://hbcloud:$DBPASS@127.0.0.1:5432/cannabuddy" >> /etc/cannabuddy/cloud.env echo "OK — DB cannabuddy + role hbcloud ready, timescaledb extension on" sudo -u postgres psql -d cannabuddy -tAc "SELECT extname, extversion FROM pg_extension WHERE extname='timescaledb';" echo "DATABASE_URL=postgres://hbcloud:$DBPASS@127.0.0.1:5432/cannabuddy"