Join the Agent Deck Discord Server!
Discord에서 Agent Deck 커뮤니티 확인, 357명과 자유 음성·텍스트 채팅 이용
Your own place to talk. Chat, voice, video and screen sharing, end-to-end encrypted, on servers you run.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Your own place to talk. Nobody else's.
Chat, voice, video and screen sharing, end-to-end encrypted, on servers you run.
Rift is an open-source, self-hostable alternative to Discord that keeps your
data in your hands. Messages, files and calls are encrypted on your device
before they leave, so even the server can't read them. Run a server for your
friends, your club or your team, and use the optional directory to find other
communities and the people in them.
Feature
Discord
Rift
Text and voice channels
✅
✅
Direct messages and DM calls
✅
✅
Video calls
✅
✅README 전문 보기 ↗| Platform | Download |
|---|---|
| Windows · 64-bit | Rift-<version>-windows-x64-setup.exe |
| Linux · x86-64 | rift-<version>-linux-x64.AppImage |
| Android · 7 or newer | Google Play, or rift-<version>-android.apk |
| Browser | web.joinrift.app |
| macOS and iOS | On the way |
Windows — run the installer. It isn't signed yet, so Windows may say "Windows protected your PC": choose More info, then Run anyway.
Linux — make the AppImage executable and run it:
chmod +x rift-*-linux-x64.AppImage
./rift-*-linux-x64.AppImage
From its first start Rift is in your app menu, with its icon. It needs Ubuntu 24.04, Debian 13, Fedora 40, Mint 22 or newer, or any rolling distribution.
Both keep themselves up to date: Rift downloads a new version in the background, says so in the title bar, and a restart puts it in place.
Android — install it from Google Play, which keeps it up to date. Without
Google Play, open the APK once it has downloaded and allow installs from your
browser when Android asks. It works on every phone; the release also has one
APK per architecture (arm64-v8a, armeabi-v7a, x86_64) for whoever knows
theirs. It does not update itself: install the next release's APK over it. Play
signs its copy with a different key, so neither one updates the other:
uninstall to switch.
The release also has a .tar.gz. Unpack it and run riftchat inside; it offers
to add itself to your app menu, but does not update itself:
tar -xzf rift-*-linux-x64.tar.gz
./rift-*-linux-x64/riftchat
Rift opens when you sign in to your computer. Settings → General → Startup turns that off, or has it start minimized, waiting in the tray.
Open Rift and sign in with your Rift account. Your identity is backed up, encrypted, and friends can find you by name.
Prefer not to give an email? Privacy mode keeps your identity on this device only — at the cost of the backup.
Docker, about 4 GB of RAM and a domain pointing at the machine. Two commands, then a setup page that generates every secret and hands you the first invite link:
curl -fsSL -o docker-compose.yml https://joinrift.app/self-host/docker-compose.yml
docker compose up -d
The installation guide walks through every step, and sizing the machine has measured numbers for servers from fifty members to fifty thousand. There's a local-testing mode for trying Rift on your own network first.
Most of what you use every day — plus what only running it yourself can give.
flowchart LR
A["Your app"] -- "sealed messages and calls" --> S[("A server you run")]
B["A friend's app"] -- "sealed messages and calls" --> S
A -. "accounts · backup · directory · push" .-> C["Rift central"]
classDef app fill:#12132A,stroke:#7B83FF,color:#F4F4F8
classDef server fill:#14141A,stroke:#9BA3FF,color:#F4F4F8
classDef central fill:#0F0F14,stroke:#63636E,color:#C6C7CF,stroke-dasharray:4 3
class A,B app
class S server
class C central
| Piece | Where | What it does |
|---|---|---|
| The app | this repository | Holds your identity: one seed on your device, backed up only if you choose, and encrypted before it leaves. |
| A server | rift-self-host | Yours, or a friend's. Stores ciphertext it cannot open and enforces who may do what. |
| Central | rift-central | The one shared piece: accounts and encrypted backups, the server and bot directories, and the relay that wakes phones. It never sees a server's messages. |
You need Flutter (stable, 3.41 or newer) and a Rust toolchain.
flutter pub get
flutter run -d linux # or windows, android, chrome
The Rust crate builds itself through flutter_rust_bridge and Cargokit on the
first run; build_rust_local.sh builds it by hand.
scripts/package_linux.sh builds the release archive the way the release
workflow does.
You need clang 21 or newer, because the WebRTC library refuses an older one, and these development packages:
# Debian and Ubuntu. 24.04 ships clang 18: take clang-21 from apt.llvm.org,
# and build with CC=clang-21 CXX=clang++-21.
sudo apt install cmake ninja-build pkg-config libgtk-3-dev libsecret-1-dev \
libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libpulse-dev libva-dev \
libayatana-appindicator3-dev
# Arch
sudo pacman -S clang cmake ninja gtk3 libsecret gstreamer gst-plugins-base \
libpulse libva libayatana-appindicator
flutter analyze
flutter test # pure logic, crypto and layout invariants
./scripts/style_check.sh # size budgets, lazy lists, literals, layering
The databases have their own suites in the server repositories. Anything that
needs a live server — realtime delivery, key distribution, calls, layout at a
width — is driven by hand; TESTING.md records what has been
checked and how to drive each client.
| Document | For |
|---|---|
ARCHITECTURE.md | the shape of the system, and the decisions behind it |
CALLS.md | how calls and screen shares work underneath, and the measurements behind them |
WIRE.md | the exact formats a second implementation must match |
BOTS.md | what a bot may see, hear and say |
TESTING.md | what has been verified live, what has not, and how to drive the app |
AGENTS.md | the conventions this codebase follows |
CODE_STYLE.md | size budgets, one widget per file, where constants live |
What a client may call on a server, and over which transport, is API.md in
rift-self-host. Running a server is covered by the
self-hosting guide.
Clone them side by side: tool/gen_wire_vectors.dart writes each bot SDK's
copy of the wire contract, and the docs refer to the others by name.
| Repository | What it is | Who runs it | Licence |
|---|---|---|---|
rift | this: the app | — | GPL-3.0 |
rift-self-host | a server's schema, endpoints and console | anyone | AGPL-3.0 |
rift-central | accounts, the server and bot directories, the push relay | the project | AGPL-3.0 |
rift-bot-sdk-node | the TypeScript bot SDK | bot authors | Apache-2.0 |
rift-bot-sdk-rust | the Rust bot SDK | bot authors | Apache-2.0 |
GPL-3.0. Third-party notices ship with the app in
assets/licenses/.