diff --git a/backend/main.py b/backend/main.py
index fb55815..db883dc 100644
--- a/backend/main.py
+++ b/backend/main.py
@@ -1400,208 +1400,6 @@ async def knigge_page():
return HTMLResponse(content=html, headers={"Cache-Control": "max-age=7200"})
-# ------------------------------------------------------------------
-# /partner — Influencer-Landingpage
-# ------------------------------------------------------------------
-@app.get("/partner")
-async def partner_landing():
- from fastapi.responses import HTMLResponse
- from database import db as _db
- with _db() as conn:
- total_founders = conn.execute("SELECT COUNT(*) FROM users WHERE is_founder=1").fetchone()[0]
- partners = conn.execute(
- """SELECT label, uses FROM partner_codes WHERE grants_founder=1 ORDER BY uses DESC LIMIT 5"""
- ).fetchall()
- open_slots = max(0, 100 - total_founders)
-
- partner_rows = ''.join([
- f'
Noch keine Partner aktiv — sei der Erste.
'
-
- html = f"""
-
-
-
-
-
-
-

-
Ban Yaro · Influencer-Programm
-
Gib deiner Community
etwas für immer.
-
100 Gründer-Plätze. Weltweit. Nie wieder erhältlich.
Als Partner bringst du deine Follower nach vorne — und steigst im Ranking auf.
-
Jetzt Partner werden
-
-
-
-
-
{open_slots}
-
Gründer-Plätze noch frei (von 100)
-
-
0{total_founders} vergeben100
-
-
-
-
-
Was du und deine Community bekommen
-
-
-
🏆
-
-
Gründer-Lizenz für deine Follower
-
Jeder der sich mit deinem Code registriert bekommt einen der 100 Gründer-Plätze — mit einer nummerierten Badge „Gründer #N" die dauerhaft im Profil und im Forum sichtbar ist. Nie wieder erhältlich.
-
-
-
-
-
🤝
-
-
Dein persönlicher Partner-Code
-
Du bekommst einen eigenen Code (z.B. HUNDEBLOG). Follower die sich damit registrieren werden automatisch Gründer — du siehst in Echtzeit wie viele du gebracht hast.
-
-
-
-
-
📊
-
-
Öffentliches Partner-Ranking
-
Auf der
Gründer-Seite siehen alle wer die meisten Gründer gebracht hat. Das Ranking motiviert deine Follower mitzumachen — und stärkt deine Position gegenüber anderen Influencern.
-
-
-
-
-
💜
-
-
Partner-Badge für dich
-
Du selbst bekommst ein „Partner"-Badge in deinem Profil — sichtbar für alle Nutzer der App.
-
-
-
-
-
🎁
-
-
Lebenslang kostenlos — für immer
-
Gründer zahlen nie für Premium-Features — egal was wir in Zukunft einführen. Das ist ein echtes Dankeschön für die Pioniere.
-
-
-
-
-
-
-
Wie es funktioniert
-
-
1
-
Kontakt aufnehmenSchreib uns kurz an partner@banyaro.app — wir richten deinen persönlichen Code ein.
-
-
-
2
-
Code teilenDu postest deinen Code in Story, Reel oder Post — deine Follower registrieren sich auf banyaro.app.
-
-
-
3
-
Gründer werdenJede Registrierung mit deinem Code sichert automatisch einen der 100 Gründer-Plätze. Du siehst deinen Fortschritt in Echtzeit.
-
-
-
4
-
Im Ranking aufsteigenJe mehr Gründer du bringst, desto höher dein Platz auf der öffentlichen Gründer-Seite.
-
-
-
-
- {'
🏅 Aktuelles Partner-Ranking
' + partner_rows + '
' if partners else ''}
-
-
-
-
Was ist Ban Yaro?
-
Ban Yaro ist die Hunde-App für alles was Halter brauchen — Tagebuch, Gesundheit, Routen, Giftköder-Alarm, Community. Kostenlos, ohne App Store, direkt im Browser oder als PWA.
-
banyaro.app entdecken →
-
-
-
-
-
-
-
-
-
-
-"""
- return HTMLResponse(content=html, headers={"Cache-Control": "no-cache"})
-
-
# SPA Fallback — ALLE nicht-API-Routen gehen zur index.html
@app.get("/{full_path:path}")
async def spa_fallback(full_path: str):
diff --git a/backend/routes/breeder.py b/backend/routes/breeder.py
index bb5efc8..061c9a7 100644
--- a/backend/routes/breeder.py
+++ b/backend/routes/breeder.py
@@ -21,7 +21,7 @@ _TZ = ZoneInfo("Europe/Berlin")
BREEDER_DOCS_DIR = os.getenv("BREEDER_DOCS_DIR", "/data/breeder_docs")
os.makedirs(BREEDER_DOCS_DIR, exist_ok=True)
-ADMIN_EMAIL = os.getenv("ADMIN_EMAIL", "admin@banyaro.app")
+ADMIN_EMAIL = os.getenv("ADMIN_EMAIL", "mail@motocamp.de")
APP_URL = os.getenv("APP_URL", "https://banyaro.app")
diff --git a/backend/routes/litters.py b/backend/routes/litters.py
index 2bcf629..f47c809 100644
--- a/backend/routes/litters.py
+++ b/backend/routes/litters.py
@@ -258,7 +258,7 @@ async def welfare_confirm(litter_id: int, user=Depends(_require_breeder)):
"FROM breeder_profiles bp JOIN users u ON u.id=bp.user_id "
"WHERE bp.user_id=?", (user["id"],)
).fetchone()
- admin_email = os.getenv("ADMIN_EMAIL", "admin@banyaro.app")
+ admin_email = os.getenv("ADMIN_EMAIL", "mail@motocamp.de")
app_url = os.getenv("APP_URL", "https://banyaro.app")
zuechter = profile["name"] if profile else user.get("name", "Unbekannt")
zwinger = profile["zwingername"] if profile else "—"
diff --git a/backend/routes/osm.py b/backend/routes/osm.py
index e08742b..d75631b 100644
--- a/backend/routes/osm.py
+++ b/backend/routes/osm.py
@@ -28,7 +28,7 @@ OVERPASS_URLS = [
_overpass_sem = asyncio.Semaphore(1)
_overpass_last_req = 0.0
_OVERPASS_MIN_DELAY = 2.0 # Sekunden zwischen Anfragen
-_OVERPASS_UA = 'BanYaro/1.0 (https://banyaro.app; dog-walking PWA; contact: admin@banyaro.app)'
+_OVERPASS_UA = 'BanYaro/1.0 (https://banyaro.app; dog-walking PWA; contact: mail@motocamp.de)'
_OVERPASS_HEADERS = {
'User-Agent': _OVERPASS_UA,
'Referer': 'https://banyaro.app/', # von overpass-api.de verlangt gegen 406
diff --git a/backend/static/index.html b/backend/static/index.html
index 5277ae8..1cd9cfa 100644
--- a/backend/static/index.html
+++ b/backend/static/index.html
@@ -230,7 +230,7 @@
border-top:1px solid var(--c-border,#e5e7eb);
font-size:var(--text-xs);color:var(--c-text-muted);
display:flex;flex-direction:column;gap:var(--space-2);padding-bottom:var(--space-2)">
-
+
Impressum
Datenschutz
diff --git a/backend/static/js/app.js b/backend/static/js/app.js
index 692526b..cb4b4a9 100644
--- a/backend/static/js/app.js
+++ b/backend/static/js/app.js
@@ -3,7 +3,7 @@
Router, State-Management, Navigation, Initialisierung.
============================================================ */
-const APP_VER = '542'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
+const APP_VER = '539'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
const APP_VERSION = '1.1.4'; // ← semantische Version, wird bei make release gesetzt
const IS_STAGING = location.hostname === 'staging.banyaro.app';
diff --git a/backend/static/js/pages/datenschutz.js b/backend/static/js/pages/datenschutz.js
index 73c2ba8..838aaf4 100644
--- a/backend/static/js/pages/datenschutz.js
+++ b/backend/static/js/pages/datenschutz.js
@@ -29,7 +29,7 @@ window.Page_datenschutz = (() => {
${sec('Verantwortlicher', `
René Degelmann, Ringstr. 26, 85560 Ebersberg
- E-Mail: hallo@banyaro.app
+ E-Mail: mail@motocamp.de
`)}
${sec('Deine Daten gehören dir', `
@@ -169,7 +169,7 @@ window.Page_datenschutz = (() => {
(Art. 18) sowie
Datenportabilität (Art. 20). Erteilte Einwilligungen
kannst du jederzeit mit Wirkung für die Zukunft widerrufen (Art. 7 Abs. 3 DSGVO).
Zur Ausübung deiner Rechte wende dich per E-Mail an
-
hallo@banyaro.app.
+
mail@motocamp.de.
Du hast außerdem das Recht, bei der zuständigen Datenschutz-Aufsichtsbehörde
Beschwerde einzulegen:
Bayerisches Landesamt für Datenschutzaufsicht (BayLDA)
diff --git a/backend/static/js/pages/impressum.js b/backend/static/js/pages/impressum.js
index ffccb44..ac8b3bf 100644
--- a/backend/static/js/pages/impressum.js
+++ b/backend/static/js/pages/impressum.js
@@ -25,9 +25,9 @@ window.Page_impressum = (() => {
Kontakt
- E-Mail: hallo@banyaro.app
- Kontaktformular: mail@motocamp.de
+ Kontaktformular: Nachricht senden
diff --git a/backend/static/sw.js b/backend/static/sw.js
index d493e2a..b443693 100644
--- a/backend/static/sw.js
+++ b/backend/static/sw.js
@@ -3,7 +3,7 @@
Offline-Cache + Push Notifications + Tile-Cache
============================================================ */
-const CACHE_VERSION = 'by-v565';
+const CACHE_VERSION = 'by-v562';
const CACHE_STATIC = `${CACHE_VERSION}-static`;
const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten
const CACHE_API = 'ban-yaro-api-v1'; // API-Response-Cache