From 9069404942f41fc769eff82298c48e8801d290dc Mon Sep 17 00:00:00 2001 From: Alexander Schmidt Date: Tue, 10 Feb 2026 18:43:49 +0100 Subject: [PATCH] refactor: rename project from dgray.io to kashilo.com --- AGENTS.md | 14 +++++++------- README.md | 18 +++++++++--------- assets/logo-dark.svg | 8 ++++---- assets/logo-light.svg | 8 ++++---- assets/press/README.md | 10 +++++----- build.py | 2 +- css/variables.css | 2 +- deploy.sh | 10 +++++----- docs/DIRECTUS-SCHEMA.md | 2 +- docs/DIRECTUS-SETUP.md | 28 ++++++++++++++-------------- docs/KILLER-FEATURES.md | 2 +- docs/LAUNCH-PLAN.md | 28 ++++++++++++++-------------- docs/MARKETING.md | 12 ++++++------ docs/MONETIZATION.md | 16 ++++++++-------- docs/PRIVACY.md | 4 ++-- docs/REPUTATION.md | 2 +- docs/TERMS.md | 4 ++-- docs/add-category-translations.sh | 2 +- docs/import-categories.sh | 4 ++-- docs/pow-server/README.md | 12 ++++++------ docs/pow-server/config.php | 2 +- docs/pow-server/index.php | 4 ++-- docs/pow-server/og-proxy.php | 14 +++++++------- index.html | 16 ++++++++-------- js/components/app-footer.js | 4 ++-- js/components/app-header.js | 6 +++--- js/components/auth-modal.js | 6 +++--- js/components/location-map.js | 2 +- js/components/location-picker.js | 2 +- js/components/pages/page-about.js | 28 ++++++++++++++-------------- js/components/pages/page-contact.js | 6 +++--- js/components/pages/page-create.js | 2 +- js/components/pages/page-imprint.js | 14 +++++++------- js/components/pages/page-listing.js | 12 ++++++------ js/components/pages/page-privacy.js | 28 ++++++++++++++-------------- js/components/pages/page-settings.js | 6 +++--- js/components/pages/page-terms.js | 28 ++++++++++++++-------------- js/services/auth.js | 28 ++++++++++++++-------------- js/services/btcpay.js | 8 ++++---- js/services/categories.js | 4 ++-- js/services/crypto.js | 6 +++--- js/services/currency.js | 2 +- js/services/directus.js | 2 +- js/services/directus/client.js | 12 ++++++------ js/services/favorites.js | 2 +- js/services/key-pinning.js | 2 +- js/services/pow-captcha.js | 4 ++-- locales/de.json | 4 ++-- locales/en.json | 4 ++-- locales/es.json | 4 ++-- locales/fr.json | 4 ++-- locales/it.json | 4 ++-- locales/pt.json | 4 ++-- locales/ru.json | 4 ++-- manifest.json | 4 ++-- service-worker.js | 4 ++-- tests/client.test.js | 16 ++++++++-------- tests/crypto.test.js | 22 +++++++++++----------- tests/index.html | 6 +++--- tests/services.test.js | 2 +- 60 files changed, 260 insertions(+), 260 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index ec06b17..69bd077 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -4,7 +4,7 @@ Dieses Dokument hilft AI-Assistenten (Amp, Copilot, etc.) das Projekt zu versteh ## Projekt-Überblick -**dgray.io** ist eine Kleinanzeigen-PWA mit Monero-Bezahlung. +**kashilo.com** ist eine Kleinanzeigen-PWA mit Monero-Bezahlung. - **Status**: Active Development (Frontend + Directus Backend) - **Ziel**: Anonyme, dezentrale Marktplatz-Alternative @@ -17,10 +17,10 @@ Dieses Dokument hilft AI-Assistenten (Amp, Copilot, etc.) das Projekt zu versteh | Routing | Hash-basierter Client-Side Router (`js/router.js`) | | i18n | Custom System (`js/i18n.js`), JSON-Dateien in `/locales/` | | Theming | CSS Variables, Dark/Light Mode | -| Backend | Directus (`api.dgray.io`) | +| Backend | Directus (`api.kashilo.com`) | | 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 | +| PoW Captcha | PHP-Server (`pow.kashilo.com`), Fallback auf lokal | ## Häufige Befehle @@ -90,8 +90,8 @@ docs/ ├── MONETIZATION.md # Monetarisierung & Anti-Abuse ├── LAUNCH-PLAN.md # Release-Phasen, Pricing, Checkliste ├── REPUTATION.md # Reputation-System (Konzept, Directus-Anleitung) -├── pow-server/ # PHP PoW-Captcha Server (pow.dgray.io) -└── og-proxy.php # Open Graph Meta-Tag Proxy (pow.dgray.io) +├── pow-server/ # PHP PoW-Captcha Server (pow.kashilo.com) +└── og-proxy.php # Open Graph Meta-Tag Proxy (pow.kashilo.com) css/ ├── fonts.css # @font-face Definitionen (Inter, Space Grotesk) @@ -163,10 +163,10 @@ locales/ 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. ~~PoW-Captcha server-seitig~~ ✅ PHP-Server auf `pow.dgray.io` +4. ~~PoW-Captcha server-seitig~~ ✅ PHP-Server auf `pow.kashilo.com` 5. ~~TweetNaCl self-hosted~~ ✅ In `js/vendor/` 6. ~~Chat-Crypto fix~~ ✅ Per-listing E2E Keys, TOFU Key-Pinning, kein Pending-Flow mehr -7. ~~Payment-Integration mit BTCpay Server~~ ✅ Proxy auf `pow.dgray.io`, Frontend-Service `btcpay.js` +7. ~~Payment-Integration mit BTCpay Server~~ ✅ Proxy auf `pow.kashilo.com`, Frontend-Service `btcpay.js` 8. ~~Favoriten Directus Sync~~ ✅ FavoritesService mit Union-Merge bei Login 9. ~~Expired Listings~~ ✅ Directus Flow (alle 15 Min), Status-Badges auf Cards 10. ~~Reputation-System~~ ✅ `reputation.js` Service, Deals/Ratings Collections, Chat-Widget Deal-Bestätigung + Sterne-Bewertung, Seller-Card Badges (siehe `docs/REPUTATION.md`) diff --git a/README.md b/README.md index 146074c..158a28b 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# dgray.io +# kashilo.com Eine anonyme, dezentrale Kleinanzeigen-Plattform mit Monero-Bezahlung. ## 🎯 Vision -dgray.io ermöglicht es Nutzern, Kleinanzeigen zu schalten und Waren/Dienstleistungen sicher über Monero (XMR) zu handeln. Besonderheiten: +kashilo.com ermöglicht es Nutzern, Kleinanzeigen zu schalten und Waren/Dienstleistungen sicher über Monero (XMR) zu handeln. Besonderheiten: - **Anonymität**: Nutzung ohne Account möglich - **Direkte Zahlung**: Peer-to-Peer via Monero, keine Zahlungsvermittlung @@ -58,8 +58,8 @@ dgray.io ermöglicht es Nutzern, Kleinanzeigen zu schalten und Waren/Dienstleist - Custom Extensions für XMR-Integration ### Services -- **Directus** Backend: `api.dgray.io` (Docker) -- **PoW Captcha + Payment Proxy**: `pow.dgray.io` (PHP, HMAC-signierte Challenges, BTCPay Proxy + Webhook, OG Meta Proxy) +- **Directus** Backend: `api.kashilo.com` (Docker) +- **PoW Captcha + Payment Proxy**: `pow.kashilo.com` (PHP, HMAC-signierte Challenges, BTCPay Proxy + Webhook, OG Meta Proxy) - **BTCPay Server**: `pay.xmr.rocks` (Monero-Zahlungen, Trocador-Plugin) - **TweetNaCl**: Self-hosted in `js/vendor/` (E2E-Verschlüsselung) @@ -124,7 +124,7 @@ Das Build-Script minifiziert alle JS- und CSS-Dateien (~111 KiB Ersparnis) und k ```bash # Einmalig: SSH-User und Pfad anpassen -./deploy.sh user@dgray.io /home/user/web/dgray.io/public_html +./deploy.sh user@kashilo.com /home/user/web/kashilo.com/public_html # Oder Defaults im Script setzen und einfach: ./deploy.sh @@ -152,7 +152,7 @@ Die Tests laufen im Browser und nutzen einen minimalen Test-Runner ohne externe ### Projektstruktur ``` -dgray/ +kashilo/ ├── index.html # Entry Point ├── manifest.json # PWA Manifest ├── service-worker.js # Offline-Support @@ -222,7 +222,7 @@ dgray/ - [ ] Responsive Optimierungen ### Phase 2: Backend-Integration ⬅️ **Aktuell** -- [x] Directus aufsetzen (`api.dgray.io`) +- [x] Directus aufsetzen (`api.kashilo.com`) - [x] Listings-Collection (CRUD) - [x] Categories mit Übersetzungen - [x] User-Auth (UUID + SHA-256 Hash, anonym) @@ -237,7 +237,7 @@ dgray/ - [x] Conversations/Messages Services - [x] Merkliste (Favoriten-Seite) - [x] Favoriten Directus-Sync (Union-Merge bei Login, localStorage-Fallback) -- [x] PoW Captcha (server-seitig via pow.dgray.io, HMAC-signiert) +- [x] PoW Captcha (server-seitig via pow.kashilo.com, HMAC-signiert) - [x] TweetNaCl self-hosted (kein CDN) - [x] In-App Benachrichtigungen (Notifications-Service, Glocke mit Badge) - [x] Open Graph & X Card Meta-Tags (dynamisch pro Listing) @@ -246,7 +246,7 @@ dgray/ ### Phase 4: Payments - [x] XMR-Kursabfrage API (CoinGecko) - [x] Fiat ↔ XMR Umrechnung (Dual-Preis-Anzeige) -- [x] BTCPay Server Integration (`pay.xmr.rocks`, Proxy auf `pow.dgray.io`) +- [x] BTCPay Server Integration (`pay.xmr.rocks`, Proxy auf `pow.kashilo.com`) - [x] Listing-Gebühr: 1 EUR/USD/CHF/GBP (200 JPY) via Monero - [x] Webhook für Auto-Publish nach Blockchain-Confirmation - [x] Expired Listings (Directus Flow, Status-Badges auf Cards) diff --git a/assets/logo-dark.svg b/assets/logo-dark.svg index 18f5493..0f9a773 100644 --- a/assets/logo-dark.svg +++ b/assets/logo-dark.svg @@ -1,12 +1,12 @@ - + - - dgray + + kashilo diff --git a/assets/logo-light.svg b/assets/logo-light.svg index d0b35f1..ae379bb 100644 --- a/assets/logo-light.svg +++ b/assets/logo-light.svg @@ -1,12 +1,12 @@ - + - - dgray + + kashilo diff --git a/assets/press/README.md b/assets/press/README.md index 3d0ac7b..6dfc247 100644 --- a/assets/press/README.md +++ b/assets/press/README.md @@ -1,4 +1,4 @@ -# dgray.io Press Kit +# kashilo.com Press Kit ## Brand Assets @@ -35,7 +35,7 @@ ## Verwendung - Logo nicht verzerren, strecken oder recolorieren -- Mindestabstand: Höhe des "d" in "dgray" auf allen Seiten +- Mindestabstand: Höhe des "k" in "kashilo" auf allen Seiten - Bevorzugt SVG verwenden - Bei dunklem Hintergrund: `logo-light` verwenden - Bei hellem Hintergrund: `logo-dark` verwenden @@ -43,10 +43,10 @@ ## Beschreibung (Copy & Paste) **Kurz (1 Satz):** -dgray.io ist ein anonymer Kleinanzeigen-Marktplatz mit Monero-Bezahlung. +kashilo.com ist ein anonymer Kleinanzeigen-Marktplatz mit Monero-Bezahlung. **Mittel (2–3 Sätze):** -dgray.io ermöglicht es, Waren und Dienstleistungen anonym zu handeln — bezahlt mit Monero (XMR). Kein KYC, keine E-Mail, keine persönlichen Daten. Kommunikation ist Ende-zu-Ende verschlüsselt. +kashilo.com ermöglicht es, Waren und Dienstleistungen anonym zu handeln — bezahlt mit Monero (XMR). Kein KYC, keine E-Mail, keine persönlichen Daten. Kommunikation ist Ende-zu-Ende verschlüsselt. **Lang:** -dgray.io ist eine Privacy-First Kleinanzeigen-Plattform für den DACH-Raum. Nutzer können Anzeigen erstellen und über Ende-zu-Ende verschlüsselte Nachrichten kommunizieren — ohne persönliche Daten preiszugeben. Die Bezahlung erfolgt ausschließlich über Monero (XMR). Die Plattform erfordert keine E-Mail-Adresse, kein KYC und kein Tracking. Verfügbar als Progressive Web App in Deutsch, Englisch und Französisch. +kashilo.com ist eine Privacy-First Kleinanzeigen-Plattform für den DACH-Raum. Nutzer können Anzeigen erstellen und über Ende-zu-Ende verschlüsselte Nachrichten kommunizieren — ohne persönliche Daten preiszugeben. Die Bezahlung erfolgt ausschließlich über Monero (XMR). Die Plattform erfordert keine E-Mail-Adresse, kein KYC und kein Tracking. Verfügbar als Progressive Web App in Deutsch, Englisch und Französisch. diff --git a/build.py b/build.py index 802e62d..56f6132 100644 --- a/build.py +++ b/build.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 """ -Build script for dgray.io +Build script for kashilo.com Minifies JS and CSS files into dist/ directory. Usage: python3 build.py diff --git a/css/variables.css b/css/variables.css index 1571d15..249237d 100644 --- a/css/variables.css +++ b/css/variables.css @@ -1,6 +1,6 @@ :root { /* - * Monochrome Theme - dgray.io + * Monochrome Theme - kashilo.com * Pure grayscale with neon green accent */ diff --git a/deploy.sh b/deploy.sh index 2ef8fb6..a886575 100755 --- a/deploy.sh +++ b/deploy.sh @@ -1,8 +1,8 @@ #!/bin/bash -# deploy.sh - Deploy dgray.io to production server via rsync +# deploy.sh - Deploy kashilo.com to production server via rsync # # Usage: ./deploy.sh [user@host] [remote-path] -# Example: ./deploy.sh admin@dgray.io /home/admin/web/dgray.io/public_html +# Example: ./deploy.sh admin@kashilo.com /home/admin/web/kashilo.com/public_html # # Prerequisites: # - SSH key authentication configured @@ -11,8 +11,8 @@ set -e # --- Configuration --- -REMOTE_USER_HOST="${1:-admin@dgray.io}" -REMOTE_PATH="${2:-/home/admin/web/dgray.io/public_html}" +REMOTE_USER_HOST="${1:-admin@kashilo.com}" +REMOTE_PATH="${2:-/home/admin/web/kashilo.com/public_html}" SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" DIST_DIR="$SCRIPT_DIR/dist" @@ -22,7 +22,7 @@ python3 "$SCRIPT_DIR/build.py" echo "" # --- Deploy from dist/ --- -echo "Deploying dgray.io" +echo "Deploying kashilo.com" echo " From: $DIST_DIR" echo " To: $REMOTE_USER_HOST:$REMOTE_PATH" echo "" diff --git a/docs/DIRECTUS-SCHEMA.md b/docs/DIRECTUS-SCHEMA.md index c4e4ccc..6cb6145 100644 --- a/docs/DIRECTUS-SCHEMA.md +++ b/docs/DIRECTUS-SCHEMA.md @@ -2,7 +2,7 @@ **Directus Version:** 11.14.1 **Database:** PostgreSQL -**API Endpoint:** https://api.dgray.io +**API Endpoint:** https://api.kashilo.com ## Collections Overview diff --git a/docs/DIRECTUS-SETUP.md b/docs/DIRECTUS-SETUP.md index 8e41c5c..2726215 100644 --- a/docs/DIRECTUS-SETUP.md +++ b/docs/DIRECTUS-SETUP.md @@ -1,8 +1,8 @@ -# Directus Setup für dgray.io +# Directus Setup für kashilo.com -Komplette Anleitung zur Einrichtung von Directus als Backend für die dgray Kleinanzeigen-PWA. +Komplette Anleitung zur Einrichtung von Directus als Backend für die kashilo Kleinanzeigen-PWA. -**API URL**: https://api.dgray.io/ +**API URL**: https://api.kashilo.com/ --- @@ -622,8 +622,8 @@ module.exports = async function(data, { database }) { **Settings > Project Settings** ``` -Project Name: dgray.io -Project URL: https://dgray.io +Project Name: kashilo.com +Project URL: https://kashilo.com Project Color: #555555 ``` @@ -637,7 +637,7 @@ services: image: directus/directus:latest environment: CORS_ENABLED: "true" - CORS_ORIGIN: "https://dgray.io,https://www.dgray.io,http://localhost:8080" + CORS_ORIGIN: "https://kashilo.com,https://www.kashilo.com,http://localhost:8080" CORS_METHODS: "GET,POST,PATCH,DELETE" CORS_ALLOWED_HEADERS: "Content-Type,Authorization" CORS_CREDENTIALS: "true" @@ -655,7 +655,7 @@ services: ```env # .env CORS_ENABLED=true -CORS_ORIGIN=https://dgray.io,https://www.dgray.io,http://localhost:8080 +CORS_ORIGIN=https://kashilo.com,https://www.kashilo.com,http://localhost:8080 CORS_METHODS=GET,POST,PATCH,DELETE CORS_ALLOWED_HEADERS=Content-Type,Authorization CORS_CREDENTIALS=true @@ -706,7 +706,7 @@ environment: STORAGE_S3_DRIVER: "s3" STORAGE_S3_KEY: "your-access-key" STORAGE_S3_SECRET: "your-secret-key" - STORAGE_S3_BUCKET: "dgray-files" + STORAGE_S3_BUCKET: "kashilo-files" STORAGE_S3_REGION: "fsn1" # oder nbg1 STORAGE_S3_ENDPOINT: "https://fsn1.your-objectstorage.com" # oder nbg1 ``` @@ -720,7 +720,7 @@ environment: STORAGE_S3_DRIVER: "s3" STORAGE_S3_KEY: "your-access-key" STORAGE_S3_SECRET: "your-secret-key" - STORAGE_S3_BUCKET: "dgray-files" + STORAGE_S3_BUCKET: "kashilo-files" STORAGE_S3_REGION: "auto" STORAGE_S3_ENDPOINT: "https://xxx.r2.cloudflarestorage.com" ``` @@ -746,7 +746,7 @@ RATE_LIMITER_POINTS=100 RATE_LIMITER_DURATION=60 ``` -**Hinweis:** Keine E-Mail-Konfiguration nötig - dgray.io nutzt keine E-Mails (Privacy by Design). +**Hinweis:** Keine E-Mail-Konfiguration nötig - kashilo.com nutzt keine E-Mails (Privacy by Design). ### 5.6 Währungsumrechnung & Preismodus @@ -901,7 +901,7 @@ if (directus.isAuthenticated()) { ## 9. Anonyme Authentifizierung (UUID-basiert) -Für maximale Privatsphäre nutzt dgray.io ein UUID-basiertes Login-System ohne echte E-Mail-Adressen. +Für maximale Privatsphäre nutzt kashilo.com ein UUID-basiertes Login-System ohne echte E-Mail-Adressen. ### 9.1 Konzept @@ -913,7 +913,7 @@ Für maximale Privatsphäre nutzt dgray.io ein UUID-basiertes Login-System ohne │ f47ac10b-58cc-4372-a567-0e02b2c3d479 │ │ ↓ │ │ Directus erhält: │ -│ • E-Mail: f47ac10b-58cc-4372-a567-0e02b2c3d479@dgray.io │ +│ • E-Mail: f47ac10b-58cc-4372-a567-0e02b2c3d479@kashilo.com │ │ • Passwort: f47ac10b-58cc-4372-a567-0e02b2c3d479 │ │ ↓ │ │ User speichert UUID → fertig │ @@ -943,7 +943,7 @@ Für maximale Privatsphäre nutzt dgray.io ein UUID-basiertes Login-System ohne // Account erstellen async function createAnonymousAccount() { const uuid = crypto.randomUUID(); - const email = `${uuid}@dgray.io`; + const email = `${uuid}@kashilo.com`; const password = uuid; // Bei Directus registrieren @@ -957,7 +957,7 @@ async function createAnonymousAccount() { // Login async function login(uuid) { - const email = `${uuid}@dgray.io`; + const email = `${uuid}@kashilo.com`; await directus.login(email, uuid); } ``` diff --git a/docs/KILLER-FEATURES.md b/docs/KILLER-FEATURES.md index 37c5f13..8fbde12 100644 --- a/docs/KILLER-FEATURES.md +++ b/docs/KILLER-FEATURES.md @@ -1,4 +1,4 @@ -# Killer-Features — dgray.io +# Killer-Features — kashilo.com Differenzierung gegenüber eBay Kleinanzeigen, Tutti, XMRBazaar. Drei Features, die kein Konkurrent hat. diff --git a/docs/LAUNCH-PLAN.md b/docs/LAUNCH-PLAN.md index 67c4182..e666f69 100644 --- a/docs/LAUNCH-PLAN.md +++ b/docs/LAUNCH-PLAN.md @@ -1,4 +1,4 @@ -# Launch Plan – dgray.io +# Launch Plan – kashilo.com ## Release-Phasen @@ -48,12 +48,12 @@ Die Validierung passiert **serverseitig** im PoW-Server (PHP), nicht im Frontend Neuer Endpoint: `POST /invite/validate` ```php -// pow.dgray.io/invite/validate.php +// pow.kashilo.com/invite/validate.php 0.01, 'USD' => 0.01, 'CHF' => 0.01, 'GBP' => 0.0 ## Meta-Tags (pro Sprache) Die statischen Meta-Tags in `index.html` sind deutsch (Fallback). -Der OG-Proxy (`pow.dgray.io/og-proxy.php`) liefert Listing-spezifische Tags. +Der OG-Proxy (`pow.kashilo.com/og-proxy.php`) liefert Listing-spezifische Tags. ### Umgesetzte Texte -**Title:** `dgray.io – [Sprache]` +**Title:** `kashilo.com – [Sprache]` | Sprache | Title | Description | |---------|-------|-------------| -| **de** | dgray.io – Anonyme Kleinanzeigen | Kaufen und verkaufen ohne Konto, ohne E-Mail. Bezahlung mit Monero. Ende-zu-Ende verschlüsselter Chat. | -| **en** | dgray.io – Private Classifieds | Buy and sell without an account, without email. Pay with Monero. End-to-end encrypted chat. | -| **fr** | dgray.io – Petites annonces anonymes | Achetez et vendez sans compte, sans e-mail. Paiement en Monero. Chat chiffré de bout en bout. | -| **it** | dgray.io – Annunci anonimi | Compra e vendi senza account, senza email. Pagamento in Monero. Chat crittografata end-to-end. | -| **es** | dgray.io – Clasificados anónimos | Compra y vende sin cuenta, sin email. Pago con Monero. Chat cifrado de extremo a extremo. | -| **pt** | dgray.io – Classificados anônimos | Compre e venda sem conta, sem email. Pagamento com Monero. Chat criptografado ponta a ponta. | -| **ru** | dgray.io – Анонимные объявления | Покупайте и продавайте без аккаунта, без email. Оплата Monero. Сквозное шифрование чата. | +| **de** | kashilo.com – Anonyme Kleinanzeigen | Kaufen und verkaufen ohne Konto, ohne E-Mail. Bezahlung mit Monero. Ende-zu-Ende verschlüsselter Chat. | +| **en** | kashilo.com – Private Classifieds | Buy and sell without an account, without email. Pay with Monero. End-to-end encrypted chat. | +| **fr** | kashilo.com – Petites annonces anonymes | Achetez et vendez sans compte, sans e-mail. Paiement en Monero. Chat chiffré de bout en bout. | +| **it** | kashilo.com – Annunci anonimi | Compra e vendi senza account, senza email. Pagamento in Monero. Chat crittografata end-to-end. | +| **es** | kashilo.com – Clasificados anónimos | Compra y vende sin cuenta, sin email. Pago con Monero. Chat cifrado de extremo a extremo. | +| **pt** | kashilo.com – Classificados anônimos | Compre e venda sem conta, sem email. Pagamento com Monero. Chat criptografado ponta a ponta. | +| **ru** | kashilo.com – Анонимные объявления | Покупайте и продавайте без аккаунта, без email. Оплата Monero. Сквозное шифрование чата. | ### Umsetzung @@ -244,7 +244,7 @@ und `twitter:title/description` dynamisch bei jedem Sprachwechsel (i18n-Keys `me ## Checkliste vor Alpha-Start - [ ] Directus: Collection `invite_codes` anlegen (Schema siehe oben) -- [ ] PHP: `invite/validate.php` deployen auf `pow.dgray.io` +- [ ] PHP: `invite/validate.php` deployen auf `pow.kashilo.com` - [ ] PHP: `config.php` → `LISTING_FEE` auf 0.01 setzen - [ ] PHP: `config.php` → `REQUIRE_INVITE_CODE = true` - [ ] Frontend: Invite-Code-Feld in `auth-modal.js` einbauen diff --git a/docs/MARKETING.md b/docs/MARKETING.md index 884619c..30f3a08 100644 --- a/docs/MARKETING.md +++ b/docs/MARKETING.md @@ -1,4 +1,4 @@ -# Marketing-Strategie dgray.io +# Marketing-Strategie kashilo.com ## Positionierung @@ -43,7 +43,7 @@ ### Woche 5: Name Reveal -- **Post 7:** Logo + Name + "dgray.io — Anonymous classifieds. Powered by Monero. Beta coming next week." +- **Post 7:** Logo + Name + "kashilo.com — Anonymous classifieds. Powered by Monero. Beta coming next week." - Landing Page live schalten (optional, kann auch direkt die App sein) - Einmalig in relevanten Subreddits posten: r/Monero, r/privacy, r/selfhosted @@ -58,10 +58,10 @@ - **Ziel:** Echte Listings generieren, Feedback sammeln, Bugs finden **Launch-Post auf X:** -> "dgray.io is live in beta. 🔒 Anonymous classifieds with Monero. +> "kashilo.com is live in beta. 🔒 Anonymous classifieds with Monero. > First 100 listings for just 0.10 EUR. > No KYC. No email. No tracking. E2E encrypted chat. -> Try it: https://dgray.io" +> Try it: https://kashilo.com" ### Weitere Launch-Kanäle @@ -83,7 +83,7 @@ - **Weekly Update** auf X: Neue Features, Stats (wenn Schwellwert erreicht) - **Build in Public:** Entwicklungsfortschritte teilen - **User Stories:** Erfolgreiche Deals highlighten (anonym natürlich) -- **Vergleiche:** "Why we built dgray.io" — Vergleich mit KYC-Plattformen +- **Vergleiche:** "Why we built kashilo.com" — Vergleich mit KYC-Plattformen ### Community @@ -123,7 +123,7 @@ | XmrBazaar | Etabliert, 7800 User | Spam, altbackenes Design, nur EN | | Bitejo | Dezentral | Wenig Nutzer | | MoneroMarket | Einfach | Kaum Features | -| **dgray.io** | Modern, lokal, E2E, PWA | Neu, noch keine User | +| **kashilo.com** | Modern, lokal, E2E, PWA | Neu, noch keine User | --- diff --git a/docs/MONETIZATION.md b/docs/MONETIZATION.md index b038a40..6d12cb5 100644 --- a/docs/MONETIZATION.md +++ b/docs/MONETIZATION.md @@ -1,4 +1,4 @@ -# Monetarisierung - dgray.io +# Monetarisierung - kashilo.com ## Preismodell @@ -50,7 +50,7 @@ - **Provider**: BTCpay Server (self-hosted) - **URL**: https://pay.xmr.rocks/ -- **Proxy**: `pow.dgray.io` — alle API-Aufrufe laufen über den PHP-Proxy (BTCPay API-Key bleibt serverseitig) +- **Proxy**: `pow.kashilo.com` — alle API-Aufrufe laufen über den PHP-Proxy (BTCPay API-Key bleibt serverseitig) - **Primär**: Monero (XMR) - **Alternativ**: Andere Kryptos via Trocador-Plugin (automatischer Swap zu XMR) - **Preisumrechnung**: Live XMR-Kurs via Kraken API @@ -60,14 +60,14 @@ ### Flow: Draft → Processing → Published 1. User erstellt Listing → wird als `draft` mit `payment_status: unpaid` gespeichert -2. BTCPay Invoice wird über `pow.dgray.io/btcpay/invoice` erstellt +2. BTCPay Invoice wird über `pow.kashilo.com/btcpay/invoice` erstellt 3. BTCPay Checkout-Modal öffnet sich im Frontend (`js/services/btcpay.js`) 4. Nach Zahlung: - - **Frontend**: Prüft Status via `pow.dgray.io/btcpay/status` nach Modal-Close - - **Webhook**: `pow.dgray.io/btcpay/webhook` empfängt BTCPay Events, setzt `status: published` + `payment_status: paid` nach 1 Confirmation + - **Frontend**: Prüft Status via `pow.kashilo.com/btcpay/status` nach Modal-Close + - **Webhook**: `pow.kashilo.com/btcpay/webhook` empfängt BTCPay Events, setzt `status: published` + `payment_status: paid` nach 1 Confirmation 5. Listing wird veröffentlicht (30 Tage Laufzeit, `expires_at` wird gesetzt) -### Endpunkte (pow.dgray.io) +### Endpunkte (pow.kashilo.com) | Endpoint | Methode | Beschreibung | |----------|---------|-------------| @@ -81,5 +81,5 @@ - [x] ~~XMR-Kurs API für Umrechnung~~ → Kraken API - [x] ~~Anzahl Deals für Power-User Status~~ → 5/15/50 Stufen - [x] ~~Captcha-Lösung~~ → Eigenes PoW-Captcha (keine Lizenzkosten) -- [x] ~~Payment-Proxy~~ → `pow.dgray.io` (PHP, API-Key serverseitig) -- [x] ~~Webhook für Auto-Publish~~ → `btcpay-webhook.php` auf `pow.dgray.io` +- [x] ~~Payment-Proxy~~ → `pow.kashilo.com` (PHP, API-Key serverseitig) +- [x] ~~Webhook für Auto-Publish~~ → `btcpay-webhook.php` auf `pow.kashilo.com` diff --git a/docs/PRIVACY.md b/docs/PRIVACY.md index 9a1cddb..11fc931 100644 --- a/docs/PRIVACY.md +++ b/docs/PRIVACY.md @@ -1,13 +1,13 @@ # Datenschutzerklärung -**dgray.io — Anonymer Marktplatz** +**kashilo.com — Anonymer Marktplatz** Stand: Februar 2026 --- ## 1. Verantwortlicher -Verantwortlich für die Datenbearbeitung ist der Betreiber der Plattform dgray.io mit Sitz in der Schweiz. +Verantwortlich für die Datenbearbeitung ist der Betreiber der Plattform kashilo.com mit Sitz in der Schweiz. --- diff --git a/docs/REPUTATION.md b/docs/REPUTATION.md index 563c45c..f88c82d 100644 --- a/docs/REPUTATION.md +++ b/docs/REPUTATION.md @@ -1,4 +1,4 @@ -# Reputation-System — dgray.io +# Reputation-System — kashilo.com ## Ziel diff --git a/docs/TERMS.md b/docs/TERMS.md index 41f200a..6fe9f90 100644 --- a/docs/TERMS.md +++ b/docs/TERMS.md @@ -1,13 +1,13 @@ # Allgemeine Geschäftsbedingungen (AGB) -**dgray.io — Anonymer Marktplatz** +**kashilo.com — Anonymer Marktplatz** Stand: Februar 2026 --- ## 1. Geltungsbereich -1.1 Diese Allgemeinen Geschäftsbedingungen (nachfolgend «AGB») regeln die Nutzung der Plattform dgray.io (nachfolgend «Plattform»). +1.1 Diese Allgemeinen Geschäftsbedingungen (nachfolgend «AGB») regeln die Nutzung der Plattform kashilo.com (nachfolgend «Plattform»). 1.2 Die Plattform wird betrieben von einer natürlichen Person mit Sitz in der Schweiz (nachfolgend «Betreiber»). diff --git a/docs/add-category-translations.sh b/docs/add-category-translations.sh index ba076d1..fc075f6 100755 --- a/docs/add-category-translations.sh +++ b/docs/add-category-translations.sh @@ -5,7 +5,7 @@ # This script adds it-IT, es-ES, pt-BR, ru-RU translations to all categories. # It reads existing categories from the API and creates missing translations. -API="https://api.dgray.io" +API="https://api.kashilo.com" TOKEN="${DIRECTUS_TOKEN:?Set DIRECTUS_TOKEN environment variable}" add_translation() { diff --git a/docs/import-categories.sh b/docs/import-categories.sh index 9f77e76..2a3912d 100644 --- a/docs/import-categories.sh +++ b/docs/import-categories.sh @@ -1,8 +1,8 @@ #!/bin/bash -# Bulk-Import: All categories for dgray.io +# Bulk-Import: All categories for kashilo.com # Usage: DIRECTUS_TOKEN=your_admin_token bash docs/import-categories.sh -API="https://api.dgray.io" +API="https://api.kashilo.com" TOKEN="${DIRECTUS_TOKEN:?Set DIRECTUS_TOKEN environment variable}" create_category() { diff --git a/docs/pow-server/README.md b/docs/pow-server/README.md index 51e6fb6..615121f 100644 --- a/docs/pow-server/README.md +++ b/docs/pow-server/README.md @@ -1,10 +1,10 @@ # PoW Captcha & Payment Server -PHP-basierter Server für dgray.io mit Proof-of-Work Captcha und BTCPay Payment-Proxy. +PHP-basierter Server für kashilo.com mit Proof-of-Work Captcha und BTCPay Payment-Proxy. ## Setup -1. Subdomain `pow.dgray.io` auf den Server zeigen +1. Subdomain `pow.kashilo.com` auf den Server zeigen 2. Dateien in das Web-Root kopieren 3. Secrets setzen: ```bash @@ -18,10 +18,10 @@ PHP-basierter Server für dgray.io mit Proof-of-Work Captcha und BTCPay Payment- 4. Testen: ```bash # PoW Challenge - curl https://pow.dgray.io/challenge + curl https://pow.kashilo.com/challenge # BTCPay Invoice erstellen - curl -X POST https://pow.dgray.io/btcpay/invoice \ + curl -X POST https://pow.kashilo.com/btcpay/invoice \ -H "Content-Type: application/json" \ -d '{"listingId": "test-123", "currency": "EUR"}' ``` @@ -76,7 +76,7 @@ Response: ### POST /btcpay/webhook Empfängt BTCPay Server Webhook-Events. Wird in BTCPay unter Store → Settings → Webhooks konfiguriert. -- **URL**: `https://pow.dgray.io/btcpay/webhook` +- **URL**: `https://pow.kashilo.com/btcpay/webhook` - **Event**: `InvoiceSettled` (nach 1 Blockchain-Confirmation) - **Aktion**: Setzt das zugehörige Listing in Directus auf `status: published`, `payment_status: paid`, setzt `paid_at` und `expires_at` (30 Tage) - **Sicherheit**: Webhook-Secret wird serverseitig geprüft @@ -95,7 +95,7 @@ Empfängt BTCPay Server Webhook-Events. Wird in BTCPay unter Store → Settings - HMAC-SHA256 signierte Challenges (nicht fälschbar) - TTL: 2 Minuten -- CORS: nur `https://dgray.io` +- CORS: nur `https://kashilo.com` - `hash_equals()` gegen Timing-Attacks - BTCPay API-Key bleibt serverseitig (nie im Frontend) - Gebühren serverseitig erzwungen (nicht manipulierbar) diff --git a/docs/pow-server/config.php b/docs/pow-server/config.php index 8f6833f..fc1f3f3 100644 --- a/docs/pow-server/config.php +++ b/docs/pow-server/config.php @@ -9,5 +9,5 @@ define('BTCPAY_STORE_ID', getenv('BTCPAY_STORE_ID') ?: 'CHANGE_ME'); define('BTCPAY_WEBHOOK_SECRET', getenv('BTCPAY_WEBHOOK_SECRET') ?: ''); define('LISTING_FEE', ['EUR' => 1, 'USD' => 1, 'CHF' => 1, 'GBP' => 1, 'JPY' => 200]); -define('DIRECTUS_URL', getenv('DIRECTUS_URL') ?: 'https://api.dgray.io'); +define('DIRECTUS_URL', getenv('DIRECTUS_URL') ?: 'https://api.kashilo.com'); define('DIRECTUS_TOKEN', getenv('DIRECTUS_TOKEN') ?: 'CHANGE_ME'); diff --git a/docs/pow-server/index.php b/docs/pow-server/index.php index 83cc9b2..8a41603 100644 --- a/docs/pow-server/index.php +++ b/docs/pow-server/index.php @@ -1,12 +1,12 @@ - + diff --git a/index.html b/index.html index 6b60521..d63ea40 100644 --- a/index.html +++ b/index.html @@ -6,15 +6,15 @@ - dgray.io – Anonyme Kleinanzeigen + kashilo.com – Anonyme Kleinanzeigen - - + + - - + + @@ -23,9 +23,9 @@ - + - + @@ -154,7 +154,7 @@