Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,299 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CI Release Latest release License: AGPL-3.0-or-later with Apache-2.0 exceptions

Chatto

It's Chatto!

A really good chat application for teams and communities, free and easy to self-host, with cloud hosting available soon.

This repository temporarily incubates the early Authling identity-provider module. Authling is developed and released independently from Chatto and is intended to move to its own repository once it no longer needs frequent atomic changes with the shared event-sourcing framework, embedded NATS runtime, data-cryptography primitives, and application-configuration loader.

Complete Local Stack

The root compose.yml runs Chatto, Authling, Mailpit, LiveKit, Storybook, and the Chatto docs website together on OrbStack. It builds every repository-owned service from the current checkout, gives Chatto and Authling separate persistent embedded-NATS storage, and configures Chatto to use Authling as an OpenID Connect provider through Chatto's public Client ID Metadata Document, without preregistering Chatto in Authling. Compose derives the project name from the checkout directory, keeping containers and OrbStack domains isolated between worktrees.

docker compose up --build

For a checkout in a directory named <project>, open these OrbStack-managed HTTPS origins:

  • Chatto: https://chatto.<project>.orb.local
  • Authling: https://authling.<project>.orb.local
  • Mailpit: https://mailpit.<project>.orb.local
  • LiveKit signaling: https://livekit.<project>.orb.local
  • Storybook: https://storybook.<project>.orb.local
  • Docs website: https://docs-website.<project>.orb.local

Create an Authling account, read its verification code in Mailpit, then choose Authling on Chatto's login screen. Chatto asks for a username on the first login because Authling's initial OIDC profile intentionally shares only its stable account ID. The stack also bootstraps a Chatto owner named compose-admin with the development-only password compose-admin.

After login, select the cloud button below the server list. Authling asks for separate permission to read and write account data. The cloud turns green when the TinyBase connection is active. Chatto then stores the public server list in Authling. Server URLs, names, icons, and registration times synchronize; Chatto login tokens and user details stay only in that browser. The frontend shows a trusted Authling sign-in action and can use the resulting browser session to start login on Chatto servers that advertise the same issuer. The frontend and each Chatto server still receive separate tokens and scopes.

The frontend reads its Authling issuer from /client-config.json. The Compose stack sets CHATTO_FRONTEND_AUTHLING_ISSUER, so the bundled Chatto server publishes that document and a separate frontend CIMD identity automatically. A standalone web, desktop, or mobile client can publish or inject the same versioned JSON contract from its own trusted application origin.

The checked-in credentials and bootstrap account are for local development only. Stop the stack with docker compose down; add --volumes to delete both products' data and establish a fresh Authling issuer on the next start. The stack relies on OrbStack's default Compose domains, automatic HTTPS proxy, and container CA installation; it is not a production deployment example.

License

Chatto is licensed under AGPL-3.0-or-later by default. The independently versioned shared framework modules, standalone frontend, integration surfaces, documentation, and examples use Apache-2.0. See LICENSING.md and REUSE.toml for the exact boundary.

The project licenses do not grant permission to use Chatto names or logos as official branding for a fork or modified version; see NOTICE.

Contributing

See CONTRIBUTING.md for local development notes. This project is not accepting outside contributions at this time.

About

A fully-featured team and group chat application that you can easily selfhost.

Topics

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages