Skip to content

Latest commit

Β 

History

56 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

οΏ½ Jarvis – PersΓΆnlicher AI-Assistent

License AI Built Python

Ein selbst-gehosteter, voll ausgestatteter AI-Assistent auf Oracle Cloud Free Tier mit Telegram-Integration. Jarvis kennt dich als leopardcode.ai CEO und ist mit einer wachsenden Sammlung an Tools ausgestattet – komplett kostenlos.

✨ Features

🧠 Intelligentes LLM-Routing

Jarvis versucht automatisch den besten verfΓΌgbaren Provider:

Google Gemini 2.0 Flash  β†’  OpenRouter (Nvidia/Free)  β†’  Ollama lokal (gemma4:e2b)

πŸ› οΈ Tool-Suite (alle kostenlos, kein API-Key nΓΆtig*)

Tool Beschreibung
🌀️ Wetter Open-Meteo – Live-Daten + 3-Tage-Forecast, kein Key nΓΆtig
πŸ“ˆ Aktien yfinance – Live-Kurse von Yahoo Finance
πŸͺ™ Krypto CoinGecko API – BTC, ETH, SOL und mehr
🧠 GedΓ€chtnis SQLite-Datenbank – Notizen, Einkaufsliste, Ideen, Reminders
πŸ“š Wikipedia Saubere Artikel-Zusammenfassungen (DE + EN Fallback)
πŸ” Web Search DuckDuckGo – aktuelle Web-Suche ohne API-Key
πŸ’» Sysadmin Server-Befehle (RAM, Disk, Logs, Service-Status)
πŸ™ GitHub Repos suchen, Dateien lesen, PRs erstellen, pushen
πŸŽ₯ YouTube Automatische Benachrichtigung bei neuen Videos (@airevolutionx)
☁️ Oracle Monitor Benachrichtigung sobald Free-Tier KapazitÀt verfügbar ist

*Gemini API Key empfohlen fΓΌr beste Performance

πŸ”’ Sicherheit

  • Nur autorisierte Telegram-User IDs kΓΆnnen den Bot nutzen
  • VPN-Anbindung via Tailscale
  • GitHub-Writes nur via PR (kein Force-Push auf main)

πŸ—οΈ Architektur

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Telegram   │────▢│       Jarvis Bot       β”‚
β”‚   CEO        │◀────│   (Oracle Cloud ARM)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                 β”‚
              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
              β–Ό                  β–Ό                   β–Ό
     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
     β”‚ Gemini 2.0     β”‚  β”‚ OpenRouter β”‚   β”‚  Ollama (lokal)  β”‚
     β”‚ (Primary LLM)  β”‚  β”‚ (Fallback) β”‚   β”‚  gemma4:e2b      β”‚
     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
              β”‚
              β”œβ”€β”€ 🌀️ Open-Meteo (Wetter)
              β”œβ”€β”€ πŸ“ˆ yfinance / CoinGecko (Finanzen)
              β”œβ”€β”€ 🧠 SQLite (GedΓ€chtnis)
              β”œβ”€β”€ πŸ“š Wikipedia
              β”œβ”€β”€ πŸ” DuckDuckGo (Web Search)
              β”œβ”€β”€ πŸ™ GitHub API
              └── πŸ’» Subprocess (Sysadmin)

πŸ“‹ Voraussetzungen

Was Wo Kosten
Oracle Cloud Account cloud.oracle.com Kostenlos
Telegram Bot Token @BotFather Kostenlos
OpenRouter API Key openrouter.ai/keys Kostenlos
Google Gemini API Key aistudio.google.com Kostenlos
GitHub Personal Access Token github.com/settings/tokens Kostenlos

πŸš€ Quick Start

1. Oracle Cloud Instance (ARM Free Tier)

⚠️ Frankfurt ist oft ausgebucht. Das mitgelieferte retry-launch.sh versucht automatisch alle 2 Minuten alle Availability Domains.

