Zum Hauptinhalt springen

Entwicklung

Docmost ist ein Monorepo, das pnpm workspace und nx verwendet. Dies ist eine Anleitung, wie Sie es für die lokale Entwicklung einrichten.

Projektstruktur

root
├── apps
│ ├── client // React frontend
│ └── server // Nestjs backend
└── packages
└── editor-ext // package for editor extensions

Der Frontend-Client wird mit Vite und React entwickelt, wobei die Benutzeroberfläche von der UI-Bibliothek Mantine bereitgestellt wird. Der Backend-Server wird mit dem Nest.js-Framework erstellt.

Voraussetzungen

Um Docmost auszuführen, benötigen Sie Folgendes:

  • Node.js: >= 22
  • Postgres: >= 16
  • Redis/Valkey >=7

Entwicklungs-Setup

Stellen Sie sicher, dass Sie pnpm installiert haben npm install -g pnpm.

$ git clone https://github.com/docmost/docmost
$ cd docmost
$ pnpm install
$ cp .env.example .env

Stellen Sie sicher, dass Sie die Datei .env aktualisieren.

Zuerst das Editor-Paket erstellen

$ pnpm nx run @docmost/editor-ext:build

Frontend

# run in development watch mode
$ pnpm nx run client:dev

Backend

# run in watch mode
$ pnpm nx run server:start:dev

# development
$ pnpm nx run server:start

Projekt erstellen

$ pnpm build

Dadurch werden alle erforderlichen Pakete erstellt. Sie können den erstellten Server und Client mit pnpm nx run server:start ausführen. Das Projekt wird unter http://localhost:3000 ausgeführt.
Sehen Sie sich die package.json jeder App an, um mehr über alle verfügbaren Befehle zu erfahren.

Migrationen

Im Entwicklungsmodus müssen Sie die neuesten Migrationen manuell ausführen. Dies sind die nützlichen Migrationsbefehle.

# To run all pending database migrations
$ pnpm nx run server:migration:latest

# To run one migration up
$ pnpm nx run server:migration:up

# To run one migration down
$ pnpm nx run server:migration:down

# To drop all migrations
$ pnpm nx run server:migration:reset

# To create new empty migration file.
$ pnpm nx run server:migration:create migration_name_here

Migrationen werden im Verzeichnis apps/server/src/database/migrations gespeichert.

Wenn Sie Änderungen an der Datenbank vornehmen, z. B. eine neue Tabelle oder Spalte erstellen, müssen Sie die DB-Typen neu generieren mit

pnpm nx run server:migration:codegen

Das Projekt verwendet kein ORM. Wir nutzen den Query Builder Kysely, um typsichere SQL-Abfragen zu erstellen.

Ps: Wenn Sie Code-Beiträge zu Docmost leisten möchten, müssen Sie unsere Contributor License Agreement (CLA) akzeptieren, bevor Ihr PR angenommen werden kann.