- TypeScript 94.2%
- JavaScript 4%
- CSS 1.1%
- Dockerfile 0.5%
- HTML 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| deploy | ||
| dev | ||
| docs | ||
| e2e | ||
| plans/v0.1.0 | ||
| reports/v0.1.0 | ||
| scripts | ||
| server | ||
| shared | ||
| web | ||
| .dockerignore | ||
| .editorconfig | ||
| .env.example | ||
| .gitattributes | ||
| .gitignore | ||
| .nvmrc | ||
| .prettierignore | ||
| .prettierrc.json | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| Dockerfile | ||
| eslint.config.js | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| ROADMAP.md | ||
| tsconfig.base.json | ||
| tsconfig.json | ||
| VERSION | ||
| vitest.config.ts | ||
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