Hwandji commited on
Commit
4589e7e
·
1 Parent(s): 6c577c8

Pipeline changes.

Browse files
.github/workflows/ci-cd-pipeline.yml CHANGED
@@ -303,12 +303,149 @@ jobs:
303
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
304
 
305
  # ==========================================
306
- # JOB 6: Deployment Success Notification
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
307
  # ==========================================
308
  notify-deployment:
309
  name: Deployment Status
310
  runs-on: ubuntu-latest
311
- needs: [build-docker-images, create-deployment-package]
312
  if: always()
313
 
314
  steps:
@@ -322,3 +459,12 @@ jobs:
322
  echo "❌ Deployment fehlgeschlagen"
323
  exit 1
324
  fi
 
 
 
 
 
 
 
 
 
 
303
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
304
 
305
  # ==========================================
306
+ # JOB 6: Deploy to HuggingFace Spaces
307
+ # ==========================================
308
+ deploy-huggingface:
309
+ name: Deploy to HuggingFace Spaces
310
+ runs-on: ubuntu-latest
311
+ needs: [backend-tests, frontend-tests]
312
+ if: github.ref == 'refs/heads/main' && github.event_name == 'push'
313
+
314
+ steps:
315
+ - name: Checkout code
316
+ uses: actions/checkout@v4
317
+ with:
318
+ fetch-depth: 0
319
+
320
+ - name: Setup Python
321
+ uses: actions/setup-python@v5
322
+ with:
323
+ python-version: '3.11'
324
+
325
+ - name: Install HuggingFace Hub
326
+ run: pip install huggingface_hub
327
+
328
+ - name: Debug - Check HF_TOKEN
329
+ run: |
330
+ if [ -z "${{ secrets.HF_TOKEN }}" ]; then
331
+ echo "❌ ERROR: HF_TOKEN secret not configured"
332
+ echo "Please add HF_TOKEN to repository secrets"
333
+ exit 1
334
+ else
335
+ echo "✅ HF_TOKEN is configured"
336
+ echo "Token length: ${#HF_TOKEN}"
337
+ fi
338
+ env:
339
+ HF_TOKEN: ${{ secrets.HF_TOKEN }}
340
+
341
+ - name: Prepare deployment files
342
+ run: |
343
+ echo "📦 Preparing HuggingFace deployment files..."
344
+
345
+ # Create huggingface deployment directory
346
+ mkdir -p huggingface_deploy
347
+
348
+ # Copy all necessary files
349
+ cp -r huggingface/* huggingface_deploy/
350
+ cp -r backend huggingface_deploy/
351
+ cp -r frontend huggingface_deploy/
352
+ cp requirements.txt huggingface_deploy/
353
+
354
+ # Verify critical files exist
355
+ echo "📋 Verifying deployment files:"
356
+ ls -la huggingface_deploy/
357
+
358
+ if [ ! -f "huggingface_deploy/Dockerfile" ]; then
359
+ echo "❌ ERROR: Dockerfile missing"
360
+ exit 1
361
+ fi
362
+
363
+ if [ ! -f "huggingface_deploy/README.md" ]; then
364
+ echo "⚠️ WARNING: README.md missing - creating default"
365
+ cat > huggingface_deploy/README.md << 'EOF'
366
+ ---
367
+ title: SAAP - satware AI Autonomous Agent Platform
368
+ emoji: 🤖
369
+ colorFrom: purple
370
+ colorTo: blue
371
+ sdk: docker
372
+ app_port: 7860
373
+ pinned: false
374
+ license: mit
375
+ ---
376
+
377
+ # SAAP - satware® AI Autonomous Agent Platform
378
+
379
+ Local autonomous multi-agent system for specialized AI agents.
380
+
381
+ **Features:**
382
+ - Multi-agent coordination (Jane, John, Lara, Theo, Justus, Leon, Luna)
383
+ - Real-time WebSocket communication
384
+ - Cost-efficient hybrid provider support
385
+ - Privacy-first local deployment
386
+ EOF
387
+ fi
388
+
389
+ echo "✅ Deployment files prepared"
390
+
391
+ - name: Upload to HuggingFace Space
392
+ env:
393
+ HF_TOKEN: ${{ secrets.HF_TOKEN }}
394
+ run: |
395
+ echo "🚀 Deploying to HuggingFace Spaces..."
396
+
397
+ cd huggingface_deploy
398
+
399
+ python << 'DEPLOY_SCRIPT'
400
+ import os
401
+ import sys
402
+ from huggingface_hub import HfApi, create_repo
403
+
404
+ # Configuration
405
+ repo_id = "Hwandji/saap"
406
+ token = os.environ.get("HF_TOKEN")
407
+
408
+ if not token:
409
+ print("❌ HF_TOKEN not found")
410
+ sys.exit(1)
411
+
412
+ print(f"📤 Uploading to HuggingFace Space: {repo_id}")
413
+
414
+ try:
415
+ api = HfApi(token=token)
416
+
417
+ # Upload all files
418
+ api.upload_folder(
419
+ folder_path=".",
420
+ repo_id=repo_id,
421
+ repo_type="space",
422
+ commit_message=f"Deploy from GitHub Actions - {os.environ.get('GITHUB_SHA', 'unknown')[:7]}"
423
+ )
424
+
425
+ print("✅ Successfully uploaded to HuggingFace")
426
+ print(f"🌐 Space URL: https://huggingface.co/spaces/{repo_id}")
427
+
428
+ except Exception as e:
429
+ print(f"❌ Deployment failed: {e}")
430
+ sys.exit(1)
431
+ DEPLOY_SCRIPT
432
+
433
+ - name: Deployment summary
434
+ run: |
435
+ echo "📊 Deployment Summary"
436
+ echo "===================="
437
+ echo "✅ Files uploaded to HuggingFace Spaces"
438
+ echo "🌐 Space: https://huggingface.co/spaces/Hwandji/saap"
439
+ echo "⏳ Note: Space restart may take 2-3 minutes"
440
+ echo "🔍 Check logs at: https://huggingface.co/spaces/Hwandji/saap/logs"
441
+
442
+ # ==========================================
443
+ # JOB 7: Deployment Success Notification
444
  # ==========================================
445
  notify-deployment:
446
  name: Deployment Status
447
  runs-on: ubuntu-latest
448
+ needs: [build-docker-images, create-deployment-package, deploy-huggingface]
449
  if: always()
450
 
451
  steps:
 
459
  echo "❌ Deployment fehlgeschlagen"
460
  exit 1
461
  fi
462
+
463
+ if [ "${{ needs.deploy-huggingface.result }}" = "success" ]; then
464
+ echo "✅ HuggingFace Deployment erfolgreich"
465
+ echo "🌐 Space: https://huggingface.co/spaces/Hwandji/saap"
466
+ elif [ "${{ needs.deploy-huggingface.result }}" = "skipped" ]; then
467
+ echo "⏭️ HuggingFace Deployment übersprungen (nicht main branch)"
468
+ else
469
+ echo "❌ HuggingFace Deployment fehlgeschlagen"
470
+ fi
frontend/postcss.config.js DELETED
@@ -1,6 +0,0 @@
1
- export default {
2
- plugins: {
3
- tailwindcss: {},
4
- autoprefixer: {},
5
- },
6
- }
 
 
 
 
 
 
 
huggingface/README.md CHANGED
@@ -1,223 +1,171 @@
1
  ---
2
- title: SAAP - satware Autonomous Agent Platform
3
  emoji: 🤖
4
- colorFrom: blue
5
- colorTo: purple
6
  sdk: docker
 
7
  pinned: false
8
  license: mit
9
- app_port: 7860
10
  ---
11
 
12
- # 🤖 SAAP - satware Autonomous Agent Platform
13
-
14
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
15
- [![Docker](https://img.shields.io/badge/Docker-Enabled-blue)](https://www.docker.com/)
16
- [![HuggingFace](https://img.shields.io/badge/🤗-Spaces-yellow)](https://huggingface.co/spaces/satware/saap)
17
-
18
- **Live Demo:** https://huggingface.co/spaces/satware/saap
19
-
20
- ---
21
-
22
- ## 📋 Überblick
23
-
24
- SAAP (satware Autonomous Agent Platform) ist eine moderne Multi-Agent-Plattform für autonome KI-Agenten. Diese Demo ermöglicht On-Premise-Deployment unabhängig von Cloud-Diensten.
25
 
26
- ### Hauptfunktionen
27
 
28
- - 🤖 **Multi-Agent-System** - Orchestrierung mehrerer spezialisierter KI-Agenten
29
- - 🔐 **Sicherheit** - Zero-Trust-Architektur mit GDPR-Compliance
30
- - 🚀 **Performance** - FastAPI Backend mit Vue.js Frontend
31
- - 📊 **Monitoring** - Echtzeit-Überwachung via WebSocket
32
- - 💰 **Kosteneffizienz** - Tracking von API-Kosten und Nutzung
33
-
34
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
 
36
  ## 🏗️ Architektur
37
 
38
  ```
39
- ┌─────────────────────────────────────┐
40
- HuggingFace Space Container
41
-
42
- ┌──────────┐ ┌──────────┐
43
- Frontend │◄────►│ Backend
44
- │ │ (Nginx) │ │ (FastAPI)│ │
45
- │ Port 7860 │ Port 8000│ │
46
- │ └──────────┘ └──────────┘ │
47
- │ │
48
- └───────┬───────────┘
49
-
50
- SQLite Database
51
- └─────────────────────────────────────┘
 
 
 
 
 
 
 
 
52
  ```
53
 
54
- **Tech Stack:**
55
- - **Frontend:** Vue.js 3 + TypeScript + Tailwind CSS
56
- - **Backend:** Python 3.11 + FastAPI + SQLAlchemy
57
- - **Database:** SQLite (HuggingFace Spaces)
58
- - **Server:** Nginx + Supervisor
59
- - **AI Integration:** Colossus API + OpenRouter
60
-
61
- ---
62
-
63
- ## 🚀 Verwendung
64
-
65
- ### Schritt 1: Space konfigurieren
66
-
67
- Bevor Sie den Space verwenden können, müssen Sie die erforderlichen Secrets konfigurieren:
68
-
69
- 1. Gehen Sie zu **Settings** → **Variables and secrets**
70
- 2. Fügen Sie folgende Secrets hinzu:
71
- - `COLOSSUS_API_KEY` - Ihr Colossus API Key
72
- - `OPENROUTER_API_KEY` - Ihr OpenRouter API Key
73
- - `SECRET_KEY` - Generieren Sie einen sicheren Schlüssel
74
-
75
- ### Schritt 2: Space starten
76
-
77
- Klicken Sie auf **"Start Space"** und warten Sie ~2-3 Minuten, bis der Container gebaut ist.
78
-
79
- ### Schritt 3: Dashboard öffnen
80
-
81
- Sobald der Space läuft, öffnet sich automatisch das SAAP Dashboard.
82
-
83
- ---
84
-
85
- ## 🔑 API Keys erhalten
86
-
87
- ### Colossus API Key
88
- 1. Besuchen Sie [Colossus Platform](https://colossus.ai)
89
- 2. Erstellen Sie einen Account
90
- 3. Navigieren Sie zu API Settings
91
- 4. Generieren Sie einen neuen API Key
92
-
93
- ### OpenRouter API Key
94
- 1. Besuchen Sie [OpenRouter](https://openrouter.ai)
95
- 2. Registrieren Sie sich
96
- 3. Gehen Sie zu **Keys** → **Create Key**
97
- 4. Kopieren Sie den generierten Key
98
-
99
- ### Secret Key generieren
100
-
101
- Verwenden Sie Python:
102
- ```bash
103
- python3 -c "import secrets; print(secrets.token_urlsafe(32))"
104
- ```
105
-
106
- ---
107
-
108
- ## 📖 Funktionen im Detail
109
-
110
- ### 🤖 Agent-Management
111
-
112
- - **Agenten erstellen** - Konfigurieren Sie neue KI-Agenten
113
- - **Agenten bearbeiten** - Passen Sie Verhalten und Parameter an
114
- - **Agenten löschen** - Entfernen Sie nicht benötigte Agenten
115
- - **Multi-Agent-Chat** - Koordinierte Zusammenarbeit mehrerer Agenten
116
 
117
- ### 💬 Chat-Interface
 
 
 
 
 
 
118
 
119
- - **Real-time Kommunikation** - WebSocket-basierter Chat
120
- - **Streaming Responses** - Live-Updates während der Generierung
121
- - **Kontext-Management** - Gespräche mit Verlauf
122
- - **Markdown Support** - Formatierte Antworten mit Code-Highlighting
123
 
124
- ### 📊 Monitoring & Analytics
 
 
 
 
 
 
125
 
126
- - **Kostentracking** - Überwachen Sie API-Kosten in Echtzeit
127
- - **Performance-Metriken** - Response-Zeiten und Erfolgsraten
128
- - **Agent-Status** - Live-Übersicht aller aktiven Agenten
129
- - **Nutzungsstatistiken** - Detaillierte Analyse der Systemnutzung
130
-
131
- ---
132
 
133
- ## ⚙️ Konfiguration
 
 
 
134
 
135
- ### Environment Variables
136
-
137
- Die folgenden Umgebungsvariablen können als Secrets gesetzt werden:
138
-
139
- | Variable | Beschreibung | Erforderlich |
140
- |----------|-------------|--------------|
141
- | `COLOSSUS_API_KEY` | Colossus API Schlüssel | ✅ Ja |
142
- | `OPENROUTER_API_KEY` | OpenRouter API Schlüssel | ✅ Ja |
143
- | `SECRET_KEY` | Sicherheitsschlüssel für Sessions | ✅ Ja |
144
- | `LOG_LEVEL` | Logging-Level (INFO, DEBUG, WARNING) | ❌ Nein |
145
- | `MAX_WORKERS` | Anzahl der Uvicorn Workers | ❌ Nein |
146
-
147
- ---
148
 
149
- ## 🐛 Troubleshooting
150
-
151
- ### Space startet nicht
152
-
153
- **Lösung:** Überprüfen Sie die Logs im "Logs" Tab und stellen Sie sicher, dass alle Secrets korrekt gesetzt sind.
154
-
155
- ### API Keys funktionieren nicht
156
-
157
- **Lösung:**
158
- 1. Überprüfen Sie, ob die Keys keine Leerzeichen enthalten
159
- 2. Verwenden Sie "Environment variables" nicht "Repository secrets"
160
- 3. Starten Sie den Space neu
161
-
162
- ### Datenbank-Fehler
163
-
164
- **Hinweis:** HuggingFace Spaces haben keinen persistenten Speicher. Die SQLite-Datenbank wird bei jedem Neustart zurückgesetzt.
165
-
166
- ---
167
 
168
- ## 📚 Dokumentation
169
-
170
- Vollständige Dokumentation verfügbar auf GitHub:
171
- - [Installation Guide](https://github.com/satwareAG/saap/blob/main/DEPLOYMENT.md)
172
- - [API Documentation](https://github.com/satwareAG/saap/blob/main/docs/API.md)
173
- - [Development Guide](https://github.com/satwareAG/saap/blob/main/README.md)
174
-
175
- ---
176
-
177
- ## 🤝 Mitwirken
178
-
179
- Wir freuen uns über Beiträge! Siehe unser [GitHub Repository](https://github.com/satwareAG/saap) für Details.
180
-
181
- ### Entwicklung
182
-
183
- ```bash
184
- # Repository klonen
185
- git clone https://github.com/satwareAG/saap.git
186
- cd saap
187
-
188
- # Lokale Entwicklungsumgebung starten
189
- docker-compose up -d
190
-
191
- # Frontend: http://localhost:5173
192
- # Backend: http://localhost:8000
193
- # API Docs: http://localhost:8000/docs
194
- ```
195
-
196
- ---
197
 
198
  ## 📄 Lizenz
199
 
200
- Dieses Projekt ist unter der MIT-Lizenz lizenziert. Siehe [LICENSE](https://github.com/satwareAG/saap/blob/main/LICENSE) für Details.
201
 
202
- ---
203
 
204
- ## 🆘 Support
205
 
206
- - **GitHub Issues:** [Report a Bug](https://github.com/satwareAG/saap/issues)
207
- - **Email:** saap@satware.com
208
- - **Website:** [satware.ai](https://satware.ai)
209
 
210
  ---
211
 
212
- ## 🔗 Links
213
-
214
- - 🏠 [Homepage](https://satware.ai)
215
- - 📦 [GitHub Repository](https://github.com/satwareAG/saap)
216
- - 📖 [Documentation](https://github.com/satwareAG/saap/blob/main/README.md)
217
- - 🤗 [HuggingFace Space](https://huggingface.co/spaces/satware/saap)
218
-
219
- ---
220
 
221
- **Entwickelt von:** [SATWARE AG](https://satware.com)
222
- **Version:** 1.0.0
223
- **Letztes Update:** November 2025
 
1
  ---
2
+ title: SAAP - satware AI Autonomous Agent Platform
3
  emoji: 🤖
4
+ colorFrom: purple
5
+ colorTo: blue
6
  sdk: docker
7
+ app_port: 7860
8
  pinned: false
9
  license: mit
 
10
  ---
11
 
12
+ # 🤖 SAAP - satware® AI Autonomous Agent Platform
 
 
 
 
 
 
 
 
 
 
 
 
13
 
14
+ **Lokales autonomes Multi-Agenten-System für spezialisierte KI-Agenten**
15
 
16
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
17
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
18
+ [![Vue.js 3](https://img.shields.io/badge/vue.js-3-green.svg)](https://vuejs.org/)
19
+ [![FastAPI](https://img.shields.io/badge/FastAPI-0.104+-teal.svg)](https://fastapi.tiangolo.com/)
20
+
21
+ ## 🌟 Über SAAP
22
+
23
+ SAAP ist eine **lokale, datenschutzkonforme Multi-Agenten-Plattform**, die spezialisierte KI-Agenten orchestriert. Im Gegensatz zu Cloud-basierten Lösungen läuft SAAP vollständig auf deiner eigenen Hardware - **deine Daten bleiben bei dir**.
24
+
25
+ ### 🎯 Kernfeatures
26
+
27
+ - **7 Spezialisierte Agenten:**
28
+ - 🧠 **Jane Alesi**: Master-Koordinatorin & KI-Architektin
29
+ - 💻 **John Alesi**: Software-Entwicklung & AGI-Architektur
30
+ - 🏥 **Lara Alesi**: Medizinische Analyse
31
+ - ⚖️ **Justus Alesi**: Rechtliche Compliance
32
+ - 💰 **Theo Alesi**: Finanzanalyse & Investment
33
+ - 🔧 **Leon Alesi**: System-Integration
34
+ - 🎯 **Luna Alesi**: Coaching & Strategie
35
+
36
+ - **🔒 Datenschutz First:**
37
+ - Automatische Sensitivitätserkennung
38
+ - Intelligente Provider-Auswahl (lokal vs. extern)
39
+ - GDPR-konform
40
+
41
+ - **⚡ Hybrid Provider Support:**
42
+ - OpenRouter (schnell & kosteneffizient)
43
+ - Colossus Server (kostenlos, lokal)
44
+ - Automatisches Failover
45
+
46
+ - **📊 Echtzeit-Features:**
47
+ - WebSocket Live-Updates
48
+ - Kostentracking
49
+ - Performance-Monitoring
50
+
51
+ ## 🚀 Schnellstart
52
+
53
+ Diese Demo läuft auf HuggingFace Spaces. Für lokales Deployment siehe [GitHub Repository](https://github.com/satwareAG/saap).
54
+
55
+ ### Demo-Verwendung
56
+
57
+ 1. **Single-Agent Chat:**
58
+ - Wähle einen Agenten aus der Liste
59
+ - Starte eine Konversation
60
+ - Erhalte spezialisierte Antworten
61
+
62
+ 2. **Multi-Agent Coordination:**
63
+ - Nutze Jane Alesi als Koordinatorin
64
+ - Sie delegiert automatisch an Spezialisten
65
+ - Erhalte orchestrierte Antworten
66
+
67
+ 3. **Privacy-Aware Chat:**
68
+ - System erkennt sensible Daten automatisch
69
+ - Routing zu geeignetem Provider
70
+ - Manuelle Überschreibung möglich
71
+
72
+ ## 💡 Beispiele
73
+
74
+ ```javascript
75
+ // Multi-Agent Chat Request
76
+ POST /api/v1/multi-agent/chat
77
+ {
78
+ "user_message": "Implementiere eine REST API in Python",
79
+ "privacy_mode": "auto",
80
+ "task_priority": "normal"
81
+ }
82
+
83
+ // Response
84
+ {
85
+ "success": true,
86
+ "coordinator": "jane_alesi",
87
+ "specialist_agent": "john_alesi", // Jane delegiert zu John
88
+ "delegation_used": true,
89
+ "response": {
90
+ "content": "# Python REST API Implementation\n\n..."
91
+ }
92
+ }
93
+ ```
94
 
95
  ## 🏗️ Architektur
96
 
97
  ```
98
+ ┌─────────────────────────────────────────
99
+ Frontend (Vue.js 3)
100
+ - Agent-Dashboard
101
+ - Real-time Chat Interface
102
+ - Cost & Performance Monitoring
103
+ └─────────────────┬───────────────────────┘
104
+ HTTP/WebSocket
105
+ ────────────────────────────────────────┐
106
+ Backend (FastAPI)
107
+ - Agent Manager (Hybrid)
108
+ - Multi-Agent Coordinator
109
+ - Privacy Detector
110
+ │ - WebSocket Manager │
111
+ └─────────────────┬───────────────────────┘
112
+
113
+ ┌────────────┼────────────┐
114
+ │ │
115
+ ┌────▼─────┐ ┌──────▼──────┐
116
+ │ OpenRouter│ │ Colossus │
117
+ │ (Extern) │ │ (Lokal) │
118
+ └──────────┘ └─────────────┘
119
  ```
120
 
121
+ ## 📊 Kostenvergleich
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
122
 
123
+ | Kriterium | SAAP (Lokal) | Cloud SaaS | Vorteil |
124
+ |-----------|--------------|------------|---------|
125
+ | **Monatliche Kosten** | €0 (nur Strom) | €200-500+ | ✅ 100% Ersparnis |
126
+ | **Datenschutz** | 100% lokal | Externe Server | ✅ Volle Kontrolle |
127
+ | **Latenz** | <10ms | 50-200ms | ✅ 5-20× schneller |
128
+ | **API-Limits** | Keine | Begrenzt | ✅ Unbegrenzt |
129
+ | **Customization** | Vollständig | Eingeschränkt | ✅ Maximale Flexibilität |
130
 
131
+ ## 🔧 Technologie-Stack
 
 
 
132
 
133
+ - **Frontend:** Vue.js 3, Vite, Tailwind CSS
134
+ - **Backend:** Python 3.11, FastAPI, SQLAlchemy
135
+ - **Database:** PostgreSQL
136
+ - **Messaging:** WebSockets
137
+ - **Container:** Docker, Docker Compose
138
+ - **CI/CD:** GitHub Actions
139
+ - **Deployment:** HuggingFace Spaces, Docker
140
 
141
+ ## 📖 Dokumentation
 
 
 
 
 
142
 
143
+ - [GitHub Repository](https://github.com/satwareAG/saap)
144
+ - [API Dokumentation](https://github.com/satwareAG/saap#api-documentation)
145
+ - [Deployment Guide](https://github.com/satwareAG/saap/blob/main/DEPLOYMENT.md)
146
+ - [Contribution Guide](https://github.com/satwareAG/saap/blob/main/CONTRIBUTING.md)
147
 
148
+ ## 🤝 Entwickelt von
 
 
 
 
 
 
 
 
 
 
 
 
149
 
150
+ **satware AG** - AI-First Software Development
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
151
 
152
+ - 🌐 Website: [satware.com](https://satware.com)
153
+ - 🤖 AI Platform: [satware.ai](https://satware.ai)
154
+ - 📧 Email: info@satware.com
155
+ - 🐙 GitHub: [@satwareAG](https://github.com/satwareAG)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
156
 
157
  ## 📄 Lizenz
158
 
159
+ MIT License - siehe [LICENSE](https://github.com/satwareAG/saap/blob/main/LICENSE) für Details
160
 
161
+ ## 🙏 Credits
162
 
163
+ Entwickelt im Rahmen der Master-Thesis von **Hanan** an der Hochschule Worms.
164
 
165
+ **Betreuer:** Michael Wegener (CTO, satware AG)
 
 
166
 
167
  ---
168
 
169
+ **⚠️ Hinweis:** Diese HuggingFace Space-Demo dient zu Demonstrationszwecken. Für Produktiveinsatz empfehlen wir lokales Deployment für maximale Datensicherheit und Performance.
 
 
 
 
 
 
 
170
 
171
+ 🚀 **[Zum GitHub Repository →](https://github.com/satwareAG/saap)**
 
 
huggingface/nginx.conf CHANGED
@@ -1,7 +1,7 @@
1
- # SAAP Nginx Configuration for HuggingFace Spaces
2
- user www-data;
3
  worker_processes auto;
4
- pid /run/nginx.pid;
5
 
6
  events {
7
  worker_connections 1024;
@@ -11,12 +11,19 @@ http {
11
  include /etc/nginx/mime.types;
12
  default_type application/octet-stream;
13
 
 
 
 
 
 
 
 
14
  sendfile on;
15
  keepalive_timeout 65;
16
  client_max_body_size 50M;
17
 
18
- access_log /var/log/nginx/access.log;
19
- error_log /var/log/nginx/error.log;
20
 
21
  gzip on;
22
  gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
@@ -44,6 +51,7 @@ http {
44
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
45
  proxy_set_header X-Forwarded-Proto $scheme;
46
  proxy_read_timeout 300s;
 
47
  }
48
 
49
  # WebSocket proxy
@@ -56,6 +64,13 @@ http {
56
  proxy_read_timeout 86400;
57
  }
58
 
 
 
 
 
 
 
 
59
  # Frontend - Vue SPA
60
  location / {
61
  try_files $uri $uri/ /index.html;
 
1
+ # SAAP Nginx Configuration for HuggingFace Spaces (Rootless)
2
+ # ⚠️ FIXED: Removed user directive for rootless container compatibility
3
  worker_processes auto;
4
+ pid /tmp/nginx.pid;
5
 
6
  events {
7
  worker_connections 1024;
 
11
  include /etc/nginx/mime.types;
12
  default_type application/octet-stream;
13
 
14
+ # Temporary directories for rootless operation
15
+ client_body_temp_path /tmp/client_temp;
16
+ proxy_temp_path /tmp/proxy_temp;
17
+ fastcgi_temp_path /tmp/fastcgi_temp;
18
+ uwsgi_temp_path /tmp/uwsgi_temp;
19
+ scgi_temp_path /tmp/scgi_temp;
20
+
21
  sendfile on;
22
  keepalive_timeout 65;
23
  client_max_body_size 50M;
24
 
25
+ access_log /dev/stdout;
26
+ error_log /dev/stderr;
27
 
28
  gzip on;
29
  gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
 
51
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
52
  proxy_set_header X-Forwarded-Proto $scheme;
53
  proxy_read_timeout 300s;
54
+ proxy_connect_timeout 75s;
55
  }
56
 
57
  # WebSocket proxy
 
64
  proxy_read_timeout 86400;
65
  }
66
 
67
+ # Health check endpoint
68
+ location /health {
69
+ proxy_pass http://127.0.0.1:8000/health;
70
+ proxy_http_version 1.1;
71
+ proxy_set_header Host $host;
72
+ }
73
+
74
  # Frontend - Vue SPA
75
  location / {
76
  try_files $uri $uri/ /index.html;