Hello everyone, I'd like your recommendations for a note taking app that:
- Can be selfhosted
- Stores the notes as plain text or *.md files, not some SQL database.
- Can use Marddown format.
- Have an android client or at least a mobile optimized web-interface.
- Not a must but it would be nice to have a to-do list option.
I tried:
- Trilium: use an encrypted litesql to store the notes.
- Joplin: does not encrypt the notes, but store them in random named directories, making ot harder finding the notes.
- Logseq: No firefox support, I did not check how it stores itsdatabase.
- Standard note: Needs subscription to selfhost or to even use markdown format, otherwise it is a heavy text editor.
- Memos: does not store plain files, instead uses a (sqlite probably) database even when setting local filesystem as current object storage.
- CodiMD: use database to store its notes
- Hedgedoc: the same as above
- Silverbulet.md: This is what I will end up using if Obsidian + syncthing was not for me,It is minimal without losing much features and can be enhanced with plug-ins. . It does need a bit of getting used to and it does not have an android app but can it can be run as PWA that runs offline. The only downside is it does clutter your note directory with a bunch of dot files (if you decided to install plug-ins).
The closest I found so far is Obsidian, which:
- Unfortunately, does not have any selfhosting option.
- Have a client app on every platform and store.
- Can use a custom directory to store it database as plain text files, which can be a network mounted directory (on my laptop/desktop) or a directory on my android phone that i will have to keep synchronized using a third party app.
- I used "Remotely Save by fyears" which allows you to synchronize local obsidian note directory with a cloud directory (onedrive, dropbox, webdav...), It requires webdav for self-hosted options, kinda forcing you to use a 3th party service to run a 3rd party plug-in so you can use Obsidian with your home server directory. On top of that It can only use a folder on the root of the webdave server (say /notes instead of /documents/notes).
- I used syncthing initially to sync my Notes directory but I ended up using it to keep a buch of directories in sync across all my devices. Leaving you to use whatever app you like on any device, not just Obsidian.
Edit: March-2nd: added memos, codimd, hedgedoc Edit: March-9th, It has been a busy week and I could not do much. I added silverbullet and both syncthing adn remotly-save for obsidian. I'm using now Silverbullet and Obsidian+syncthing until I decide on one. Thank you everyone who helped me choosing.
You sound like me from last month. I strongly recommend silverbullet, check it out on https://silverbullet.md
Check, even has a simple docker compose
Check, it does have an SQL database, but it's used for queries, you can even copy or modify MD files at will
Check, it's a superset of markdown that includes queries for cool stuff like create tables that group data from other pages
Check, it has a PWA that works offline and syncs when back online. Note that this means that all files will be on your device if you use it like that, but that's expected.
Check, like I mentioned you can query all tasks on all pages and even do filters based on several factors, like where the task is defined or extra attributes that you set to them, e.g. priority.
Edit: bonus points:
Someone else mentioned Silverbullet, I hosted on my home server and it looks promising, here are a few thing I will need to explore:
/
, I'm wondering is there is a plugin that add a tool bar or a client app that does have it.Thank you for your comment
No, I use the PWA, i.e. access the page on your phone and as long as it's https it will prompt you to install it. Personally I just used a tailscale network to get past the https authorisation, this also allows me to access it outside of my house so win-win
Didn't understood, this is just a markdown file, you can just type things, no need to have buttons to add text.
+1 for silverbullet. I have it running and is great
Is there a way to embed portions of one page into another page, such that if you edit it on either the change shows up on both, like in logseq?
The documentation is actually pretty good, but i've not been able to find that feature, if it exists. That's probably the last thing keeping me on logseq.
Yes, but you need to hack your way around it, here's an issue on GitHub explaining how to do it with my own solution there in comments. https://github.com/silverbulletmd/silverbullet/issues/338
Wow, I asked the right person. Thanks for the info!
Hahaha, I had that exact doubt and asked on the discord and the main Dev sent me that issue. I strongly recommend joining the Discord, it's very active and sometimes there are interesting things there.
I should probably figure out discord one of these days. Thanks for letting me know that's where to go for this project.
Another +1 for silverbullet from me too. I was skeptical about only having a PWA for mobile access, but it actually works really well.
It's open source, so somewhat more customizable than obsidian since you can see the inner workings of it. There aren't too many active community plugins yet, but there is a relatively new concept of 'Space Scripts' where you can write simple functions/commands directly in a note (markdown file) to extend silverbullet without even needing to write a real plugin. That's been an amazing addition for me.
I am either an idiot or that is not working for me on my android phone. I have used PWAs before and I remember you can use them by tapping the "install" in the browser menu.
I installed Silverbullet via docker on my rpi4, but when I connect to it my browsers do not give me the option to install it as a PWA. I tried Mull, DuckDuckGo browser and even (gah!) Chrome.
I can only put a shortcut on my home screen, but that then goes to the IP of my rpi4 and when I am not online I cannot reach it.
Do I need to configure something that I forgot or is the shortcut on the home screen the "PWA"?
Only things served via https can be installed on Android.
Ah dang, had no idea. I see there's instructions on how to make silver bullet accessible via internet through https. But I only need this locally in my home WiFi, not connected to outside internet. Is there an easy way to enable https for it without exposing it outside my home WiFi?
I use tailscale, that allows me to access it remotely securely and gets https. If you don't want to do that it's hard but doable to emit your own certificates, but the tailscale approach is a lot more simple.