Awesome-omni-skill konto-deploy

Deploy and run Konto (personal finance dashboard) locally. Use when setting up a new Konto instance, troubleshooting installation, or helping users get started with Konto.

install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/devops/konto-deploy" ~/.claude/skills/diegosouzapw-awesome-omni-skill-konto-deploy && rm -rf "$T"
manifest: skills/devops/konto-deploy/SKILL.md
source content

Konto — Local Deployment

Personal & professional finance dashboard. Bank sync, crypto, investments, budget, tax tools.

Prerequisites

  • Node.js 18+ and npm 9+
  • openssl
    (for encryption key generation)

Installation (3 commands)

git clone https://github.com/angelstreet/konto.git
cd konto
npm install

Configuration

# Create env from template
cp .env.example backend/.env

# Generate and set encryption key
KEY=$(openssl rand -hex 32)
sed -i "s/^DB_ENCRYPTION_KEY=$/DB_ENCRYPTION_KEY=$KEY/" backend/.env

Minimal config (works immediately)

Only

DB_ENCRYPTION_KEY
is required. Everything else is optional.

Optional integrations

FeatureEnv varsSign up
Bank sync
POWENS_CLIENT_ID
,
POWENS_CLIENT_SECRET
,
POWENS_DOMAIN
powens.com
Production auth
CLERK_SECRET_KEY
,
VITE_CLERK_PUBLISHABLE_KEY
clerk.com
Coinbase
COINBASE_CLIENT_ID
,
COINBASE_CLIENT_SECRET
developers.coinbase.com
Google Drive
GOOGLE_CLIENT_ID
,
GOOGLE_CLIENT_SECRET
console.cloud.google.com

Running

# Start both frontend + backend
npm run dev

Sandbox / Demo Mode

Konto auto-seeds demo data for the default user:

  • Bank accounts (checking, savings, investment)
  • Crypto wallets (BTC, ETH, XRP)
  • Investment positions (PEA, Assurance Vie, PER)
  • 14 months of transaction history
  • Real estate and vehicle assets

Just log in and explore — no external API keys needed.

Building for Production

npm run build
# Frontend: serve frontend/dist/ as static files
# Backend: node backend/dist/index.js

Vercel deployment

cd frontend && vercel
cd backend && vercel

Ports

ServicePortURL
Frontend (dev)3004http://localhost:3004/konto/
Backend API5004http://localhost:5004/api/

Troubleshooting

ProblemSolution
ENCRYPTION_KEY
error
Run
openssl rand -hex 32
and set in
backend/.env
Port 3004 in use
lsof -i :3004
to find process, kill or change
VITE_DEV_PORT
Port 5004 in useChange
PORT
in
backend/.env
Clerk errors locallyLeave
CLERK_SECRET_KEY
empty — local dev bypasses Clerk
Empty dashboardLog in as
user/user
— demo data seeds on first backend start
Bank sync not workingRequires Powens API keys (optional for demo)

Tech Stack

LayerTech
FrontendReact 18 + TypeScript + Vite + Tailwind CSS + Recharts
BackendHono + TypeScript + Node.js
DatabaseSQLite (local) or Turso (cloud)
AuthClerk (optional)

API Endpoints (key ones)

EndpointDescription
GET /api/bank/accounts
Bank accounts
GET /api/investments
Investment positions
GET /api/transactions
Transaction history
GET /api/companies
Companies (pro)
GET /api/patrimoine/summary
Net worth summary
GET /api/preferences
User preferences

Full API docs:

docs/API.md
in the repo.