2025-08-18 20:14:56 +02:00
2025-08-18 20:14:56 +02:00
2025-08-18 17:14:54 +02:00
2025-08-18 20:14:56 +02:00
2025-08-18 17:14:54 +02:00
2025-08-18 20:14:56 +02:00
2025-08-18 20:14:56 +02:00
2025-08-18 20:14:56 +02:00
2025-08-18 20:14:56 +02:00
2025-08-18 20:14:56 +02:00
2025-08-18 17:14:54 +02:00
2025-08-18 20:14:56 +02:00
2025-08-18 20:14:56 +02:00

PKM — Milestone 0 (Project Scaffolding)

Minimal Flask app with Tailwind + DaisyUI and a welcome page that reads the vault path from configuration.

Prerequisites

  • Python 3.9+
  • Node.js 18+ (for Tailwind CLI)
  • SQLite (system-provided; FTS5 required later, not needed in M0)

Setup

1) Python environment

python -m venv .venv
# macOS/Linux
source .venv/bin/activate
# Windows PowerShell
# .venv\\Scripts\\Activate.ps1

pip install -r requirements.txt

Optionally install as a package:

pip install -e .

2) Node dependencies and CSS build

npm install
# One-time build
npm run build:css
# Or during development (in a separate terminal), watch for changes:
npm run watch:css

3) Configure vault path

Create a .env from the example and set your vault directory:

cp .env.example .env
# edit .env and set KB_VAULT_PATH

Alternatively, pass the vault path via the CLI when starting the server.

Run the app

Option A — via Flask CLI (loads create_app automatically):

# Ensure .env is present or set KB_VAULT_PATH in env
flask --app app run --debug

Option B — via provided CLI:

# Using .env
python cli.py run
# Or pass vault explicitly
python cli.py run --vault /path/to/vault

Then open:

http://127.0.0.1:5000/

You should see:

  • A welcome card with your configured vault path (or a warning if not set).
  • Tailwind + DaisyUI styles active.
  • A theme selector (light/dark/cupcake) in the navbar.

Development tips

  • Run npm run watch:css while you work on templates for live CSS rebuilds.
  • If you rename template paths, update tailwind.config.cjs content globs.
  • Keep app/static/css/app.css out of git (its built output).

Next steps (Milestone 1+)

  • Implement note model, vault FS access, and basic CRUD.
  • Add markdown rendering, sanitization, and set up the SQLite schema for indexing.
Description
personal knowledge manager
Readme 110 KiB
Languages
Python 79.2%
HTML 18.4%
JavaScript 2.3%
CSS 0.1%