Markdown note-taking web application designed for simplicity
PHP
1,093
964 commits
updated Sep 1, 2026
Many Notes is a Markdown note-taking web application designed for simplicity! Easily create or import your vaults and organize your thoughts right away.
It uses a database to power its features, but your files are also saved in the filesystem, giving you full control over your vault structure and ensuring easy access and portability.
Vaults are simply storage containers for your files, and Many Notes lets you choose to keep all your files in one vault or organize them into separate vaults.
[!IMPORTANT]
It is recommended to run Many Notes behind a reverse proxy serving the application with HTTPS. This not only secures your traffic but also gives you access to additional features like PWA support or copying to clipboard from code blocks.
Light theme
If you find this project useful, consider supporting its development:
Choose your preferred method to install Many Notes:
Read the upgrading guide if you are upgrading from a previous version.
Create a compose.yaml file with:
services:
php:
image: brufdev/many-notes:latest
restart: unless-stopped
environment:
- APP_URL=http://localhost # address used to access the application
volumes:
- database:/var/www/html/database/sqlite
- logs:/var/www/html/storage/logs
- private:/var/www/html/storage/app/private
- typesense:/var/www/html/typesense
ports:
- 80:8080
volumes:
database:
logs:
private:
typesense:
Make sure to change the address used to access the application. Feel free to change anything else if you know what you're doing, and read the customization section below before continue. Then run:
docker compose up -d
You can customize Many Notes by adding environment variables to the compose.yaml file.
If you change the default port from 80 or use a reverse proxy with a custom URL, make sure to configure the application URL accordingly. For example, if you change the port to 8080, add:
environment:
- APP_URL=http://localhost:8080
Check all available timezones here. For example, if you want to set the timezone to Amsterdam, add:
environment:
- APP_TIMEZONE=Europe/Amsterdam
Increase the upload size limit to allow for the import of larger files. For example, if you want to increase the limit to 1 GB, add:
environment:
- PHP_POST_MAX_SIZE=1G
- PHP_UPLOAD_MAX_FILE_SIZE=1G
Many Notes authenticates with OpenID Connect, so it works with most login providers, such as Pocket ID, Keycloak, Authentik, Entra ID, Auth0, Okta, or Google.
For example, to enable Pocket ID, add:
environment:
- OIDC_NAME=Pocket ID # name shown on the login button
- OIDC_CLIENT_ID=CLIENT_ID # change id
- OIDC_CLIENT_SECRET=CLIENT_SECRET # change secret
- OIDC_REDIRECT_URI=http://localhost/oauth/oidc/callback # change domain
- OIDC_BASE_URL=https://your-pocketid-url # change url
You can enable several OpenID Connect providers at the same time. Dedicated providers are also available for services like GitHub, GitLab, and Slack. Read the OAuth documentation for both.
Disable local authentication by configuring an OAuth provider and specifying a URL to redirect after logout. For example, to use Pocket ID as the only authentication method, add:
environment:
# enabling the OpenID Connect provider:
- OIDC_NAME=Pocket ID # name shown on the login button
- OIDC_CLIENT_ID=CLIENT_ID # change id
- OIDC_CLIENT_SECRET=CLIENT_SECRET # change secret
- OIDC_REDIRECT_URI=http://localhost/oauth/oidc/callback # change domain
- OIDC_BASE_URL=https://your-pocketid-url # change url
# disabling local authentication:
- OIDC_POST_LOGOUT_REDIRECT_URI=https://your-pocketid-url/logout # change URL
- SETTINGS_LOCAL_AUTH_ENABLED=false
Configure an email service to send registration and password reset emails by adding:
environment:
- MAIL_MAILER=smtp
- MAIL_HOST=127.0.0.1
- MAIL_PORT=2525
- MAIL_USERNAME=null
- MAIL_PASSWORD=null
- MAIL_ENCRYPTION=null
- [email protected]
- MAIL_FROM_NAME="Many Notes"
Read the FAQs to find the answers to the most common questions.
If you're interested in contributing to Many Notes, please read the contributing guide before submitting a pull request.
This project is licensed under the MIT License. See the LICENSE file for the full license text.
1,038 followers · starred Feb 2025
212 followers · starred Jan 2025
963 followers · starred Jan 2026
19 followers · starred Jun 2025
Markdown note-taking web application designed for simplicity
PHP
1,093
964 commits
updated Sep 1, 2026
Many Notes is a Markdown note-taking web application designed for simplicity! Easily create or import your vaults and organize your thoughts right away.
It uses a database to power its features, but your files are also saved in the filesystem, giving you full control over your vault structure and ensuring easy access and portability.
Vaults are simply storage containers for your files, and Many Notes lets you choose to keep all your files in one vault or organize them into separate vaults.
[!IMPORTANT]
It is recommended to run Many Notes behind a reverse proxy serving the application with HTTPS. This not only secures your traffic but also gives you access to additional features like PWA support or copying to clipboard from code blocks.
Light theme
If you find this project useful, consider supporting its development:
Choose your preferred method to install Many Notes:
Read the upgrading guide if you are upgrading from a previous version.
Create a compose.yaml file with:
services:
php:
image: brufdev/many-notes:latest
restart: unless-stopped
environment:
- APP_URL=http://localhost # address used to access the application
volumes:
- database:/var/www/html/database/sqlite
- logs:/var/www/html/storage/logs
- private:/var/www/html/storage/app/private
- typesense:/var/www/html/typesense
ports:
- 80:8080
volumes:
database:
logs:
private:
typesense:
Make sure to change the address used to access the application. Feel free to change anything else if you know what you're doing, and read the customization section below before continue. Then run:
docker compose up -d
You can customize Many Notes by adding environment variables to the compose.yaml file.
If you change the default port from 80 or use a reverse proxy with a custom URL, make sure to configure the application URL accordingly. For example, if you change the port to 8080, add:
environment:
- APP_URL=http://localhost:8080
Check all available timezones here. For example, if you want to set the timezone to Amsterdam, add:
environment:
- APP_TIMEZONE=Europe/Amsterdam
Increase the upload size limit to allow for the import of larger files. For example, if you want to increase the limit to 1 GB, add:
environment:
- PHP_POST_MAX_SIZE=1G
- PHP_UPLOAD_MAX_FILE_SIZE=1G
Many Notes authenticates with OpenID Connect, so it works with most login providers, such as Pocket ID, Keycloak, Authentik, Entra ID, Auth0, Okta, or Google.
For example, to enable Pocket ID, add:
environment:
- OIDC_NAME=Pocket ID # name shown on the login button
- OIDC_CLIENT_ID=CLIENT_ID # change id
- OIDC_CLIENT_SECRET=CLIENT_SECRET # change secret
- OIDC_REDIRECT_URI=http://localhost/oauth/oidc/callback # change domain
- OIDC_BASE_URL=https://your-pocketid-url # change url
You can enable several OpenID Connect providers at the same time. Dedicated providers are also available for services like GitHub, GitLab, and Slack. Read the OAuth documentation for both.
Disable local authentication by configuring an OAuth provider and specifying a URL to redirect after logout. For example, to use Pocket ID as the only authentication method, add:
environment:
# enabling the OpenID Connect provider:
- OIDC_NAME=Pocket ID # name shown on the login button
- OIDC_CLIENT_ID=CLIENT_ID # change id
- OIDC_CLIENT_SECRET=CLIENT_SECRET # change secret
- OIDC_REDIRECT_URI=http://localhost/oauth/oidc/callback # change domain
- OIDC_BASE_URL=https://your-pocketid-url # change url
# disabling local authentication:
- OIDC_POST_LOGOUT_REDIRECT_URI=https://your-pocketid-url/logout # change URL
- SETTINGS_LOCAL_AUTH_ENABLED=false
Configure an email service to send registration and password reset emails by adding:
environment:
- MAIL_MAILER=smtp
- MAIL_HOST=127.0.0.1
- MAIL_PORT=2525
- MAIL_USERNAME=null
- MAIL_PASSWORD=null
- MAIL_ENCRYPTION=null
- [email protected]
- MAIL_FROM_NAME="Many Notes"
Read the FAQs to find the answers to the most common questions.
If you're interested in contributing to Many Notes, please read the contributing guide before submitting a pull request.
This project is licensed under the MIT License. See the LICENSE file for the full license text.
1,038 followers · starred Feb 2025
212 followers · starred Jan 2025
963 followers · starred Jan 2026
19 followers · starred Jun 2025