A simple, lightweight, and self-hostable knowledge management and documentation platform designed for teams and communities.
It provides an intuitive way to create, organize, and share documentation using a clean Markdown editor. Built for collaboration, the platform allows users to structure content in folders, manage access through authentication, and easily share knowledge with others.
Ideal for internal documentation, technical guides, project notes, or community knowledge bases.
- Secure user authentication and login system
- Folder-based organization for structured documentation
- Powerful Markdown editor for writing and formatting content
- Easy document sharing across teams or communities
- Clean and intuitive interface for fast documentation
- Self hostable and lightweight deployment
- Designed for collaborative documentation
- Create file
.env:
cp .env.example .env- Create a
compose.yamlfile
services:
knowledge_app:
image: ghcr.io/theomeunier/knowledge_app:latest
container_name: knowledge_app
restart: unless-stopped
ports:
- '3333:3333'
environment:
TZ: Europe/Paris
APP_URL: ${APP_URL}
APP_KEY: ${APP_KEY}
DB_HOST: postgres
DB_PORT: 5432
DB_USER: knowledge_app
DB_PASSWORD: knowledge_app
DB_DATABASE: knowledge_app
DRIVE_DISK: fs
IMAGE_PROXY_SECRET: your-secret-key
networks:
- app_network
postgres:
image: postgres:17.8-alpine
container_name: knowledge_app_database
restart: unless-stopped
ports:
- '5432:5432'
environment:
POSTGRES_DB: knowledge_app
POSTGRES_USER: knowledge_app
POSTGRES_PASSWORD: knowledge_app
PGDATA: /var/lib/postgresql/data/pgdata
volumes:
- ./storage-db:/var/lib/postgresql/data
depends_on:
- knowledge_app
networks:
- app_network
networks:
app_network:
driver: bridge- Configure the
variable environnementfile
3.1 App variables:
-
APP_URL: The URL of your application -
APP_KEY: The encryption key used to encrypt sensitive data in the application. It should be a random string of at least 32 characters.3.2 PostgreSQL Configuration:
-
DB_HOST: The host of your PostgreSQL database -
DB_PORT: The port of your PostgreSQL database -
DB_USER: The username of your PostgreSQL database -
DB_PASSWORD: The password of your PostgreSQL database -
DB_DATABASE: The name of your PostgreSQL database
- Start the application with docker-compose
docker compose up -d- Wait for the application to start and initialize the database. You can check the logs to see when it's ready.
docker compose exec knowledge_app bash
node ace generate:key
node ace migration:run
node ace db:seed- Access the application
Once the server is running, open your browser and go to:
The database seeder creates a default administrator account with the following credentials:
Username: admin@knowledge.fr
Password: knowledge
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.