Run Powernode locally in 10 minutes.
Status: active
Powernode is open-source mission control for AI agent fleets. This quickstart gets the platform running on a single machine so you can log in, kick the tires, and see the agent surface.
- Prerequisites
- 1. Clone and install dependencies
- 2. Install and start all services
- 3. Access the application
- 4. Create your first user
- Running tests
- Common development tasks
- Code quality
- Architecture at a glance
- Troubleshooting
- Where to go next
| Requirement | Version | Verify Command |
|---|---|---|
| Node.js | 20+ | node --version |
| Ruby | 3.2.8 (pinned) | ruby --version |
| PostgreSQL | 16+ | psql --version |
| Redis | 7+ | redis-server --version |
| Docker | 24+ | docker --version |
A working systemd user session is assumed for the recommended path. If you do not have systemd, see the manual workflow in contributing/development-setup.md.
git clone https://github.com/nodealchemy/powernode-platform.git
cd powernode-platform
# Install gems and packages
cd server && bundle install
cd ../frontend && npm install
cd ../worker && bundle install
cd ..
# Create the database, run migrations, and seed
cd server && bundle exec rails db:create db:migrate db:seed
cd ..The seed step creates the initial admin account plus the AI provider records, skills, and intervention policies the platform needs to boot.
# One-time: install systemd units + config under /etc/powernode/
sudo scripts/systemd/powernode-installer.sh install
# Start backend + worker + worker-web + frontend
sudo systemctl start powernode.target
# Confirm everything came up
sudo scripts/systemd/powernode-installer.sh statusThe installer creates four service units (powernode-backend@default, powernode-worker@default, powernode-worker-web@default, powernode-frontend@default) plus the powernode.target group.
| Service | URL |
|---|---|
| Frontend | http://localhost:5173 |
| Backend API | http://localhost:3000 |
| API health | http://localhost:3000/api/v1/health |
| Sidekiq Web | http://localhost:4567 |
If anything is unreachable, see Troubleshooting.
The seeded admin works for poking around. For routine work, create a personal account:
cd server && bundle exec rails c
User.create!(email: 'dev@example.com', password: 'DevPassword123!', name: 'Developer')Log in at http://localhost:5173 with the credentials you just created.
# Backend tests (RSpec)
cd server && bundle exec rspec --format progress
# Frontend tests
cd frontend && CI=true npm test
# E2E tests (Playwright)
cd frontend && npx playwright test
# Type checking
cd frontend && npx tsc --noEmitLong-form testing guidance lives in guides/testing.md and guides/e2e-testing.md.
- Add the route in
server/config/routes.rb. - Create the controller under
server/app/controllers/api/v1/. - Use the standard response helpers:
render_success(data: { ... }) render_error(message: 'Error', status: :bad_request)
- Add request specs under
server/spec/requests/.
- Create the page under
frontend/src/pages/app/. - Add the route in
frontend/src/App.tsx. - Wrap content in
PageContainerfor consistent layout, breadcrumbs, and actions.
- Create the job under
worker/app/jobs/. - Inherit from
BaseJoband implementexecute. - Enqueue from the server via the worker HTTP API — the server itself does not run Sidekiq.
# Full pre-commit gate (specs + TypeScript + patterns)
./scripts/validate.sh
# Pattern-only sweep
./scripts/quick-pattern-check.sh
# Auto-fix theme + import drift
./scripts/fix-hardcoded-colors.sh
./scripts/cleanup-all-console-logs.shpowernode-platform/
├── server/ Rails 8 API
├── frontend/ React + TypeScript + Tailwind
├── worker/ Standalone Sidekiq
├── extensions/ Submodules (system, supply-chain, marketing public; business, trading private)
├── docs/ You are here
├── scripts/ Dev + ops scripts
└── docker/ Container assets
Deeper reading: concepts/architecture.md.
journalctl -u powernode-backend@default --since "5 min ago" --no-pager
sudo systemctl reset-failed 'powernode-*'
sudo systemctl start powernode.targetcd server
bundle exec rails db:reset # WARNING: drops and recreates the database
bundle exec rails db:migratecd frontend
rm -rf node_modules
npm install
npm run typecheckredis-cli ping # expect: PONGMore common errors live in 04-troubleshooting.md.
- Ship your first agent → 02-first-agent.md
- Understand the extension model → 03-extensions.md
- Read the architecture → ../concepts/architecture.md
- Become a contributor → ../contributing/development-setup.md
docs/QUICKSTART.md
Last verified: 2026-05-17