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.
Jarvis versucht automatisch den besten verfΓΌgbaren Provider:
Google Gemini 2.0 Flash β OpenRouter (Nvidia/Free) β Ollama lokal (gemma4:e2b)
| 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
- Nur autorisierte Telegram-User IDs kΓΆnnen den Bot nutzen
- VPN-Anbindung via Tailscale
- GitHub-Writes nur via PR (kein Force-Push auf main)
ββββββββββββββββ βββββββββββββββββββββββββ
β 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)
| 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 |
β οΈ Frankfurt ist oft ausgebucht. Das mitgelieferteretry-launch.shversucht 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.logOder manuell:
- Oracle Cloud β Compute β Instances β Create Instance
- Image: Ubuntu 22.04 | Shape: VM.Standard.A1.Flex
- OCPUs: 4 | Memory: 24 GB | Boot Volume: 200 GB
- SSH Public Key hochladen
# 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-oraclepython -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python main.py# Projekt + .env hochladen und Installation starten
chmod +x deploy/upload.sh
./deploy/upload.sh <SERVER_IP> ~/.ssh/oracle_keyDas install.sh erledigt automatisch:
- Python 3.12 + venv
- Ollama + gemma4:e2b pull
- Tailscale Installation + Verbindung
- systemd Service Setup
| 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 |
| Befehl | Beschreibung |
|---|---|
/search <query> |
DuckDuckGo Web-Suche |
/wiki <thema> |
Wikipedia-Zusammenfassung |
/weather <stadt> |
Aktuelles Wetter + 3-Tage-Forecast |
| Befehl | Beschreibung |
|---|---|
/crypto <coin> |
Krypto-Preis (btc, eth, sol, β¦) |
/stocks <ticker> |
Aktien-Kurs (TSLA, AAPL, β¦) |
| 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
| 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 |
| 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
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 |
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
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
sudo systemctl status openclaw
sudo journalctl -u openclaw -n 50 --no-pagerβ Automatischer Fallback auf OpenRouter, kein Handlungsbedarf.
tail -f retry.log # Script-Status beobachtenβ Normal auf ARM CPUs (~5 Tokens/s). OpenRouter/Gemini werden bevorzugt.
ALLOWED_USER_IDSauf deine Telegram-ID beschrΓ€nken- GitHub-Token nur mit nΓΆtigen Permissions (
repo) deploy/sysadmin.pyWhitelist fΓΌr Server-Befehle.envniemals committen (in.gitignore)
MIT License β Nutze es wie du willst!