Commit

4ad0d85

I am thinking about deployment and start doubting my own decisions. With Dokploy, deploying a new version of the server is just a matter of pushing to the repo. Dokploy also allows bind mount, so I can bind mount the vault into the server container. Only uid needs to match. What…
I think it's better. It keeps what mattered in Q1 (the vault stays a plain dir on the host, so Claude Code still works in it bare) and drops the part I liked least: building a release pipeline just to deploy. What changes: - Q25: no bundled-JS release needed for the server. A…
@dtinth Updated docs/SPEC.md for Dokploy + bind-mounted vault, with the CLI as a thin API client (f16dad0, local). Still waiting on a yes to push next and start on legacy parity.
On it: plan/apply against Supabase, behind an interface with an in-memory fake and tests. No live Supabase access here, so I will test against the fake and leave a read-only notes plan for you to run against the real one.
On it: adversarial security review of next (server auth, API, git/token handling, path traversal, preview iframe, Docker). Will post findings and fixes.
Review pass done, now fixing. Worst find: the GitHub App token for one repo works on every repo in the installation. Also: note aliases can write files outside the site dir (../), and symlinks in the vault are followed.
I created a dedicated app and installed it on just two directories. BTW, my GITHUB_APP_PRIVATE_KEY is a PEM file with multiline, how do I set it in .env?
Paste it as one line, either way works now (650a0f2): GITHUB_APP_PRIVATE_KEY=<output of base64 -w0 key.pem> (on macOS: base64 -i key.pem), or the PEM with \n escapes. A dedicated app on just those two repos is ideal. Tokens are now also scoped to one repo each.
On my VPS:
sh-session
$ id -u
1003
Do I have to do something special? Also, I just need to create a blank folder and on first run would the vault be populated?
Both handled in 306e3e5. uid: in Dokploy, set the build args (Environment, Build-time Arguments) NOTES_UID=1003 and NOTES_GID=<your id -g>. The image then runs as that user, so vault files stay yours on the host. Blank folder: yes. Create it (owned by you), bind-mount it at /vault, and set NOTES_VAULT_REMOTE=https://github.com/<you>/<vault repo>. On first run it gets cloned using the GitHub App. For /data, use a named volume, not a bind mount; it picks up the right owner by itself. Tested in Docker as uid 1003: it cloned on first run, saved files came out as 1003:1003, and a restart did not clone again.
GitHubGitHub · Change is constant. GitHub keeps you ahead. · GitHubJoin the world's most widely adopted, AI-powered developer platform where millions of developers, businesses, and the largest open source community build software that advances humanity.

commit 4ad0d85

It works great! - Can you make it so that the sidebar shows recent note first. - Add an action menu where I can set note to public (updates frontmatter to public: true + adds created if not created yet) and add revision (adds an updates entry) - To rename a note I can just…