Getting Started
Quick install (single command)
Create a new project with one command:
npx create-ai-portal@latest
Optionally specify a project folder name: npx create-ai-portal@latest my-portal
This downloads the AI-Portal template and can run Docker for you. Open http://localhost:3000 β complete /setup (app name, icon, database name) β configure the rest in Admin β System settings.
System requirements
- Git β to download the code (if not using create-ai-portal)
- Docker and Docker Compose β to run the full stack (PostgreSQL, MinIO, backend, frontend)
- (Optional) Node.js 18+ β to run npx create-ai-portal or dev mode without Docker
Download the code
If you prefer not to use the CLI, clone the repo:
git clone https://github.com/Lampx83/AI-Portal.git cd AI-Portal
You should see backend/, frontend/, and docker-compose.yml. Configuration is done at /setup and Admin β System settings.
Run with Docker Compose
docker compose build docker compose up -d
- Frontend: http://localhost:3000
- Backend API: http://localhost:3001
- PostgreSQL: port 5432 (internal)
- MinIO: API http://localhost:9000, Console http://localhost:9001 (object storage; credentials in docker-compose.yml)
Run in dev mode (with Docker)
Use the dev Compose override so backend and frontend run with hot reload (source mounted). Postgres and MinIO come from the base compose.
docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build
Same URLs as above: Frontend:, Backend API:. Edit code in backend/src and frontend/; changes apply without rebuilding.
Run in dev mode (without Docker)
Run PostgreSQL and MinIO in Docker, then start backend and frontend locally with Node.js (Node 18+).
- Start only Postgres and MinIO:
docker compose up -d postgres minio - Backend:
cd backend && npm install && npm run dev(uses POSTGRES_HOST=localhost, MINIO_ENDPOINT=localhost β set in .env or environment) - Frontend:
cd frontend && npm install && npm run dev(set BACKEND_URL=http://localhost:3001, NEXTAUTH_URL=http://localhost:3000 in .env.local or env)
Open http://localhost:3000. Backend runs at http://localhost:3001
First-time setup (/setup)
- Open http://localhost:3000 β you are redirected to /setup.
- Step 1 β Branding: Enter app name and upload an icon.
- Step 2 β Database: Confirm or change the Postgres database name, then run init.
- Step 3 β Admin: Create the first admin user.
- Configure the rest (NEXTAUTH_SECRET, Azure AD, OpenAI key, etc.) in Admin β System settings.
- Storage (MinIO): Object storage is used for uploads and app assets. Default credentials are in docker-compose.yml; manage files in Admin β Storage.