Dies ist eine alte Version des Dokuments!
My-Coach-Finder - das CRM für Coches
Schnellzugriff
- MyCoachFinder Server 2
---- Großer Server - all in One Projekt Hostname: v2202601103831429807.luckysrv.de IP: 159.195.74.158/22, 2a0a:4cc0:c2:3efb:d418:20ff:fe47:a229 Benutzername: root Passwort: 4KpwgOMTtxmA4o3 ---- sudo claude #SSH ssh root@152.53.155.162 mosh root@152.53.155.162 -- tmux attach -t meine-session || tmux new -s meine-session tmux new -s mcv npx @anthropic-ai/claude-code #port: 22 #pw_old: 046j2k52"bK4--TT1S6447jSZ #pw_new: fwelk3jwekfj234kjllkFWEFWEjh234234lkdgfdQPjHsa234 cd /var/www/html/ # su - webdev pw: 1234 claude --dangerously-skip-permissions codex --dangerously-bypass-approvals-and-sandbox --------------------------------------------------- Hostname: v2202510103831386760.supersrv.de IP: 152.53.155.162/22, 2a00:11c0:47:333a::/64 Root Passwort: 046bK41S6447jSZ --------------------------------------------------- #debian 12 (bookworm) - minimal # System information: IP address: 152.53.155.162 Hostname: v2202510103831386760.supersrv.de #phpmyadmin #URL: https://phpmyadmin.my-coach-finder.com #Username: fastapi_user #Password: ga188qfwtPDr2fO3ILNG #Database: fastapi_db
MCF 1.O Server
- MyCoachFinder Server **OLD Testserver**
claer npx @anthropic-ai/claude-code #SSH 1. A ssh boothtml@185.207.106.68 -p 2222 1. B autossh -M 0 -p 2222 boothtml@185.207.106.68 1.1 wf234fhkj#P 2. su 2.1 grewglwehljkh435lkhjk354gj3456kjhg 3. cd /var/www/html/live1/ neu grewglwehljkh435lkhjk354gj3456kjhg sudo systemctl restart live1 #debug gunicorn -w 4 'app:app' killall gvfsd-sftp ; killall Thunar ; killall thunar #684 systemctl reload nginx Template 1,2,3 : https://mcf-t1.boothtml.de/
Dinge die unklar sind
- Was und wie nach Kauf (Rechnug/Gled/etc)
- Wie sieht Coachee bereich aus (was kann er/es?)
Funktioniert passwort rest?→ JA- was braucht Coach wirklich → KBF?
Aktuelle Engpässe
- Geld beschaffung/Einnahmen
- Kein Personal für Aufgaben erledigung
- Kein Geld für Personal
- Motivations schwierigkeiten
- Wissen im Breich:
Engpasskonzentrierte Strategie (EKS)
4 Grundprinzipien
- Konzentration der Kräfte auf Stärkenpotenziale, Abbau von Verzettelung
- Orientierung der Kräfte auf eine engumrissene Zielgruppe
- In die Lücke (Marktnische) gehen
- Sich in die Tiefe der Problemlösung entwickeln, Marktführerschaft anstreben
Tägliches Buissnes
Montag:
* Newsletter Report → neuste Updates
Dinstag
* Beitäge für Instgarm und Facebook erstellen und planen
Mittwoch
* Kaltaquise mit Coaches Telfoniren
Donnastag
Freitag
Samstag
Sonntag
Master Plan MyCoachFinder
Bau-Phase 1.0 Veröffendlichung
* APP in PlayStore
* APP in AppelStore
* Grundfunktionen auf App + Webseite
Bau-Phase 1.2 Coach finden
MCF Panel-Funktionen sind sekundär
- Coach anzeigen mit Infos mit und ohne anmeldung
- Coach-Offer anzeigen mit infos mit und ohne anmeldung
- Coaches auf Startseite → Startseite haubrsächlich für Angebote
- Startseite schnell und Performant und Optisch gut
- funktionirende Suche mit Ortsangebe/map
Bau-Phase 2 Marktforschung/Zielgruppenkompetenz bildung
* Podcast als Kostengünstige Werbung / Reichweite / Zielgruppen-Verständnis
* aktives Werbungschalten
* Auf Messen Präent sein
* ersten Paar Tausend € umsetzten
* gute Demo + aktiv Kundenaquise Suchende+Coaches
* heruaarbeiten und entwickln was relvat für Zielgruppe ist
* Google Login / Appel Login
Telefone- VERTRIEB
Bau-Phase 3 höhre Automatirungsrate
* 200 Coaches
* über 200 Kunden
* voll Automatierte Rechungstellung
Bau-Phase 4 Internationalisirung Teil 1
* „automatischer“ Kunde support
* ausweiten auf gesamte Dach Region
* Englischer Text Support
Bau-Phase 5 Internationalisirung Teil 2
* ???
Bau-Phase 6
Bau-Phase 7
Bau-Phase 8
* Mehre Millionen Jahresumsatz im Jahr
Funktionen
Steuern
Steuern Begriffe
Ich bin Gewerbetreibender nicht Freiberuflich
Kirchensteuer 9%
Einkommensteuer →[Erhebungsform] Kapitalertragsteuer = Lohnsteuer = freibetrag bis 10347€ im Jahr - Einkommensteuererklärung immer abgeben auch unter freibetrag
Gewerbesteuer → freibetrag bis 24.500€ auf Gewinn im Jahr → keine Gewerbesteuer
Umsatzstuer (Mehrwertstuer) → Umsatzsteuergesetz 19% Umsatzsteuervoranmelung → umsatzstuer einahmen - (minus) umsatzstuer ausgaben = zuzahlender umsatz an Finanzamt (Quatlasweise überweisung - Elster) Umsatzsteuervoranmedlung Quatlsweise ab 01.01.2024 Regelbesteuerung max 10 Tage → Januar 1, April 4, Juli [2] 7, Oktober 10
Umsatzstuerjahreserklärung zusammenfassung für das ganze Jahr → nahezu Identisch zu Umsatzsteuervoranmedlung
Kommissiongeschäft
Kommissiongeschäft = My-Coach-Finder
§3 Abs. 11 UStG Wird ein Unternehmer in die Erbringung einer sonstigen Leistung eingeschaltet und handelt er dabei im eigenen Namen, jedoch für fremde Rechnung, gilt diese Leistung als an ihn und von ihm erbracht.
Kommisionsgeschäft i.S §§ 383 ff.HBG
nach Kommisonsvertrag I.S.v §675 BGB
Kommittent → Kommisonär → Dritter (Käufer)
Coach → MyCoachFinder → Käufer
Pro Verkauf erhält MyCoachFinder 15% Verkaufsprovision
Der Kommissionär wird für die Umsatzbesteuerung mit dem Eigenhändler gleichgesetzt. Das bedeutet, der Verkaufserlös ist in voller Höhe vom Kommissionär zu versteuern. Im Gegenzug steht dem Kommissionär aus der Lieferung des Kommittenten grundsätzlich ein Vorsteuerabzug zu.
Übersicht
Beispiele:
- booking.com stell keine RE aus → RE nur driekt von Unterkunft
https://studenten365.com/library/lecture/read/175519-was-ist-eine-kommission-rechnung
CopeCart Digistore Elopage
https://juliaburget.de/verkaufe-digitale-produkte-ueber-elopage/#
APP Appel
STR + ALT + G → Mouse get switch
https://www.baeldung.com/linux/xcode
4.3. Download the Installation Media
11.2 Apps, die zum Kauf von Inhalten, Funktionen oder Diensten in einer App ein anderes System als die In-App Purchase API (IAP) nutzen, werden abgelehnt
11.3 Apps, die IAP zum Kauf physischer Waren oder Waren und Dienstleistungen nutzen, die außerhalb der App verwendet werden, werden abgelehnt
Waren und Dienstleistungen außerhalb der App: Physische Waren und Dienstleistungen, die in der realen Welt angeboten werden, fallen unter diese Ausnahme. Wenn Ihre App beispielsweise Kleidung verkauft oder einen Fahrdienst anbietet, können Sie Stripe zur Abwicklung dieser In-App-Käufe nutzen.
Persönliche Dienste: Eine weitere Ausnahme gilt für Apps, die Echtzeitdienste zwischen zwei Personen anbieten, beispielsweise virtuelle Nachhilfe oder medizinische Beratungen. Allerdings müssen Dienste, die mehr als einer Person gleichzeitig angeboten werden, z. B. ein Gruppenfitnesskurs, IAP anstelle von Stripe verwenden.
https://www.revenuecat.com/blog/engineering/can-you-use-stripe-for-in-app-purchases/
Systemctl
sudo systemctl daemon-reload
sudo systemctl restart live1
sudo nano /etc/systemd/system/live1.service
#for debug conf. sudo journalctl -u gunicorn.service
systemctl status
systemctl stop some-service
systemctl start some-service
systemctl disable some-service
sudo systemctl restart live1
sudo systemctl restart mailjet_mailserver
sudo systemctl restart uvicorn_quart
Ayrshare
Business Plan features and is limited to 5 user profiles. It is USD $299 per month with no long term commitment needed.
https://payment.ayrshare.com/business_pricing?email=support@my-coach-finder.com
https://docs.ayrshare.com/multiple-client-accounts/user-integration
Server Stack
Server 1 Main
Aktiv:
- Live1 + Stripe Handling
- NGNIX
- Gunicorn
- Unvicorn
- UFW
- Fail-To-Ban
- Mail-Mailgun-Server
- Mariadb
- PHPMyAdmin
- Uptime-Cuma
- Quart-API (Chat, Suche)
- Helpseite
- Wiki ???
- Appel Auth
- PHP Pass
Inaktiv:
- InfluxDB
- Elasticserche
Server 2 Elasticserche
Aktiv:
- Elasticserche
Inaktiv:
Technische Informationen
Serverkosten: 16,89
NetCup: RS 2000 G9.5 a1 12M
Prozessor: AMD EPYC™ 7702
Prozessorkerne: 6 dediziert
Arbeitsspeicher DDR 4 ECC: 16 GB
Festplatte: 320 GB SSD
MyCoachFinder ist ein CRM für Coaches!
- MyCoachFinder Server
#SSH 1. ssh boothtml@185.207.106.68 -p 2222 1.1 wf234fhkj#P 2. su 2.1 grewglwehljkh435lkhjk354gj3456kjhg 3. cd /var/www/html/live1/ #backup (aktuelle datenbank+pip req.+alle daten in /var/www/html) 1. sudo /home/boothtml/mycoachfinder/backups/daily_backup.sh 2. sftp://hosting129525@boothtml.de/mychoachfinder_backup/ [Netcup Webserver] kopiren **Fileziiller** - B1 -> B2 3. auf MyCoachFinder Löschen Täglich 2 Uhr Nachts 0 2 * * * sudo /home/boothtml/mycoachfinder/backups/daily_backup.sh öffent editor: crontab -e Allew Anzeigen lassen: crontab -l #LOG 1. tail -f nohup.out max_worker_pref: (2*CPU)+1 #relaod app killall gunicorn #hard altnativ without check name sudo pkill -f gunicorn nohup gunicorn -w 4 'app:app' > nohup.out 2>&1 & #relaod nginx sudo nginx -t sudo systemctl restart nginx tail -f /var/log/nginx/error.log #port fail sudo pkill -f nginx & wait $! #debug gunicorn -w 4 'app:app' #------------------------------------------------------ crontab -l pgrep -af python3 ps ps aux | grep gunicorn #------------------------------------------------------ #debug sinpets ps aux | grep uvicorn kill -9 121195 netstat -tuln #show sudo lsof -i :8002 #------------------------------------------------------ fastapi.my-coach-finder.de cd /var/www/html/fastapi #testing intern curl fastapi.localhost:8002 #debug uvicorn app:app --reload --port 8002 #start nohup uvicorn app:app --port 8002 > nohup.out 2>&1 & #kill kill $(sudo lsof -t -i :8002) #------------------------------------------- #DB phpmyadmin pw anwendung: ffweh234k# phpmyadmin pw root: ffweh234k# #restart mariadb / phpmyadmin systemctl stop mariadb systemctl start mariadb bootroot -> 92384710kflwb3423 npm install pm2 -g cd /var/www/html/web_check/uptime-kuma #start pm2 start server/server.js --name uptime-kuma #status pm2 status #reset pm2 restart uptime-kuma #stop pm2 stop uptime-kuma #start pm2 start uptime-kuma #Telgramm Logs import requests tel_msg = "Hallo" response = requests.get('https://api.telegram.org/bot6575656872:AAEUnrY_3A5X5l0eKVS610U3QHo4n03WCEM/sendMessage?chat_id=1023177651&text='+str(tel_msg)) print(response.text) if response.status_code == 200: print('Success!') elif response.status_code == 404: print('Not Found.')
- SMTP-Mail
#Mailer 1 System mail_1_smtp = "mx2e15.netcup.net" mail_1_port = 587 mail_1_mail = "noreplay@my-coach-finder-msg.com" mail_1_password = "" #Mailer 2 Newsletter mail_2_smtp = "mx2e15.netcup.net" mail_2_port = 587 mail_2_mail = "noreplay@my-coach-finder-mail.de" mail_2_password = ""
- pure Flask App
from flask import Flask app = Flask(__name__) @app.route('/test') def hello(): return "Hello, World!"
- SomeSniped
write_output("foo baa")
Performance
#img loading="lazy" #js type="module"
https://developer.mozilla.org/en-US/docs/Web/Performance/Lazy_loading
Zertifikate
sudo certbot renew
sudo systemctl restart nginx
#prüfen
sudo certbot certificates
Domains
https://my-coach-finder.de/ → Netcup - im Besitz
https://my-coach-finder.com/ → Netcup - im Besitz (soll auf https://my-coach-finder.de weitergeleitet werden)
https://coach-finder.de → Leer ohne Webseite aber nicht frei - leer
https://coach-finder.com → https://coach-finder.com - änlicher Marktteilnehmer (ertmal keine Action)
https://coachfinder.de → https://gunter-koenig.de/ - nicht im Besitz → wird kontaktiert
https://coachfinder.com → https://www.easyname.com/ - nicht im Besitz → support ist angeschreiben
Suchfunktion
- stellt ein wesentlichen Teil von My-Coach-Finder da → in dem Namen enthalten
- derzeit umgesetzt mit Algolia[extern] und MySQL [intern] aufgrund der schnellren verabreitung und anzeige sowie fehlertolaranz
CoachingDB
- https://www.coachdb.com dient als Inpiration
- ist Kostenpflichtig sich dort einzutgane bei MCF ist es Kostenfrei
- abgrenzung → schnellres Wachstum
Greator
- https://greator.com/coaches/ → Unbakannt was Coach für Listing bezahlt
- um die 320 Coaches werden gelistet
Suchkreterien:
- Ort umkreis in KM
- Postleitzahl
- Stichworte
- Vorname
- NAchname
- Branche
- Verband
- Tätigkeit
- Foto/kein Foto
- Jahre an erfahrung
- Stundensatz
- Sprache
- Länder
- Geschlächt
- ALter
- Anliegen??
Elstaic Grundbegriffe
wichtigsten Elasticsearch-Begriffe:
- Index: Sammlung von Dokumenten, vergleichbar mit einer Tabelle in einer Datenbank.
- Dokument: Grundeinheit der Daten in JSON-Format, vergleichbar mit einer Datenbankzeile.
- Shard: Aufteilung eines Indexes zur Verteilung auf mehrere Knoten.
- Primary Shard: Originaldaten.
- Replica Shard: Kopien für Ausfallsicherheit und bessere Abfrageleistung.
- Cluster: Verbund von einem oder mehreren Knoten, die zusammenarbeiten.
- Node: Einzelner Server im Cluster, speichert Daten und verarbeitet Abfragen.
- Mapping: Strukturdefinition der Dokumente in einem Index, inkl. Feldern und Datentypen.
- Analyzer: Kombination aus Tokenizer und Filtern zur Textanalyse. Zerlegt und normalisiert Text.
- Filter: Filterelemente wie Token-Filter (z.B. Lowercase, Stop) und Char-Filter zur Anpassung und Bearbeitung von Tokens und Zeichenketten vor der Indexierung.
- Query: Abfrage, um Daten aus einem Index zu suchen. Verschiedene Abfragetypen wie Bool, Term oder Range.
- RESTful API: Schnittstelle, über die Elasticsearch mittels HTTP-Methoden bedient wird.
- Inverted Index: Kernstruktur für schnelle Volltextsuche, ordnet Wörter den Dokumenten zu.
- Stemming: Reduzierung von Wörtern auf ihre Grundform (z.B. „laufen“ zu „lauf“).
- Sprache: Unterstützung für verschiedene Sprachen durch spezialisierte Analyzer (z.B. für deutsche oder englische Sprache).
Beispiel für einen Elasticsearch-Index
PUT /my_index
{
"settings": {
"number_of_shards": 3, // Anzahl der Primär-Shards
"number_of_replicas": 2, // Anzahl der Replikats-Shards pro Primär-Shard
"analysis": {
"analyzer": {
"custom_analyzer": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase", // Wandelt alle Buchstaben in Kleinbuchstaben um
"stemmer_de" // Deutscher Stemming-Filter
]
}
},
"filter": {
"stemmer_de": {
"type": "stemmer",
"language": "lightgerman" // Stemming für die deutsche Sprache
}
}
}
},
"mappings": {
"properties": {
"name": {
"type": "text", // Datentyp für Volltextsuche
"analyzer": "custom_analyzer"// Verwendet den benutzerdefinierten Analyzer
},
"age": {
"type": "integer" // Datentyp für Ganzzahlen
},
"email": {
"type": "keyword" // Datentyp für genaue Übereinstimmung
},
"created_at": {
"type": "date" // Datentyp für Datumswerte
},
"location": {
"type": "geo_point" // Datentyp für geographische Punkte
}
}
}
}
Erklärung der Teile:
Settings
- number_of_shards: Legt die Anzahl der Primär-Shards fest, die den Index aufteilen.
- number_of_replicas: Legt die Anzahl der Replikat-Shards fest, um Ausfallsicherheit und verbesserte Abfrageleistung zu gewährleisten.
- analysis: Konfiguration für die Textanalyse.
- analyzer: Definiert benutzerdefinierte Analyzer.
- custom_analyzer: Ein benutzerdefinierter Analyzer, der den standard Tokenizer und die lowercase sowie stemmer_de Filter verwendet.
- filter: Definiert Filter, die in Analyzern verwendet werden.
- stemmer_de: Ein Stemming-Filter für die deutsche Sprache.
Mappings
- name: Feld für Volltextsuche, verwendet den standard Analyzer.
- age: Feld für Ganzzahlen, z.B. für Altersangaben.
- email: Feld für exakte Übereinstimmungen, wird als keyword gespeichert.
- created_at: Feld für Datumsangaben.
- location: Feld für geographische Koordinaten (Latitude und Longitude).
Technik
Server by Netcup
* VPS 4000 G11 12M NUE
* 12 vCore (x86)
* 32 GB ECC RAM
* 1024 GB SSD
sudo systemctl status elasticsearch
RAM
-Xms4g -Xmx4g
/etc/elasticsearch/jvm.options
curl -X GET 'http://localhost:9200'
/home/boothtml/kibana-8.14.1# ./bin/kibana –allow-root
ssh root@185.207.106.45 -p 2222 vewrllkjlkjh23412lkjh2ADQ22 #start sudo -u elasticsearch nohup /usr/local/elasticsearch-8.14.3/bin/elasticsearch > /usr/local/elasticsearch-8.14.3/logs/elasticsearch_nohup.log 2 #check ps aux | grep elasticsearch pgrep -f elasticsearch #logs tail -f /usr/local/elasticsearch-8.14.3/logs/elasticsearch_nohup.log root@v2202407103831277688:~/elasticsearch-8.14.3# sudo -u elasticsearch /usr/local/elasticsearch-8.14.3/bin/elasticsearch
Password for the elastic user (reset with `bin/elasticsearch-reset-password -u elastic`):
qECtGN8OgOGksJyClAPl
Elasticserche Server V2
ssh mycoachfinder_user@185.207.106.45
wefhkw23k4jh2gk3asdh2pwef2543
USER:
root
HIx4YTWIleffhkj
neu: whgkjhg23k42jhg234FCWEF234
Host:
185.207.106.45
########################################################################## # debian 12 (bookworm) - minimal # ##########################################################################
System information:
IP address: 185.207.106.45 Hostname: v2202407103831277688.ultrasrv.de
SSH key fingerprints:
3072 SHA256:8+8WUxqdbiKcDl8el6WhZDw5mgwDZTdM/GIWPuMv1Ag (RSA) 256 SHA256:LNtHtKnTP0EUncwC4ijhUJ5oP5RP/h9b4jiKtlDNQmI (ECDSA) 256 SHA256:BuNYbXBUpA1eur4ONM45gUS/JC3TxiAOrdJ2hxCvowo (ED25519) 3072 MD5:58:4c:e0:1f:7e:d8:4f:49:83:60:c9:75:92:c6:88:04 (RSA) 256 MD5:36:26:ad:e2:98:bd:9c:cb:b6:28:fa:54:bf:1c:82:af (ECDSA) 256 MD5:21:d9:df:21:10:b7:2f:55:ef:19:5d:67:98:70:fe:bf (ED25519)
HIx4YTWIleffhkj
fivver
Kibana URL. [UFW - ist aktiv sudo ufw deny 5601]
superuser: elastic
password: 2SR1*BBZ35CMKaV-L2m9
INSTALATION
https://www.elastic.co/guide/en/elasticsearch/reference/current/targz.html
curl –cacert /etc/elasticsearch/certs/http_ca.crt -u elastic:YOUR_ELASTIC_PASSWORD https://localhost:9200
curl –cacert /etc/elasticsearch/certs/http_ca.crt -u elastic:2SR1*BBZ35CMKaV-L2m9 https://localhost:9200
sudo curl -k -u elastic:2SR1*BBZ35CMKaV-L2m9 https://localhost:9200
Middle Layer
https://my-caoch-finder-api-e.de/
/home/mycoachfinder_user/my_caoch_finder# uvicorn main:app --reload --port 8002 pipx install * apt install python3-elasticsearch
URL Search JSON
URL: https://my-coach-finder.de/search/public?q=bauerr&coach=true&offer=true
- q: str: querry
- type: str: json
- coach: bool: true|false
- offer: bool: true|false
- local: str: city
- postcode: int: postcode
- range: int: km
3. Anbieter
- BunnyCDN
- Strip
- Aryshre
- ReveneCat
- Netcup
- Fivver
- Anglolia
- Mailjet
- Quonto
- SevDesk
- Adruid Store + App hosting
- IOS Store + App Hosting
- productboard.com (Roadmap)
- getcharla.com (Live-Chatbot)
Kibana
https://kib.my-caoch-finder-api-e.de
root@v2202407103831277688:~/elasticsearch-8.14.3/kibana-8.14.3
./bin/kibana
root@v2202407103831277688:~/elasticsearch-8.14.3/kibana-8.14.3# ./bin/kibana –allow-root
Weiteres
Starbüro
Zielrufnummer: +49302239950820
Benutzername: mycoachfinder
Passwort: RTfkHLkx
Webseite: https://backend.starbuero.de/login
Sicherheit:
Nutzer Anlegen bei SCP: Erstelle einen neuen Benutzer bei SCP. SSH-Zugriff: Verbinde dich mit dem Server per SSH: ssh user@ip. Systemaktualisierung: Aktualisiere das System und installiere alle verfügbaren Updates: sudo apt update && sudo apt upgrade. Firewall einrichten: Installiere die Uncomplicated Firewall (UFW): sudo apt install ufw. Firewall aktivieren: Aktiviere die Firewall: sudo ufw enable. Eingehenden Verkehr ablehnen: Setze die Standardeinstellung für eingehenden Verkehr auf Ablehnen: sudo ufw default deny incoming. SSH-Port ändern: Öffne den SSH-Konfigurationseditor: sudo nano /etc/ssh/sshd_config. Ändere den Port von 22 auf 2222 und deaktiviere die Root-Anmeldung (PermitRootLogin no). Firewall-Regeln hinzufügen: Erlaube den neuen SSH-Port und SSH-Zugriff: sudo ufw allow 2222, sudo ufw allow ssh. Standardeinstellungen für ausgehenden Verkehr: Erlaube ausgehenden Verkehr: sudo ufw default allow outgoing. SSH-Dienst neu starten: Neustart des SSH-Dienstes: sudo systemctl restart ssh. Fail2Ban installieren: Installiere Fail2Ban, um Brute-Force-Angriffe zu verhindern: sudo apt install fail2ban.
SQL-Server:
Webserver (Nginx) installieren: Installiere den Nginx-Webserver: sudo apt install nginx. MariaDB installieren: Installiere den MariaDB-Server: sudo apt install mariadb-server. MariaDB starten: Starte den MariaDB-Dienst: sudo systemctl start mariadb. MariaDB-Status überprüfen: Überprüfe den Status von MariaDB: sudo systemctl status mariadb. In MariaDB einloggen: Melde dich in MariaDB als Root-Benutzer an: sudo mysql -u root -p. Datenbank und Benutzer erstellen: Erstelle eine Datenbank (flask_app_db) und einen Benutzer (flask_user_boothtml) mit entsprechenden Berechtigungen.
phpMyAdmin:
phpMyAdmin installieren: Installiere phpMyAdmin: sudo apt install phpmyadmin. Symbolischer Link erstellen: Erstelle einen symbolischen Link zu phpMyAdmin im Webroot: sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin. Nginx-Konfiguration anpassen: Passe die Nginx-Konfiguration an, um phpMyAdmin zu aktivieren. Nginx-Dienst neu starten: Neustart des Nginx-Dienstes: sudo systemctl restart nginx. Nginx-Status überprüfen: Überprüfe den Status des Nginx-Dienstes: systemctl status nginx.service. https://my-coach-finder.de/phpmyadmin/ flask_user_boothtml EFewf3#ewf24
Zugang:
HTTP-Port öffnen: Erlaube eingehenden HTTP-Verkehr (Port 80): sudo ufw allow 80/tcp. HTTPS-Port öffnen: Erlaube eingehenden HTTPS-Verkehr (Port 443): sudo ufw allow 443/tcp.
request.method: GET request.url: http://127.0.0.1:5000/alert/dingding/test?x=y request.base_url: http://127.0.0.1:5000/alert/dingding/test request.url_charset: utf-8 request.url_root: http://127.0.0.1:5000/ str(request.url_rule): /alert/dingding/test request.host_url: http://127.0.0.1:5000/ request.host: 127.0.0.1:5000 request.script_root: request.path: /alert/dingding/test request.full_path: /alert/dingding/test?x=y request.args: ImmutableMultiDict([('x', 'y')]) request.args.get('x'): y request.args.get('app') -> true /false allways True if use APP
APP Key
key0
/home/liz/Desktop/key/key.jks
→ hjreflkhlkj4345345345fhgh#refw53kjhl
Newsletter
Whitelist = CSA (Certified Senders Alliance)
⚡ Verwenden Sie nicht nur Großbuchstaben im Betreff ⚡ Verzichten auf spamanfällige Begriffe wie „TEST”, „kostenlos” oder „Geld verdienen” im Betreff ⚡ kein Antwortschreiben durch das Einbauen von „Re:” am Anfang des Betreffs vorteuschen ⚡ nicht mehrere Ausrufezeichen aneinander (!!!) ⚡ nicht mehr als zwei Sonderzeichen (z. B. € oder %) im Betreff ⚡ kein javascript ⚡ eigene Domain für Tracking-Links verwenden ⚡ keine Fantasiewörter - auch nicht zusammengesetzt ⚡ E-Mail-Größe minimieren ⚡ Dateianhänge unter 300 kB ⚡ DKIM und SPF sowie DMARC -> DKIM-Keys und SPF-Records bei Hoster eintragen (mehr trust) ⚡ Hard Bounces (mehrfach keine zustellung möglich) von der Liste zu nehmen ⚡ Mobilgeräte optimieren
AppSumo
Redemption
setup code: https://www.youtube.com/watch?v=HZOfZIkwYgA&ab_channel=AppSumo
sumo: https://my-coach-finder.de/sign-up/appsumo/%(code)
app: https://my-coach-finder.de/sign-up/appsumo/CODE?app=true
Notizen Call
Link zu Mitbewerber
https://tentary.com/de/pricing —> Direkter Kauf von Produkten + Landingpage + Admin + 2% Provision + kein ABO + kein Vertrag = OMG
https://coachingszene.de/ #grape
https://trello.com/b/wKer9H6u/becoach-roadmap
https://www.coaching-magazin.de/coaching-tools/apps [Mit in Liste aufgenommen werden!]
LINC
https://linc-coachingboard.de/
https://muellmail.com/#/erdmann.coaching@existiert.net
123abc
khjgfjkh4325jkhejkhf
Erklärvideo für linc-coachingboard
- bord wie zb Canva
- abrebitblätter/PDF Hochladen und Coachee senden
- Coachee Session verwaltung
Messen
Trainer_Kongress_Berlin
Templates
https://themeforest.net/downloads
user: boothtmlcom
Public V1: https://mcf-t4.boothtml.de/ httpdocs/my_coch_finder_template/public_v1/HTML/src/
Public V2: https://mcf-t2.boothtml.de httpdocs/my_coch_finder_template/v2_public/1/
Dashbord V1: not exist
Dashbord V2: https://mcf-t1.boothtml.de httpdocs/my_coch_finder_template/online/website/
Webseiten-Builder V1: https://mcf-t3.boothtml.de/ /httpdocs/my_coch_finder_template/webseiten_builder/HTML/
Implementierungs-Weg
offer update in Panel
Nur 1 Aktuelsirungspunkt → reverenz ist immer das Formular zum Anlegen → einfache anpassbarkeit + wartung
- selbe seite wie angelegt + URL Param. → ?edit-offer=ID
- werte Anhand der ID in Felder eingetragen als Type=Value
- Absenden prüft ob edit-offer=ID geben
- wenn ja → Neues Offer anlegen + Offer mit ID auf gelöscht setzen
wenn user_id dieses offer besitzt (Sicherheit)
Data-Mix
ssh root@89.58.47.37 -p 2222
pip python3 -m venv boothtml
source boothtml/bin/activate 185.207.106.68
user: boothtml root pw: wf234fhkj#P 7N9ypOe23WDnpMI alt Hostname: v2202308103831236321.ultrasrv.de wweffwefew32423kjhl new
ssh boothtml@185.207.106.68 -p 2222 MySQL phpmyadmin pw anwendung: ffweh234k# phpmyadmin pw root: ffweh234k#
Sicherheit 1. Nutzer Anlegen bei SCP 2. ssh user@ip '→ ssh user@ip -p 2222 3. sudo apt update && sudo apt upgrade 4. sudo apt install ufw 5. sudo ufw enable 6. sudo ufw default deny incoming 7. sudo ufw allow 2222 8. sudo ufw allow ssh 9. sudo ufw default allow outgoing !!!!!! 10. sudo nano /etc/ssh/sshd_config 11. Port 22 → Port 2222 ++ PermitRootLogin no 12. sudo systemctl restart ssh 13. sudo apt install fail2ban
SQL-Server 14. sudo apt install nginx 15. sudo apt install mariadb-server 16. sudo systemctl start mariadb 17. sudo systemctl status mariadb 18. sudo mysql -u root -p wref234 19. CREATE DATABASE flask_app_db; CREATE USER 'flask_user_boothtml'@'localhost' IDENTIFIED BY 'EFewf3#ewf24'; GRANT ALL PRIVILEGES ON flask_app_db.* TO 'flask_user_boothtml'@'localhost'; FLUSH PRIVILEGES;
phpMyAdmin 20. sudo apt install phpmyadmin 21. sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin 22. sudo nano /etc/nginx/sites-available/default sudo nano /etc/nginx/nginx.conf 23. # Default server configuration # server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } # pass PHP scripts to FastCGI server # #location ~ \.php$ { # include snippets/fastcgi-php.conf; # # # With php-fpm (or other unix sockets): # fastcgi_pass unix:/run/php/php7.4-fpm.sock; # # With php-cgi (or other tcp sockets): # fastcgi_pass 127.0.0.1:9000; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} location /phpmyadmin { root /var/www/html; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /var/www/html; fastcgi_pass unix:/run/php/php8.2.7-fpm.sock; # Pfad kann je nach PHP-Version variieren fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } } 24. sudo systemctl restart nginx 25. systemctl status nginx.service
zugang 26. sudo ufw allow 80/tcp 27. sudo ufw allow 443/tcp
28.
gunicorn killall gunicorn cd var/www/live1 gunicorn -w 4 -b 127.0.0.1:8000 app:app & W = Worker sudo systemctl restart nginx https://support.nordvpn.com/de/Konnektivitaet/Linux/1569820152/Aendern-deiner-DNS-Server-unter-Linux.htm DNS=103.86.96.100 3 86 96 FallbackDNS=103.86.99.100 3 86 99 nameserver 192.168.8.216 92 68 8 nameserver 192.168.8.222 92 68 8 nameserver 192.168.8.1 92 68 8 # Too many DNS servers configured, the following entries may be ignored. nameserver 192.168.8.227 92 68 8 nameserver 192.168.8.254 92 68 8 search . sudo nano /etc/systemd/resolved.conf sudo systemctl restart systemd-resolved
Eine ansprechende Datenbank für Coaching🚀🚀🚀
Entwicklung unter: https://dev-c.boothtml.com/
Live unter: https://my-coach-finder.com/
Meeting: Nächstes Termine: Di. https://meet.google.com/ekk-grrp-btu
Live Editor: https://replit.com/join/ikpmrulveb-hannesfehre
Linklliste info@nelly-kostadinova.de
Workflow:
Backup:
sftp://boothtml@depro6.fcomet.com:17177/home/boothtml
- Listenpunktzip -r coatch_backup/coatch$(date +„%Y-%m-%d_%H:%M:%S“).zip coatch
Ziel:
- Mind. 100 Kunden im Abo zu über 100€
- Sehr guter Kundensupport - first level [Mitarbeiter oder Chatbot]→ second Level [CEO]
- Automatisierungsgrad 100%
- Steuer und Rechungen automatisch schicken
- Automatisches Mahnwesen
open A. Studio - /opt/android-studio/bin/studio.sh
info@my-coach-finder.de Bt5m2w5$0 Abrufbar über: https://webmail01.netcup.net
Weiterleitung: asgard90@gmx.net, info@boothtml.com
Tiktokkanal
- erstellt inklusive Profilbild.
- Aktuell ist der Kanal auf Privat bis wir Videos genriere,
- Username: info@my-coach-finder.de
- passworrt: GW5gUKuhMSDvXjMla4s$
info@my-coach-finder.de Bt5m2w5$0 mail.boothtml.com
21 PW: PPp74nNEkPihN2B
Username: My_coach_finder password: 9YA%a~)tvF,8Lgk5
Account ist erstellt, samt Profilbild. Beschreibung oder Info text fehlt noch und sollte ergänzt werden.
/index /home / public/index.html
/about public/about.html
/bookmark-jobs public/bookmark-jobs.html
/user-list public/user-list.html
/coming-soon public/coming-soon.html
/contact public/contact.html
/faqs public/faqs.html
/job-categories public/job-categories.html
/job-details public/job-details.html
/job-list public/job-list.html
/manage-jobs public/manage-jobs.html
/manage-jobs-post public/manage-jobs-post.html
/pricing public/pricing.html
/privacy-policy public/privacy-policy.html
/profile public/profile.html
/reset-password public/reset-password.html
/services public/services.html
/sign-in public/sign-in.html
/sign-out public/sign-out.html
/sign-up public/sign-up.html
/user-details public/user-details.html
/login /public/login.html
- Finde deinen perfekten Coach
- Lass dich von den besten Coaches inspirieren
- Erreiche deine Ziele mit einem Coach an deiner Seite
- Coaching für jeden Bedarf - finde deinen passenden Coach
- Wir vermitteln qualifizierte Coaches für dein persönliches Wachstum
- Finde deinen Coach und starte deine Veränderung
- Dein Coach für mehr Erfolg und Zufriedenheit im Leben
- Entdecke die besten Coaches für deine individuellen Bedürfnisse
- Coaching, das dein Leben verändert - finde deinen Coach bei uns
- Professionelle Coaches für ein glücklicheres und erfüllteres Leben.
- Finde deinen Erfolgs-Partner: Wir vermitteln Coaches.
- Coaches, die dich voranbringen: Jetzt finden und buchen.
- Coaching auf dein Leben zugeschnitten: Finde deinen Coach.
- Für alle, die weiterkommen wollen: Unsere Coaches unterstützen dich.
- Persönliches Wachstum leicht gemacht: Entdecke unsere Coaches.
- Finde deinen Coach für Erfolg.
- Coaches, die dich voranbringen.
- Dein Coaching auf dich zugeschnitten.
- Coaches für dein persönliches Wachstum.
- Wachse mit unseren Coaches.
1. Finde deinen Erfolgs-Coach. 2. Persönliches Wachstum mit Coaches. 3. Coaching für deine Ziele. 4. Wir vermitteln passende Coaches. 5. Coaches für dich und dein Leben.
- Erfolgs-Coaches auf Knopfdruck.
- Wachse mit unseren Top-Coaches.
- Coaching, das dich weiterbringt.
- Coaches, die zu dir passen.
- Entfalte dein Potenzial mit unseren Coaches.
- Erfolgserlebnisse inklusive.
- Dein persönlicher Boost🚀.
- Unterstützung auf Abruf.
- Experten-Connection.
- Leben neu gestalten.
Insta:
- Hier findest du deinen individuellen Coach🚀!
- Dein persönlicher Boost 👉 erreiche Ziele und verwirkliche deine Träume mit individuellem Coaching 💪.
TikTok:
- Hier findest du deinen individuellen Coach🚀!
- Dein persönlicher Boost 💪.
Free Plan: Kosten: Kostenlos Funktionen:
- Basis-Profil auf der Website/App
- begrenzte Anzahl von Nutzern
- die der Coach unterstützen kann
- begrenzte Anzahl von Coaching-Sitzungen pro Monat
- grundlegende Messaging-Funktionen für die Zusammenarbeit mit Nutzern
Proffesolanl Plan: Kosten: 25 €/Monat Funktionen:
- Vollständiges Profil auf der Website/App
- erhöhte Anzahl von Nutzern, die der Coach unterstützen kann
- unbegrenzte Anzahl von Coaching-Sitzungen pro Monat
- erweiterte Messaging-Funktionen für die Zusammenarbeit mit Nutzern
- Video-Chat-Tools für die Durchführung von virtuellen Sitzungen
- Analyse-Tools für die Verfolgung von Fortschritten der Nutzer und den Erfolg der Coaching-Sitzungen
Premium Plan: Kosten: 50 €/Monat Funktionen:
- Alle Funktionen des Premium Plans 1
- plus zusätzliche Funktionen wie personalisierte Ernährungs- und Trainingspläne für die Nutzer
- eine 24/7-Chat-Hotline für den Coach und spezielle Rabatte für zusätzliche Services oder Tools
- die von Partnern des Unternehmens bereitgestellt werden.
Diese drei Pläne bieten Coaches unterschiedliche Optionen, um ihre Kundenbasis zu erweitern und ihre Coaching-Services auf verschiedene Weise anzupassen. Gleichzeitig ermöglichen sie Nutzern, einen Coach zu finden, der ihren spezifischen Bedürfnissen und ihrem Budget entspricht.
- wie kann ich mich regetriren
- wie nahme ich konkat auf
- Bezahlmetodenmit Stripe
- wie sicher sind meine Daten
- wiederufsrecht/ Kündigen
- wen kann ich dabei erreichen
- Lohnt es sich für mich?
- Neukundengwinnung
- Mehr Reichweit
- Übersichtlichkeit (all in one Lösung)
- Rund um die Uhr erreichbar
- sozalmedia integration
====== OAUTH ======
https://nagasudhir.blogspot.com/2023/05/implement-login-with-google-in-python.html
AWS SES Mail Repotaion
- Runs 24/7 as a background service
- Sends 1 email every ~2 hours with ±30 min randomization
- Automatically selects random recipients from your pool
- Respects your 50 emails/day limit
- Automatically resets at midnight
- Base interval: 2 hours
- Random offset: ±30 minutes
- Creates realistic, unpredictable sending pattern
How to Deploy
- Stop any existing timers/services
`sudo systemctl stop ses-reputation.service`
`sudo systemctl disable ses-reputation-*.timer`
- Reload systemd configuration
`sudo systemctl daemon-reload`
- Start the new daemon
`sudo systemctl start ses-reputation.service`
- Enable to start on boot
`sudo systemctl enable ses-reputation.service`
- Check status
`sudo systemctl status ses-reputation.service`
- Watch logs
`sudo tail -f /var/log/ses-reputation.log`










