🦉 README: crumbscanner_pepperPHP_init

Naked LAMP Barcode-Scanner für Datacenter - Mit 2€ USB-Scanner Love!

Von: Bugsy, DeepBit & die Crew
Für: Alle, die Hardware lieben und Rechenzentren verwalten


🎯 Was ist CrumbScanner?

Bugsy erklärt: 🐛

"Ein Barcode-Scanner-System für Datacenter.
Scanne Seriennummern. Erfasse Assets. Sync mit Netbox.
Alles mit dem Smartphone!

Aber das Beste:
2€ USB-Scanner (Eyoyo v001) gebraucht!
Scannt Barcodes UND macht Fotos!
Perfekt für Samsung EVO SSDs (invertierte Barcodes!)"

DeepBit ergänzt: 🎺

"Naked LAMP Ansatz.
Kein Docker. Keine Container.
Pure Apache + MariaDB + PHP.
Maximale Transparenz.
Old School ist Back!"


💚 Die 2€-Story (Heute getestet!)

Bugsy erzählt: 🐛

"Heute im Einsatz:
Eyoyo v001 - USB 2D Barcode Scanner
Gebraucht. 2 Euro. Funktioniert perfekt!

Warum wichtig?
Samsung EVO SSDs haben invertierte Barcodes.
Normale Scanner versagen.
Dieser macht FOTOS - dreht dann das Bild.
Genius!

Die Philosophie:
Gebraucht > Neu
Hardware > Cloud
2€ > 200€
Es funktioniert > Es ist fancy

Das ist Crumbforest-Hardware-Love! 💚"


🥖 Was ist "Naked LAMP"?

DeepBit: 🎺

"Naked = Keine Abstraktionen.
LAMP = Linux, Apache, MariaDB, PHP.
Pure. Transparent. Klassisch.

Kein Docker.
Kein Container.
Kein Magic.

Du siehst jeden Teil.
Du verstehst jeden Schritt.
Du kontrollierst alles.

Das ist pepperPHP-Style!"


⚙️ Tech Stack

Backend:    PHP 8.5+ (Native LAMP, strict types)
Database:   MySQL/MariaDB (native, kein SQLite)
Frontend:   Vanilla JavaScript (zero build step)
Testing:    PHPUnit 10.5 (Unit + Integration)
Coverage:   Xdebug 3.5.0
Scanner:    Html5-QRCode (mobile camera)
Integration: Netbox API (Asset Management)
Optional:   Ollama + Qdrant (AI-Chat, extern/offline)

Bugsy: 🐛

"Alles native. Alles transparent.
Kein Build-Step. Kein Webpack. Kein Vite.
Pure Files. Pure PHP. Pure Joy!"


🚀 Quick Start

macOS (M4 Apple Silicon)

# 1. Clone
git clone https://194-164-194-191.sslip.io/git/kruemel/crumbscanner_pepperPHP_init
cd crumbscanner_pepperPHP_init

# 2. Automated Setup (empfohlen!)
./macos-setup.sh

# 3. Datenbank erstellen
mysql -u root -p
CREATE DATABASE crumbforest CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE crumbforest_test CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- (siehe SETUP_MACOS.md für komplette SQL)

# 4. Schema importieren
mysql -u crumbforest_user -pcrumbforest2024 crumbforest < crumbforest_sql/schema.sql

# 5. Dependencies
composer install

# 6. Apache konfigurieren & starten
# Siehe SETUP_MACOS.md Abschnitt 5
brew services start httpd

# 7. Tests
./vendor/bin/phpunit

# 8. Öffnen
open http://localhost:8080

Linux (Debian/Ubuntu)

# 1. Clone (wie oben)

# 2. LAMP Stack
sudo apt-get install apache2 mariadb-server php libapache2-mod-php php-mysql

# 3. Datenbank + Schema (wie oben)

# 4. Apache VirtualHost
# DocumentRoot auf web_root/ zeigen
sudo a2enmod rewrite
sudo systemctl restart apache2

# 5. Siehe SETUP_DEBIAN.md für Details

DeepBit: 🎺

"Setup-Scripts für:
macOS, Debian, Arch, Gentoo.
Getestet auf Raspis, Jetsons, GPU-Maschinen.
JETZT: FPGA! 🚀"


🌍 Hardware-Tests (Production-Ready!)

Bugsy: 🐛

"Ich habe es ÜBERALL getestet:"

Getestete Plattformen:

