Skip to content
This repository was archived by the owner on Sep 29, 2025. It is now read-only.

b310-digital/groupwriter-backend

Repository files navigation

GroupWriter: Backend

Yjs-backend with custom extensions, build on top of hocuspocus: https://tiptap.dev/docs/hocuspocus/introduction

🚨 We have consolidated the frontend and backend into a single repository to simplify maintenance and streamline the setup process. Please see https://github.com/b310-digital/groupwriter for new releases.

Setup

Development

docker compose build
docker compose up -d

Migrations:

  Create a migration from changes in Prisma schema, apply it to the database, trigger generators (e.g. Prisma Client)
  $ npx prisma migrate dev

  Reset all migrations
  $ npx prisma db push --force-reset

Starting the server in dev mode:

docker compose exec app npm i
docker compose exec app npx prisma migrate dev
docker compose exec app npm run start:dev

https://www.prisma.io/docs/orm/prisma-migrate/understanding-prisma-migrate

Options / ENV Variables

  • PORT: Port
  • DATABASE_URL: Database host
  • OBJECT_STORAGE_BUCKET: Bucket where to store uploads. The API needs to be s3-compatible.
  • OBJECT_STORAGE_SCHEME: Schema for object storage, e.g. http:// or https://
  • OBJECT_STORAGE_HOST: Storage host, e.g. a container name
  • OBJECT_STORAGE_PORT: Port for object storage
  • OBJECT_STORAGE_REGION: Region for object storage, e.g. local
  • OBJECT_STORAGE_USER: User for object storage
  • OBJECT_STORAGE_PASSWORD: Password for object storage
  • VAULT_ENCRYPTION_KEY_BASE64: Encryption key for the object storage, as every single item is encrypted. Needs to have a length of exactly 32 chars.
  • FEATURE_REMOVE_DOCUMENTS_TOGGLE: Activate cleanup of inactive / old texts. Defaults to false.
  • FEATURE_REMOVE_DOCUMENTS_MAX_AGE_IN_DAYS: Days after which inactive texts should be deleted. Defaults to 720.

Testimonials / Sponsors

kits is a project platform hosted by a public institution for quality development in schools (Lower Saxony, Germany) and focusses on digital tools and media in language teaching. GroupWriter can be found on https://kits.blog/tools and can be used by schools for free.

Logos and text provided with courtesy of kits.

About

Collaborative Writing App: Backend

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors