# 5-Minute Troubleshooting **Problem:** Something isn't working? Let's fix it fast. ## Start Here: What's Your Issue? Click your problem: ### 1. ["Unable to connect to server" or blank page](#fix-connection-error) ### 2. [Container won't start or crashes](#fix-container-crash) ### 3. [Works on server but not from my computer](#fix-remote-access) ### 4. [API or authentication errors](#fix-api-errors) ### 5. [Slow or timeout errors](#fix-performance) --- ## Fix: "Unable to connect to server" This means your frontend can't reach the API. **99% of the time, this is an API_URL problem.** ### Step-by-Step Fix: 1. **Check if API is running:** ```bash curl http://localhost:5055/health # Should return: {"status": "healthy"} or similar ``` - ❌ **Connection refused?** → Port 5055 is not exposed. [Jump to port fix](#fix-missing-port) - ✅ **Got response?** → API is running, continue below. 2. **Are you accessing from a different machine?** - Your browser on **Computer A** - Docker running on **Computer B** (server, Raspberry Pi, NAS, etc.) → **You MUST set API_URL** Find your server's IP: ```bash # On the server running Docker: hostname -I # Linux ipconfig # Windows ifconfig # Mac ``` Set API_URL (replace 192.168.1.100 with YOUR server IP): **Docker Compose** - Add to your `docker-compose.yml`: ```yaml environment: - OPENAI_API_KEY=your_key - API_URL=http://192.168.1.100:5055 ``` **Docker Run** - Add this flag: ```bash -e API_URL=http://192.168.1.100:5055 ``` Then restart: ```bash docker compose down && docker compose up -d # or for docker run, stop and restart the container ``` 3. **Still not working?** Check what URL your browser is trying to access: - Open browser DevTools (F12) - Go to Network tab - Refresh the page - Look for failed requests to `/api/config` The URL should match: `http://YOUR_SERVER_IP:5055/api/config` If it shows `localhost:5055` or wrong IP, your API_URL is not set correctly. ### Fix: Port 5055 Not Exposed **Check currently exposed ports:** ```bash docker ps # Look for: 0.0.0.0:5055->5055 ``` **Not there?** Add it: **Docker Compose** - Update your `docker-compose.yml`: ```yaml services: open_notebook: ports: - "8502:8502" - "5055:5055" # Add this line! ``` **Docker Run** - Add `-p 5055:5055`: ```bash docker run -d \ -p 8502:8502 \ -p 5055:5055 \ # Add this! # ... rest of your command ``` Then restart the container. --- ## Fix: Container Won't Start **Check the logs:** ```bash docker logs open-notebook # or docker compose logs ``` ### Common causes: | Error Message | Fix | |---------------|-----| | "Port already in use" | Change port: `-p 8503:8502` or stop conflicting service | | "Permission denied" | Add user to docker group: `sudo usermod -aG docker $USER` (then log out/in) | | "Invalid API key" | Check OPENAI_API_KEY in environment variables | | "Out of memory" | Increase Docker memory limit to 2GB+ in Docker Desktop settings | | "No such file or directory" | Check volume paths exist and are accessible | **Quick reset:** ```bash docker compose down -v docker compose up -d ``` --- ## Fix: Works on Server But Not From My Computer **Symptom:** Open Notebook works when accessed on the server itself (`localhost:8502`) but not from another computer. **This is 100% an API_URL problem.** ✅ **The Fix:** Your API_URL must match the URL you use to access Open Notebook. | You access via | Set API_URL to | |----------------|----------------| | `http://192.168.1.50:8502` | `http://192.168.1.50:5055` | | `http://myserver:8502` | `http://myserver:5055` | | `http://10.0.0.5:8502` | `http://10.0.0.5:5055` | **Apply the fix:** 1. Edit your `docker-compose.yml`: ```yaml environment: - OPENAI_API_KEY=your_key - API_URL=http://YOUR_SERVER_IP_OR_HOSTNAME:5055 ``` 2. Or edit your `docker.env` file: ```env API_URL=http://YOUR_SERVER_IP_OR_HOSTNAME:5055 ``` 3. Restart: ```bash docker compose down && docker compose up -d ``` **Common mistakes:** - ❌ Using `localhost` in API_URL when accessing remotely - ❌ Using your client computer's IP instead of the server's IP - ❌ Adding `/api` to the end (it's automatic) --- ## Fix: API or Authentication Errors ### "Missing authorization header" You have password auth enabled. Make sure it's set correctly: ```yaml environment: - OPEN_NOTEBOOK_PASSWORD=your_password ``` Or provide the password when logging into the web interface. ### "API config endpoint returned status 404" You added `/api` to API_URL. Remove it: ❌ **Wrong:** `API_URL=http://192.168.1.100:5055/api` ✅ **Correct:** `API_URL=http://192.168.1.100:5055` The `/api` path is added automatically by the application. ### "Invalid API key" or "Incorrect API key" 1. Check key format (OpenAI keys start with `sk-`) 2. Verify you have credits in your provider account 3. Check for spaces around the key in your .env file: ```env # Wrong - has spaces OPENAI_API_KEY = sk-your-key # Correct OPENAI_API_KEY=sk-your-key ``` 4. Test your key directly: ```bash curl https://api.openai.com/v1/models \ -H "Authorization: Bearer YOUR_KEY" ``` --- ## Fix: Slow or Timeout Errors ### Increase timeouts for local models: If you're using Ollama or LM Studio: ```yaml environment: - API_CLIENT_TIMEOUT=600 # 10 minutes - ESPERANTO_LLM_TIMEOUT=180 # 3 minutes ``` **Recommended timeouts by setup:** - Cloud APIs (OpenAI, Anthropic): Default (300s) - Local Ollama with GPU: 600s - Local Ollama with CPU: 1200s - Remote LM Studio: 900s ### Use faster models: - **Cloud APIs:** OpenAI, Anthropic, Groq (fastest) - **Local models:** Try smaller models first - Fast: `gemma2:2b`, `phi3:mini` - Medium: `llama3:8b`, `mistral:7b` - Slow: `llama3:70b`, `mixtral:8x7b` ### Preload local models: ```bash # This prevents first-run delays ollama run llama3 # Press Ctrl+D to exit after model loads ``` --- ## Still Stuck? ### Collect diagnostics: ```bash # Container status docker ps # Container logs (last 100 lines) docker logs --tail 100 open-notebook > logs.txt # Or for docker compose docker compose logs --tail 100 > logs.txt # Check resource usage docker stats --no-stream ``` ### Get help: 1. **[Discord](https://discord.gg/37XJPXfz2w)** - Fastest response from community 2. **[GitHub Issues](https://github.com/lfnovo/open-notebook/issues)** - Bug reports and features 3. **[Full Troubleshooting Guide](common-issues.md)** - More detailed solutions **Before asking:** - Include your `docker-compose.yml` (remove API keys!) - Include relevant logs - Describe your setup (local vs remote, OS, Docker version) - What you've already tried --- ## Quick Reference: API_URL Settings | Scenario | API_URL Value | Example | |----------|---------------|---------| | **Local access only** | Not needed | Leave unset | | **Remote on same network** | `http://SERVER_IP:5055` | `http://192.168.1.100:5055` | | **Remote with hostname** | `http://HOSTNAME:5055` | `http://myserver.local:5055` | | **Behind reverse proxy (no SSL)** | `http://DOMAIN:5055` | `http://notebook.local:5055` | | **Behind reverse proxy (SSL)** | `https://DOMAIN/api` | `https://notebook.example.com/api` | **Remember:** The API_URL is from your **browser's perspective**, not the server's!