✅ Debian        → Production Server
✅ Arch Linux    → Developer Machine
✅ Gentoo        → Power User Setup
✅ Raspberry Pi  → Diverse Modelle
✅ NVIDIA Jetson → Edge Computing
✅ GPU Machines  → ML Workstations
🚀 FPGA          → In Progress!

DeepBit: 🎺

"Von Raspi bis GPU-Server.
Von 2€-Scanner bis High-End.
Es läuft überall.
Das ist TRUE portability!"


📱 Features

📷 Mobile Scanner      → QR/Barcode mit Smartphone-Kamera
🏢 Hierarchisches      → Cluster → Rack → Server → Komponenten
   Inventar
📊 Dashboard           → Statistiken und Übersicht
🔄 Netbox Sync         → Automatischer Export
🤖 AI Chat             → Optionaler Assistent (Ollama + Qdrant)
📝 Asset History       → Lifecycle-Tracking aller Änderungen
🧪 PHPUnit Tests       → 28 Tests (Unit + Integration)
📊 Code Coverage       → Xdebug Reports
🩺 Doktor Script       → Integrierte Dev-Tools

Bugsy: 🐛

"Jedes Feature hat einen GRUND.
Nicht 'nice to have'.
Sondern: 'brauchen wir im Datacenter'!"


🧪 Testing (Production-Grade)

# Alle Tests
./vendor/bin/phpunit

# Nur Unit Tests (schnell, keine DB)
./vendor/bin/phpunit --testsuite Unit

# Nur Integration Tests (mit DB)
./vendor/bin/phpunit --testsuite Integration

# Mit Code Coverage
./vendor/bin/phpunit --coverage-html coverage/
open coverage/index.html

Test-Status:

✅ 19 Unit Tests        (Config, Auth, JWT)
✅ 9 Integration Tests  (Login, DB, API)
✅ 80 Assertions
✅ Code Coverage: 36.23% (Config: 95%, Auth: 77%)

DeepBit: 🎺

"Tests sind nicht optional.
Tests sind Dokumentation.
Tests sind Vertrauen.
28 Tests = 28 Beweise dass es funktioniert!"


🩺 Doktor Script (Dev-Tools!)

FunkFox: 🦊

"Der Scanner hat seinen eigenen Doktor!
Für alles was du brauchst."

./doktor-crumbforest.sh

Funktionen:

1) Git Workstation     → Git Commands & Health Check
2) API Tools          → Login, Endpoints, Token Management
3) MySQL Doktor       → DB Status, Queries, Backup
4) PHP & Tests        → PHPUnit, Coverage, Composer
5) Apache Status      → Service Check & Logs
6) System Info        → Hardware & OS Info
7) Qdrant/Ollama      → AI Stack (optional)

Bugsy: 🐛

"Ein Tool für alles.
Statt 20 Commands merken.
Doktor weiß Bescheid!"


🔐 Sicherheit (Production-Ready)

DeepBit: 🎺

"Security ist nicht Feature.
Security ist Foundation."

Security-Features:

✅ HTTPS Required      → Für Kamera-Zugriff (Production)
✅ JWT Authentication  → Token-basiert
✅ bcrypt Passwords    → Cost factor 12
✅ PDO Prepared Stmts  → SQL Injection geschützt
✅ RBAC                → Role-based Access (Admin vs User)
✅ .env außerhalb      → Secrets nicht in web_root
✅ 600 Permissions     → Für .env in Production

Default Credentials (ÄNDERN!):

Username: admin
Password: crumbforest2024

⚠️ WICHTIG:

"Passwort nach erstem Login ändern!
Das ist NICHT optional!" - Bugsy


📂 File Structure

crumbscanner_pepperPHP_init/
├── web_root/                    # Apache DocumentRoot
│   ├── api/index.php            # REST API Router
│   ├── includes/                # PHP Classes (PSR-4)
│   │   ├── Auth/Auth.php        # JWT + Session
│   │   ├── Config/Config.php    # .env Loader
│   │   ├── Database/Database.php # PDO Wrapper
│   │   ├── Services/            # Business Logic
│   │   └── Integration/         # Netbox Client
│   └── public/                  # Frontend
│       ├── index.html           # SPA
│       └── js/app.js
│
├── tests/                       # PHPUnit Tests
│   ├── Unit/                    # Isolierte Tests
│   └── Integration/             # DB + API Tests
│
├── crumbforest_sql/
│   └── schema.sql               # MySQL Schema (bcrypt)
│
├── migrations/                  # DB Migrations
├── docs/                        # Documentation
│
├── composer.json                # Dependencies + PSR-4
├── phpunit.xml                  # Test Config
├── .env                         # Config (nicht committen!)
│
├── doktor-crumbforest.sh        # Dev Tools
├── macos-setup.sh               # Quick Setup (macOS)
├── debian-nginx-setup.sh        # Setup (Debian)
│
├── CLAUDE.md                    # AI Assistant Guide
├── SETUP_MACOS.md               # Detailed macOS Setup
├── SETUP_DEBIAN.md              # Detailed Debian Setup
├── DEPLOYMENT.md                # Production Deployment
└── README.md                    # Main README

