Long-term Memory
Persists across turns within this sessionAdd a memory entry
| Key | Value | Stored | |
|---|---|---|---|
| No memories yet | |||
Activity Logs
| Time | Level | Message |
|---|---|---|
| Loading… | ||
System Health
🦞 Lobster — Personal AI Assistant Gateway
This app is a self-hosted AI assistant gateway. Configure it by setting environment variables and redeploying.
Current Configuration
🤖 LLM Provider
The assistant uses jengaKit's built-in LLM proxy automatically. You can also provide your own API key.
🔒 HTTPS Tunnel
Telegram and WhatsApp webhooks require a public HTTPS URL. jengaKIT's nip.io URL is HTTP only. Configure a tunnel to get HTTPS automatically at deploy time.
- In the jengaKIT deploy form, type
quickinto the Cloudflare Tunnel field. - After deployment, open the Doctor tab — the tunnel URL appears within ~15 seconds.
- Use that URL to register webhooks. Note: URL changes on pod restart.
- Sign in to one.dash.cloudflare.com → Zero Trust → Tunnels → Create tunnel.
- Copy the tunnel token shown during setup.
- Paste it as Cloudflare Tunnel in the jengaKIT deploy form.
- The stable URL is configured in your Cloudflare tunnel settings.
*.ts.net URL)- In your Tailscale admin console, ensure Funnel is enabled for your tailnet.
- Create an auth key at tailscale.com → Settings → Keys.
- Paste it as Tailscale Auth Key in the jengaKIT deploy form.
- The URL (
https://lobster-<slug>.<tailnet>.ts.net) appears in the Doctor tab.
✈️ Telegram Integration
Connect the assistant to Telegram so it can reply to messages in DMs or groups.
- Open Telegram and message @BotFather
- Send
/newbotand follow the prompts - Copy the token (looks like
123456:ABC-DEF...) - In your jengaKit deployment form, paste it into "Telegram Bot Token"
- Set the webhook URL to
https://YOUR-APP-URL/webhook/telegram
🎮 Discord Integration
Connect to Discord via a bot application.
- Go to discord.com/developers/applications → New Application
- Go to Bot → Reset Token, copy it
- Invite the bot to your server with Message Content Intent enabled
- Paste the token as "Discord Bot Token" in the deploy form
💬 WhatsApp Integration
Connect via the Meta WhatsApp Cloud API. Requires a Meta Business account, a registered phone number, and a public HTTPS webhook URL.
- Go to developers.facebook.com → My Apps → Create App → Business.
- Add the WhatsApp product. Under API Setup, note your Phone Number ID and generate a temporary (or permanent) Access Token.
- In the jengaKIT deploy form, paste:
- WhatsApp Access Token — from step 2
- WhatsApp Phone Number ID — from step 2
- WhatsApp Webhook Verify Token — any string you choose (e.g.
lobster-wa-verify)
- After deployment, register the webhook in Meta → WhatsApp → Configuration:
Callback URL: https://YOUR-APP-URL/webhook/whatsappVerify token: <your LOBSTER_WHATSAPP_VERIFY_TOKEN>Subscribe to: messages
- Send a WhatsApp message to your test number — the bot will reply within seconds.
📡 Signal Integration
Connect the assistant to Signal using a self-hosted signal-cli-rest-api instance. No HTTPS required — lobster polls for new messages every 2 seconds.
- Run signal-cli-rest-api on any host reachable from the cluster:
docker run -d --name signal-api -p 8080:8080 \
-v $(pwd)/signal-config:/home/.local/share/signal-cli \
bbernhard/signal-cli-rest-api - Register or link a phone number (one-time):
# Option A — new number (SMS verification):curl -X POST 'http://localhost:8080/v1/register/+14155552671'curl -X POST 'http://localhost:8080/v1/register/+14155552671/verify/123456'# Option B — link existing Signal account:curl 'http://localhost:8080/v1/qrcodelink?device_name=lobster'# Scan QR in Signal app → Settings → Linked Devices
- In the jengaKIT deploy form set Signal API URL (e.g.
http://192.168.2.177:8080) and Signal Phone Number in E.164 format. - Set Signal Allowed Senders to your personal number to restrict access.
🧠 Personality & Memory
Customize the assistant's personality in the deploy prompt, or via env vars.
Memory entries added in the Memory tab are automatically included in every LLM prompt as context.
🤖 Runtime LLM Override
Override the LLM used for chat without redeploying. Useful for switching to a local Ollama server after a Gemini deploy. Stored in the pod database — survives restarts.
Configure override
🔑 Pod SSH Public Key
This pod has its own ED25519 keypair. Add the public key below to ~/.ssh/authorized_keys on any server you want the assistant to access.
🖥️ SSH Hosts
Add hosts the assistant can SSH into. Reference them by label in the Chat tab — e.g. "What is the disk usage on homelab?"
+ Add SSH Host
🔄 How to reconfigure
Environment variables are set at deploy time via the jengaKit UI form. To change any configuration, submit a new deployment with updated values in the user_inputs fields.