26 lines
1.3 KiB
Bash
26 lines
1.3 KiB
Bash
#!/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"
|