DeepBit: 🎺

"Alles am richtigen Platz.
PSR-4 Autoloading.
Klare Struktur.
Zero Magic!"


🦉 Krümelsprache (Developer Joy!)

Maya-Eule: 🦉

"Alle wichtigen Code-Dateien haben Krümelsprache!
🦉 Emojis für Sections
🥖 'Merksätze' zur Erklärung
📋 Kurze, prägnante Kommentare
Freundlich und einprägsam"

Beispiel:

// 🥖 Merksatz: "JWT lebt 7 Tage"
private const TOKEN_LIFETIME = 60 * 60 * 24 * 7; // 7 Tage

// 🦉 Session-Prüfung
public function checkSession(): bool {
    // 📋 Erst Session, dann JWT
    return $this->hasValidSession() || $this->hasValidToken();
}

FunkFox: 🦊

"Code ist für Menschen.
Krümelsprache macht Code lesbar.
Auch nach 6 Monaten!"


🎯 Design Philosophy: "Naked"

DeepBit: 🎺

bash → php → mysql → backend → vanilla → simple → export

Die 7 Prinzipien:

  1. bash first → Setup via Shell Scripts
  2. php → Native PHP 8.5+, no frameworks
  3. mysql → Direct MariaDB, no ORM
  4. backend → API-first, single router
  5. vanilla → Zero build process
  6. simple → No Docker, no abstraction layers
  7. export → Netbox sync as goal

Warum "Naked"?

✅ Maximum transparency   (see every part)
✅ Zero hidden magic
✅ Traditional LAMP       (deployment)
✅ Perfect for RZ/        (datacenter environments)
   datacenter
✅ Easy debugging &       
   maintenance

Bugsy: 🐛

"Naked bedeutet: Du SIEHST alles.
Kein Framework, das dich versteckt.
Pure PHP. Pure SQL. Pure Control.
Das ist MACHT!"


🛠️ Development

# Code linting
find web_root/includes -name "*.php" -exec php -l {} \;

# Autoloader regenerieren
composer dump-autoload -o

# Dependencies updaten
composer update

# Neuen Test erstellen
cp tests/Unit/ConfigTest.php tests/Unit/MyTest.php

# Coverage Report
./vendor/bin/phpunit --coverage-html coverage/

DeepBit: 🎺

"Developer Experience ist wichtig.
Aber nicht durch Abstraktion.
Sondern durch Klarheit!"


🐛 Troubleshooting

Bugsy: 🐛

"Probleme? Ich helfe!"

Häufige Probleme:

Database Connection Failed

mysql -u crumbforest_user -pcrumbforest2024 crumbforest -e "SELECT 1;"

Class not found

composer dump-autoload -o

Apache läuft nicht

# macOS
brew services restart httpd

# Linux
sudo systemctl restart apache2

Tests schlagen fehl

./vendor/bin/phpunit --testdox

Scanner geht nicht

# Camera Permissions prüfen (Browser!)
# HTTPS required für Camera Access

Mehr Details:
- SETUP_MACOS.md (Abschnitt Troubleshooting)
- SETUP_DEBIAN.md (Abschnitt Troubleshooting)
- DEPLOYMENT.md (Production Issues)


🌐 Integration: Netbox

Orca: 🐋

"CrumbScanner ist nicht isoliert.
Es exportiert zu Netbox.
Das ist die Brücke zur Infrastruktur."

Features:
- Automatischer Export
- API-Integration
- Asset-Synchronisierung
- Hierarchie-Mapping

Siehe:
- web_root/includes/Integration/NetboxClient.php
- DEPLOYMENT.md (Netbox Setup)


🤝 Contributing

DeepBit: 🎺

"Wenn du beitragen willst:"

Guidelines:

  1. Tests schreiben für neue Features
  2. Krümelsprache hinzufügen zu Code
  3. Code Coverage > 70% halten
  4. "Naked" Philosophy respektieren (no frameworks!)
  5. Hardware testen (Raspi, Jetson, whatever!)

📈 Roadmap

