Instalacja ręczna
Użyj tego, jeśli wolisz Node.js bezpośrednio na komputerze lub VPS (bez Dockera).
1. Zainstaluj Node.js 20+
Sprawdź wersję:
bash
node -vJeśli jest poniżej 20, zainstaluj nowszą z nodejs.org albo menedżera pakietów.
2. Pobierz projekt
- Pobierz NovaDocs z BuiltByBit: https://builtbybit.com/resources/novadocs.120459/
- Rozpakuj paczkę na komputerze lub serwerze
- Otwórz terminal w tym folderze i zainstaluj zależności:
bash
cd /path/to/novadocs
npm install3. Skonfiguruj środowisko
bash
cp .env.example .envEdytuj .env:
Test lokalny (SQLite)
env
DATABASE_URL="file:./dev.db"
AUTH_SECRET="zmien-na-dlugi-losowy-ciag"
NEXT_PUBLIC_APP_URL="http://localhost:3000"
SEED_ADMIN_EMAIL="admin@novadocs.local"
SEED_ADMIN_PASSWORD="admin12345!"Produkcja (Postgres / Supabase)
- Utwórz bazę Postgres.
- Wklej connection string do
DATABASE_URL. - Na Supabase wybierz tryb Transaction (port 6543) i dodaj
pgbouncer=true, np.:
env
DATABASE_URL="postgresql://postgres.xxxx:PASSWORD@aws-0-….pooler.supabase.com:6543/postgres?pgbouncer=true"Jeśli używasz własnego schematu (np. novadocs), zostaw ?schema=novadocs w URL.
Ustaw też:
env
AUTH_SECRET="dlugi-losowy-sekret"
NEXT_PUBLIC_APP_URL="https://twoja-domena.com"
SEED_ADMIN_EMAIL="ty@example.com"
SEED_ADMIN_PASSWORD="mocne-haslo"4. Utwórz tabele i konto admina
bash
npm run db:push
npm run db:seed5. Tryb deweloperski
bash
npm run devOtwórz http://localhost:3000.
6. Produkcja na VPS
bash
npm run build
npm run startUtrzymaj proces przez pm2, systemd itp.:
bash
npx pm2 start npm --name novadocs -- startPrzed portem ustaw Nginx/Caddy z HTTPS.
Deploy na Vercel
- Wrzuć pliki NovaDocs do repo Git (albo zaimportuj folder w Vercel)
- Dodaj zmienne środowiskowe (
DATABASE_URL,AUTH_SECRET,NEXT_PUBLIC_APP_URL, …) - Użyj hostowanego Postgresa (nie SQLite)
- Build to już
prisma generate && next build - Po pierwszym deployu raz uruchom seed z komputera na produkcyjnej bazie:
bash
$env:DATABASE_URL="twoj-produkcyjny-url"
npx prisma db push
npm run db:seed(Na Mac/Linux użyj export DATABASE_URL=... zamiast $env:....)
