DEV Community

James LIN
James LIN

Posted on

OB1 Feels Surprisingly Clean, Until Docker Networking Enters the Conversation

I spent a coding break looking at NateBJones-Projects/OB1, mostly because the idea is refreshingly infrastructure-minded: one database for memory, one AI gateway, and one chat surface instead of another pile of SaaS integrations.

The first impression was better than expected. The architecture is easy to reason about, and the self-hosted angle matters to me as a gateway engineer. Keeping prompts, responses, and routing inside a private network is a much better starting point for team governance than scattering API calls across browser extensions and hosted middleware.

The friction appeared when I treated the Docker deployment like a local development app.

My chat-facing container could not reach the AI gateway. The configuration looked correct at first glance because I had used:

AI_GATEWAY_URL=http://localhost:8080
Enter fullscreen mode Exit fullscreen mode

That works from the host machine, but localhost inside a container refers to that container itself. The result was a confusing connection-refused error that looked like an application failure rather than a network configuration problem.

The fix was simply to use the Compose service name and keep both services on the same internal network:

services:
  ob1:
    environment:
      AI_GATEWAY_URL: http://ai-gateway:8080
    depends_on:
      - ai-gateway

  ai-gateway:
    expose:
      - "8080"
Enter fullscreen mode Exit fullscreen mode

Then I rebuilt the stack:

docker compose down
docker compose up -d --build
docker compose logs -f ob1
Enter fullscreen mode Exit fullscreen mode

I would also review the .env file before exposing anything publicly: generate strong database credentials, avoid binding internal ports to 0.0.0.0 unless necessary, and put the chat endpoint behind a private reverse proxy or VPN. Self-hosting is not automatically private if the Docker network and logs are left wide open.

My takeaway is positive but practical: OB1 has a clean foundation and the “one brain, one gateway” model is compelling. The rough edge is that Docker networking, secret handling, and retention policies are still your responsibility. Teams adopting it should assign ownership for backups, token quotas, and zero-log expectations before inviting everyone into the same memory store.

Top comments (0)