name: overtchat

services:
  overtchat:
    image: ghcr.io/hsinghhira/overtchat:latest
    container_name: overtchat
    restart: unless-stopped
    stop_grace_period: 30s
    network_mode: bridge
    environment:
      - TZ=$TZ
      - BETTER_AUTH_URL=http://localhost:6139
    ports:
      - target: 4717
        published: "6139"
        protocol: tcp
    volumes:
      - type: bind
        source: /DATA/AppData/$AppID/data
        target: /app/data
        bind:
          create_host_path: true
    healthcheck:
      test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:4717/').then(r => process.exit(r.status < 500 ? 0 : 1)).catch(() => process.exit(1))"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 60s
    deploy:
      resources:
        limits:
          cpus: "2.00"
          memory: 1024M
        reservations:
          cpus: "0.00"
          memory: 192M
    labels:
      icon: https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/overtchat/icon.png
    x-casaos:
      id: com.icestore.overtchat
      envs:
        - container: TZ
          description:
            en_US: >-
              Your time zone. It is filled in from your ZimaOS time zone.
              Leave it unless you need another.
        - container: BETTER_AUTH_URL
          description:
            en_US: >-
              The address you open OvertChat at. Sign-in already works from
              your home network at http://[ZIMAOS-IP-ADDRESS]:6139, so you can
              leave it. Change it to your ZimaOS IP, like
              http://192.168.1.20:6139, for working share links, or to your
              https address behind a reverse proxy.
      ports:
        - container: "4717"
          description:
            en_US: OvertChat web app and API, published on host as 6139
      volumes:
        - container: /app/data
          description:
            en_US: >-
              The SQLite database with every account, chat, project and file,
              and .better_auth_secret, this install's own sign-in key made on
              first start. Back this folder up.

x-casaos:
  id: com.icestore.overtchat
  architectures:
    - amd64
    - arm64
  main: overtchat
  author: HSinghHira
  category: AI
  developer: yoloyash
  icon: https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/overtchat/icon.png
  thumbnail: https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/overtchat/screenshot-1.png
  screenshot_link:
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/overtchat/screenshot-1.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/overtchat/screenshot-2.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/overtchat/screenshot-3.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/overtchat/screenshot-4.png
  title:
    en_US: OvertChat
  tagline:
    en_US: A clean self-hosted chat for your local AI models, with search, voice and family accounts
  description:
    en_US: >-
      Visit: [https://icestore.hsinghhira.me/app/overtchat/](https://icestore.hsinghhira.me/app/overtchat/) for full details


      OvertChat is a self-hosted home for everyday AI. Connect vLLM,
      llama.cpp, SGLang or Ollama-style endpoints, or a hosted provider, and
      start chatting. Search the web, work with files or talk by voice, with
      your history on your own server. Search and speech services are not
      bundled: add your own in the settings.


      **Features**


      - Clean chat with readable answers, collapsible reasoning, projects,
        reusable files and searchable history

      - Model setup and discovery for vLLM, llama.cpp and SGLang, plus hosted
        providers and any OpenAI-compatible endpoint

      - Web search with free fallbacks (DuckDuckGo, Exa, Firecrawl), or your
        own SearXNG or Brave key

      - Two-way voice chat with your own speech services

      - Accounts for your family, each with their own chats

      - Android, iOS and desktop apps that connect to your server

      - Connect coding agents (Codex, Claude Code, OpenCode and more) through
        the Host Connector


      **How to use?**


      1. Open the app log in ZimaOS and copy the setup code.


      2. Open OvertChat at http://[ZIMAOS-IP-ADDRESS]:6139 and create your
         admin account with the setup code.


      3. Add your model endpoint in Settings.


      4. Start chatting. Add accounts for your family in Settings, Users.
  tips:
    before_install:
      en_US: >-
        1. You don't have to set anything. Want working share links? Change
           localhost in BETTER_AUTH_URL to your ZimaOS IP, like
           http://192.168.1.20:6139.


        2. Using an https address through a reverse proxy? Put that address
           in BETTER_AUTH_URL instead.


        3. Start the installation. Wait about one minute.


        4. Open the app log in ZimaOS. Find the line that says "Create your
           administrator account with setup code". Copy the code.


        5. Open http://[ZIMAOS-IP-ADDRESS]:6139 and make your admin account
           with that code.


        6. Add your AI model in Settings. A model on this ZimaOS is at
           http://[ZIMAOS-IP-ADDRESS]:<its port>, not localhost.


        7. More settings, like web search, speech, voice and two-factor sign-in,
           are listed on the OvertChat page at
           https://icestore.hsinghhira.me/app/overtchat/ (Variables tab). You
           can add them now or later in the app settings.
  index: /
  port_map: "6139"
  scheme: http
  is_uncontrolled: false
  version: "0.29.0"
  update_at: "2026-10-29"
  release_notes:
    en_US: |-
      - First version in IceStore, on port 6139
      - Built on ghcr.io/yoloyash/overtchat-app 0.29.0, plus a start script that makes each install's own BETTER_AUTH_SECRET
      - Sign-in works from any home-network address on port 6139 (192.168.x, 10.x, 172.x, 100.x and .local); BETTER_AUTH_URL is now optional and defaults to http://localhost:6139
      - Single container: upstream's optional Redis, SearXNG, Kokoro and speech-to-text services are not bundled; add your own in Settings
  repo: "https://github.com/yoloyash/overtchat"
  support: "https://github.com/yoloyash/overtchat/issues"
  docs: "https://github.com/yoloyash/overtchat/blob/main/docs/deploy.md"
