docs Documentation

Docs is an open-source text editor: web-native, made for real-time collaboration, cleanly structured documents and sub-documents with full ownership of your...

RAW Doc

Docker & Self-Hosted Deployment Verified OCI

Deploy docs on any server, homelab, or cloud container platform.

1. Project Overview & Quickstart (suitenumerique/docs)

File: README.md

La Suite Docs: Collaborative Text Editing

Docs, where your notes can become knowledge through live collaboration.

Docs is an open-source collaborative editor that helps teams write, organize, and share knowledge together - in real time.

What is Docs?

Docs is an open-source alternative to tools like Notion or Google Docs, focused on:

  • Real-time collaboration
  • Clean, structured documents
  • Knowledge organization
  • Data ownership & self-hosting

Built for public organizations, companies, and open communities.

Why use Docs?

Writing

  • Rich-text & Markdown editing
  • Slash commands & block system
  • Beautiful formatting
  • Offline editing
  • Optional AI writing helpers (rewrite, summarize, translate, fix typos)

Collaboration

  • Live cursors & presence
  • Comments & sharing
  • Granular access control

Knowledge management

  • Subpages & hierarchy
  • Searchable content

Presentations

  • Simple structure, based on delimiter (---)
  • Full screen option
  • PDF exports
  • Keyboard navigation
  • Start presention from a block
  • Presentation link

Export/Import

  • Import to .docx and .md
  • Export to .docx, .odt, .pdf

AI features

Docs has optional AI features.
They're model agnostic and gateway agnostic.
You can either run your own or just use your AI provider.
The config only requires an API key and a URL.

V1: You select, AI replaces

This version features a simple select and replace workflow.
Your selection is the context and the instruction for the model.
The AI feedback replaces your selection and is designed is optimized for Docs formatting.

V2: AI toolbar, AI cursor (beta)

This version uses BlockNote AI integration. It features:

  • an AI toolbar at selection in which you can prompt, accept, reject and iterate AI feedback
  • an AI cursor, which interacts with the document, just as another collaborator in your document
  • document context is used on top of the selection

Interoperability

Docs comes with a resource server API and a server to server API which allows for awesome integrations.

