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:
| Variable | Required | Description |
|---|---|---|
AUTH_SECRET | Yes | HMAC session signing secret (min 16 chars). Generate: openssl rand -hex 32 |
OWNER_EMAIL | Yes | The single owner account email |
OWNER_PASSWORD | Yes | Owner login password (min 8 chars) |
DATABASE_URL | Yes | PostgreSQL connection string (Neon or self-hosted) |
NEON_API_KEY | No | Enables one-click pg_cron setup from /settings |
NEON_PROJECT_ID | No | Neon project ID (used with NEON_API_KEY) |
NEON_ENDPOINT_ID | No | Neon endpoint ID (used with NEON_API_KEY) |
ALLOWED_ORIGINS | No | Comma-separated CORS origins (e.g., http://localhost:3000) |
PORT | No | HTTP port (default: 3000) |
Installation Steps
1. Clone and Install
git clone https://github.com/preq/projects-manager.gitcd projects-managernpm install2. Configure Environment
cp .env.example .env# Edit .env with your database URL and credentials3. Database Migration
npx prisma migrate deployThis creates all tables, indexes, and Row Level Security policies.
4. Start Development Server
npm run devThe app opens at http://localhost:3000.
First Login
- Navigate to
http://localhost:3000/login - Use the email and password from your
.envfile - You are now logged in as the owner
Configure Telegram (Optional)
To enable Telegram notifications:
- Go to Settings > Telegram
- Enter your Telegram bot token
- Test the connection
- Token is encrypted at rest with AES-GCM
Configure API Keys
Issue tokens for agents to authenticate:
- Navigate to Settings > API Keys
- Click + New Token
- Name it (e.g.,
local-dev,claude-code-prod) - Save and copy the token (starts with
preq_)
Use these tokens in your preqstation-skill MCP configuration.