Open .env and set a database password, a setup code and your server’s public HTTPS URL. The setup code protects the creation of the first owner account.
POSTGRES_PASSWORD — a URL-safe password.
LAZY_SETUP_CODE — a random code of at least 16 characters.
LAZY_PUBLIC_URL — the HTTPS address your team will use.
Generate a random setup code
openssl rand -hex 24
Put HTTPS in front of the server before inviting people outside your local network. The reverse proxy must support WebSocket connections and file uploads.
03 / Bring it to life
Start your Lazy server.
The first build compiles the server and can take a few minutes. The server applies database migrations when it starts.
Start and check the services
docker compose up -d --build
docker compose ps
Keep backups of both the PostgreSQL database and the attachment storage. The full deployment guide covers HTTPS, configuration, health checks, backups and updates.
Install the desktop app and enter your server address. Choose Create account and use the setup code in the invitation field to create the owner account.
Then use Menu → Workspace → Invite people… to create invitation codes. Give each teammate the server address and their code. They can install the app and create their own account.
Lazy is a native workplace chat app. It brings channels, direct and group messages, threads, reactions, files and search together in a desktop app that connects to a server run by you or your team.
Do I need to run a server?
Someone does, but it doesn’t have to be you. If your team already uses Lazy, ask for the server address and an invitation code. If you’re setting it up for your team, the self-hosting guide walks through Docker and PostgreSQL.
Which computers can run Lazy?
There are installers for macOS 11 or later (Apple silicon and Intel), Windows 10 and 11 (64-bit), and Linux (64-bit Intel/AMD). Linux needs a Vulkan driver and a system keyring. The download page has the details.
How do I join my team?
Download and open Lazy. Enter the server address your team gave you in the Server row, choose Create account, and enter your invitation code along with your account details. Returning on a new computer? Use your server address, username and password to sign in.
Can I use Lazy for more than one workspace?
Yes. The workspace rail lets you switch between workspaces on your server, with unread indicators for conversations that need you. Connecting to separate servers currently uses separate local profiles.
What happens if my connection drops?
The app keeps cached conversation history and checks pending message delivery when it reconnects. It is designed to recover without duplicating messages. Some actions, including search and loading older messages, still need a connection.
Are voice or video calls included?
Not yet. Huddles and broader integrations are planned for later. Lazy currently focuses on messages, channels, threads, files, search and incoming webhooks.
Do desktop notifications work everywhere?
System notifications currently work on Linux. On macOS and Windows, Lazy has unread counts and a title badge; system notifications are not available yet.
Where do my team’s messages live?
Your team’s server stores the workspace data in PostgreSQL and uploaded files in its attachment storage. The person running that server controls hosting and backups. Self-hosting does not mean end-to-end encryption.
Who is the sloth?
That’s Moss. A quiet, paper-cut companion for saying hello, catching up and celebrating the small wins. A reminder that the people on the other side of the message matter.
Nothing here just yet.
Try “server”, “invite” or “download”.
Still a little stuck? Open an issue on GitHub. Include the report from Menu → Help → Diagnostics… when reporting an app problem.