# Automatisches Retry-Script starten (lΓ€uft im Hintergrund)
chmod +x deploy/retry-launch.sh
./deploy/retry-launch.sh > retry.log 2>&1 &

# Log beobachten
tail -f retry.log

Oder manuell:

  1. Oracle Cloud β†’ Compute β†’ Instances β†’ Create Instance
  2. Image: Ubuntu 22.04 | Shape: VM.Standard.A1.Flex
  3. OCPUs: 4 | Memory: 24 GB | Boot Volume: 200 GB
  4. SSH Public Key hochladen

2. Konfiguration (.env)

# Telegram
TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz
ALLOWED_USER_IDS=123456789

# LLM Provider
GEMINI_API_KEY=AIza...
GEMINI_MODEL=gemini-2.0-flash
OPENROUTER_API_KEY=sk-or-v1-...
OPENROUTER_MODEL=nvidia/nemotron-3-nano-30b-a3b:free
OLLAMA_MODEL=gemma4:e2b

# GitHub
GITHUB_TOKEN=ghp_...
GITHUB_DEFAULT_OWNER=dein-github-username

# Tailscale (optional)
TAILSCALE_AUTH_KEY=tskey-auth-...
TAILSCALE_HOSTNAME=jarvis-oracle

3. Lokal testen

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python main.py

4. Auf Oracle-Server deployen

# Projekt + .env hochladen und Installation starten
chmod +x deploy/upload.sh
./deploy/upload.sh <SERVER_IP> ~/.ssh/oracle_key

Das install.sh erledigt automatisch:

  • Python 3.12 + venv
  • Ollama + gemma4:e2b pull
  • Tailscale Installation + Verbindung
  • systemd Service Setup

πŸ“± Alle Befehle

πŸ’¬ Basis

Befehl Beschreibung
/start Begrüßung
/help Hilfe
/clear GesprΓ€chsverlauf lΓΆschen
/status LLM-Provider Status
/heartbeat VollstΓ€ndiger System-Report
/setprompt <text> Eigenen System-Prompt setzen
/resetprompt Standard-Prompt wiederherstellen

οΏ½ Web & Suche

Befehl Beschreibung
/search <query> DuckDuckGo Web-Suche
/wiki <thema> Wikipedia-Zusammenfassung
/weather <stadt> Aktuelles Wetter + 3-Tage-Forecast

πŸ’° Finanzen

Befehl Beschreibung
/crypto <coin> Krypto-Preis (btc, eth, sol, …)
/stocks <ticker> Aktien-Kurs (TSLA, AAPL, …)

🧠 GedÀchtnis

Befehl Beschreibung
/remember [kategorie] <text> Eintrag speichern
/recall [suche] EintrΓ€ge anzeigen / suchen
/forget <id> Eintrag lΓΆschen

Kategorien: note, shopping, reminder, idea, todo, link, info

πŸ™ GitHub

Befehl Beschreibung
/ghsearch <query> Repos suchen
/ghrepo <repo> Repo-Info + Commits
/ghfile <repo> <pfad> Datei lesen
/ghprs <repo> Offene Pull Requests
/ghissues <repo> Offene Issues
/ghedit <repo> <pfad> <branch> <msg> | <inhalt> Datei bearbeiten β†’ PR erstellen
/ghpush <repo> <pfad> <branch> <msg> | <inhalt> Direkt in Branch pushen

πŸ’» System

Befehl Beschreibung
/sys <befehl> Server-Befehl ausfΓΌhren (Whitelist)

Erlaubte Befehle: ram, disk, uptime, ps, ping <host>, status ollama, status openclaw, tailscale, logs ollama, restart ollama


πŸ€– Auto-Detection

Jarvis erkennt automatisch den Kontext und lΓ€dt Live-Daten ohne expliziten Befehl:

