feat: Fix discovery system critical issues
Resolved multiple critical discovery system issues: ## Discovery System Fixes - Fixed console commands not being discovered on first run - Implemented fallback discovery for empty caches - Added context-aware caching with separate cache keys - Fixed object serialization preventing __PHP_Incomplete_Class ## Cache System Improvements - Smart caching that only caches meaningful results - Separate caches for different execution contexts (console, web, test) - Proper array serialization/deserialization for cache compatibility - Cache hit logging for debugging and monitoring ## Object Serialization Fixes - Fixed DiscoveredAttribute serialization with proper string conversion - Sanitized additional data to prevent object reference issues - Added fallback for corrupted cache entries ## Performance & Reliability - All 69 console commands properly discovered and cached - 534 total discovery items successfully cached and restored - No more __PHP_Incomplete_Class cache corruption - Improved error handling and graceful fallbacks ## Testing & Quality - Fixed code style issues across discovery components - Enhanced logging for better debugging capabilities - Improved cache validation and error recovery Ready for production deployment with stable discovery system. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,172 @@
|
||||
# Netcup Setup ohne Git
|
||||
|
||||
## 1. App-Struktur vorbereiten
|
||||
|
||||
### Option A: Bestehende App
|
||||
Falls du bereits eine App hast, stelle sicher dass sie diese Struktur hat:
|
||||
```
|
||||
deine-app/
|
||||
├── package.json # Node.js Abhängigkeiten
|
||||
├── server.js # Hauptdatei
|
||||
├── Dockerfile # Docker-Konfiguration
|
||||
└── ... weitere Dateien
|
||||
```
|
||||
|
||||
### Option B: Neue App erstellen
|
||||
```bash
|
||||
# Erstelle App-Verzeichnis
|
||||
mkdir -p ~/meine-app
|
||||
|
||||
# Beispiel Node.js App
|
||||
cd ~/meine-app
|
||||
|
||||
# package.json
|
||||
cat > package.json << 'EOF'
|
||||
{
|
||||
"name": "meine-app",
|
||||
"version": "1.0.0",
|
||||
"main": "server.js",
|
||||
"scripts": {
|
||||
"start": "node server.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"express": "^4.18.0"
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
# server.js
|
||||
cat > server.js << 'EOF'
|
||||
const express = require('express');
|
||||
const app = express();
|
||||
const port = process.env.PORT || 3000;
|
||||
|
||||
app.get('/', (req, res) => {
|
||||
res.json({
|
||||
message: 'Hello World!',
|
||||
timestamp: new Date().toISOString()
|
||||
});
|
||||
});
|
||||
|
||||
app.get('/health', (req, res) => {
|
||||
res.json({ status: 'ok' });
|
||||
});
|
||||
|
||||
app.listen(port, '0.0.0.0', () => {
|
||||
console.log(`Server running on port ${port}`);
|
||||
});
|
||||
EOF
|
||||
|
||||
# Dockerfile
|
||||
cat > Dockerfile << 'EOF'
|
||||
FROM node:18-alpine
|
||||
WORKDIR /app
|
||||
COPY package*.json ./
|
||||
RUN npm install
|
||||
COPY . .
|
||||
EXPOSE 3000
|
||||
CMD ["npm", "start"]
|
||||
EOF
|
||||
```
|
||||
|
||||
## 2. Ansible konfigurieren
|
||||
|
||||
```bash
|
||||
# Ins Deployment-Verzeichnis
|
||||
cd ansible/netcup-simple-deploy
|
||||
|
||||
# Konfiguration anpassen
|
||||
vim inventory/hosts.yml
|
||||
```
|
||||
|
||||
**Wichtige Änderungen:**
|
||||
```yaml
|
||||
ansible_host: DEINE-NETCUP-IP # ← Server IP
|
||||
domain: "deine-domain.com" # ← Domain
|
||||
ssl_email: "deine@email.com" # ← E-Mail
|
||||
local_app_path: "~/meine-app" # ← Pfad zu deiner App
|
||||
```
|
||||
|
||||
## 3. Deployment
|
||||
|
||||
```bash
|
||||
# SSH-Key zum Server (falls noch nicht gemacht)
|
||||
ssh-copy-id root@DEINE-NETCUP-IP
|
||||
|
||||
# App deployen
|
||||
make deploy
|
||||
```
|
||||
|
||||
## 4. App updaten
|
||||
|
||||
Nach Änderungen an deiner App:
|
||||
```bash
|
||||
# Einfach erneut deployen
|
||||
make deploy
|
||||
```
|
||||
|
||||
Die Dateien werden automatisch zum Server übertragen und die App neu gebaut.
|
||||
|
||||
## 5. Verschiedene App-Typen
|
||||
|
||||
### PHP App
|
||||
```dockerfile
|
||||
FROM php:8.1-apache
|
||||
COPY . /var/www/html/
|
||||
EXPOSE 80
|
||||
```
|
||||
|
||||
### Python Flask
|
||||
```dockerfile
|
||||
FROM python:3.9-slim
|
||||
WORKDIR /app
|
||||
COPY requirements.txt .
|
||||
RUN pip install -r requirements.txt
|
||||
COPY . .
|
||||
EXPOSE 3000
|
||||
CMD ["python", "app.py"]
|
||||
```
|
||||
|
||||
### Static HTML
|
||||
```dockerfile
|
||||
FROM nginx:alpine
|
||||
COPY . /usr/share/nginx/html
|
||||
EXPOSE 80
|
||||
```
|
||||
|
||||
## 6. Ordnerstruktur
|
||||
|
||||
```
|
||||
netcup-simple-deploy/
|
||||
├── inventory/
|
||||
│ └── hosts.yml # ← Hier konfigurieren
|
||||
├── deploy.sh # ← Deployment starten
|
||||
└── Makefile # ← Einfache Befehle
|
||||
|
||||
~/meine-app/ # ← Deine App-Dateien
|
||||
├── Dockerfile
|
||||
├── package.json
|
||||
└── server.js
|
||||
```
|
||||
|
||||
## 7. Troubleshooting
|
||||
|
||||
### App startet nicht?
|
||||
```bash
|
||||
# Logs anschauen
|
||||
make logs
|
||||
|
||||
# Container status prüfen
|
||||
ansible all -m shell -a "docker ps -a"
|
||||
```
|
||||
|
||||
### Dateien werden nicht übertragen?
|
||||
```bash
|
||||
# Pfad prüfen
|
||||
ls -la ~/meine-app
|
||||
|
||||
# Manuell testen
|
||||
ansible all -m shell -a "ls -la /opt/myapp/src/"
|
||||
```
|
||||
|
||||
Das war's! Keine Git-Kenntnisse nötig - einfach deine Dateien bearbeiten und deployen! 🎉
|
||||
Reference in New Issue
Block a user