powerhour

Self-hosting guide

Powerhour runs on your own infrastructure. You own the database, the credentials, and the data. Follow these steps to get up and running.

Prerequisites

  • Node.js 18 or later
  • PostgreSQL 14 or later
  • Plaid developer account
  • A strong session secret (32+ chars)
1

Clone and configure

Clone the repository, copy .env.example to .env, and fill in your Plaid credentials, database URL, and session secret.

git clone https://github.com/your-username/powerhour
cp .env.example .env
2

Run database migrations

Powerhour uses Drizzle ORM. Run the migration command to create all 16 tables.

npm run db:migrate
3

Start the application

Start in development mode or build for production. Compatible with any Node.js host.

npm run dev
# or: npm run build && npm start
4

Connect your bank

Log in and use the Plaid Link flow to connect financial institutions. Data syncs daily at 06:00 automatically.

Environment variables

Copy .env.example to .env and fill in the following:

VariableDescription
DATABASE_URLPostgreSQL connection string
PLAID_CLIENT_IDFrom the Plaid dashboard
PLAID_SECRETEnvironment-specific Plaid secret
PLAID_ENVsandbox, development, or production
SESSION_SECRET32+ character random string for iron-session
DEMO_MODESet to true to seed demo data on startup (optional)