StichwΓΆrter Aktion
β€žwetter", β€žregen", β€žtemperatur" Wetterdaten fΓΌr erkannte Stadt laden
β€žbitcoin", β€žeth", β€žbtc", β€žkrypto" CoinGecko-Preis laden
β€žaktie", β€žkurs", β€žDAX", β€žTSLA" yfinance-Daten laden
β€žerklΓ€re", β€žwas ist", β€žwer war" Wikipedia-Artikel laden
β€žnews", β€žaktuell", β€žheute" DuckDuckGo-Suche als Kontext

πŸ“Š Monitoring

Jarvis ΓΌberwacht automatisch im Hintergrund:

  • Oracle Cloud (jede Minute): Sobald Free-Tier KapazitΓ€t verfΓΌgbar β†’ Telegram Push mit IP + SSH-Befehl
  • YouTube @airevolutionx (stΓΌndlich): Neues Video β†’ Telegram Push mit Titel + Link
  • /heartbeat: Kompletter Status-Report beider Monitore

πŸ“ Projektstruktur

jarvis/
β”œβ”€β”€ main.py                  # Einstiegspunkt
β”œβ”€β”€ requirements.txt         # Python Dependencies
β”œβ”€β”€ .env                     # Konfiguration (nicht in Git!)
β”œβ”€β”€ .env.example             # Vorlage
β”œβ”€β”€ jarvis_memory.db         # SQLite GedΓ€chtnis (lokal)
β”œβ”€β”€ retry.log                # Oracle Retry Log
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ bot.py               # Telegram Bot + alle Commands
β”‚   β”œβ”€β”€ config.py            # Settings (pydantic)
β”‚   β”œβ”€β”€ conversation.py      # Chat-Verlauf
β”‚   β”œβ”€β”€ llm_router.py        # Gemini β†’ OpenRouter β†’ Ollama
β”‚   β”œβ”€β”€ oracle_monitor.py    # Oracle Free-Tier Monitor
β”‚   β”œβ”€β”€ youtube_monitor.py   # YouTube New-Video Monitor
β”‚   β”œβ”€β”€ web_search.py        # DuckDuckGo Search
β”‚   β”œβ”€β”€ weather.py           # Open-Meteo Wetter
β”‚   β”œβ”€β”€ finance.py           # yfinance + CoinGecko
β”‚   β”œβ”€β”€ memory.py            # SQLite LangzeitgedΓ€chtnis
β”‚   β”œβ”€β”€ wikipedia_tool.py    # Wikipedia Zusammenfassungen
β”‚   β”œβ”€β”€ sysadmin.py          # Sichere Server-Befehle
β”‚   └── github_tool.py       # GitHub API Integration
└── deploy/
    β”œβ”€β”€ install.sh           # Server-Setup (inkl. Tailscale)
    β”œβ”€β”€ upload.sh            # SCP Upload + Remote-Install
    β”œβ”€β”€ retry-launch.sh      # Oracle Instance Retry-Script
    └── openclaw.service     # systemd Service

οΏ½ Troubleshooting

Bot antwortet nicht

sudo systemctl status openclaw
sudo journalctl -u openclaw -n 50 --no-pager

Gemini 429 (Quota)

β†’ Automatischer Fallback auf OpenRouter, kein Handlungsbedarf.

Oracle KapazitΓ€t

tail -f retry.log   # Script-Status beobachten

Ollama zu langsam

β†’ Normal auf ARM CPUs (~5 Tokens/s). OpenRouter/Gemini werden bevorzugt.


πŸ”’ Sicherheit

  • ALLOWED_USER_IDS auf deine Telegram-ID beschrΓ€nken
  • GitHub-Token nur mit nΓΆtigen Permissions (repo)
  • deploy/sysadmin.py Whitelist fΓΌr Server-Befehle
  • .env niemals committen (in .gitignore)

πŸ“„ Lizenz

MIT License – Nutze es wie du willst!

About

Self-hosted AI Assistant on Oracle Cloud Free Tier with Telegram integration

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages