selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
CohortHarbor logo

Self-host CohortHarbor

Employee onboarding and policy learning platform with exams

BetaOpen SourceMIT
Updatedlast week
LanguageTypescript
Setup difficultyModerate
Stars
195
Port
3000 (Next.js application default port)
Requires
SQLite
Install with NPM

What is CohortHarbor?

CohortHarbor is a self-hosted web application designed for enterprise HR, administrators, IT staff, and new employees to manage the complete onboarding lifecycle. It combines employee account management, policy document versioning and preview, learning material distribution with ZIP downloads, online exam creation with question banks and retake support, automated welcome emails with templates and attachments, and a visual onboarding portal editor. The platform enforces role-based access control with SUPER_ADMIN, ADMIN, and EMPLOYEE roles, stores files in private storage with server-side authorization and watermarking, and uses SQLite via Prisma for data persistence. It runs on Node.js 24 with pnpm, can be deployed behind a reverse proxy with HTTPS, and optionally integrates with SMTP for email and local tools like LibreOffice, pdftoppm, and Tesseract for document processing. The project is MIT-licensed and actively developed.

Should you self-host CohortHarbor?

CohortHarbor scores 40/100 on selfhost.directory (how scoring works) and ranks #13 of 14 in Learning Management System. It has 195 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is moderate: expect some configuration beyond a single command. It is MIT-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is Moodle (71/100). It scores higher overall, so compare the two before you pick. See CohortHarbor vs Moodle side by side.

Features

  • Audit Logging
  • Data isolation by role and publication status
  • Email AutomationRequires SMTP configuration
  • Employee roster import
  • Exam management
  • Learning material distribution
  • Local OCR and document processingRequires optional local tools installation
  • Multi-role permission system
  • Password reset via emailRequires SMTP configuration
  • Private file storage with watermarking
  • Secure document preview
  • Session management with TTL and lockout
  • Visual onboarding portal

CohortHarbor README

How to install CohortHarbor

Install CohortHarbor with NPM

Environment variables
DATABASE_URL, ADMIN_USERNAME, ADMIN_PASSWORD, AUTH_TOKEN_SECRET, ADMIN_DISPLAY_NAME, PRIVATE_STORAGE_ROOT, and optional SMTP and document processing variables

corepack enable corepack prepare pnpm@11.16.0 --activate pnpm install --frozen-lockfile cp .env.example .env

Edit .env with required variables

pnpm db:ensure pnpm db:generate pnpm db:migrate pnpm db:seed pnpm dev

Development mode; for production use `pnpm build` then `pnpm start`

How to configure CohortHarbor

  • ADMIN_DISPLAY_NAME
  • ADMIN_PASSWORD
  • ADMIN_USERNAME
  • APP_BASE_URL
  • AUTH_TOKEN_SECRET
  • DATABASE_URL
  • FILE_MAX_EXCEL_MB
  • FILE_MAX_IMAGE_MB
  • FILE_MAX_PDF_MB
  • FONTCONFIG_FILEOptional local document-processing overrides.

    Optional local document-processing overrides.

  • FONTCONFIG_PATH
  • GUIDE_RENDER_ROOT
  • LOGIN_LOCK_MINUTES
  • LOGIN_MAX_FAILURES
  • OFFICE_FONT_DIRECTORY
  • ONBOARDING_MAIL_ATTACHMENT_MAX_MB
  • ONBOARDING_MAIL_AUTOMATION_RUNTIME_ENABLED
  • ONBOARDING_MAIL_BULK_CONFIRM_THRESHOLD
  • ONBOARDING_MAIL_CONFIRMATION_SECRET
  • ONBOARDING_MAIL_LEASE_SAFETY_SECONDS
  • ONBOARDING_MAIL_LEASE_SECONDS
  • ONBOARDING_MAIL_LOOKBACK_DAYS
  • ONBOARDING_MAIL_MIME_MAX_MB
  • ONBOARDING_MAIL_RETRY_LIMIT
  • ONBOARDING_MAIL_TRANSPORT_TIMEOUT_SECONDS
  • ONBOARDING_MAIL_WORKER_BATCH_SIZE
  • ONBOARDING_MATERIAL_MAX_BYTES
  • ONBOARDING_MATERIAL_MAX_MB
  • ONBOARDING_ZIP_MAX_CONCURRENT
  • ONBOARDING_ZIP_MAX_FILES
  • ONBOARDING_ZIP_MAX_MB
  • ONBOARDING_ZIP_TEMP_ROOT
  • OPENAI_API_KEYReserved for a future AI provider integration; the current runtime does not read it.

    Reserved for a future AI provider integration; the current runtime does not read it.

  • PDFTOPPM_PATH
  • PRIVATE_STORAGE_ROOT
  • SAL_FONTPATH
  • SESSION_TTL_HOURS
  • SMTP_FROM
  • SMTP_HOST
  • SMTP_PASSWORD
  • SMTP_PORT
  • SMTP_SECURE
  • SMTP_USERNAME
  • SOFFICE_PATH
  • SQLITE_BUSY_TIMEOUT_MS
  • TESSDATA_PREFIX

More in Human Resource Management (HRM)

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…