Try describing what you need:

omnara logo

omnara

★ 3.0k

A self-hosted alternative to Make Integromat

Apache License 2.0Open Source — No Paywall10 Containers — 10 containers — heavy hosting footprintCompose · Source · PackageNeeds Postgres10+ active committers (12mo)

About

Omnara is an open-source platform for managing and running AI agents. It is aimed at developers and teams that want to launch agents through an API, the CLI, a dashboard, or an SDK, while keeping...

Community Ratings

No ratings yet

Features

  • any model support
  • built-in tools
  • skills
  • memory stores
  • subagents
  • machines on laptops/VMs/containers
  • durable state
  • schedules
  • REST API
  • TypeScript SDK

Details

Last Updated
Oct 22, 2026
Created
Jul 9, 2025
Install Methods
docker-composesourcepackage-manager
Requirements
Docker with ComposeNode.js 22 or newerPostgresRedis
Authentication
localoidc-sso
API
REST
Privacy & Independence
Cloud: Optional
User Model
Multi-UserMulti-Tenant
Deployment

Deployment: Docker Compose ✓10 Containers — heavy hosting footprintRuns as 10 containers

Run omnara with Docker Compose

Compose file from the omnara project repository.

10 services · database: postgres · infra: valkey, postgres · 2 unclassified (rustfs, nginx-unprivileged)

no resource limits declared

needs persistent storage (6 volumes)

compose.yaml · @ 660bb17 · scanned Oct 22, 2026

