5d01c9f564450738688db3da7e38ac14f303e62a
Separate configuration from data storage and make paths configurable via environment variables and command-line flags. This improves Unix/Linux compliance and supports both development and production deployments. Key changes: - Separate config dir (opal.yml) from data dir (database, logs) - Support XDG Base Directory specification - Add --config-dir and --data-dir flags - Environment variables: OPAL_CONFIG_DIR, OPAL_DATA_DIR, OPAL_DB_PATH - Smart fallback: /etc/opal, /var/lib/opal -> ~/.config/opal, ~/.local/share/opal - Server mode validates required OAuth/JWT environment variables - Update naming from 'jade' to 'opal' throughout - Update systemd service name to 'opal.service' - Add migration guide in README Default paths: - Config: /etc/opal (fallback: ~/.config/opal) - Data: /var/lib/opal (fallback: ~/.local/share/opal) Files modified: - internal/engine/config.go: New directory resolution logic - internal/engine/database.go: Auto-create data directory - cmd/root.go: Add global flags for directory overrides - cmd/server.go: Add configuration validation - cmd/sync.go, internal/sync/*: Use new path helper functions - tests: Update to use directory overrides - docs: Update deployment guide and README
Notr
Simple Go application for organizing and referencing notes. Loosely based on Obsidian.
Implementation: See jade-depo/ directory for the CLI tool.
Workflow
I take notes in two primary ways:
Phone
- Quick notes, on the go.
- View and search notes.
Workstation
- Using NeoVim for notetaking
Other infrastructure
- I host a VPS with a Nextcloud and Gitea instances.
What I want
- A Obsidian Vault like structure. A folder where notes live.
- A file is a note
- Can also store attachments, such as images. These files can then be referenced in the relevant notes.
- Directories is the main organization method, although tags and links can seam-lesly cross directories boundries.
- Markdown syntax (this can be handled by NeoVim and a markdown editor on other devices.)
- Tags: Syntax +tag
- Note links for referencing other notes or any other vault files. Syntax uncertain. Obsidian uses ?
- See reports about the vault. Tag report
- At some point I would like to have a web-app and host it on my server. This would integrate with my authentik service for auth, and would be a live view of a users vault
- OCR would be great.
Implementation
I have a tendency to scope creep and never actually getting a usable product, so an important goal here is practicing getting a usable app up and running. This should not have to be the biggest project, so I'll try to predict the process:
Version 0.1
Here I use other tools for the note-taking and accept that any searching is on a directory basis only.
- I create a directory in Nextcloud. This I will start using immediately.
- Find a good Markdown editor for android.
- Adopt any crutial Obsidian notes
Version 1.0 ✓
This is where I can use Notr to find and search notes on my workstation. CLI implementation complete!
- Process notes. Metadata and diffs
- Search and Filter by tags
- Search and Filter by content
- Add, edit, delete notes
- List all notes and tags
Version 2.0
Here I can do the same on my phone.
Also:
- OCR
Metadata approach
Multiple approaches possible.
Description
Languages
Go
75.3%
Svelte
17.5%
JavaScript
5.3%
CSS
1.2%
HTML
0.4%
Other
0.3%