Установка та налаштування KeystoneJS
KeystoneJS 6 вимагає PostgreSQL або MySQL/SQLite (для розробки) та Node.js 18+. Установка займає 20–30 хвилин, але правильна початкова конфігурація економить години в майбутньому.
Ініціалізація проекту
npm create keystone-app@latest my-project
# Вибираємо: PostgreSQL, стартовий шаблон (blog або todo)
cd my-project
npm install
Створюється структура з keystone.ts, schema.ts та прикладом List. Одразу міняємо SQLite на PostgreSQL:
// keystone.ts
db: {
provider: 'postgresql',
url: process.env.DATABASE_URL || 'postgresql://user:pass@localhost:5432/keystone_dev',
enableLogging: true,
idField: { kind: 'uuid' }, // замість autoincrement
},
Змінні окруження
# .env
DATABASE_URL=postgresql://keystone:secret@localhost:5432/keystone_dev
SESSION_SECRET=supersecretkey32charsmin
FRONTEND_URL=http://localhost:3001
BASE_URL=http://localhost:3000
Перший запуск та міграції
# Запуск у dev-режимі (auto-migrate)
npx keystone dev
# Перша міграція створюється автоматично
# У production — явно:
npx keystone prisma migrate deploy
Після запуску доступні:
-
Admin UI:
http://localhost:3000— створення першого користувача -
GraphQL API:
http://localhost:3000/api/graphql - GraphQL Playground: включений тільки в development
Налаштування CORS та server options
server: {
cors: { origin: ['http://localhost:3001'], credentials: true },
port: parseInt(process.env.PORT || '3000'),
maxFileSize: 200 * 1024 * 1024, // 200MB для завантаження файлів
},
TypeScript та tsconfig
KeystoneJS генерує типи автоматично в .keystone/types.ts. Додаємо до tsconfig.json:
{
"compilerOptions": {
"target": "ES2019",
"module": "CommonJS",
"lib": ["ES2019"],
"strict": true,
"paths": {
".keystone/types": ["./.keystone/types"]
}
}
}
Базова установка та налаштування PostgreSQL-окруження — 2–4 години, включаючи створення перших Lists та тестовий деплой.







