5 minutes to your first message

Start chatting
today

The web client opens in any browser, the server spins up with a couple of commands, and the open API is ready for your mobile apps. Pick your path.

Ready to goDB schema created automatically
altgram — 5 minutes to launch
# install$ cd altgram # server distribution$ pip install -r requirements.txt# configure$ ALTGRAM_DB_HOST=your-postgres# run$ python run.py --ssl server running on :8070
HTTPS out of the boxcertificate generated
Three ways in

Whatever suits you best

From "click and chat" to full control over your infrastructure.

In the browser

Nothing to install: the web client works on desktop and on your phone. Open it — and you're already in the chat.

desktop · mobile web

Your own server

Python and PostgreSQL — that's the whole stack. Four steps, and the messenger lives on your machine, with your data staying yours alone.

python · postgresql · :8070

Mobile apps

Native clients are built on the open API — auth, chats, calls and media are documented for development teams.

REST · WebSocket · WebRTC
Self-hosted

Server setup

The database schema creates itself, the admin account is already inside. All you need is four steps.

1

Prepare the environment

Python 3.11+ and a running PostgreSQL. Nothing else — no Docker, no Kubernetes required.

2

Install dependencies

pip install -r requirements.txt — one command, and everything is ready to launch.

3

Configure .env

Point it at your PostgreSQL database. The table schema deploys itself on first start.

4

Launch with HTTPS

python run.py --ssl — then open https://your-host:8070. A certificate for calls is generated automatically.

altgram — setup
# 1. Environment: Python 3.11+ and PostgreSQL $ python --version Python 3.11.9 # 2. Dependencies $ pip install -r requirements.txt # 3. Configuration (.env) $ ALTGRAM_DB_HOST=your-postgres # 4. Launch with HTTPS $ python run.py --ssl Altgram on https://your-host:8070
What you'll need

Requirements

Altgram has a modest appetite — even a small VM will do.

ComponentRequirement
Python3.11 or newer
PostgreSQL14 or newer — the DB schema is created automatically
RAM1 GB and up
Diskfor your files and media — size it to your team's volume
Port8070 TCP
HTTPSrequired for calls and camera access — a self-signed certificate is generated automatically
For developers

Developer API

Versioned REST at /api/v1 plus WebSocket events: 7-day JWT tokens, multipart media uploads. The server ships with MOBILE_API.md and API_CONTRACT.md covering everything, and interactive Swagger lives at /docs.

  • JWT authorizationLogin, refresh, and session listing with revocation — out of the box.
  • Realtime over WebSocketMessages, reactions, typing, and online statuses arrive instantly.
  • Media uploadsMultipart up to 200 MB: photos with previews, video, audio, documents.
  • WebRTC signalingEverything for 1:1 calls and conferences — including invites by link.
api/v1 — endpoints
POST /api/v1/auth/login # → JWT, 7 days GET /api/v1/chats POST /api/v1/chats/{id}/messages GET /api/v1/messages/search?q=… # Russian FTS POST /api/v1/files/upload # multipart ≤ 200 MB POST /api/v1/stories # 24-hour stories POST /api/v1/calls # WebRTC signaling POST /api/v1/calls/{id}/invite GET /api/v1/sessions # sessions & revocation WS wss://host/ws?token=…
Mobile development

Android and iOS

Honestly: there are no store apps yet. But the API is open and documented — your team can build a native client on the stack they already know.

Android

Kotlin + OkHttp/Retrofit for REST and WebSocket, the official WebRTC SDK for calls — it all maps cleanly onto the Altgram API. MOBILE_API.md walks you from login to signaling.

Kotlin · Retrofit · WebRTC SDK

iOS

Swift + URLSession for networking and WebRTC.framework for audio and video calls. JWT auth, multipart uploads, and WebSocket events are all spelled out in the API contract — no surprises.

Swift · URLSession · WebRTC.framework

Deploy your Altgram today

Five minutes, and your team has a messenger that answers to no one. Or start right now in your browser.