Skip to content

Setup

Prerequisites

Before you begin, ensure you have:

  • Node.js 22 or later
  • PostgreSQL 13+ (or Neon for cloud hosting)

Environment Variables

Create a .env file in the project root. Copy from .env.example and fill in the required values:

VariableRequiredDescription
AUTH_SECRETYesHMAC session signing secret (min 16 chars). Generate: openssl rand -hex 32
OWNER_EMAILYesThe single owner account email
OWNER_PASSWORDYesOwner login password (min 8 chars)
DATABASE_URLYesPostgreSQL connection string (Neon or self-hosted)
NEON_API_KEYNoEnables one-click pg_cron setup from /settings
NEON_PROJECT_IDNoNeon project ID (used with NEON_API_KEY)
NEON_ENDPOINT_IDNoNeon endpoint ID (used with NEON_API_KEY)
ALLOWED_ORIGINSNoComma-separated CORS origins (e.g., http://localhost:3000)
PORTNoHTTP port (default: 3000)

Installation Steps

1. Clone and Install

Terminal window
git clone https://github.com/preq/projects-manager.git
cd projects-manager
npm install

2. Configure Environment

Terminal window
cp .env.example .env
# Edit .env with your database URL and credentials

3. Database Migration

Terminal window
npx prisma migrate deploy

This creates all tables, indexes, and Row Level Security policies.

4. Start Development Server

Terminal window
npm run dev

The app opens at http://localhost:3000.

First Login

  1. Navigate to http://localhost:3000/login
  2. Use the email and password from your .env file
  3. You are now logged in as the owner

Configure Telegram (Optional)

To enable Telegram notifications:

  1. Go to Settings > Telegram
  2. Enter your Telegram bot token
  3. Test the connection
  4. Token is encrypted at rest with AES-GCM

Configure API Keys

Issue tokens for agents to authenticate:

  1. Navigate to Settings > API Keys
  2. Click + New Token
  3. Name it (e.g., local-dev, claude-code-prod)
  4. Save and copy the token (starts with preq_)

Use these tokens in your preqstation-skill MCP configuration.