Chatwoot is an open-source helpdesk replacing Intercom and Zendesk with self-hosted omnichannel support across email, WhatsApp, and live chat.
Intercom charges recurring fees per agent seat and bills extra for message volume, keeping conversation histories in a proprietary cloud. Chatwoot runs that omnichannel inbox on your own infrastructure without seat caps or message metering. Deploying the platform behind your firewall gives your operations team full custody of customer records.
Operating Chatwoot means running a Ruby on Rails application backed by PostgreSQL 14+, Redis 7+ for WebSockets and queues, and Sidekiq background workers. Ops teams must configure an external SMTP relay, S3-compatible storage for attachments, and SSL termination. In return, operations teams eliminate per-seat licensing fees, avoid messaging volume surcharges, and retain complete control over customer transcripts within private networks.
However, Intercom delivers a zero-maintenance SaaS setup with onboarding flows, marketing sequences, and turnkey integrations that Chatwoot intentionally skips. Switching to self-hosted Chatwoot shifts infrastructure upkeep to your team, requiring engineers to manage database migrations, track queue latency, and tune memory allocators like jemalloc for Sidekiq workers.
Is Chatwoot free for commercial use? Yes. The self-hosted Community Edition provides its complete core codebase under MIT terms, allowing companies to run and deploy it internally without software licensing fees.
Chatwoot vs Intercom — which platform fits best? Choose Intercom if you need a fully managed SaaS suite with built-in product tours and marketing drip campaigns; choose Chatwoot if you have server infrastructure and want an omnichannel shared inbox without per-seat billing.
What are the minimum server requirements to self-host Chatwoot? Chatwoot requires a Linux or container host with at least 2 CPU cores, 4 GB of RAM, PostgreSQL 14+, Redis 7+, and an external SMTP relay for transactional emails.
Chatwoot is an excellent choice for teams with basic container or Linux expertise wanting an unmetered, privacy-focused shared inbox; it is not suited for non-technical teams unwilling to maintain databases and worker queues. Active development with commits through September 2026 and a permissive MIT license make the platform straightforward to deploy, audit, and integrate into internal workflows without licensing friction.
We started this exact setup from scratch in a clean Linux machine on Oct 31, 2026 and checked it through Chatwoot's own API: every check passed. Recipes are re-checked regularly and removed if they stop working.
mkdir -p chatwoot && cd chatwoot
curl -fsSL https://open-source.store/tools/chatwoot/compose.yml -o compose.ymlcat > .env <<EOF
SECRET_KEY_BASE=$(openssl rand -hex 32)
POSTGRES_PASSWORD=$(openssl rand -hex 12)
FRONTEND_URL=http://localhost:3000
EOFSECRET_KEY_BASE — Secret key for verifying the integrity of signed cookies. Generated above; keep it secret.POSTGRES_PASSWORD — Password of the PostgreSQL database user. Generated above; keep it secret.FRONTEND_URL — Public URL where Chatwoot is accessible; change to your domain (e.g. https://chat.example.com) for email and widget links.docker compose up -dservices:
rails:
image: chatwoot/chatwoot:v4.19.1
restart: always
ports:
- "3000:3000"
env_file:
- .env
environment:
NODE_ENV: production
RAILS_ENV: production
INSTALLATION_ENV: docker
SECRET_KEY_BASE: ${SECRET_KEY_BASE}
FRONTEND_URL: ${FRONTEND_URL}
POSTGRES_HOST: postgres
POSTGRES_PORT: 5432
POSTGRES_DATABASE: chatwoot_production
POSTGRES_USERNAME: postgres
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
REDIS_URL: redis://redis:6379
ACTIVE_STORAGE_SERVICE: local
RAILS_MAX_THREADS: 5
volumes:
- storage_data:/app/storage
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
entrypoint: docker/entrypoints/rails.sh
command: ["sh", "-c", "bundle exec rails db:chatwoot_prepare && bundle exec rails s -p 3000 -b 0.0.0.0"]
healthcheck:
test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1:3000/health || curl -f http://127.0.0.1:3000/health || exit 1"]
interval: 10s
timeout: 5s
retries: 30
start_period: 60s
sidekiq:
image: chatwoot/chatwoot:v4.19.1
restart: always
env_file:
- .env
environment:
NODE_ENV: production
RAILS_ENV: production
INSTALLATION_ENV: docker
SECRET_KEY_BASE: ${SECRET_KEY_BASE}
FRONTEND_URL: ${FRONTEND_URL}
POSTGRES_HOST: postgres
POSTGRES_PORT: 5432
POSTGRES_DATABASE: chatwoot_production
POSTGRES_USERNAME: postgres
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
REDIS_URL: redis://redis:6379
ACTIVE_STORAGE_SERVICE: local
volumes:
- storage_data:/app/storage
depends_on:
rails:
condition: service_healthy
command: ["bundle", "exec", "sidekiq", "-C", "config/sidekiq.yml"]
postgres:
image: pgvector/pgvector:0.8.0-pg16
restart: always
environment:
POSTGRES_DB: chatwoot_production
POSTGRES_USER: postgres
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres -d chatwoot_production"]
interval: 5s
timeout: 5s
retries: 10
redis:
image: redis:7.4-alpine
restart: always
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 5s
retries: 10
volumes:
storage_data:
postgres_data:
redis_data:
Go, gRPC and Protobuf done right, LLM agents in production, and the hard parts of shipping a first product.
Show that Chatwoot is listed as an open-source alternative. Paste into your README:
Ubuntu 24.04 · Apple container, Docker 29.1.3, Compose 2.40.3+ds1-0ubuntu1~24.04.1. Images pulled in 201 s: chatwoot/chatwoot:v4.19.1, chatwoot/chatwoot:v4.19.1, pgvector/pgvector:0.8.0-pg16, redis:7.4-alpine.
Based on the upstream setup. Official production compose with Rails, Sidekiq, pgvector PostgreSQL and Redis. Pinned to v4.19.1; database password and secrets moved to .env; automated db preparation on startup. Redis password and loopback-only Postgres/Redis ports dropped because those services are unpublished; ACTIVE_RECORD_ENCRYPTION_* not set, so MFA is unavailable.
rails-1 | 2026-10-31T22:13:08.459012130Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.460089755Z F, [2026-10-31T22:13:08.459421 #1] FATAL -- : [98f2d310-3810-45ba-af05-496ca4bb0710] rails-1 | 2026-10-31T22:13:08.460100630Z [98f2d310-3810-45ba-af05-496ca4bb0710] ActionController::RoutingError (No route matches [GET] "/vendor/auth.json"): rails-1 | 2026-10-31T22:13:08.460101422Z [98f2d310-3810-45ba-af05-496ca4bb0710] rails-1 | 2026-10-31T22:13:08.460385130Z F, [2026-10-31T22:13:08.460146 #1] FATAL -- : [7fcdca1d-b9f0-4db8-819c-547a80402c1c] rails-1 | 2026-10-31T22:13:08.460390672Z [7fcdca1d-b9f0-4db8-819c-547a80402c1c] ActionController::RoutingError (No route matches [GET] "/library/auth.json"): rails-1 | 2026-10-31T22:13:08.460391630Z [7fcdca1d-b9f0-4db8-819c-547a80402c1c] rails-1 | 2026-10-31T22:13:08.461517130Z I, [2026-10-31T22:13:08.461486 #1] INFO -- : [f0998192-b89b-4c68-b0ec-cd2a944a245c] Started GET "/vendor/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.461997714Z I, [2026-10-31T22:13:08.461551 #1] INFO -- : [3a7111d2-1f52-490f-9478-d9276dfee0c8] Started GET "/vendors/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.462143005Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.462442255Z F, [2026-10-31T22:13:08.462417 #1] FATAL -- : [f0998192-b89b-4c68-b0ec-cd2a944a245c] rails-1 | 2026-10-31T22:13:08.462443797Z [f0998192-b89b-4c68-b0ec-cd2a944a245c] ActionController::RoutingError (No route matches [GET] "/vendor/auth.json"): rails-1 | 2026-10-31T22:13:08.462444464Z [f0998192-b89b-4c68-b0ec-cd2a944a245c] rails-1 | 2026-10-31T22:13:08.462544839Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.463117589Z F, [2026-10-31T22:13:08.463087 #1] FATAL -- : [3a7111d2-1f52-490f-9478-d9276dfee0c8] rails-1 | 2026-10-31T22:13:08.463120380Z [3a7111d2-1f52-490f-9478-d9276dfee0c8] ActionController::RoutingError (No route matches [GET] "/vendors/auth.json"): rails-1 | 2026-10-31T22:13:08.463121255Z [3a7111d2-1f52-490f-9478-d9276dfee0c8] rails-1 | 2026-10-31T22:13:08.464314089Z I, [2026-10-31T22:13:08.464263 #1] INFO -- : [e537bdac-ef97-453b-a048-417263b3f2ab] Started GET "/vendors/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.464697214Z I, [2026-10-31T22:13:08.464661 #1] INFO -- : [a61843d1-2757-4f80-9462-5a859696fbe7] Started GET "/node_modules/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.464858630Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.465472464Z F, [2026-10-31T22:13:08.465371 #1] FATAL -- : [e537bdac-ef97-453b-a048-417263b3f2ab] rails-1 | 2026-10-31T22:13:08.465476797Z [e537bdac-ef97-453b-a048-417263b3f2ab] ActionController::RoutingError (No route matches [GET] "/vendors/auth.json"): rails-1 | 2026-10-31T22:13:08.465477672Z [e537bdac-ef97-453b-a048-417263b3f2ab] rails-1 | 2026-10-31T22:13:08.465677797Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.466333339Z F, [2026-10-31T22:13:08.466197 #1] FATAL -- : [a61843d1-2757-4f80-9462-5a859696fbe7] rails-1 | 2026-10-31T22:13:08.466347464Z [a61843d1-2757-4f80-9462-5a859696fbe7] ActionController::RoutingError (No route matches [GET] "/node_modules/auth.json"): rails-1 | 2026-10-31T22:13:08.466348422Z [a61843d1-2757-4f80-9462-5a859696fbe7] rails-1 | 2026-10-31T22:13:08.468267630Z I, [2026-10-31T22:13:08.468120 #1] INFO -- : [fa77e030-ec9c-4513-b770-c039b8c6efa2] Started GET "/node_modules/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.468702672Z I, [2026-10-31T22:13:08.468251 #1] INFO -- : [9bde1a8d-252b-4a2c-90a9-f83c9a804670] Started GET "/storage/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.469103172Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.469143297Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.469665422Z F, [2026-10-31T22:13:08.469605 #1] FATAL -- : [fa77e030-ec9c-4513-b770-c039b8c6efa2] rails-1 | 2026-10-31T22:13:08.469670505Z [fa77e030-ec9c-4513-b770-c039b8c6efa2] ActionController::RoutingError (No route matches [GET] "/node_modules/auth.json"): rails-1 | 2026-10-31T22:13:08.469671422Z [fa77e030-ec9c-4513-b770-c039b8c6efa2] rails-1 | 2026-10-31T22:13:08.470416964Z F, [2026-10-31T22:13:08.470371 #1] FATAL -- : [9bde1a8d-252b-4a2c-90a9-f83c9a804670] rails-1 | 2026-10-31T22:13:08.470426880Z [9bde1a8d-252b-4a2c-90a9-f83c9a804670] ActionController::RoutingError (No route matches [GET] "/storage/auth.json"): rails-1 | 2026-10-31T22:13:08.470435505Z [9bde1a8d-252b-4a2c-90a9-f83c9a804670] rails-1 | 2026-10-31T22:13:08.471081839Z I, [2026-10-31T22:13:08.471056 #1] INFO -- : [d610d769-243c-4fd3-b313-c1183dff645c] Started GET "/storage/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.471688172Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.472145755Z F, [2026-10-31T22:13:08.472108 #1] FATAL -- : [d610d769-243c-4fd3-b313-c1183dff645c] rails-1 | 2026-10-31T22:13:08.472149964Z [d610d769-243c-4fd3-b313-c1183dff645c] ActionController::RoutingError (No route matches [GET] "/storage/auth.json"): rails-1 | 2026-10-31T22:13:08.472150714Z [d610d769-243c-4fd3-b313-c1183dff645c] rails-1 | 2026-10-31T22:13:08.472856630Z I, [2026-10-31T22:13:08.472802 #1] INFO -- : [78a72cfc-7d96-4e58-8865-1af37c134d28] Started GET "/database/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.473631255Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.474062922Z F, [2026-10-31T22:13:08.474020 #1] FATAL -- : [78a72cfc-7d96-4e58-8865-1af37c134d28] rails-1 | 2026-10-31T22:13:08.474070797Z [78a72cfc-7d96-4e58-8865-1af37c134d28] ActionController::RoutingError (No route matches [GET] "/database/auth.json"): rails-1 | 2026-10-31T22:13:08.474071589Z [78a72cfc-7d96-4e58-8865-1af37c134d28] rails-1 | 2026-10-31T22:13:08.474877922Z I, [2026-10-31T22:13:08.474847 #1] INFO -- : [c00a0800-d7b0-4e12-af86-7e6ca7e92ceb] Started GET "/database/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.475617589Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.476344422Z F, [2026-10-31T22:13:08.476269 #1] FATAL -- : [c00a0800-d7b0-4e12-af86-7e6ca7e92ceb] rails-1 | 2026-10-31T22:13:08.476349380Z [c00a0800-d7b0-4e12-af86-7e6ca7e92ceb] ActionController::RoutingError (No route matches [GET] "/database/auth.json"): rails-1 | 2026-10-31T22:13:08.476350089Z [c00a0800-d7b0-4e12-af86-7e6ca7e92ceb] rails-1 | 2026-10-31T22:13:08.476963380Z I, [2026-10-31T22:13:08.476918 #1] INFO -- : [a6669652-73d4-4388-ae27-8761a1b89536] Started GET "/db/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.477407380Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.478253380Z F, [2026-10-31T22:13:08.478200 #1] FATAL -- : [a6669652-73d4-4388-ae27-8761a1b89536] rails-1 | 2026-10-31T22:13:08.478269964Z [a6669652-73d4-4388-ae27-8761a1b89536] ActionController::RoutingError (No route matches [GET] "/db/auth.json"): rails-1 | 2026-10-31T22:13:08.478270797Z [a6669652-73d4-4388-ae27-8761a1b89536] rails-1 | 2026-10-31T22:13:08.479036630Z I, [2026-10-31T22:13:08.479001 #1] INFO -- : [74daa909-bb22-472a-9128-7f82fdb72e5a] Started GET "/db/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.479791297Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.480223589Z F, [2026-10-31T22:13:08.480185 #1] FATAL -- : [74daa909-bb22-472a-9128-7f82fdb72e5a] rails-1 | 2026-10-31T22:13:08.480226422Z [74daa909-bb22-472a-9128-7f82fdb72e5a] ActionController::RoutingError (No route matches [GET] "/db/auth.json"): rails-1 | 2026-10-31T22:13:08.480227255Z [74daa909-bb22-472a-9128-7f82fdb72e5a] rails-1 | 2026-10-31T22:13:08.480813547Z I, [2026-10-31T22:13:08.480612 #1] INFO -- : [76d8c9e4-b69c-4011-ad95-6b861b0ac01f] Started GET "/auth/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.481129130Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.481762255Z I, [2026-10-31T22:13:08.481706 #1] INFO -- : [76d8c9e4-b69c-4011-ad95-6b861b0ac01f] Redirected to http://oss-verify.example/omniauth/auth?resource_class=User rails-1 | 2026-10-31T22:13:08.481880297Z I, [2026-10-31T22:13:08.481856 #1] INFO -- : [76d8c9e4-b69c-4011-ad95-6b861b0ac01f] Completed 307 Temporary Redirect in 0ms rails-1 | 2026-10-31T22:13:08.482395630Z I, [2026-10-31T22:13:08.482355 #1] INFO -- : [9cf9b6e7-bf2d-4112-b888-a40a169dd3e4] Started GET "/auth/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.483353672Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.483488047Z I, [2026-10-31T22:13:08.483459 #1] INFO -- : [94a152b9-0298-4da1-8bf6-9b0539107a2b] Started GET "/authentication/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.484060047Z I, [2026-10-31T22:13:08.483858 #1] INFO -- : [9cf9b6e7-bf2d-4112-b888-a40a169dd3e4] Redirected to http://oss-verify.example/omniauth/auth?resource_class=User rails-1 | 2026-10-31T22:13:08.484146839Z I, [2026-10-31T22:13:08.484077 #1] INFO -- : [9cf9b6e7-bf2d-4112-b888-a40a169dd3e4] Completed 307 Temporary Redirect in 0ms rails-1 | 2026-10-31T22:13:08.484623755Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.484997755Z F, [2026-10-31T22:13:08.484965 #1] FATAL -- : [94a152b9-0298-4da1-8bf6-9b0539107a2b] rails-1 | 2026-10-31T22:13:08.485008547Z [94a152b9-0298-4da1-8bf6-9b0539107a2b] ActionController::RoutingError (No route matches [GET] "/authentication/auth.json"): rails-1 | 2026-10-31T22:13:08.485009339Z [94a152b9-0298-4da1-8bf6-9b0539107a2b] rails-1 | 2026-10-31T22:13:08.485680839Z I, [2026-10-31T22:13:08.485484 #1] INFO -- : [b3c56c98-c77c-449b-a4d5-37f51eaeb3fd] Started GET "/authentication/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.485859547Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.487161130Z F, [2026-10-31T22:13:08.487068 #1] FATAL -- : [b3c56c98-c77c-449b-a4d5-37f51eaeb3fd] rails-1 | 2026-10-31T22:13:08.487174839Z [b3c56c98-c77c-449b-a4d5-37f51eaeb3fd] ActionController::RoutingError (No route matches [GET] "/authentication/auth.json"): rails-1 | 2026-10-31T22:13:08.487175672Z [b3c56c98-c77c-449b-a4d5-37f51eaeb3fd] rails-1 | 2026-10-31T22:13:08.487926672Z I, [2026-10-31T22:13:08.487881 #1] INFO -- : [cc96e7d5-b7b7-4e8f-9a24-36a1fa2d0e7d] Started GET "/oauth/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.488975255Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.489515130Z F, [2026-10-31T22:13:08.489462 #1] FATAL -- : [cc96e7d5-b7b7-4e8f-9a24-36a1fa2d0e7d] rails-1 | 2026-10-31T22:13:08.489520505Z [cc96e7d5-b7b7-4e8f-9a24-36a1fa2d0e7d] ActionController::RoutingError (No route matches [GET] "/oauth/auth.json"): rails-1 | 2026-10-31T22:13:08.489521422Z [cc96e7d5-b7b7-4e8f-9a24-36a1fa2d0e7d] rails-1 | 2026-10-31T22:13:08.490235714Z I, [2026-10-31T22:13:08.490118 #1] INFO -- : [70e8805b-e6c1-4b69-ae50-dda94033e20d] Started GET "/oauth/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.491253214Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.491760089Z F, [2026-10-31T22:13:08.491716 #1] FATAL -- : [70e8805b-e6c1-4b69-ae50-dda94033e20d] rails-1 | 2026-10-31T22:13:08.491767297Z [70e8805b-e6c1-4b69-ae50-dda94033e20d] ActionController::RoutingError (No route matches [GET] "/oauth/auth.json"): rails-1 | 2026-10-31T22:13:08.491768047Z [70e8805b-e6c1-4b69-ae50-dda94033e20d] rails-1 | 2026-10-31T22:13:08.492291880Z I, [2026-10-31T22:13:08.492268 #1] INFO -- : [6d369d8d-23cc-41d4-aff1-8ad5279726a0] Started GET "/keys/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.492935255Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.493914630Z F, [2026-10-31T22:13:08.493517 #1] FATAL -- : [6d369d8d-23cc-41d4-aff1-8ad5279726a0] rails-1 | 2026-10-31T22:13:08.493923172Z [6d369d8d-23cc-41d4-aff1-8ad5279726a0] ActionController::RoutingError (No route matches [GET] "/keys/auth.json"): rails-1 | 2026-10-31T22:13:08.493924047Z [6d369d8d-23cc-41d4-aff1-8ad5279726a0] rails-1 | 2026-10-31T22:13:08.494894089Z I, [2026-10-31T22:13:08.494779 #1] INFO -- : [689e6918-7c72-4a27-a390-005af3920b2f] Started GET "/keys/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.495936214Z I, [2026-10-31T22:13:08.495876 #1] INFO -- : [48f4d3b0-bb7d-4d22-be5e-4b6a55a15248] Started GET "/credentials/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.496174047Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.497047964Z F, [2026-10-31T22:13:08.496984 #1] FATAL -- : [689e6918-7c72-4a27-a390-005af3920b2f] rails-1 | 2026-10-31T22:13:08.497054505Z [689e6918-7c72-4a27-a390-005af3920b2f] ActionController::RoutingError (No route matches [GET] "/keys/auth.json"): rails-1 | 2026-10-31T22:13:08.497055339Z [689e6918-7c72-4a27-a390-005af3920b2f] rails-1 | 2026-10-31T22:13:08.497790589Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.498325339Z F, [2026-10-31T22:13:08.498219 #1] FATAL -- : [48f4d3b0-bb7d-4d22-be5e-4b6a55a15248] rails-1 | 2026-10-31T22:13:08.498332797Z [48f4d3b0-bb7d-4d22-be5e-4b6a55a15248] ActionController::RoutingError (No route matches [GET] "/credentials/auth.json"): rails-1 | 2026-10-31T22:13:08.498333672Z [48f4d3b0-bb7d-4d22-be5e-4b6a55a15248] rails-1 | 2026-10-31T22:13:08.498687505Z I, [2026-10-31T22:13:08.498636 #1] INFO -- : [1b3793d2-db3c-4474-bc23-ad79b74e9877] Started GET "/credentials/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.499254422Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.500091755Z F, [2026-10-31T22:13:08.500004 #1] FATAL -- : [1b3793d2-db3c-4474-bc23-ad79b74e9877] rails-1 | 2026-10-31T22:13:08.500100547Z [1b3793d2-db3c-4474-bc23-ad79b74e9877] ActionController::RoutingError (No route matches [GET] "/credentials/auth.json"): rails-1 | 2026-10-31T22:13:08.500101547Z [1b3793d2-db3c-4474-bc23-ad79b74e9877] rails-1 | 2026-10-31T22:13:08.501079547Z I, [2026-10-31T22:13:08.500907 #1] INFO -- : [c1088dc4-fce0-49e4-a427-cca77120e475] Started GET "/creds/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.501393505Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.501948714Z F, [2026-10-31T22:13:08.501895 #1] FATAL -- : [c1088dc4-fce0-49e4-a427-cca77120e475] rails-1 | 2026-10-31T22:13:08.501953839Z [c1088dc4-fce0-49e4-a427-cca77120e475] ActionController::RoutingError (No route matches [GET] "/creds/auth.json"): rails-1 | 2026-10-31T22:13:08.501954880Z [c1088dc4-fce0-49e4-a427-cca77120e475] rails-1 | 2026-10-31T22:13:08.502420422Z I, [2026-10-31T22:13:08.502379 #1] INFO -- : [8ee9dd5f-0b81-4c5f-98f0-27d7642e0791] Started GET "/creds/auth.json" for 192.168.64.17 at 2026-10-31 22:13:08 +0000 rails-1 | 2026-10-31T22:13:08.503103922Z Passing 'call' command to redis as is; blind passthrough has been deprecated and will be removed in redis-namespace 2.0 (at /gems/ruby/3.4.0/gems/activesupport-7.2.3.1/lib/active_support/cache/redis_cache_store.rb:457:in 'block (2 levels) in ActiveSupport::Cache::RedisCacheStore#change_counter') rails-1 | 2026-10-31T22:13:08.503537214Z F, [2026-10-31T22:13:08.503501 #1] FATAL -- : [8ee9dd5f-0b81-4c5f-98f0-27d7642e0791] rails-1 | 2026-10-31T22:13:08.503539839Z [8ee9dd5f-0b81-4c5f-98f0-27d7642e0791] ActionController::RoutingError (No route matches [GET] "/creds/auth.json"): rails-1 | 2026-10-31T22:13:08.503540630Z [8ee9dd5f-0b81-4c5f-98f0-27d7642e0791]