π Emma OS Online
βOnline-Dashboard fΓΌr Emmas Wissensbasis β PHP auf All-Inkl, Google Drive Sync via Service Account
allinkl
dashboard
emma-os-online
google-drive
okf
php
Aktualisiert: 04.07.2026, 00:48
lortner
1 Revision
## Γbersicht
β **Art**: Web-App / Knowledge Dashboard
β **Tech**: PHP 8.4, vanilla JS/CSS, D3.js (Knowledge Graph), Google Drive API
β **Hosting**: All-Inkl (w0104af5.kasserver.com)
β **Domain**: https://emma.buero-ortner.at
β **Code**: `/Users/lortner/Documents/antigravity/emma-os-online/`
β **Status**: Live β
## ZugΓ€nge
β **FTP-User**: `f018778f`
β **FTP-Host**: `w0104af5.kasserver.com`
β **FTP-Passwort**: π `security find-generic-password -a βemmaβ -s βftp-emma-buero-ortnerβ -w`
β **App-Passwort**: π in Keychain (Login unter `/login`)
β **Service Account**: `emma-drive-access@emma-ai-buero-ortner.iam.gserviceaccount.com`
β **Credentials-Datei**: `config/emma-ai-buero-ortner-*.json` (am Server, NICHT im Git)
## Deployment
FTP Upload aller geΓ€nderten Dateien:
β`bash
FTP_PASS=$(security find-generic-password -a βemmaβ -s βftp-emma-buero-ortnerβ -w) && lftp -e β
set ssl:verify-certificate no
set ftp:ssl-allow yes
open -u f018778f,$FTP_PASS w0104af5.kasserver.com
put index.php
put sync.php
put lib/OKFParser.php -o lib/OKFParser.php
put lib/GoogleDrive.php -o lib/GoogleDrive.php
put public/css/styles.css -o public/css/styles.css
put public/js/app.js -o public/js/app.js
put templates/partials/sidebar.php -o templates/partials/sidebar.php
put templates/partials/header.php -o templates/partials/header.php
put templates/pages/dashboard.php -o templates/pages/dashboard.php
put templates/pages/files.php -o templates/pages/files.php
put templates/pages/file.php -o templates/pages/file.php
put templates/pages/editor.php -o templates/pages/editor.php
put templates/pages/graph.php -o templates/pages/graph.php
put templates/types/default.php -o templates/types/default.php
put templates/types/checklist.php -o templates/types/checklist.php
put templates/types/recipe.php -o templates/types/recipe.php
bye
β
β`
## Sync
Die App liest keine Dateien live von Google Drive, sondern arbeitet mit einem lokalen Mirror unter `cache/knowledge/`.
### Inkrementeller Sync (Standard)
β`
https://emma.buero-ortner.at/sync.php
β`
Vergleicht `modifiedTime` von Google Drive mit lokal gespeicherten Timestamps. Nur geΓ€nderte/neue Dateien werden heruntergeladen. **Dauer: 2-5s**
### Full Rebuild
β`
https://emma.buero-ortner.at/sync.php?full=1
β`
LΓΆscht den Sync-State und lΓ€dt ALLES neu. **Dauer: ~90s**
### Cron
Alle 30 Minuten inkrementell via All-Inkl Cron:
β`
*/30 * * * * curl -s https://emma.buero-ortner.at/sync.php > /dev/null 2>&1
β`
## Features
### Implementiert β
β **Dashboard**: Stats, ToDos (mit Toggle), Geburtstage mit Countdown
β **File Browser**: Alle Dateien, gruppiert nach Ordner + Suche
β **Folder-Filter**: `/files/projekte`, `/files/checklisten`, `/files/rezepte`
β **File View**: Type-spezifische Templates (Checklist, Rezept, Default)
β **Attachments**: PDFs & andere Assets aus `_assets/` Ordnern anzeigen & downloaden
β **Editor**: Markdown-Editor mit Ctrl+S, speichert lokal + Google Drive
β **Knowledge Graph**: D3.js Force-Directed Graph aller Konzepte
β **Todo Toggle**: Checkboxen direkt klickbar, synct zu Drive
β **Login**: Session-basiert mit bcrypt-Passwort
### Architektur
β`
index.php β Router & Controller (alle Routes)
sync.php β Google Drive β lokaler Mirror
config/config.php β Konstanten, Pfade
lib/
βββ Auth.php β Session & Login
βββ Router.php β URL Routing
βββ OKFParser.php β Markdown + YAML Frontmatter Parser
βββ GoogleDrive.php β Google Drive REST API Client
templates/
βββ layout.php β Base Layout
βββ partials/ β Header, Sidebar
βββ pages/ β Dashboard, Files, File, Editor, Graph, Login
βββ types/ β Default, Checklist, Recipe
public/
βββ css/styles.css β Alle Styles
βββ js/app.js β Frontend-Logik
cache/
βββ knowledge/ β Lokaler Mirror der Google Drive Dateien
βββ sync_state.json β Timestamps fΓΌr inkrementellen Sync
βββ dashboard_data.json β Dashboard-Cache
βββ gdrive/ β API Response Cache
β`
β
Siehe auch: [bΓΌro ortner Projekte](./buero-ortner.md)