No description
  • TypeScript 94.2%
  • JavaScript 4%
  • CSS 1.1%
  • Dockerfile 0.5%
  • HTML 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
dasFuH 2e7ed4d5db docs(plan): close sprint 07 and plan v0.1.0 (released, live on VPS)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 22:34:43 +02:00
deploy feat(deploy): Docker image, compose setup and deployment guide (sprint 06) 2026-10-14 08:18:21 +02:00
dev feat(server): Forgejo OAuth login, sealed sessions and notes API (sprint 02) 2026-10-14 00:01:38 +02:00
docs feat(server): report the app version in /healthz (sprint 07) 2026-10-14 22:26:23 +02:00
e2e feat(web): insert images and commit them with the note (sprint 05) 2026-10-14 22:07:41 +02:00
plans/v0.1.0 docs(plan): close sprint 07 and plan v0.1.0 (released, live on VPS) 2026-10-14 22:34:43 +02:00
reports/v0.1.0 feat(server): report the app version in /healthz (sprint 07) 2026-10-14 22:26:23 +02:00
scripts chore: bootstrap monorepo, dev Forgejo and release tooling (sprint 00) 2026-10-13 22:03:40 +02:00
server chore(release): v0.1.0 2026-10-14 22:27:06 +02:00
shared chore(release): v0.1.0 2026-10-14 22:27:06 +02:00
web chore(release): v0.1.0 2026-10-14 22:27:06 +02:00
.dockerignore feat(deploy): Docker image, compose setup and deployment guide (sprint 06) 2026-10-14 08:18:21 +02:00
.editorconfig chore: bootstrap monorepo, dev Forgejo and release tooling (sprint 00) 2026-10-13 22:03:40 +02:00
.env.example feat(server): Forgejo OAuth login, sealed sessions and notes API (sprint 02) 2026-10-14 00:01:38 +02:00
.gitattributes chore: bootstrap monorepo, dev Forgejo and release tooling (sprint 00) 2026-10-13 22:03:40 +02:00
.gitignore feat(web): installable app shell with repo picker, folder navigation and note file ops (sprint 03) 2026-10-14 08:29:54 +02:00
.nvmrc chore: bootstrap monorepo, dev Forgejo and release tooling (sprint 00) 2026-10-13 22:03:40 +02:00
.prettierignore chore: bootstrap monorepo, dev Forgejo and release tooling (sprint 00) 2026-10-13 22:03:40 +02:00
.prettierrc.json chore: bootstrap monorepo, dev Forgejo and release tooling (sprint 00) 2026-10-13 22:03:40 +02:00
CHANGELOG.md chore(release): v0.1.0 2026-10-14 22:27:06 +02:00
CLAUDE.md feat(web): installable app shell with repo picker, folder navigation and note file ops (sprint 03) 2026-10-14 08:29:54 +02:00
Dockerfile feat(deploy): Docker image, compose setup and deployment guide (sprint 06) 2026-10-14 08:18:21 +02:00
eslint.config.js chore: bootstrap monorepo, dev Forgejo and release tooling (sprint 00) 2026-10-13 22:03:40 +02:00
package-lock.json chore(release): v0.1.0 2026-10-14 22:27:06 +02:00
package.json chore(release): v0.1.0 2026-10-14 22:27:06 +02:00
README.md feat(deploy): Docker image, compose setup and deployment guide (sprint 06) 2026-10-14 08:18:21 +02:00
ROADMAP.md chore(release): v0.1.0 2026-10-14 22:27:06 +02:00
tsconfig.base.json chore: bootstrap monorepo, dev Forgejo and release tooling (sprint 00) 2026-10-13 22:03:40 +02:00
tsconfig.json chore: bootstrap monorepo, dev Forgejo and release tooling (sprint 00) 2026-10-13 22:03:40 +02:00
VERSION chore(release): v0.1.0 2026-10-14 22:27:06 +02:00
vitest.config.ts feat(web): WYSIWYG editor with commit-on-save, drafts and conflict handling (sprint 04) 2026-10-14 10:05:03 +02:00

md-notes

Selbst gehostete Web-App, um Markdown-Notizen aus Forgejo-Repos per WYSIWYG zu bearbeiten. Sie ist primär für das iPhone gedacht. Jede gespeicherte Änderung wird ein Commit im Repo.

Status: in Entwicklung. Plan: plans/v0.1.0/PLAN.md · ROADMAP

Voraussetzungen

  • Node 24 (siehe .nvmrc)
  • Docker, nur für das lokale Dev-Forgejo und E2E-Tests

Lokale Entwicklung

npm install
npm run dev

npm run dev startet den Server auf http://localhost:3000 und die Web-App auf http://localhost:5173. Die Web-App leitet /api, /auth und /healthz an den Server weiter.

Lokales Forgejo

npm run dev:forgejo

Startet Forgejo auf http://localhost:3300 und legt Testdaten an. Das Skript ist idempotent.

Was Inhalt
User dev (darf md-notes nutzen) und other (nicht freigeschaltet)
Repos dev/notes und dev/projekte (privat, mit Beispielnotizen); other/fremd (öffentlich, dev ohne Schreibrecht)
OAuth-App md-notes-dev, Redirect http://localhost:5173/auth/callback
Zugangsdaten werden generiert und landen in dev/.env.dev (gitignored)

Die Forgejo-Version wählst du mit FORGEJO_VERSION, Standard ist 16. Stoppen mit npm run dev:forgejo:down, komplett zurücksetzen mit npm run dev:forgejo:reset.

Checks

npm run typecheck
npm run lint
npm test
npm run build

npm run format formatiert Code mit Prettier. Markdown-Dateien sind bewusst ausgenommen, weil sie Doku oder Test-Fixtures sind.

Betrieb auf einem Server

md-notes läuft als Docker-Container hinter einem Reverse Proxy mit TLS. Datenbank und Volume gibt es nicht.

git clone https://forgejo.fuhs-world.de/jan/md-notes.git && cd md-notes/deploy
cp .env.example .env   # OAuth-App, SESSION_SECRET und ALLOWED_USERS eintragen
docker compose up -d --build

Die vollständige Anleitung steht in docs/DEPLOYMENT.md: OAuth-App in Forgejo anlegen, Caddy einrichten, Updates und Notfall.

Struktur

Pfad Inhalt
shared/ API-Vertrag und Helfer für Server und Web (TypeScript-Quellcode, kein eigener Build)
server/ Hono-Server (Node 24): Login, Schnittstelle zur Forgejo-API, Auslieferung der Web-App
web/ Vite + React (PWA)
dev/ lokales Forgejo (Docker), Seed-Skript, Beispielnotizen
scripts/ Release-Tooling
Dockerfile, deploy/ Produktions-Image, Compose-Setup, Caddy-Beispiel
plans/, reports/, docs/ Planung, Sprint-Reports, Entscheidungen (ADRs), Deployment-Anleitung

Release

Die Version schreibt ausschließlich das Release-Tooling im Release-Sprint:

node scripts/version-bump.mjs minor --dry-run