
-A database-less note taking web app that utilises a flat folder of markdown files for storage.
+A self-hosted, database-less note taking web app that utilises a flat folder of markdown files for storage.
-Log into the [demo site](https://demo.flatnotes.io) and take a look around. The username is `demo` and the password is `demo`. *Note: This site resets every 15 minutes.*
+Log into the [demo site](https://demo.flatnotes.io) and take a look around. *Note: This site resets every 15 minutes.*
## Design Principle
Another key design principle is not to take your notes hostage. Your notes are just markdown files. There's no database, proprietary formatting, complicated folder structures or anything like that. You're free at any point to just move the files elsewhere and use another app.
-Equally, the only thing flatnotes caches is the search index and that's incrementally synced on every search (and when flatnotes first starts). This means that you're free to add, edit & delete the markdown files outside of flatnotes whilst flatnotes is running.
+Equally, the only thing flatnotes caches is the search index and that's incrementally synced on every search (and when flatnotes first starts). This means that you're free to add, edit & delete the markdown files outside of flatnotes even whilst flatnotes is running.
## Installation
```shell
docker run -d \
+ -e "FLATNOTES_AUTH_TYPE=password"
-e "FLATNOTES_USERNAME=user" \
-e "FLATNOTES_PASSWORD=changeMe!" \
-e "FLATNOTES_SECRET_KEY=aLongRandomSeriesOfCharacters" \
container_name: flatnotes
image: dullage/flatnotes:latest
environment:
+ FLATNOTES_AUTH_TYPE: "password"
FLATNOTES_USERNAME: "user"
FLATNOTES_PASSWORD: "changeMe!"
FLATNOTES_SECRET_KEY: "aLongRandomSeriesOfCharacters"
- # FLATNOTES_SESSION_EXPIRY_DAYS: "7"
- # Optional. Defaults to 30.
volumes:
- "./data:/app/data"
# - "./index:/app/data/.flatnotes"
restart: unless-stopped
```
+See the [Environment Variables](https://github.com/Dullage/flatnotes/wiki/Environment-Variables) article in the wiki for a full list of configuration options.
+
## Q&A
Additionally you are able to tag notes by using a hashtag anywhere in the note content e.g. #work. Tags are indexed separately from the rest of the content and so can be searched separately either by using the field prefix e.g. "tags:work" or using the hashtag shortcut e.g. "#work".
+### What types of authentication are supported?
+There are 3 types:
+
+- None = No authentication, the site is open to anyone with access.
+- Password = The site is protected by a username and password.
+- TOTP = In addition to a username and password, the site is also protected by a time based one-time-password.
+
+See the [Environment Variables](https://github.com/Dullage/flatnotes/wiki/Environment-Variables) article in the wiki for more information.
+
## Roadmap
One feature I do plan to implement is the ability to *share* a note. In the spirit of simple and database-less, the current plan is to generate temporary pre-signed URLs but this needs to be explored.
-## Support
+## Sponsorship
If you find this project useful, please consider buying me a coffee. It would make my day.
[](https://www.buymeacoffee.com/dullage)
+
## Thanks
A special thanks to 2 fantastic open source projects that make flatnotes possible.