Introduction in Chinese: 打造自己的工具
Obsidian and Flomo are two of my favorite Applications.
I use Obsidian for knowledge management and Flomo for daily thoughts or memos.
But Flomo don't work well with Obsidian. I decided to create a Web interface for Obsidian, so I can use it on my mobile devices and work in a mixed way of Obsidian and flomo.
Here are the principles of this project:
-
The UI is designed to be more suitable for a mobile device. On PC/Mac, the Obsidian native application is more convenient than Web Applications.
-
We won't do complicated editing operations on the mobile end, in most scenarios, we create simple note and memos in daily life, but we can use
link
in Obsidian to build connections between notes. -
Keep everything simple, plain Markdown is preferable. Git as database and no other deps.
-
We don't want to store any data on other third-parties, here we will deploy it on our own server.
-
There is a simple but workable RSS reader
Obweb is a classic single page Web application:
- Backend: Rust + Warp for API
- Frontend: JavaScript, Bootstrap, JQuery, svelte. I'm a novice in Frontend :)
For a MVP, I want to keep it stupid and simple. Most of code is simple and easy to understand, there are some hard-coded parts.
Maybe you need to do some trivial tweaks. Any PR is welcome to make it better and useful for others.
There is a plugin Obsidian Git to help you sync you Obsidian vault with remote repository.
Obweb assume you have your Obsidian repository is cloned on the deploying server, and you have the permission of Git pull/push. When you are posting things from API, Obweb will push changes to remote.
git clone http://your-ob-repo ob
cd ob
git config user.email "you@example.com"
git config user.name "Your Name"
Obweb assume your Obsidian vault has Daily
and Unsort
directories to store daily memos and unsorted notes.
wget https://github.com/chenyukang/obweb/releases/download/v0.2/ob-web-pack.zip
unzip ob-web-pack.zip
mkdir -p ob db pages
cd ob-web-pack
./ob-web
#Or you may start with Docker:
docker-compose up
Now you can access it on your browser http://localhost:8006/obweb.
Option: If you want to compile from scratch
Make sure you have installed Rust and Cargo and npm, and then run:
./bin/dev.sh
If you have your own domain, you can deploy it to a custom domain. You may want to add some other security enhancement such as HTTPS, request frequency limit, etc.
If you want to add authorization with an account and password, you may run:
./target/debug/obweb -c
The encrepted account information will be stored in file ./db/accounts
.
I use this App everyday, hope it will be useful for you.