x-app-env: &app-env
  OMNARA_DATABASE_URL: postgres://omnara:omnara@postgres:5432/omnara?sslmode=disable
  OMNARA_REDIS_URL: redis://redis:6379/0
  OMNARA_PUBLIC_URL: ${OMNARA_PUBLIC_URL:-http://localhost:8000}
  OMNARA_LOG_LEVEL: ${OMNARA_LOG_LEVEL:-info}
  OMNARA_ALLOW_INSECURE_DEV_DEFAULTS: ${OMNARA_ALLOW_INSECURE_DEV_DEFAULTS:-1}
  OMNARA_SECRET_ENCRYPTION_KEYS: ${OMNARA_SECRET_ENCRYPTION_KEYS:-}
  OMNARA_SECRET_ENCRYPTION_ACTIVE_KEY_ID: ${OMNARA_SECRET_ENCRYPTION_ACTIVE_KEY_ID:-}
  OMNARA_SKILL_DOWNLOAD_SIGNING_KEY: ${OMNARA_SKILL_DOWNLOAD_SIGNING_KEY:-}

x-blob-env: &blob-env
  OMNARA_BLOB_S3_BUCKET: ${OMNARA_BLOB_S3_BUCKET:-omnara}
  OMNARA_BLOB_S3_REGION: ${OMNARA_BLOB_S3_REGION:-us-east-1}
  OMNARA_BLOB_S3_ENDPOINT: ${OMNARA_BLOB_S3_ENDPOINT:-http://rustfs:9000}
  OMNARA_BLOB_S3_ACCESS_KEY_ID: ${OMNARA_BLOB_S3_ACCESS_KEY_ID:-omnara}
  OMNARA_BLOB_S3_SECRET_ACCESS_KEY: ${OMNARA_BLOB_S3_SECRET_ACCESS_KEY:-omnara-blobs}
  OMNARA_BLOB_S3_USE_PATH_STYLE: ${OMNARA_BLOB_S3_USE_PATH_STYLE:-1}

services:
  redis:
    image: valkey/valkey:9-alpine
    ports:
      - "${REDIS_HOST_PORT:-6379}:6379"
    healthcheck:
      test: ["CMD", "valkey-cli", "ping"]
      interval: 2s
      timeout: 2s
      retries: 20

  postgres:
    image: postgres:18-alpine
    environment:
      POSTGRES_USER: omnara
      POSTGRES_PASSWORD: omnara
      POSTGRES_DB: omnara
    ports:
      - "${POSTGRES_HOST_PORT:-55432}:5432"
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U omnara -d omnara"]
      interval: 2s
      timeout: 2s
      retries: 20
    volumes:
      - postgres18-data:/var/lib/postgresql

  rustfs:
    image: rustfs/rustfs:1.0.0
    command: /data
    environment:
      RUSTFS_ACCESS_KEY: omnara
      RUSTFS_SECRET_KEY: omnara-blobs
    ports:
      - "127.0.0.1:59000:9000"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://127.0.0.1:9000/health/ready"]
      interval: 2s
      timeout: 2s
      retries: 20
    volumes:
      - rustfs-data:/data

  # One-shot bucket provisioning: the application assumes buckets exist.
  rustfs-init:
    image: rustfs/rustfs:1.0.0
    depends_on:
      rustfs:
        condition: service_healthy
    entrypoint:
      - /bin/sh
      - -ec
      - |
        curl -fsS -o /dev/null -X PUT --aws-sigv4 'aws:amz:us-east-1:s3' --user 'omnara:omnara-blobs' http://rustfs:9000/omnara
        curl -fsS -o /dev/null -X PUT --aws-sigv4 'aws:amz:us-east-1:s3' --user 'omnara:omnara-blobs' http://rustfs:9000/omnara-test
    command: []
    restart: "no"

  # One-shot schema migration: app services depend on its successful exit and
  # never apply migrations themselves.
  migrate:
    profiles: ["app"]
    image: ghcr.io/omnara-ai/omnara-migrations:${OMNARA_RELEASE:-latest}
    environment:
      OMNARA_DATABASE_URL: postgres://omnara:omnara@postgres:5432/omnara?sslmode=disable
      OMNARA_MIGRATION_TIMEOUT: ${OMNARA_MIGRATION_TIMEOUT:-30m}
    depends_on:
      postgres:
        condition: service_healthy
    restart: "no"

  api:
    profiles: ["app"]
    image: ghcr.io/omnara-ai/omnara-api:${OMNARA_RELEASE:-latest}
    environment:
      <<: [*app-env, *blob-env]
      OMNARA_MEMORY_DIR: /var/lib/omnara/memory
      OMNARA_EMAIL_DRIVER: ${OMNARA_EMAIL_DRIVER:-console}
      OMNARA_EMAIL_FROM: ${OMNARA_EMAIL_FROM:-}
      OMNARA_SMTP_ADDR: ${OMNARA_SMTP_ADDR:-}
      OMNARA_SMTP_USERNAME: ${OMNARA_SMTP_USERNAME:-}
      OMNARA_SMTP_PASSWORD: ${OMNARA_SMTP_PASSWORD:-}
      OMNARA_SMTP_REQUIRE_TLS: ${OMNARA_SMTP_REQUIRE_TLS:-}
      SENDGRID_API_KEY: ${SENDGRID_API_KEY:-}
      OMNARA_AUTH_SIGNUP_ENABLED: ${OMNARA_AUTH_SIGNUP_ENABLED:-1}
      OMNARA_AUTH_PASSWORD_RESET_ENABLED: ${OMNARA_AUTH_PASSWORD_RESET_ENABLED:-1}
      OMNARA_AUTH_CONNECTORS_JSON: ${OMNARA_AUTH_CONNECTORS_JSON:-}
      OMNARA_TRUSTED_PROXY_CIDRS: ${OMNARA_TRUSTED_PROXY_CIDRS:-}
      OMNARA_BILLING_URL: ${OMNARA_BILLING_URL:-}
      OMNARA_DAEMON_RELEASE_URL: ${OMNARA_DAEMON_RELEASE_URL:-https://github.com/omnara-ai/omnara/releases/download/omnarad-stable}
    volumes:
      - memory-data:/var/lib/omnara/memory
    depends_on:
      migrate:
        condition: service_completed_successfully
      redis:
        condition: service_healthy
      rustfs-init:
        condition: service_completed_successfully
    restart: unless-stopped

  worker:
    profiles: ["app"]
    image: ghcr.io/omnara-ai/omnara-worker:${OMNARA_RELEASE:-latest}
    environment:
      <<: [*app-env, *blob-env]
      OMNARA_MEMORY_DIR: /var/lib/omnara/memory
      OMNARA_WORKER_EVENT_WEBHOOK_CONCURRENCY: ${OMNARA_WORKER_EVENT_WEBHOOK_CONCURRENCY:-128}
      OMNARA_EVENT_WEBHOOK_PER_ORG_CONCURRENCY: ${OMNARA_EVENT_WEBHOOK_PER_ORG_CONCURRENCY:-128}
      OMNARA_WORKER_CAPACITY: ${OMNARA_WORKER_CAPACITY:-4}
      OMNARA_WORKER_CLAIM_CONCURRENCY: ${OMNARA_WORKER_CLAIM_CONCURRENCY:-16}
      OMNARA_WORKER_INBOX_CAPACITY: ${OMNARA_WORKER_INBOX_CAPACITY:-4}
      OMNARA_WORKER_DISCORD_CAPACITY: ${OMNARA_WORKER_DISCORD_CAPACITY:-1024}
      OMNARA_WORKER_ASYNC_TOOL_CAPACITY: ${OMNARA_WORKER_ASYNC_TOOL_CAPACITY:-32}
      OMNARA_WORKER_BACKGROUND_TOOL_CAPACITY: ${OMNARA_WORKER_BACKGROUND_TOOL_CAPACITY:-8}
      EXA_API_KEY: ${EXA_API_KEY:-}
    volumes:
      - memory-data:/var/lib/omnara/memory
    depends_on:
      migrate:
        condition: service_completed_successfully
      redis:
        condition: service_healthy
      rustfs-init:
        condition: service_completed_successfully
    restart: unless-stopped

  maintenance:
    profiles: ["app"]
    image: ghcr.io/omnara-ai/omnara-maintenance:${OMNARA_RELEASE:-latest}
    environment:
      <<: *app-env
      OMNARA_MEMORY_DIR: /var/lib/omnara/memory
      OMNARA_MAINTENANCE_INTERVAL: ${OMNARA_MAINTENANCE_INTERVAL:-1s}
    volumes:
      - memory-data:/var/lib/omnara/memory
    depends_on:
      migrate:
        condition: service_completed_successfully
      redis:
        condition: service_healthy
    restart: unless-stopped

  web:
    profiles: ["app"]
    image: ghcr.io/omnara-ai/omnara-web:${OMNARA_RELEASE:-latest}
    restart: unless-stopped

  gateway:
    profiles: ["app"]
    image: nginxinc/nginx-unprivileged:1.29.5-alpine
    ports:
      - "${GATEWAY_HOST_PORT:-8000}:8080"
    volumes:
      - ./gateway.nginx.conf:/etc/nginx/conf.d/default.conf:ro
    depends_on:
      api:
        condition: service_started
      web:
        condition: service_started
    restart: unless-stopped

volumes:
  memory-data:
  postgres18-data:
  rustfs-data:

networks:
  default:
    name: omnara-control-plane

This file may be out of date. Check the omnara documentation for current setup steps.

Track your self-hosted stack

Bookmark software to try, rate tools you've used, and keep your collection in one place.

Metadata extracted from README on Oct 22, 2026

Related Software

ZeroClaw logo

ZeroClaw

24
A small Rust-based AI assistant infrastructure and autonomous runtime with pluggable providers, channels, memory, tools, and security policies.
Claws & ClankersAI AgentsAI Tooling+2
Details
Sim Studio logo

Sim Studio

29.9k
An open-source platform for building AI agents and orchestrating agentic workflows with integrations, LLMs, and vector databases.
Automation ToolsArtificial IntelligenceAI Tooling+4
Details
OpenSandbox logo

OpenSandbox

16.0k
OpenSandbox is a platform for running AI agents in isolated sandboxes on local machines or Kubernetes clusters.
AI AgentsAI ToolingSecret Management+1
2 Containers
Details
onecli logo

onecli

3.6k
OneCLI is an open-source gateway that sits between AI agents and external services to inject and manage API credentials securely.
AI AgentsSecret ManagementModel Context Protocol+1
2 Containers
Details
runtm logo

runtm

302
Runtm is an open-source platform for spinning up isolated sandboxes where coding agents can build, test, and deploy software.
Self Hosting SolutionsAI AgentsAI Tooling+1
4 Containers
Details
daytona logo

daytona

71.5k
Daytona is a secure infrastructure runtime for running AI-generated code and agent workflows in isolated sandboxes.
Artificial IntelligenceAI AgentsAI Tooling+2
Details
Canine logo

Canine

2.9k
Canine is a self-hosted Kubernetes deployment platform that simplifies PaaS-style application deployment and management on your own Kubernetes infrastructure.
Platform as a ServiceSelf Hosting SolutionsAutomation Tools+2
Details
centaur logo

centaur

1.4k
Centaur is a self-hosted platform for teams to run shared AI agents in Slack or through an API, with isolated sandboxes and durable workflows.
Artificial IntelligenceAI AgentsAutomation Tools+2
Details
Trigger.dev logo

Trigger.dev

16.6k
An open-source platform for building and deploying AI workflows and agents in TypeScript.
Task RunnersArtificial IntelligenceAutomation Tools+4
Details
Langflow logo

Langflow

155.9k
Langflow is a platform for building and deploying AI-powered agents and workflows with a visual builder, API deployment, and MCP server support.
Low Code DevelopmentAutomation ToolsModel Context Protocol+2
11 Containers
Details
hermes-agent logo

hermes-agent

256.0k
Hermes Agent is a self-improving AI agent with a built-in learning loop, terminal UI, and messaging gateway for chatting and automating work across platforms.
Artificial IntelligenceAI AgentsAI Coding Assistant+2
2 Containers
Details
orca logo

orca

101.5k
Orca is a desktop AI orchestrator that runs multiple CLI coding agents side-by-side in isolated git worktrees.
AI AgentsAI Coding AssistantAI Tooling+1
Details