Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .agents/resume
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/usr/bin/env bash
set -euo pipefail

if pg_isready -q; then
echo "PostgreSQL is ready."
exit 0
fi

echo "Starting PostgreSQL..."
sudo service postgresql start >/dev/null
pg_isready -q
echo "PostgreSQL is ready."
55 changes: 55 additions & 0 deletions .agents/setup
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#!/usr/bin/env bash
set -euo pipefail

repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$repo_root"

echo "==> Installing PostgreSQL when needed"
if ! command -v psql >/dev/null 2>&1; then
sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y postgresql postgresql-client
fi

echo "==> Starting PostgreSQL"
sudo service postgresql start >/dev/null

echo "==> Creating the local development database"
if ! sudo -u postgres psql -tAc "SELECT 1 FROM pg_roles WHERE rolname = 'umami'" | grep -q 1; then
sudo -u postgres psql -v ON_ERROR_STOP=1 -c "CREATE ROLE umami LOGIN PASSWORD 'umami'"
else
sudo -u postgres psql -v ON_ERROR_STOP=1 -c "ALTER ROLE umami WITH LOGIN PASSWORD 'umami'" >/dev/null
fi
if ! sudo -u postgres psql -tAc "SELECT 1 FROM pg_database WHERE datname = 'umami'" | grep -q 1; then
sudo -u postgres createdb --owner=umami umami
fi

echo "==> Configuring the local development environment"
touch .env
if ! grep -Eq '^[[:space:]]*DATABASE_URL=' .env; then
cat >> .env <<'EOF'

# Local database created by .agents/setup
DATABASE_URL=postgresql://umami:umami@localhost:5432/umami
EOF
fi

echo "==> Enabling the repository-pinned pnpm"
mkdir -p "$HOME/.local/bin"
corepack enable pnpm --install-directory "$HOME/.local/bin"

echo "==> Installing JavaScript dependencies"
pnpm install --frozen-lockfile

echo "==> Generating database clients and applying migrations"
pnpm build-db
pnpm update-db

echo "==> Building development assets"
pnpm build-tracker
if [ ! -f geo/GeoLite2-City.mmdb ]; then
pnpm build-geo
else
echo "GeoIP database already exists."
fi

echo "==> Orb setup complete"