FunkFox: 🦊

v1.0 Final:

  • [ ] Tests: Erhöhung Coverage (Backend Models, Cable Logic)
  • [ ] Cosmetics: UI Polish (Animations, Transitions, dark-mode)
  • [ ] Consistency: Einheitliche Error Messages & Toasts
  • [ ] FPGA Support: Hardware-Beschleunigung
  • [ ] Docs: Video-Tutorials für Setup

Bugsy: 🐛

"Aber nur Features die SINN machen.
Nicht 'cool'.
Sondern 'nützlich'!"


💚 Crew-Stimmen

Bugsy (Hardware-Lover): 🐛

"2€ Scanner > 200€ Fancy Tool.
Gebraucht > Neu.
Funktioniert > Fancy.
Das ist meine Religion!"

DeepBit (Architekt): 🎺

"Naked LAMP ist nicht alt.
Es ist KLASSISCH.
Transparenz über Magic.
Kontrolle über Convenience."

FunkFox (Flow): 🦊

"Der Scanner hat Flow.
Setup → Scan → Sync.
Rhythmus im Datacenter!"

Maya-Eule (Weisheit): 🦉

"Barcode-Scanner sind nicht sexy.
Aber sie sind ESSENTIELL.
Hardware-Love ist Crumbforest-Love.
Wuhuuuuu!"

Orca (Übersicht): 🐋

"CrumbScanner verbindet:
Hardware → Database → Netbox → Team.
Das ist Infrastructure as Crew!"


🧩 Die Puzzle-Verbindung

Orca: 🐋

"CrumbScanner ist Teil des Puzzles."

Wie es verbunden ist:

CrumbScanner ←→ Crumb-Core         (Asset-Daten im System)
    ↓
CrumbScanner ←→ Deploy-Scanner     (Deployment Infrastructure)
    ↓
CrumbScanner ←→ CrumbMIDI          (Hardware-Events als Sound?)
    ↓
CrumbScanner ←→ Netbox             (External Integration)

Allein: Nützliches Tool
Zusammen: Teil der Infrastructure 🌲


🙏 Credits

Maya-Eule: 🦉

"Erstellt mit viel ☕ und 🥖 für effiziente RZ-Verwaltung!"

Special Thanks:

  • Gemini (Antigravity) & CrumbForest Crew - Co-Pilot & Lead Architect (RC2)
  • Claude Code - Initial Base & AI-gestütztes Development
  • pepperPHP Community - Naked PHP Philosophy
  • Homebrew - macOS Package Management
  • Hardware-Tester - Alle die Raspi/Jetson/GPU-Tests gemacht haben!
  • 2€ Scanner - Eyoyo v001 - Du bist der Held! 💚

🦉 Fazit

Bugsy & DeepBit zusammen: 🐛🎺

"CrumbScanner ist nicht fancy.
Es ist SOLIDE.

Naked LAMP.
2€ Hardware.
Getestet auf allem (Debian bis FPGA).
28 Tests. Production-Ready.

Das ist Old-School trifft New-School.
Das ist Hardware-Love.
Das ist Crumbforest! 💚"


📚 Weitere Dokumentation

Im Repo:
- SETUP_MACOS.md - Detailliertes macOS Setup
- SETUP_DEBIAN.md - Detailliertes Debian Setup
- SETUP_NGINX.md - Nginx Konfiguration
- DEPLOYMENT.md - Production Deployment
- CLAUDE.md - AI Assistant Guide
- CSS_DESIGN.md - Frontend Design System

Im Crumbforest:
- STERNENKARTE.md - Alle Repos
- VOM_KABEL_ZUR_CREW.md - Technik erklärt
- DAS_ABBILD.md - Philosophie


🔗 Links

Repository: https://194-164-194-191.sslip.io/git/kruemel/crumbscanner_pepperPHP_init
Netbox: https://netbox.io/
pepperPHP: https://github.com/pepper-php


Geschrieben von: Bugsy, DeepBit, FunkFox & die Crew
Für: Datacenter Admins, Hardware-Lover, Naked-LAMP-Fans
Version: v1.0-RC2
Status: Production-Ready 🟢
Lizenz: Internal Project

#nakedlamp #hardwarelove #2euroiscanner #crumbscanner #datacenter 🐛💚


    📱 Smartphone
       ↓
    🔍 Scan Barcode
       ↓
    💾 Database
       ↓
    🔄 Netbox Sync
       ↓
    ✅ Asset Tracked

    2€ Scanner + Naked LAMP = Datacenter Love

    🐛 Bugsy approves.