jevb f36fb1ffdc feat: channel management — create, edit, delete, reorder with category-type enforcement
Server:
- Enforce category-type validation: text/announcement only under text categories,
  voice only under voice categories (400 on mismatch)
- Admin panel category field changed to dropdown with auto-filtered type options
- Default setup creates both Text Channels and Voice Channels categories

Client:
- Add create/edit/delete channel modals (admin/owner only)
- "+" button on category headers to create channels with pre-filled category
- Right-click context menu on channels for edit/delete
- Mouse-based drag-and-drop reordering within categories
- Admin API methods: adminCreateChannel, adminUpdateChannel, adminDeleteChannel
- Immediate local store update on reorder for instant feedback

Tests: 7 server integration tests, 31 client unit tests (create/edit/delete modals)
2026-03-18 11:28:13 +01:00

OwnCord

Self-hosted Windows chat platform with voice, video, and an admin panel.

Features

  • Real-time text chat with threads and reactions
  • Voice and video channels (WebRTC)
  • Role-based permissions with custom roles
  • File sharing with inline previews
  • Full-text message search
  • Web-based admin panel
  • Invite-only registration
  • TLS encryption (self-signed or custom cert)

Quick Start

  1. Download the latest release from GitHub Releases
  2. Run chatserver.exe -- generates config.yaml on first run
  3. Open https://localhost:8443/admin to access the admin panel
  4. Generate an invite code, share it with friends
  5. Friends download the client installer and connect using your server address

Building from Source

Server

cd Server
go build -o chatserver.exe -ldflags "-s -w -X main.version=1.0.0" .

Client (Tauri v2)

cd Client/tauri-client
npm install
npm run tauri build

The installer is output to Client/tauri-client/src-tauri/target/release/bundle/nsis/.

Architecture

OwnCord consists of a Go server and a Tauri v2 desktop client. The server handles all business logic, storage, and real-time communication. Clients connect over WebSocket for chat events, REST for history and uploads, and WebRTC for voice/video.

+---------------------+         +---------------------+
|   OwnCord Client    |         |   OwnCord Server    |
|   (Tauri v2)        |         |       (Go)          |
|                     |         |                     |
|  +---------------+  |  WSS    |  +---------------+  |
|  |  Chat UI      |--+------->|  |  WebSocket Hub|  |
|  +---------------+  |         |  +---------------+  |
|  +---------------+  |  HTTPS  |  +---------------+  |
|  |  REST Client  |--+------->|  |  REST API     |  |
|  +---------------+  |         |  +---------------+  |
|  +---------------+  |  WebRTC |  +---------------+  |
|  |  Voice/Video  |--+------->|  |  TURN/STUN    |  |
|  +---------------+  |         |  +---------------+  |
+---------------------+         |  +---------------+  |
                                |  |  SQLite DB    |  |
                                |  +---------------+  |
                                +---------------------+

Documentation

License

MIT

S
Description
OwnCord is a self-hosted, open-source chat platform with text channels, voice/video chat, direct messages, and a desktop client — built for communities that want full control over their data.
Readme AGPL-3.0
111 MiB
Languages
TypeScript 48.7%
Go 44%
JavaScript 2.2%
Rust 2.1%
CSS 1.4%
Other 1.5%