**My-Coach-Finder - das CRM für Coches**
====== Schnellzugriff ======
[[https://my-coach-finder.com]]
----
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
ssh root@159.195.74.158
----
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 ======
[[https://my-coach-finder.de]]
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:
{{ ::alex_fischer_fragebogen_ausgewertet_21_11_2024.pdf |}}
{{::bildschirmfoto_2024-11-21_13-45-51.png?400|}}
[[https://my-coach-finder.de/admin_akademie]]
==== 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 ======
{{::funktions_matrix.png?400|}}
{{::bildschirmfoto_2024-11-26_14-03-27.png?400|}}
https://tentary.com/de/pricing
====== 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.
https://www.youtube.com/watch?v=a_a6-NTU2Jo
https://www.youtube.com/watch?v=_LFpnwMHClc
==== Ü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
^ Image 1 ^ Image 2 ^
| {{ ::bildschirmfoto_2024-10-10_20-59-41.png?400 |}} | {{ ::bildschirmfoto_2024-10-15_12-57-06.png?400 |}} |
====== 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!
[[https://mcf-t1.boothtml.de/pages/index.php|Templates]]
#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.')
#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 = ""
from flask import Flask
app = Flask(__name__)
@app.route('/test')
def hello():
return "Hello, World!"
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
https://api-v1.my-coach-finder.de/chat/get/chat_list
====== 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**
{{::bildschirmfoto_2024-11-18_21-46-55.png?400|}}
* [[https://www.coachdb.com]] dient als Inpiration
* ist Kostenpflichtig sich dort einzutgane bei MCF ist es Kostenfrei
* abgrenzung -> schnellres Wachstum
**Greator**
{{::bildschirmfoto_2024-11-18_21-50-03.png?200|}}
* 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").
* **Sprach**e: 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
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-elasticsearch-on-ubuntu-22-04
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//]
http://185.207.106.45: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
http://localhost:5601/
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
{{:screenshot_2024-01-09_18-00-05.png?400|}}
====== Newsletter ======
https://www.rapidmail.de/newsletter-guides/newsletter-zustellbarkeit-optimieren-wie-e-mails-nicht-im-spam-landen
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 ======
https://appsumo.com
**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://www.coach-liste.de/
{{:coach-liste.png?200 |}}
https://learningsuite.io/ #no
https://coachingszene.de/ #grape
{{:coachingzene.png?200|}}
https://www.allecoaches.de
https://coaches.xing.com/
https://greator.com/coaches/
https://trello.com/b/wKer9H6u/becoach-roadmap
https://www.coaching-magazin.de/coaching-tools/apps [Mit in Liste aufgenommen werden!]
==== LINC ====
[[https://linc.de/]] ->
[[https://linc-coachingboard.de/]]
https://muellmail.com/#/erdmann.coaching@existiert.net
123abc
khjgfjkh4325jkhejkhf
Erklärvideo für linc-coachingboard
{{ ::erklarvideo_zu_allen_funktionen_des_linc_coaching_boards_on_vime.mp4 |}}
* bord wie zb Canva
* abrebitblätter/PDF Hochladen und Coachee senden
* Coachee Session verwaltung
====== Messen ======
**Trainer_Kongress_Berlin**
{{ :trainer_kongress_berlin_2024_anmeldeformular_aussteller.pdf |}}
{{ :trainer_kongress_berlin_2024_aussteller_info.pdf |}}
====== 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
* https://www.linkedin.com/in/nelly-kostadinova-b6457828/overlay/about-this-profile/
* https://www.nelly-kostadinova.de/
* https://www.turtlezone.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]]
{{:oauth_authorize_code_flow.png?400:}}
====== 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`