Linux Root - Server Administration & Hosting
Mieten, aufsetzen, konfigurieren, absichern & warten mehrerer Root Server per Terminal.
Sowohl mawe-dev.com als auch auto-service-goldstein.de liegen auf diesem root-Server.
- DNS - Einträge beim Provider vorgenommen. (Domain xy --> IP)
- Server Absichern: Login per SSH - key(s) only. Kein root login. Danach "Privilege Escalation" nur durch Passwort möglich
- Installation & Konfiguration des LAMP Stacks
- Aufsetzen & Konfiguration mehrerer Virtual - Server mit Apache
- Cronjobs für "PHP CLI" erstellt, um bspw. Google API - Token per Refresh Token zu erneuern
- SSL - Zertifikate erstellt und auf Apache-Server in Virtual Hosts implementiert
- Zugriff sensibler Verzeichnisse abgesichert durch .htaccess
- FTP Server implementiert und abgesichert
- TS3 Server implementiert & konfiguriert. Rechtemanagement etc.
- Kontaktformulare mit POST Req Handling, Sanitization
- Forensoftware implementiert & konfiguriert
Websites | maWe-dev.com & AutoService Goldstein
maWe - Dev https://mawe-dev.com
- Eigenes Loginsystem mit "max Tries", um besser gegen Brute-Force Attacken abgesichert zu sein
- Direktdownload von Dateien (sichtbar nur in internem Bereich, downloadbar nur unter bestimmten Voraussetzungen)
- Zufallsgenerator für Zitate
- Implementierung mehrerer Node.js Server per Virtual Hosts, ProxyPass sowie RewriteEngine, durchschleusen von socket.io etc...
- Kontaktformular etc. programmiert mit Vanilla (JavaScript, PHP, HTML & CSS Flexbox)
- AOS Library per JS dynamisch mit Hilfe von 2 kleinen Funktionen & Ternary Operator (Modulo - Result) hinzugefügt
- Jede Zeile Code, Logik, Funktionen der Website etc. selbst gecoded
AutoService Goldstein https://auto-service-goldstein.de/
- Website Vanilla(HTML, JavaScript, CSS Grid & PHP)
- Schaltung von Werbung via Google Ads
- Implementierung von GA & GTM mitsamt Ereignissen und Zielvorhaben zur Messung und Analyse des Verhaltens der Websitebesucher.
- Eigens gemieteter, abgesichterter und per secureShell(SSH) konfigurierter Root - Server. Implementierung SSL - Zertifikat etc.
- Weitere Keywords: Opt-Out - Cookie (DGVO), Test-Property für GTM - Debug Mode, Weiterleitung von requests port 80 --> 443 per rewrite module, etc...
Eigene Chat-Web-App: node.js, express & socket.io (Vorübergehend offline)
Alle implementierten und weitere potentielle Funtkionen/Features werden in der App selbst beschrieben.
Chat - App Link
Eigene mit Projekte mit eigener Logik
Projekte in JavaScript/PHP ( Eigene APIs /APIs | Client- und Serverside Programming)
- Drawing App mit p5.js und firebase als Datenbank nodeJS Server | JS client Link
- Wheel of Fortune A.k.a. Decision Maker Link
- Multiple Timer (Countdown App) Published soon
- Text2Speech Modules Link
- Dec <--> Hex | Dec <--> Bit Calculator, Eigene(r) Logik/Algorithmus ohne JS Built-In - Funktionen Link
- ProAd Task Helper Published soon
- Eigene ROT-X ASCII - En-/Decyption Link
- Your name in binary | letter by letter Link
- Pass Generator | Charset frei wählbar JS | PHP
- Telefonbuch App CRUD, Sortier- und Suchfunktion. "Datenbank" Local Storage Link
- Where is the ISS & Leaflet APIs Link
- Voting App mit chart.js & firebase API nodeJS Server | JS client Link
- Other Voting App (nodeJS) allowing users to create own live votes | not published yet
- Giphy API nodeJS Server | JS client Link
- Google Ads KW-Option-Generator JS | PHP
- Mailchimp API Eintragung/Austragung in Mailing-Liste per Formular für Newsletter Kampagnen | down
- Node.js Project with Databases, Registration, Pass gen(salt & pepper) Pass Recovery, expiring JWT Tokens (database entry as well as HTTP Cookie only...) not published yet
Einige der letzten gelösten Coding Challenges/Interview Fragen / Eigene Implementierung, einiger Sorting Algorithms (teilw. visualisiert --> nicht online)
Eigene Lösungen der jeweiligen Challenges/Interview Fragen mit eigener Logik ohne "LookUps". Links zur Problemstellung/Herausforderung (teilweise) in der Datei.
- Errichto Array Multiplication except self Link & Solution
- Google Calendar Link & Solution
- Facebook Lexographical Order Link & Solution
- Facebook Phone Pad Link & Solution
- Codewars - some of many solved coding challenges through own algorithms without lookups
Problem statement: Recover a secret string from random triplets --> SOLUTION
Problem statement: Snail --> SOLUTION
Problem statement: Consecutive strings --> SOLUTION
My Profile
- BubbleSort, QuickSort, MergeSort, InsertionSort etc... noch nicht hochgeladen
- Object Oriented --> Bubbles p5JS? Link
- FRITZ!Box API Projekt | Indiv. "Theme Song" nach Wifi-Connect (Skript checkt Verbindung in Zeitintervall) beim Betreten der Wohnung, in Abhängigkeit von der Person. Getting Session ID etc. --> DOKU: PDF Eigene Lösung mit node.js & UTF-16LE (Byte Order...) zusammengebastelt noch nicht hochgeladen
whof
Raspberry PI & Bash Scripting
Mehrere Projekte
- Eigener VPN Server | Installation & Konfiguration
Herausforderung: Pi nach fritz.box Neustart ohne WLAN - Verbindung (kein Auto-Reconnect) --> kein VPN --> Login per Dyn DNS möglich
Lösung: Eigenes Bash - Script geschrieben, dass WLAN Connection alle x Sekunden checkt und falls disconnect --> reconnect
- Nextcloud Server | Installation & Konfiguration
Check per eigenem bash-script ob externe Festplatte per fstab eingehängt. falls nicht --> verhindern des Logins/Upload auf nextcloud, sonst Datenverlust
- Samba Server | Installation & Konfiguration
- Teamspeak Server | Installation & Konfiguration
- eigene Startup - Routinen mit Bash - Skripten
- Bugfixing & Support von Kollegen u. Freunden mit Ihren Herausforderungen mit Linux etc.
Cookie Consent Banner - Logik
- Check ob DSGVO - konforme Cookie - Consent Logik per Dev - Tools und Google Tag Assistant
- Implementierung & Anpassung der entsprechenden Logik per GTM. Cookie/Local Storage auslesen & Bedingungen der Ausspielung festlegen (Cookiebot, UserMetrics, Shopware Cookie Consent, Borlabs...)
- Verändern des Layouts & der Funktionalität des Cookie Consent Banners per JavaScript, um einen "Alles akzeptieren" - Button zu implementieren und den Cookie per JS ebenfalls neu zu setzen.
Tracking des Traffics: ohne Button 5% | mit Button >80% des bisherigen Traffics
Mittlerweile liefern die meisten Cookie - Consent Anbieter bei Bedarf die automatische Implementierung eines "Alle Cookies akzeptieren" selbst.
Google Tag Manager
Komplexe Tracking Szenarien sowie grundsätzliches Conversion Tracking (Google Analytics, Ads, Bing, fb, Matomo)
-
DOM - Manipulation in Abhängigkeit der Quelle (URL - Parameter)
Beispiel: Bei Google und FB werden spezifische Klick-Parameter an die URL angehangen.
Um die Conversion - Quelle und das Keyword im Nachhinein noch je Conversion feststellen zu können, wird die Telefonnumer oder E-Mail Adresse in Abhängigkeit der Quelle per Skript ausgetauscht und das Keyword bspw. über ein "hidden Form field" mit übergeben.
- Implementierung von Ecommerce / Enhanced E-Commerce Tracking per GTM per DOM Scraping. (w\ plugin für cms)
-
Affiliate Tracking | Letzte Quelle vor Conversion in Cookie speichern, um anschließend das richtige Pixel/Event zu feuern. (korrekte Provisionszuweisung)
-
Werte von Formularfeldern (Select Buttons, Ranges, Checkboxen, Date Objects) per JavaScript auslesen und ebenfalls an Google Analytics senden
- Formular - Performance Tracking: kritische Abbruchfelder identifizieren
- Interne sowie externe GTM Schulungen abgehalten
Google Analytics & Google Data Studio
-
Einrichtung u. Konfiguration Konten/Properties/Datenansichten:
X-Domain-Tracking, Conversions, Custom Events, Segmentation, Analysen, benutzerdefinierte Reports, benutzerdefinierte Dimensionen, benutzerdefinierte Filter...
-
Google Analytics API, individuelles Dashboard mit den wichtigsten KPI's für die Website auto-service-goldstein.de
- Google Data Studio
Zusammenführen mehrere Datenquellen, bspw. Erstellung aggregierter Conversions um Gesamtperformance je Intervall schnell und übersichtlich anzeigen lassen zu können.
Abbildung teilweise sehr komplexer Usecases
Programmierung eigener API's & Anbindung externer
"Bot Flow" = Gescripteter Gesprächsverlauf abhängig von Userinteraktion
- Auslesen der Parksituation in Köln per DOM-Scaping & eigener API ohne dom-parser/JS clientside.
Herausforderung: auf flow.ai keine Erweiterung des node.js Servers durch Paketmanager möglich (kein Zugriff VM)
Lösung: GET Request an eigenen API (node.js - Endpunkt), serverseitiges Script geschrieben (RegEx) um die relevanten Infos (freien Plätze) der jeweleigen Parkhäuser in Echtzeit von der Website auszulesen --> in Array of Objects gespeichert --> Response an flow.ai zurückgeschickt --> freie Plätze in WhatsApp durch Bot gerendert und an den User ausgegeben.
Potentielle Erweiterung: User wählt anschließend Parkhaus --> Reponse: google Maps - Location, um direkt per One-Click Routenführung aus WhatsApp heraus zu starten
- Anbindung der Bots an zahlreiche externe API's: Live-Wetter-API, Witze API...
- Terminvereinbarungs - Bot für Zahnärzte mit Google API:
automatisierte Terminvergabe, nach zuvor vorgeschlagenen Terminen per WhatsApp. Nach Abfrage notw. Parameter: Bereits Patient ja/nein, Krankenkasse...
- Leadgewinnung auf LP per WhatsApp-Bot: Name, Anliegen, E-Mail-Adresse --> per API Endpunkt in Google Sheets eingetragen.
Jeder mit Zugriff auf die Excel kann die Datei entsprechend lesen/ändern...
- Webhook - Handling:
Webhook abgefangen, Daten in eigene Datei geschrieben und erst anschließend an Bot - Software weitergeleitet. (Datei auslesbar, Incoming- und Outgoing WhatsApp Messages + Events, Logik für tägliche Archivierung etc..)
Eigenes dynamisches Webinterface (PHP) CS:S & CS:GO GameServer
Features nach und nach mit eigener Logik entwickelt und implementiert.
- Neue aufgesetzter Root Server "from Scratch" konfiguriert und abgesichert
- Rechteadministration mit User/Group/Other...
- Webinterface abgesichert mit langem kryptischen Key, ohne Key|falscher Key ==> Server response: 404
- Automatisches Auslesen der aktuell installierten GameServer und Rendern im Webinterface
- Alle Server gleichzeitig, Starten stoppen, Neustarten per Button im GUI
- Jeden installierten Server einzeln Starten, Stoppen, Neustarten per Button im GUI
- Statusanzeige je Server mit Online - Indikator (Grünes/Rotes Batch) in Beschreibung
- Auslesen und Anzeige der aktuellen Uptime mit ps, Parametern, speichern in Arrays etc...
- Status des Root - Servers per GUI=> "top" von der Konsole des Linuxservers umgeleitet in PHP und dort "gerendert" und per JavaScript sekündlich (solange Pop-Up Fenster offen) die PHP - Funktion ausgeführt, um Status "live" zu rendern
- Änderung der Server Konfiguration über das Webinterface per rcon (Remote Console) - Befehlen, die per Formular an den jeweiligen Webserver geschickt werden können
- Auslesen & Änderung der Config Files der Server (.cfg|.txt Files) per eigenem PHP Script im GUI. (Formular)
- Auslesen & Änderung der Startparameter wie bspw. der individuellen Serverports im Webinterface
- Update Indikator | Auslesen der aktuellen Version auf dem Server mit dem neuesten Release des GameServers
- Updaten des GameServers per Webinterface, umleiten des Terminal-Status in Browser PopUp
- Bubbles
- Cube
- 2 Teamgenerators...
- Abbildung der Trigonometrischen Funktionen
- Diverse Projekte, bspw. Zufallsgeneratoren mit Graphical User Interface um Teams für Spiele zu generieren Link
- Analoge Uhr Link
Sonstiges
- Electron Desktop-App (Windows)
Sounds bei ButtonKlick. Je MP3-File in spezifischen Ordner wird ein Button in der App gerendert und bei Klick abgespielt. (Sound Board TV Total)
- React / Redux: Grundlagen von Components/State Management/Props etc.
- Kleinere Smartphone App - Projekte in Java
- Bugfixing aller Art
Support von Kollegen, die bei CMS Templates nicht weiter kamen...
- Neuaufsetzen von Rechnern (Linux & Windows), Aufsetzen und verwalten von Virtual Machines via Virtualbox
- Fernwartung von Systemen per TeamViewer, RDP...
- Node.js
Kleine App, die im gewählten Zeitintervall per GET - Request eine Aktien - Website ausliest (DOM - Scraping) und bei starken Fall des Kurses (gewisser % - Satz), eine E - Mail sendet, sodass ggf. schnell reagiert kann.
- node.js, diverse Serverprojekte mit Login, Pass Confirmation via E-mail, Pass Recovery, databases etc...
- Regular Expressions - Password Live Strength - O - Meter
- Programmieren lernen (Aufgaben)
Eigene Lösungsansätze zu zahlreichen (50+) der folgenden Aufgaben: https://www.w3resource.com/javascript-exercises/javascript-basic-exercises.php
- Textanalyse App
Zählt Wörter, Sätze, Zeichen innerhalb eines Textes.
- Datenbanken MySQL, PHPMYADMIN etc.
MYSQL, Create Table, Update, Insert, Delete Requests per PDO Statements, (INNER-, OUTER-, LEFT- & RIGHT - JOINS)
- Blog App with Vanilla PHP | Blog App Symfony
HTML, PHP & JS mit CRUD Application (Create, Read, Update, Delete) abgesichert durch PHP Sessions. Veränderbar nur durch eines der zulässigen Passwörter, bei denen das eingegebene Passwort gehashed wird (SHA-256), um anschließend mit den erlaubten Hash-Strings aus der Datenbank verglichen und geprüft wird, sodass im Falle einer Übereinstimmung die Session startet und Veränderungen an der Datenbank vorgenommen werden können und diese auch entsprechend direkt wieder auf der Seite "gerendert" werden.
- MVC - Model (Node.js, Symfony, django)
- Einrichtung, Konfiguration und absichern von Routern, Telefonie über Headset mit PhonerLite
bspw. VPN Verbindungen einrichten zum sicheren Verbinden über das Privatnetzwerk zu Hause für den Aufruf sensibler Websites/Apps aus öffentlichen Netzwerken per Laptop/Smartphone.
- Installation & Konfiguration von Smartphones (mitsamt Jailbreak etc.)
Sonstige Interessen/Tasks
- Serverumzug mit diversen Software-Systemen, automatische Backups, Fernwartung
- APIs
- Arduino
- Netzwerktechnik, IP-Auflösung ipV4, ipV6, DNS...
- Assembler & Reverse Engineering
- Sonstige Programmiersprachen: Java, Python, C++
- IT Security & Kryptografie --> mit JavaScript (mit big.js damals, da außerhalb der "Zahlenrange" von JavaScript) manuell Strings per asymetrischer Verschlüsselung (RSA) ver- und entschlüsselt. Link