A concrete example: [Meet](https://github.com/suitenumerique/meet/)'s transcriptions

If you're running a Meet instance, with simple config (DJANGO_SERVER_TO_SERVER_API_TOKENS) you can push your meeting transcript to Docs and give access to the user who requested it.

Try Docs

Experience Docs instantly - no installation required.

Self-hosting

Docs supports Kubernetes, Docker Compose, and community-provided methods such as Nix and YunoHost.

Get started with self-hosting: Installation guide

[!WARNING]
Some advanced features (for example: Export as PDF) rely on XL packages from Blocknote.
These packages are licensed under GPL and are not MIT-compatible

You can run Docs without these packages by building with:

bash
PUBLISH_AS_MIT=true

This builds an image of Docs without non-MIT features.

More details can be found in environment variables

Local Development (for contributors)

Run Docs locally for development and testing.

[!WARNING]
This setup is intended for development and testing only.
It uses Minio as an S3-compatible storage backend, but any S3-compatible service can be used.

Prerequisites

  • Docker
  • Docker Compose
  • GNU Make

Verify installation:

bash
docker -v
docker compose version

If you encounter permission errors, you may need to use sudo, or add your user to the docker group.

Bootstrap the project

The easiest way to start is using GNU Make:

bash
make bootstrap FLUSH_ARGS='--no-input'

This builds the app-dev and frontend-dev containers, installs dependencies, runs database migrations, and compiles translations.

It is recommended to run this command after pulling new code.

Start services:

bash
make run

Open https://localhost:3000

Default credentials (development only):

md
username: impress
password: impress

Frontend development mode

For frontend work, running outside Docker is often more convenient:

bash
make frontend-development-install
make run-frontend-development

Backend only

Starting all services except the frontend container:

bash
make run-backend

Tests & Linting

bash
make frontend-test
make frontend-lint

Backend tests can be run without docker. This is useful to configure PyCharm or VSCode to do it.
Removing docker for testing requires to overwrite some URL and port values that are different in and out of
Docker. env.d/development/common contains all variables, some of them having to be overwritten by those in
env.d/development/common.test.

Demo content

Create a basic demo site:

bash
make demo

More Make targets

To check all available Make rules:

bash
make help

Django admin

Create a superuser:

bash
make superuser

Admin UI: http://localhost:8071/admin

Contributing

This project is community-driven and PRs are welcome.

Roadmap

Curious where Docs is headed?

Explore upcoming features, priorities and long-term direction on our public roadmap.

License ๐Ÿ“

This work is released under the MIT License (see LICENSE).

While Docs is a public-driven initiative, our license choice is an invitation for private sector actors to use, sell and contribute to the project.

Credits โค๏ธ

Stack

Docs is built on top of Django Rest Framework, Next.js, ProseMirror, BlockNote.js, HocusPocus, and Yjs. We thank the contributors of all these projects for their awesome work!

We are proud sponsors of BlockNotejs and Yjs.


Gov โค๏ธ open source

Docs is the result of a joint initiative led by the French ๐Ÿ‡ซ๐Ÿ‡ท (DINUM) Government and German ๐Ÿ‡ฉ๐Ÿ‡ช government (ZenDiS).

We are always looking for new public partners (we are currently onboarding the Netherlands ๐Ÿ‡ณ๐Ÿ‡ฑ), feel free to contact us if you are interested in using or contributing to Docs.


File: src/helm/impress/README.md

Impress helm chart

Parameters

General configuration

Name Description Value
image.repository Repository to use to pull impress's container image lasuite/impress-backend
image.tag impress's container tag latest
image.pullPolicy Container image pull policy IfNotPresent
image.credentials.username Username for container registry authentication
image.credentials.password Password for container registry authentication
image.credentials.registry Registry url for which the credentials are specified
image.credentials.name Name of the generated secret for imagePullSecrets
nameOverride Override the chart name ""
fullnameOverride Override the full application name ""
ingress.enabled whether to enable the Ingress or not false
ingress.className IngressClass to use for the Ingress nil
ingress.host Host for the Ingress impress.example.com
ingress.path Path to use for the Ingress /
ingress.hosts Additional host to configure for the Ingress []
ingress.tls.enabled Whether to enable TLS for the Ingress true
ingress.tls.secretName Secret name for TLS config nil
ingress.tls.additional[].secretName Secret name for additional TLS config
ingress.tls.additional[].hosts[] Hosts for additional TLS config
ingress.customBackends Add custom backends to ingress []
ingressCollaborationWS.enabled whether to enable the Ingress or not false
ingressCollaborationWS.className IngressClass to use for the Ingress nil
ingressCollaborationWS.host Host for the Ingress impress.example.com
ingressCollaborationWS.path Path to use for the Ingress /collaboration/ws/
ingressCollaborationWS.hosts Additional host to configure for the Ingress []
ingressCollaborationWS.tls.enabled Whether to enable TLS for the Ingress true
ingressCollaborationWS.tls.secretName Secret name for TLS config nil
ingressCollaborationWS.tls.additional[].secretName Secret name for additional TLS config
ingressCollaborationWS.tls.additional[].hosts[] Hosts for additional TLS config
ingressCollaborationWS.customBackends Add custom backends to ingress []
ingressCollaborationWS.annotations.nginx.ingress.kubernetes.io/enable-websocket true
ingressCollaborationWS.annotations.nginx.ingress.kubernetes.io/proxy-read-timeout 86400
ingressCollaborationWS.annotations.nginx.ingress.kubernetes.io/proxy-send-timeout 86400
ingressCollaborationWS.annotations.nginx.ingress.kubernetes.io/upstream-hash-by $arg_room
ingressRedirects.enabled whether to enable the Ingress Redirects or not false
ingressRedirects.className IngressClass to use for the Ingress Redirects nil
ingressRedirects.host Host for the Ingress Redirects impress.example.com
ingressRedirects.tls.enabled Whether to enable TLS for the Ingress Redirects true
ingressRedirects.tls.secretName Secret name for TLS config nil
ingressRedirects.tls.additional[].secretName Secret name for additional TLS config
ingressRedirects.tls.additional[].hosts[] Hosts for additional TLS config
ingressRedirects.rules Rules for the Ingress Redirects []
ingressCollaborationApi.enabled whether to enable the Ingress or not false
ingressCollaborationApi.className IngressClass to use for the Ingress nil
ingressCollaborationApi.host Host for the Ingress impress.example.com
ingressCollaborationApi.path Path to use for the Ingress /collaboration/api/
ingressCollaborationApi.hosts Additional host to configure for the Ingress []
ingressCollaborationApi.tls.enabled Whether to enable TLS for the Ingress true
ingressCollaborationApi.tls.secretName Secret name for TLS config nil
ingressCollaborationApi.tls.additional[].secretName Secret name for additional TLS config
ingressCollaborationApi.tls.additional[].hosts[] Hosts for additional TLS config
ingressCollaborationApi.customBackends Add custom backends to ingress []
ingressCollaborationApi.annotations.nginx.ingress.kubernetes.io/upstream-hash-by $arg_room
ingressAdmin.enabled whether to enable the Ingress or not false
ingressAdmin.className IngressClass to use for the Ingress nil
ingressAdmin.host Host for the Ingress impress.example.com
ingressAdmin.path Path to use for the Ingress /admin
ingressAdmin.hosts Additional host to configure for the Ingress []
ingressAdmin.tls.enabled Whether to enable TLS for the Ingress true
ingressAdmin.tls.secretName Secret name for TLS config nil
ingressAdmin.tls.additional[].secretName Secret name for additional TLS config
ingressAdmin.tls.additional[].hosts[] Hosts for additional TLS config
ingressMedia.enabled whether to enable the Ingress or not false
ingressMedia.className IngressClass to use for the Ingress nil
ingressMedia.host Host for the Ingress impress.example.com
ingressMedia.path Path to use for the Ingress /media/(.*)
ingressMedia.hosts Additional host to configure for the Ingress []
ingressMedia.tls.enabled Whether to enable TLS for the Ingress true
ingressMedia.tls.secretName Secret name for TLS config nil
ingressMedia.tls.additional[].secretName Secret name for additional TLS config
ingressMedia.tls.additional[].hosts[] Hosts for additional TLS config
ingressMedia.annotations.nginx.ingress.kubernetes.io/auth-url https://impress.example.com/api/v1.0/documents/media-auth/
ingressMedia.annotations.nginx.ingress.kubernetes.io/auth-response-headers Authorization, X-Amz-Date, X-Amz-Content-SHA256
ingressMedia.annotations.nginx.ingress.kubernetes.io/upstream-vhost minio.impress.svc.cluster.local:9000
ingressMedia.annotations.nginx.ingress.kubernetes.io/configuration-snippet `add_header Content-Security-Policy "default-src 'none'" always;
`
serviceMedia.host Hostname of the media storage backend (S3/MinIO) used by the media ingress minio.impress.svc.cluster.local
serviceMedia.port Port of the media storage backend 9000
serviceMedia.annotations Annotations to add to the media ExternalName Service {}

backend

Name Description Value
backend.command Override the backend container command []
backend.args Override the backend container args []
backend.replicas Amount of backend replicas 3
backend.shareProcessNamespace Enable share process namespace between containers false
backend.sidecars Add sidecars containers to backend deployment []
backend.migrateJobAnnotations Annotations for the migrate job {}
backend.jobs.ttlSecondsAfterFinished Period to wait before remove jobs 30
backend.jobs.backoffLimit Numbers of jobs retries 2
backend.securityContext.allowPrivilegeEscalation Whether to allow privilege escalation for the backend container false
backend.securityContext.capabilities.drop List of capabilities to drop for the backend container ["ALL"]
backend.securityContext.runAsNonRoot Whether to run the backend container as a non-root user true
backend.securityContext.seccompProfile.type Seccomp profile type for the backend container RuntimeDefault
backend.envVars Configure backend container environment variables undefined
backend.envVars.BY_VALUE Example environment variable by setting value directly
backend.envVars.FROM_CONFIGMAP.configMapKeyRef.name Name of a ConfigMap when configuring env vars from a ConfigMap
backend.envVars.FROM_CONFIGMAP.configMapKeyRef.key Key within a ConfigMap when configuring env vars from a ConfigMap
backend.envVars.FROM_SECRET.secretKeyRef.name Name of a Secret when configuring env vars from a Secret
backend.envVars.FROM_SECRET.secretKeyRef.key Key within a Secret when configuring env vars from a Secret
backend.django.envVars Backend web deployment specific environment variables (not shared with celery worker)
backend.podAnnotations Annotations to add to the backend Pod {}
backend.dpAnnotations Annotations to add to the backend Deployment {}
backend.service.type backend Service type ClusterIP
backend.service.port backend Service listening port 80
backend.service.targetPort backend container listening port 8000
backend.service.annotations Annotations to add to the backend Service {}
backend.migrate.command backend migrate command ["/bin/sh","-c","attempt=0\nuntil output=$(python manage.py check --database default 2>&1)\ndo\n attempt=$((attempt + 1))\n echo \"Database check failed (attempt $attempt), retrying in 2s:\"\n echo \"$output\"\n sleep 2\ndone\n\necho \"Database is ready\"\n\npython manage.py migrate --no-input\n"]
backend.migrate.restartPolicy backend migrate job restart policy Never
backend.createsuperuser.command backend migrate command ["/bin/sh","-c","attempt=0\nuntil output=$(python manage.py check --database default 2>&1)\ndo\n attempt=$((attempt + 1))\n echo \"Database check failed (attempt $attempt), retrying in 2s:\"\n echo \"$output\"\n sleep 2\ndone\n\necho \"Database is ready\"\n\npython manage.py createsuperuser --email $DJANGO_SUPERUSER_EMAIL --password $DJANGO_SUPERUSER_PASSWORD\n"]
backend.createsuperuser.restartPolicy backend migrate job restart policy Never
backend.job job dedicated to run a random management command, for example after a deployment
backend.job.name The name to use to describe this job ""
backend.job.command The management command to execute []
backend.job.restartPolicy The restart policy for the job. Never
backend.job.annotations Annotations to add to the job [default: argocd.argoproj.io/hook: PostSync]
backend.cronjobs Cronjob name, schedule, command []
backend.probes.liveness.path Configure path for backend HTTP liveness probe /__lbheartbeat__
backend.probes.liveness.targetPort Configure port for backend HTTP liveness probe nil
backend.probes.liveness.initialDelaySeconds Configure initial delay for backend liveness probe 10
backend.probes.liveness.timeoutSeconds Configure timeout for backend liveness probe nil
backend.probes.startup.path Configure path for backend HTTP startup probe
backend.probes.startup.targetPort Configure port for backend HTTP startup probe
backend.probes.startup.initialDelaySeconds Configure initial delay for backend startup probe
backend.probes.startup.timeoutSeconds Configure timeout for backend startup probe
backend.probes.readiness.path Configure path for backend HTTP readiness probe /__heartbeat__
backend.probes.readiness.targetPort Configure port for backend HTTP readiness probe nil
backend.probes.readiness.initialDelaySeconds Configure initial delay for backend readiness probe 10
backend.probes.readiness.timeoutSeconds Configure timeout for backend readiness probe nil
backend.resources Resource requirements for the backend container {}
backend.nodeSelector Node selector for the backend Pod {}
backend.tolerations Tolerations for the backend Pod []
backend.affinity Affinity for the backend Pod {}
backend.persistence Additional volumes to create and mount on the backend. Used for debugging purposes {}
backend.persistence.volume-name.size Size of the additional volume
backend.persistence.volume-name.type Type of the additional volume, persistentVolumeClaim or emptyDir
backend.persistence.volume-name.mountPath Path where the volume should be mounted to
backend.extraVolumeMounts Additional volumes to mount on the backend. []
backend.extraVolumes Additional volumes to mount on the backend. []
backend.pdb.enabled Enable pdb on backend true
backend.serviceAccountName Optional service account name to use for backend pods nil
backend.themeCustomization.enabled Enable theme customization false
backend.themeCustomization.file_content Content of the theme customization file. Must be a json object. ""
backend.themeCustomization.mount_path Path where the customization file will be mounted in the backend deployment. /app/impress/configuration/theme
backend.celery.replicas Amount of celery replicas 1
backend.celery.command Override the celery container command []
backend.celery.args Override the celery container args ["celery","-A","impress.celery_app","worker","-l","INFO","-n","impress@%h"]
backend.celery.resources Resource requirements for the celery container {}
backend.celery.probes.liveness.exec.command Override the celery container liveness probe command ["/bin/sh","-c","celery -A impress.celery_app inspect ping -d impress@$HOSTNAME"]
backend.celery.probes.liveness.initialDelaySeconds Initial delay for the celery container liveness probe 60
backend.celery.probes.liveness.timeoutSeconds Timeout for the celery container liveness probe 5
backend.celery.probes.readiness.exec.command Override the celery container readiness probe command ["/bin/sh","-c","celery -A impress.celery_app inspect ping -d impress@$HOSTNAME"]
backend.celery.probes.readiness.initialDelaySeconds Initial delay for the celery container readiness probe 15
backend.celery.probes.readiness.timeoutSeconds Timeout for the celery container readiness probe 5
backend.celery.envVars Celery worker specific environment variables (not shared with the backend web deployment)

frontend

Name Description Value
frontend.image.repository Repository to use to pull impress's frontend container image lasuite/impress-frontend
frontend.image.tag impress's frontend container tag latest
frontend.image.pullPolicy frontend container image pull policy IfNotPresent
frontend.command Override the frontend container command []
frontend.args Override the frontend container args []
frontend.replicas Amount of frontend replicas 3
frontend.shareProcessNamespace Enable share process namespace between containers false
frontend.sidecars Add sidecars containers to frontend deployment []
frontend.securityContext.allowPrivilegeEscalation Whether to allow privilege escalation for the frontend container false
frontend.securityContext.capabilities.drop List of capabilities to drop for the frontend container ["ALL"]
frontend.securityContext.runAsNonRoot Whether to run the frontend container as a non-root user true
frontend.securityContext.seccompProfile.type Seccomp profile type for the frontend container RuntimeDefault
frontend.envVars Configure frontend container environment variables undefined
frontend.envVars.BY_VALUE Example environment variable by setting value directly
frontend.envVars.FROM_CONFIGMAP.configMapKeyRef.name Name of a ConfigMap when configuring env vars from a ConfigMap
frontend.envVars.FROM_CONFIGMAP.configMapKeyRef.key Key within a ConfigMap when configuring env vars from a ConfigMap
frontend.envVars.FROM_SECRET.secretKeyRef.name Name of a Secret when configuring env vars from a Secret
frontend.envVars.FROM_SECRET.secretKeyRef.key Key within a Secret when configuring env vars from a Secret
frontend.podAnnotations Annotations to add to the frontend Pod {}
frontend.dpAnnotations Annotations to add to the frontend Deployment {}
frontend.service.type frontend Service type ClusterIP
frontend.service.port frontend Service listening port 80
frontend.service.targetPort frontend container listening port 8080
frontend.service.annotations Annotations to add to the frontend Service {}
frontend.probes Configure probe for frontend {}
frontend.probes.liveness.path Configure path for frontend HTTP liveness probe
frontend.probes.liveness.targetPort Configure port for frontend HTTP liveness probe
frontend.probes.liveness.initialDelaySeconds Configure initial delay for frontend liveness probe
frontend.probes.liveness.initialDelaySeconds Configure timeout for frontend liveness probe
frontend.probes.startup.path Configure path for frontend HTTP startup probe
frontend.probes.startup.targetPort Configure port for frontend HTTP startup probe
frontend.probes.startup.initialDelaySeconds Configure initial delay for frontend startup probe
frontend.probes.startup.initialDelaySeconds Configure timeout for frontend startup probe
frontend.probes.readiness.path Configure path for frontend HTTP readiness probe
frontend.probes.readiness.targetPort Configure port for frontend HTTP readiness probe
frontend.probes.readiness.initialDelaySeconds Configure initial delay for frontend readiness probe
frontend.probes.readiness.initialDelaySeconds Configure timeout for frontend readiness probe
frontend.resources Resource requirements for the frontend container {}
frontend.nodeSelector Node selector for the frontend Pod {}
frontend.tolerations Tolerations for the frontend Pod []
frontend.affinity Affinity for the frontend Pod {}
frontend.persistence Additional volumes to create and mount on the frontend. Used for debugging purposes {}
frontend.persistence.volume-name.size Size of the additional volume
frontend.persistence.volume-name.type Type of the additional volume, persistentVolumeClaim or emptyDir
frontend.persistence.volume-name.mountPath Path where the volume should be mounted to
frontend.extraVolumeMounts Additional volumes to mount on the frontend. []
frontend.extraVolumes Additional volumes to mount on the frontend. []
frontend.pdb.enabled Enable pdb on frontend true
frontend.serviceAccountName Optional service account name to use for frontend pods nil

posthog

Name Description Value
posthog.ingress.enabled Enable or disable the ingress resource creation false
posthog.ingress.className Kubernetes ingress class name to use (e.g., nginx, traefik) nil
posthog.ingress.host Primary hostname for the ingress resource impress.example.com
posthog.ingress.path URL path prefix for the ingress routes (e.g., /) /
posthog.ingress.hosts Additional hostnames array to be included in the ingress []
posthog.ingress.tls.enabled Enable or disable TLS/HTTPS for the ingress true
posthog.ingress.tls.additional Additional TLS configurations for extra hosts/certificates []
posthog.ingress.customBackends Custom backend service configurations for the ingress []
posthog.ingress.annotations Additional Kubernetes annotations to apply to the ingress {}
posthog.ingressAssets.enabled Enable or disable the ingress resource creation false
posthog.ingressAssets.className Kubernetes ingress class name to use (e.g., nginx, traefik) nil
posthog.ingressAssets.host Primary hostname for the ingress resource impress.example.com
posthog.ingressAssets.paths URL paths prefix for the ingress routes (e.g., /static) ["/static","/array"]
posthog.ingressAssets.hosts Additional hostnames array to be included in the ingress []
posthog.ingressAssets.tls.enabled Enable or disable TLS/HTTPS for the ingress true
posthog.ingressAssets.tls.additional Additional TLS configurations for extra hosts/certificates []
posthog.ingressAssets.customBackends Custom backend service configurations for the ingress []
posthog.ingressAssets.annotations Additional Kubernetes annotations to apply to the ingress {}
posthog.service.type Service type (e.g. ExternalName, ClusterIP, LoadBalancer) ExternalName
posthog.service.externalName External service hostname when type is ExternalName eu.i.posthog.com
posthog.service.port Port number for the service 443
posthog.service.annotations Additional annotations to apply to the service {}
posthog.assetsService.type Service type (e.g. ExternalName, ClusterIP, LoadBalancer) ExternalName
posthog.assetsService.externalName External service hostname when type is ExternalName eu-assets.i.posthog.com
posthog.assetsService.port Port number for the service 443
posthog.assetsService.annotations Additional annotations to apply to the service {}

yProvider

Name Description Value
yProvider.image.repository Repository to use to pull impress's yProvider container image lasuite/impress-y-provider
yProvider.image.tag impress's yProvider container tag latest
yProvider.image.pullPolicy yProvider container image pull policy IfNotPresent
yProvider.command Override the yProvider container command []
yProvider.args Override the yProvider container args []
yProvider.replicas Amount of yProvider replicas 3
yProvider.shareProcessNamespace Enable share process nameyProvider between containers false
yProvider.sidecars Add sidecars containers to yProvider deployment []
yProvider.securityContext.allowPrivilegeEscalation Whether to allow privilege escalation for the yProvider container false
yProvider.securityContext.capabilities.drop List of capabilities to drop for the yProvider container ["ALL"]
yProvider.securityContext.runAsNonRoot Whether to run the yProvider container as a non-root user true
yProvider.securityContext.seccompProfile.type Seccomp profile type for the yProvider container RuntimeDefault
yProvider.envVars Configure yProvider container environment variables undefined
yProvider.envVars.BY_VALUE Example environment variable by setting value directly
yProvider.envVars.FROM_CONFIGMAP.configMapKeyRef.name Name of a ConfigMap when configuring env vars from a ConfigMap
yProvider.envVars.FROM_CONFIGMAP.configMapKeyRef.key Key within a ConfigMap when configuring env vars from a ConfigMap
yProvider.envVars.FROM_SECRET.secretKeyRef.name Name of a Secret when configuring env vars from a Secret
yProvider.envVars.FROM_SECRET.secretKeyRef.key Key within a Secret when configuring env vars from a Secret
yProvider.podAnnotations Annotations to add to the yProvider Pod {}
yProvider.dpAnnotations Annotations to add to the yProvider Deployment {}
yProvider.service.type yProvider Service type ClusterIP
yProvider.service.port yProvider Service listening port 443
yProvider.service.targetPort yProvider container listening port 4444
yProvider.service.annotations Annotations to add to the yProvider Service {}
yProvider.probes.liveness.path Configure path for yProvider HTTP liveness probe /ping
yProvider.probes.liveness.initialDelaySeconds Configure initial delay for yProvider liveness probe 10
yProvider.probes.liveness.targetPort Configure port for yProvider HTTP liveness probe
yProvider.probes.liveness.timeoutSeconds Configure timeout for yProvider liveness probe
yProvider.probes.startup.path Configure path for yProvider HTTP startup probe
yProvider.probes.startup.targetPort Configure port for yProvider HTTP startup probe
yProvider.probes.startup.initialDelaySeconds Configure initial delay for yProvider startup probe
yProvider.probes.startup.timeoutSeconds Configure timeout for yProvider startup probe
yProvider.probes.readiness.path Configure path for yProvider HTTP readiness probe
yProvider.probes.readiness.targetPort Configure port for yProvider HTTP readiness probe
yProvider.probes.readiness.initialDelaySeconds Configure initial delay for yProvider readiness probe
yProvider.probes.readiness.timeoutSeconds Configure timeout for yProvider readiness probe
yProvider.resources Resource requirements for the yProvider container {}
yProvider.nodeSelector Node selector for the yProvider Pod {}
yProvider.tolerations Tolerations for the yProvider Pod []
yProvider.affinity Affinity for the yProvider Pod {}
yProvider.persistence Additional volumes to create and mount on the yProvider. Used for debugging purposes {}
yProvider.persistence.volume-name.size Size of the additional volume
yProvider.persistence.volume-name.type Type of the additional volume, persistentVolumeClaim or emptyDir
yProvider.persistence.volume-name.mountPath Path where the volume should be mounted to
yProvider.extraVolumeMounts Additional volumes to mount on the yProvider. []
yProvider.extraVolumes Additional volumes to mount on the yProvider. []
yProvider.pdb.enabled Enable pdb on yProvider true
yProvider.serviceAccountName Optional service account name to use for yProvider pods nil

docSpec

Name Description Value
docSpec.enabled Enable docSpec deployment false
docSpec.image.repository Repository to use to pull docSpec container image ghcr.io/docspecio/api
docSpec.image.tag docSpec container tag 2.6.3
docSpec.image.pullPolicy docSpec container image pull policy IfNotPresent
docSpec.command Override the docSpec container command []
docSpec.args Override the docSpec container args []
docSpec.replicas Amount of docSpec replicas 1
docSpec.securityContext.allowPrivilegeEscalation Whether to allow privilege escalation for the docSpec container false
docSpec.securityContext.capabilities.drop List of capabilities to drop for the docSpec container ["ALL"]
docSpec.securityContext.runAsNonRoot Whether to run the docSpec container as a non-root user true
docSpec.securityContext.seccompProfile.type Seccomp profile type for the docSpec container RuntimeDefault
docSpec.envVars Configure docSpec container environment variables {}
docSpec.service.type docSpec Service type ClusterIP
docSpec.service.port docSpec Service listening port 4000
docSpec.service.targetPort docSpec container listening port 4000
docSpec.probes.liveness.path Configure path for docSpec HTTP liveness probe /health
docSpec.probes.readiness.path Configure path for docSpec HTTP readiness probe /health
docSpec.resources docSpec resources {}
docSpec.nodeSelector Node selector for the docSpec Pod {}
docSpec.tolerations Tolerations for the docSpec Pod []
docSpec.affinity Affinity for the docSpec Pod {}
docSpec.extraVolumeMounts Additional volumes to mount on docSpec []
docSpec.extraVolumes Additional volumes to mount on docSpec []

File: src/frontend/apps/impress/README.md

This is a Next.js project bootstrapped with create-next-app.

Getting Started

First, run the development server:

bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.

This project uses next/font to automatically optimize and load Inter, a custom Google Font.

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.

2. Official Technical Reference & Guides (suitenumerique/docs)

File: README.md

La Suite Docs: Collaborative Text Editing

Docs, where your notes can become knowledge through live collaboration.

Docs is an open-source collaborative editor that helps teams write, organize, and share knowledge together - in real time.

What is Docs?

Docs is an open-source alternative to tools like Notion or Google Docs, focused on:

  • Real-time collaboration
  • Clean, structured documents
  • Knowledge organization
  • Data ownership & self-hosting

Built for public organizations, companies, and open communities.

Why use Docs?

Writing

  • Rich-text & Markdown editing
  • Slash commands & block system
  • Beautiful formatting
  • Offline editing
  • Optional AI writing helpers (rewrite, summarize, translate, fix typos)

Collaboration

  • Live cursors & presence
  • Comments & sharing
  • Granular access control

Knowledge management

  • Subpages & hierarchy
  • Searchable content

Presentations

  • Simple structure, based on delimiter (---)
  • Full screen option
  • PDF exports
  • Keyboard navigation
  • Start presention from a block
  • Presentation link

Export/Import

  • Import to .docx and .md
  • Export to .docx, .odt, .pdf

AI features

Docs has optional AI features.
They're model agnostic and gateway agnostic.
You can either run your own or just use your AI provider.
The config only requires an API key and a URL.

V1: You select, AI replaces

This version features a simple select and replace workflow.
Your selection is the context and the instruction for the model.
The AI feedback replaces your selection and is designed is optimized for Docs formatting.

V2: AI toolbar, AI cursor (beta)

This version uses BlockNote AI integration. It features:

  • an AI toolbar at selection in which you can prompt, accept, reject and iterate AI feedback
  • an AI cursor, which interacts with the document, just as another collaborator in your document
  • document context is used on top of the selection

Interoperability

Docs comes with a resource server API and a server to server API which allows for awesome integrations.

A concrete example: [Meet](https://github.com/suitenumerique/meet/)'s transcriptions

If you're running a Meet instance, with simple config (DJANGO_SERVER_TO_SERVER_API_TOKENS) you can push your meeting transcript to Docs and give access to the user who requested it.

Try Docs

Experience Docs instantly - no installation required.

Self-hosting

Docs supports Kubernetes, Docker Compose, and community-provided methods such as Nix and YunoHost.

Get started with self-hosting: Installation guide

[!WARNING]
Some advanced features (for example: Export as PDF) rely on XL packages from Blocknote.
These packages are licensed under GPL and are not MIT-compatible

You can run Docs without these packages by building with:

bash
PUBLISH_AS_MIT=true

This builds an image of Docs without non-MIT features.

More details can be found in environment variables

Local Development (for contributors)

Run Docs locally for development and testing.

[!WARNING]
This setup is intended for development and testing only.
It uses Minio as an S3-compatible storage backend, but any S3-compatible service can be used.

Prerequisites

  • Docker
  • Docker Compose
  • GNU Make

Verify installation:

bash
docker -v
docker compose version

If you encounter permission errors, you may need to use sudo, or add your user to the docker group.

Bootstrap the project

The easiest way to start is using GNU Make:

bash
make bootstrap FLUSH_ARGS='--no-input'

This builds the app-dev and frontend-dev containers, installs dependencies, runs database migrations, and compiles translations.

It is recommended to run this command after pulling new code.

Start services:

bash
make run

Open https://localhost:3000

Default credentials (development only):

md
username: impress
password: impress

Frontend development mode

For frontend work, running outside Docker is often more convenient:

bash
make frontend-development-install
make run-frontend-development

Backend only

Starting all services except the frontend container:

bash
make run-backend

Tests & Linting

bash
make frontend-test
make frontend-lint

Backend tests can be run without docker. This is useful to configure PyCharm or VSCode to do it.
Removing docker for testing requires to overwrite some URL and port values that are different in and out of
Docker. env.d/development/common contains all variables, some of them having to be overwritten by those in
env.d/development/common.test.

Demo content

Create a basic demo site:

bash
make demo

More Make targets

To check all available Make rules:

bash
make help

Django admin

Create a superuser:

bash
make superuser

Admin UI: http://localhost:8071/admin

Contributing

This project is community-driven and PRs are welcome.

Roadmap

Curious where Docs is headed?

Explore upcoming features, priorities and long-term direction on our public roadmap.

License ๐Ÿ“

This work is released under the MIT License (see LICENSE).

While Docs is a public-driven initiative, our license choice is an invitation for private sector actors to use, sell and contribute to the project.

Credits โค๏ธ

Stack

Docs is built on top of Django Rest Framework, Next.js, ProseMirror, BlockNote.js, HocusPocus, and Yjs. We thank the contributors of all these projects for their awesome work!

We are proud sponsors of BlockNotejs and Yjs.


Gov โค๏ธ open source

Docs is the result of a joint initiative led by the French ๐Ÿ‡ซ๐Ÿ‡ท (DINUM) Government and German ๐Ÿ‡ฉ๐Ÿ‡ช government (ZenDiS).

We are always looking for new public partners (we are currently onboarding the Netherlands ๐Ÿ‡ณ๐Ÿ‡ฑ), feel free to contact us if you are interested in using or contributing to Docs.


File: src/helm/impress/README.md

Impress helm chart

Parameters

General configuration

Name Description Value
image.repository Repository to use to pull impress's container image lasuite/impress-backend
image.tag impress's container tag latest
image.pullPolicy Container image pull policy IfNotPresent
image.credentials.username Username for container registry authentication
image.credentials.password Password for container registry authentication
image.credentials.registry Registry url for which the credentials are specified
image.credentials.name Name of the generated secret for imagePullSecrets
nameOverride Override the chart name ""
fullnameOverride Override the full application name ""
ingress.enabled whether to enable the Ingress or not false
ingress.className IngressClass to use for the Ingress nil
ingress.host Host for the Ingress impress.example.com
ingress.path Path to use for the Ingress /
ingress.hosts Additional host to configure for the Ingress []
ingress.tls.enabled Whether to enable TLS for the Ingress true
ingress.tls.secretName Secret name for TLS config nil
ingress.tls.additional[].secretName Secret name for additional TLS config
ingress.tls.additional[].hosts[] Hosts for additional TLS config
ingress.customBackends Add custom backends to ingress []
ingressCollaborationWS.enabled whether to enable the Ingress or not false
ingressCollaborationWS.className IngressClass to use for the Ingress nil
ingressCollaborationWS.host Host for the Ingress impress.example.com
ingressCollaborationWS.path Path to use for the Ingress /collaboration/ws/
ingressCollaborationWS.hosts Additional host to configure for the Ingress []
ingressCollaborationWS.tls.enabled Whether to enable TLS for the Ingress true
ingressCollaborationWS.tls.secretName Secret name for TLS config nil
ingressCollaborationWS.tls.additional[].secretName Secret name for additional TLS config
ingressCollaborationWS.tls.additional[].hosts[] Hosts for additional TLS config
ingressCollaborationWS.customBackends Add custom backends to ingress []
ingressCollaborationWS.annotations.nginx.ingress.kubernetes.io/enable-websocket true
ingressCollaborationWS.annotations.nginx.ingress.kubernetes.io/proxy-read-timeout 86400
ingressCollaborationWS.annotations.nginx.ingress.kubernetes.io/proxy-send-timeout 86400
ingressCollaborationWS.annotations.nginx.ingress.kubernetes.io/upstream-hash-by $arg_room
ingressRedirects.enabled whether to enable the Ingress Redirects or not false
ingressRedirects.className IngressClass to use for the Ingress Redirects nil
ingressRedirects.host Host for the Ingress Redirects impress.example.com
ingressRedirects.tls.enabled Whether to enable TLS for the Ingress Redirects true
ingressRedirects.tls.secretName Secret name for TLS config nil
ingressRedirects.tls.additional[].secretName Secret name for additional TLS config
ingressRedirects.tls.additional[].hosts[] Hosts for additional TLS config
ingressRedirects.rules Rules for the Ingress Redirects []
ingressCollaborationApi.enabled whether to enable the Ingress or not false
ingressCollaborationApi.className IngressClass to use for the Ingress nil
ingressCollaborationApi.host Host for the Ingress impress.example.com
ingressCollaborationApi.path Path to use for the Ingress /collaboration/api/
ingressCollaborationApi.hosts Additional host to configure for the Ingress []
ingressCollaborationApi.tls.enabled Whether to enable TLS for the Ingress true
ingressCollaborationApi.tls.secretName Secret name for TLS config nil
ingressCollaborationApi.tls.additional[].secretName Secret name for additional TLS config
ingressCollaborationApi.tls.additional[].hosts[] Hosts for additional TLS config
ingressCollaborationApi.customBackends Add custom backends to ingress []
ingressCollaborationApi.annotations.nginx.ingress.kubernetes.io/upstream-hash-by $arg_room
ingressAdmin.enabled whether to enable the Ingress or not false
ingressAdmin.className IngressClass to use for the Ingress nil
ingressAdmin.host Host for the Ingress impress.example.com
ingressAdmin.path Path to use for the Ingress /admin
ingressAdmin.hosts Additional host to configure for the Ingress []
ingressAdmin.tls.enabled Whether to enable TLS for the Ingress true
ingressAdmin.tls.secretName Secret name for TLS config nil
ingressAdmin.tls.additional[].secretName Secret name for additional TLS config
ingressAdmin.tls.additional[].hosts[] Hosts for additional TLS config
ingressMedia.enabled whether to enable the Ingress or not false
ingressMedia.className IngressClass to use for the Ingress nil
ingressMedia.host Host for the Ingress impress.example.com
ingressMedia.path Path to use for the Ingress /media/(.*)
ingressMedia.hosts Additional host to configure for the Ingress []
ingressMedia.tls.enabled Whether to enable TLS for the Ingress true
ingressMedia.tls.secretName Secret name for TLS config nil
ingressMedia.tls.additional[].secretName Secret name for additional TLS config
ingressMedia.tls.additional[].hosts[] Hosts for additional TLS config
ingressMedia.annotations.nginx.ingress.kubernetes.io/auth-url https://impress.example.com/api/v1.0/documents/media-auth/
ingressMedia.annotations.nginx.ingress.kubernetes.io/auth-response-headers Authorization, X-Amz-Date, X-Amz-Content-SHA256
ingressMedia.annotations.nginx.ingress.kubernetes.io/upstream-vhost minio.impress.svc.cluster.local:9000
ingressMedia.annotations.nginx.ingress.kubernetes.io/configuration-snippet `add_header Content-Security-Policy "default-src 'none'" always;
`
serviceMedia.host Hostname of the media storage backend (S3/MinIO) used by the media ingress minio.impress.svc.cluster.local
serviceMedia.port Port of the media storage backend 9000
serviceMedia.annotations Annotations to add to the media ExternalName Service {}

backend

Name Description Value
backend.command Override the backend container command []
backend.args Override the backend container args []
backend.replicas Amount of backend replicas 3
backend.shareProcessNamespace Enable share process namespace between containers false
backend.sidecars Add sidecars containers to backend deployment []
backend.migrateJobAnnotations Annotations for the migrate job {}
backend.jobs.ttlSecondsAfterFinished Period to wait before remove jobs 30
backend.jobs.backoffLimit Numbers of jobs retries 2
backend.securityContext.allowPrivilegeEscalation Whether to allow privilege escalation for the backend container false
backend.securityContext.capabilities.drop List of capabilities to drop for the backend container ["ALL"]
backend.securityContext.runAsNonRoot Whether to run the backend container as a non-root user true
backend.securityContext.seccompProfile.type Seccomp profile type for the backend container RuntimeDefault
backend.envVars Configure backend container environment variables undefined
backend.envVars.BY_VALUE Example environment variable by setting value directly
backend.envVars.FROM_CONFIGMAP.configMapKeyRef.name Name of a ConfigMap when configuring env vars from a ConfigMap
backend.envVars.FROM_CONFIGMAP.configMapKeyRef.key Key within a ConfigMap when configuring env vars from a ConfigMap
backend.envVars.FROM_SECRET.secretKeyRef.name Name of a Secret when configuring env vars from a Secret
backend.envVars.FROM_SECRET.secretKeyRef.key Key within a Secret when configuring env vars from a Secret
backend.django.envVars Backend web deployment specific environment variables (not shared with celery worker)
backend.podAnnotations Annotations to add to the backend Pod {}
backend.dpAnnotations Annotations to add to the backend Deployment {}
backend.service.type backend Service type ClusterIP
backend.service.port backend Service listening port 80
backend.service.targetPort backend container listening port 8000
backend.service.annotations Annotations to add to the backend Service {}
backend.migrate.command backend migrate command ["/bin/sh","-c","attempt=0\nuntil output=$(python manage.py check --database default 2>&1)\ndo\n attempt=$((attempt + 1))\n echo \"Database check failed (attempt $attempt), retrying in 2s:\"\n echo \"$output\"\n sleep 2\ndone\n\necho \"Database is ready\"\n\npython manage.py migrate --no-input\n"]
backend.migrate.restartPolicy backend migrate job restart policy Never
backend.createsuperuser.command backend migrate command ["/bin/sh","-c","attempt=0\nuntil output=$(python manage.py check --database default 2>&1)\ndo\n attempt=$((attempt + 1))\n echo \"Database check failed (attempt $attempt), retrying in 2s:\"\n echo \"$output\"\n sleep 2\ndone\n\necho \"Database is ready\"\n\npython manage.py createsuperuser --email $DJANGO_SUPERUSER_EMAIL --password $DJANGO_SUPERUSER_PASSWORD\n"]
backend.createsuperuser.restartPolicy backend migrate job restart policy Never
backend.job job dedicated to run a random management command, for example after a deployment
backend.job.name The name to use to describe this job ""
backend.job.command The management command to execute []
backend.job.restartPolicy The restart policy for the job. Never
backend.job.annotations Annotations to add to the job [default: argocd.argoproj.io/hook: PostSync]
backend.cronjobs Cronjob name, schedule, command []
backend.probes.liveness.path Configure path for backend HTTP liveness probe /__lbheartbeat__
backend.probes.liveness.targetPort Configure port for backend HTTP liveness probe nil
backend.probes.liveness.initialDelaySeconds Configure initial delay for backend liveness probe 10
backend.probes.liveness.timeoutSeconds Configure timeout for backend liveness probe nil
backend.probes.startup.path Configure path for backend HTTP startup probe
backend.probes.startup.targetPort Configure port for backend HTTP startup probe
backend.probes.startup.initialDelaySeconds Configure initial delay for backend startup probe
backend.probes.startup.timeoutSeconds Configure timeout for backend startup probe
backend.probes.readiness.path Configure path for backend HTTP readiness probe /__heartbeat__
backend.probes.readiness.targetPort Configure port for backend HTTP readiness probe nil
backend.probes.readiness.initialDelaySeconds Configure initial delay for backend readiness probe 10
backend.probes.readiness.timeoutSeconds Configure timeout for backend readiness probe nil
backend.resources Resource requirements for the backend container {}
backend.nodeSelector Node selector for the backend Pod {}
backend.tolerations Tolerations for the backend Pod []
backend.affinity Affinity for the backend Pod {}
backend.persistence Additional volumes to create and mount on the backend. Used for debugging purposes {}
backend.persistence.volume-name.size Size of the additional volume
backend.persistence.volume-name.type Type of the additional volume, persistentVolumeClaim or emptyDir
backend.persistence.volume-name.mountPath Path where the volume should be mounted to
backend.extraVolumeMounts Additional volumes to mount on the backend. []
backend.extraVolumes Additional volumes to mount on the backend. []
backend.pdb.enabled Enable pdb on backend true
backend.serviceAccountName Optional service account name to use for backend pods nil
backend.themeCustomization.enabled Enable theme customization false
backend.themeCustomization.file_content Content of the theme customization file. Must be a json object. ""
backend.themeCustomization.mount_path Path where the customization file will be mounted in the backend deployment. /app/impress/configuration/theme
backend.celery.replicas Amount of celery replicas 1
backend.celery.command Override the celery container command []
backend.celery.args Override the celery container args ["celery","-A","impress.celery_app","worker","-l","INFO","-n","impress@%h"]
backend.celery.resources Resource requirements for the celery container {}
backend.celery.probes.liveness.exec.command Override the celery container liveness probe command ["/bin/sh","-c","celery -A impress.celery_app inspect ping -d impress@$HOSTNAME"]
backend.celery.probes.liveness.initialDelaySeconds Initial delay for the celery container liveness probe 60
backend.celery.probes.liveness.timeoutSeconds Timeout for the celery container liveness probe 5
backend.celery.probes.readiness.exec.command Override the celery container readiness probe command ["/bin/sh","-c","celery -A impress.celery_app inspect ping -d impress@$HOSTNAME"]
backend.celery.probes.readiness.initialDelaySeconds Initial delay for the celery container readiness probe 15
backend.celery.probes.readiness.timeoutSeconds Timeout for the celery container readiness probe 5
backend.celery.envVars Celery worker specific environment variables (not shared with the backend web deployment)

frontend

Name Description Value
frontend.image.repository Repository to use to pull impress's frontend container image lasuite/impress-frontend
frontend.image.tag impress's frontend container tag latest
frontend.image.pullPolicy frontend container image pull policy IfNotPresent
frontend.command Override the frontend container command []
frontend.args Override the frontend container args []
frontend.replicas Amount of frontend replicas 3
frontend.shareProcessNamespace Enable share process namespace between containers false
frontend.sidecars Add sidecars containers to frontend deployment []
frontend.securityContext.allowPrivilegeEscalation Whether to allow privilege escalation for the frontend container false
frontend.securityContext.capabilities.drop List of capabilities to drop for the frontend container ["ALL"]
frontend.securityContext.runAsNonRoot Whether to run the frontend container as a non-root user true
frontend.securityContext.seccompProfile.type Seccomp profile type for the frontend container RuntimeDefault
frontend.envVars Configure frontend container environment variables undefined
frontend.envVars.BY_VALUE Example environment variable by setting value directly
frontend.envVars.FROM_CONFIGMAP.configMapKeyRef.name Name of a ConfigMap when configuring env vars from a ConfigMap
frontend.envVars.FROM_CONFIGMAP.configMapKeyRef.key Key within a ConfigMap when configuring env vars from a ConfigMap
frontend.envVars.FROM_SECRET.secretKeyRef.name Name of a Secret when configuring env vars from a Secret
frontend.envVars.FROM_SECRET.secretKeyRef.key Key within a Secret when configuring env vars from a Secret
frontend.podAnnotations Annotations to add to the frontend Pod {}
frontend.dpAnnotations Annotations to add to the frontend Deployment {}
frontend.service.type frontend Service type ClusterIP
frontend.service.port frontend Service listening port 80
frontend.service.targetPort frontend container listening port 8080
frontend.service.annotations Annotations to add to the frontend Service {}
frontend.probes Configure probe for frontend {}
frontend.probes.liveness.path Configure path for frontend HTTP liveness probe
frontend.probes.liveness.targetPort Configure port for frontend HTTP liveness probe
frontend.probes.liveness.initialDelaySeconds Configure initial delay for frontend liveness probe
frontend.probes.liveness.initialDelaySeconds Configure timeout for frontend liveness probe
frontend.probes.startup.path Configure path for frontend HTTP startup probe
frontend.probes.startup.targetPort Configure port for frontend HTTP startup probe
frontend.probes.startup.initialDelaySeconds Configure initial delay for frontend startup probe
frontend.probes.startup.initialDelaySeconds Configure timeout for frontend startup probe
frontend.probes.readiness.path Configure path for frontend HTTP readiness probe
frontend.probes.readiness.targetPort Configure port for frontend HTTP readiness probe
frontend.probes.readiness.initialDelaySeconds Configure initial delay for frontend readiness probe
frontend.probes.readiness.initialDelaySeconds Configure timeout for frontend readiness probe
frontend.resources Resource requirements for the frontend container {}
frontend.nodeSelector Node selector for the frontend Pod {}
frontend.tolerations Tolerations for the frontend Pod []
frontend.affinity Affinity for the frontend Pod {}
frontend.persistence Additional volumes to create and mount on the frontend. Used for debugging purposes {}
frontend.persistence.volume-name.size Size of the additional volume
frontend.persistence.volume-name.type Type of the additional volume, persistentVolumeClaim or emptyDir
frontend.persistence.volume-name.mountPath Path where the volume should be mounted to
frontend.extraVolumeMounts Additional volumes to mount on the frontend. []
frontend.extraVolumes Additional volumes to mount on the frontend. []
frontend.pdb.enabled Enable pdb on frontend true
frontend.serviceAccountName Optional service account name to use for frontend pods nil

posthog

Name Description Value
posthog.ingress.enabled Enable or disable the ingress resource creation false
posthog.ingress.className Kubernetes ingress class name to use (e.g., nginx, traefik) nil
posthog.ingress.host Primary hostname for the ingress resource impress.example.com
posthog.ingress.path URL path prefix for the ingress routes (e.g., /) /
posthog.ingress.hosts Additional hostnames array to be included in the ingress []
posthog.ingress.tls.enabled Enable or disable TLS/HTTPS for the ingress true
posthog.ingress.tls.additional Additional TLS configurations for extra hosts/certificates []
posthog.ingress.customBackends Custom backend service configurations for the ingress []
posthog.ingress.annotations Additional Kubernetes annotations to apply to the ingress {}
posthog.ingressAssets.enabled Enable or disable the ingress resource creation false
posthog.ingressAssets.className Kubernetes ingress class name to use (e.g., nginx, traefik) nil
posthog.ingressAssets.host Primary hostname for the ingress resource impress.example.com
posthog.ingressAssets.paths URL paths prefix for the ingress routes (e.g., /static) ["/static","/array"]
posthog.ingressAssets.hosts Additional hostnames array to be included in the ingress []
posthog.ingressAssets.tls.enabled Enable or disable TLS/HTTPS for the ingress true
posthog.ingressAssets.tls.additional Additional TLS configurations for extra hosts/certificates []
posthog.ingressAssets.customBackends Custom backend service configurations for the ingress []
posthog.ingressAssets.annotations Additional Kubernetes annotations to apply to the ingress {}
posthog.service.type Service type (e.g. ExternalName, ClusterIP, LoadBalancer) ExternalName
posthog.service.externalName External service hostname when type is ExternalName eu.i.posthog.com
posthog.service.port Port number for the service 443
posthog.service.annotations Additional annotations to apply to the service {}
posthog.assetsService.type Service type (e.g. ExternalName, ClusterIP, LoadBalancer) ExternalName
posthog.assetsService.externalName External service hostname when type is ExternalName eu-assets.i.posthog.com
posthog.assetsService.port Port number for the service 443
posthog.assetsService.annotations Additional annotations to apply to the service {}

yProvider

Name Description Value
yProvider.image.repository Repository to use to pull impress's yProvider container image lasuite/impress-y-provider
yProvider.image.tag impress's yProvider container tag latest
yProvider.image.pullPolicy yProvider container image pull policy IfNotPresent
yProvider.command Override the yProvider container command []
yProvider.args Override the yProvider container args []
yProvider.replicas Amount of yProvider replicas 3
yProvider.shareProcessNamespace Enable share process nameyProvider between containers false
yProvider.sidecars Add sidecars containers to yProvider deployment []
yProvider.securityContext.allowPrivilegeEscalation Whether to allow privilege escalation for the yProvider container false
yProvider.securityContext.capabilities.drop List of capabilities to drop for the yProvider container ["ALL"]
yProvider.securityContext.runAsNonRoot Whether to run the yProvider container as a non-root user true
yProvider.securityContext.seccompProfile.type Seccomp profile type for the yProvider container RuntimeDefault
yProvider.envVars Configure yProvider container environment variables undefined
yProvider.envVars.BY_VALUE Example environment variable by setting value directly
yProvider.envVars.FROM_CONFIGMAP.configMapKeyRef.name Name of a ConfigMap when configuring env vars from a ConfigMap
yProvider.envVars.FROM_CONFIGMAP.configMapKeyRef.key Key within a ConfigMap when configuring env vars from a ConfigMap
yProvider.envVars.FROM_SECRET.secretKeyRef.name Name of a Secret when configuring env vars from a Secret
yProvider.envVars.FROM_SECRET.secretKeyRef.key Key within a Secret when configuring env vars from a Secret
yProvider.podAnnotations Annotations to add to the yProvider Pod {}
yProvider.dpAnnotations Annotations to add to the yProvider Deployment {}
yProvider.service.type yProvider Service type ClusterIP
yProvider.service.port yProvider Service listening port 443
yProvider.service.targetPort yProvider container listening port 4444
yProvider.service.annotations Annotations to add to the yProvider Service {}
yProvider.probes.liveness.path Configure path for yProvider HTTP liveness probe /ping
yProvider.probes.liveness.initialDelaySeconds Configure initial delay for yProvider liveness probe 10
yProvider.probes.liveness.targetPort Configure port for yProvider HTTP liveness probe
yProvider.probes.liveness.timeoutSeconds Configure timeout for yProvider liveness probe
yProvider.probes.startup.path Configure path for yProvider HTTP startup probe
yProvider.probes.startup.targetPort Configure port for yProvider HTTP startup probe
yProvider.probes.startup.initialDelaySeconds Configure initial delay for yProvider startup probe
yProvider.probes.startup.timeoutSeconds Configure timeout for yProvider startup probe
yProvider.probes.readiness.path Configure path for yProvider HTTP readiness probe
yProvider.probes.readiness.targetPort Configure port for yProvider HTTP readiness probe
yProvider.probes.readiness.initialDelaySeconds Configure initial delay for yProvider readiness probe
yProvider.probes.readiness.timeoutSeconds Configure timeout for yProvider readiness probe
yProvider.resources Resource requirements for the yProvider container {}
yProvider.nodeSelector Node selector for the yProvider Pod {}
yProvider.tolerations Tolerations for the yProvider Pod []
yProvider.affinity Affinity for the yProvider Pod {}
yProvider.persistence Additional volumes to create and mount on the yProvider. Used for debugging purposes {}
yProvider.persistence.volume-name.size Size of the additional volume
yProvider.persistence.volume-name.type Type of the additional volume, persistentVolumeClaim or emptyDir
yProvider.persistence.volume-name.mountPath Path where the volume should be mounted to
yProvider.extraVolumeMounts Additional volumes to mount on the yProvider. []
yProvider.extraVolumes Additional volumes to mount on the yProvider. []
yProvider.pdb.enabled Enable pdb on yProvider true
yProvider.serviceAccountName Optional service account name to use for yProvider pods nil

docSpec

Name Description Value
docSpec.enabled Enable docSpec deployment false
docSpec.image.repository Repository to use to pull docSpec container image ghcr.io/docspecio/api
docSpec.image.tag docSpec container tag 2.6.3
docSpec.image.pullPolicy docSpec container image pull policy IfNotPresent
docSpec.command Override the docSpec container command []
docSpec.args Override the docSpec container args []
docSpec.replicas Amount of docSpec replicas 1
docSpec.securityContext.allowPrivilegeEscalation Whether to allow privilege escalation for the docSpec container false
docSpec.securityContext.capabilities.drop List of capabilities to drop for the docSpec container ["ALL"]
docSpec.securityContext.runAsNonRoot Whether to run the docSpec container as a non-root user true
docSpec.securityContext.seccompProfile.type Seccomp profile type for the docSpec container RuntimeDefault
docSpec.envVars Configure docSpec container environment variables {}
docSpec.service.type docSpec Service type ClusterIP
docSpec.service.port docSpec Service listening port 4000
docSpec.service.targetPort docSpec container listening port 4000
docSpec.probes.liveness.path Configure path for docSpec HTTP liveness probe /health
docSpec.probes.readiness.path Configure path for docSpec HTTP readiness probe /health
docSpec.resources docSpec resources {}
docSpec.nodeSelector Node selector for the docSpec Pod {}
docSpec.tolerations Tolerations for the docSpec Pod []
docSpec.affinity Affinity for the docSpec Pod {}
docSpec.extraVolumeMounts Additional volumes to mount on docSpec []
docSpec.extraVolumes Additional volumes to mount on docSpec []

File: src/frontend/apps/impress/README.md

This is a Next.js project bootstrapped with create-next-app.

Getting Started

First, run the development server:

bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.

This project uses next/font to automatically optimize and load Inter, a custom Google Font.

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.