diff --git a/AGENTS.md b/AGENTS.md index 89b2a6e..46045d6 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -19,6 +19,8 @@ Dieses Dokument hilft AI-Assistenten (Amp, Copilot, etc.) das Projekt zu versteh | Theming | CSS Variables, Dark/Light Mode | | Backend | Directus (`api.dgray.io`) | | Auth | UUID-basiert, anonym (`js/services/auth.js`) | +| E2E Crypto | TweetNaCl (self-hosted in `js/vendor/`), `box.before` + `secretbox` | +| PoW Captcha | PHP-Server (`pow.dgray.io`), Fallback auf lokal | ## Häufige Befehle @@ -53,8 +55,8 @@ js/ ├── services/ │ ├── directus.js # Directus API Client (Core) │ ├── auth.js # UUID-basierte Authentifizierung (SHA-256 Hash) -│ ├── listings.js # Listings Service (Filter, Preis-Formatierung) -│ ├── categories.js # Kategorien Service (Baum, Übersetzungen) +│ ├── listings.js # Listings Service (Filter) +│ ├── categories.js # Kategorien Service (Baum, Übersetzungen, Cache) │ ├── locations.js # Standorte Service (Geo-Suche) │ ├── conversations.js # Zero-Knowledge Chat (E2E verschlüsselt) │ ├── crypto.js # NaCl Encryption @@ -72,7 +74,8 @@ js/ docs/ ├── DIRECTUS-SETUP.md # Directus Backend Setup ├── DIRECTUS-SCHEMA.md # Collection-Strukturen & Permissions -└── MONETIZATION.md # Monetarisierung & Anti-Abuse +├── MONETIZATION.md # Monetarisierung & Anti-Abuse +└── pow-server/ # PHP PoW-Captcha Server (pow.dgray.io) css/ ├── fonts.css # @font-face Definitionen (Inter, Space Grotesk) @@ -131,12 +134,15 @@ locales/ ## Nächste Schritte -1. ~~Seiten für Profil-Dropdown~~ ✅ Fertig (`page-my-listings.js`, `page-messages.js`, `page-favorites.js`, `page-settings.js`) +1. ~~Seiten für Profil-Dropdown~~ ✅ Fertig 2. ~~Suchseite mit Filtern~~ ✅ Merged in `page-home.js` 3. ~~Listings bearbeiten~~ ✅ Edit-Modus via `#/edit/:id` -4. Payment-Integration mit BTCpay Server (https://pay.xmr.rocks/) -5. Reputation-System (5/15/50 Deals Stufen) -6. Push-Benachrichtigungen für neue Nachrichten +4. ~~PoW-Captcha server-seitig~~ ✅ PHP-Server auf `pow.dgray.io` +5. ~~TweetNaCl self-hosted~~ ✅ In `js/vendor/` +6. ~~Chat-Crypto fix~~ ✅ `box.before` + `secretbox` +7. Payment-Integration mit BTCpay Server (https://pay.xmr.rocks/) +8. Reputation-System (5/15/50 Deals Stufen) +9. Push-Benachrichtigungen für neue Nachrichten ## Directus Berechtigungen (Public-Rolle) diff --git a/README.md b/README.md index e7c3dfc..2045081 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,8 @@ dgray.io ermöglicht es Nutzern, Kleinanzeigen zu schalten und Waren/Dienstleist | Light/Dark Mode | Niedrig | ✅ Fertig | | i18n (DE/EN/FR) | Niedrig | ✅ Fertig | | Bildergalerie | Niedrig | ✅ Fertig | -| E2E-Chat (NaCl) | Hoch | ✅ Service fertig | +| E2E-Chat (NaCl box.before + secretbox) | Hoch | ✅ Fertig | +| PoW Captcha (Server-seitig) | Mittel | ✅ Fertig | | **Monero MultiSig** | **Sehr hoch** | 🔲 Offen | | Rating-System | Mittel | 🔲 Offen | | 2FA | Mittel | 🔲 Offen | @@ -64,10 +65,14 @@ dgray.io ermöglicht es Nutzern, Kleinanzeigen zu schalten und Waren/Dienstleist - Auth, Rollen, Berechtigungen - Custom Extensions für XMR-Integration +### Services +- **Directus** Backend: `api.dgray.io` (Docker) +- **PoW Captcha**: `pow.dgray.io` (PHP, HMAC-signierte Challenges) +- **TweetNaCl**: Self-hosted in `js/vendor/` (E2E-Verschlüsselung) + ### Infrastruktur (geplant) -- PostgreSQL + Redis - monero-wallet-rpc -- Matrix/Signal für Chat +- Push-Benachrichtigungen --- @@ -145,8 +150,13 @@ dgray/ │ │ ├── categories.js # Kategorien-Service │ │ ├── locations.js # Standorte-Service │ │ ├── conversations.js# Zero-Knowledge Chat -│ │ ├── crypto.js # NaCl Encryption -│ │ └── currency.js # XMR/Fiat Umrechnung +│ │ ├── crypto.js # NaCl Encryption (box.before + secretbox) +│ │ ├── currency.js # XMR/Fiat Umrechnung +│ │ └── pow-captcha.js # PoW Captcha (Server-first, lokaler Fallback) +│ ├── vendor/ +│ │ ├── nacl-fast.min.js # TweetNaCl (self-hosted) +│ │ ├── nacl-util.min.js # TweetNaCl Utils +│ │ └── cropper.min.js # Image Cropper │ └── components/ │ ├── app-shell.js # Layout-Container │ ├── app-header.js # Header mit Navigation @@ -197,10 +207,12 @@ dgray/ - [x] Neue Seiten: Favoriten, Meine Anzeigen, Nachrichten, Einstellungen - [x] Listings bearbeiten (Edit-Modus für eigene Anzeigen) -### Phase 3: Kommunikation -- [x] Chat-System (E2E-verschlüsselt mit NaCl) +### Phase 3: Kommunikation & Sicherheit +- [x] Chat-System (E2E-verschlüsselt mit NaCl box.before + secretbox) - [x] Conversations/Messages Services - [x] Merkliste (Favoriten-Seite) +- [x] PoW Captcha (server-seitig via pow.dgray.io, HMAC-signiert) +- [x] TweetNaCl self-hosted (kein CDN) - [ ] Benachrichtigungen (Push) ### Phase 4: Payments