mirror of
https://github.com/J3vb/OwnCord.git
synced 2026-09-03 03:50:00 +03:00
docs: update contributing and quick-start for Linux/ARM64/Docker
contributing.md: - Prerequisites now show Windows/Linux/ARM64 support matrix - Client commands split into Build, Tests, Typecheck/Lint/Format sections - Add 7 missing commands: lint:ox, format, format:check, knip, test:mutate, test:mutate:dry, test:browser quick-start.md: - Prerequisites table covers Windows + Linux x64 + ARM64 - Step 1 split into 3 options: pre-built binaries, Docker, build from source - Release table lists all platform artifacts (exe, AppImage, deb) - Docker quick-start references deployment.md Docker section
This commit is contained in:
+29
-5
@@ -6,11 +6,16 @@ How to set up the development environment and contribute to OwnCord.
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- **Windows 10+** (x64) — required for the Tauri client
|
||||
- **Linux x64** — supported for server-only development
|
||||
| Platform | Server | Client |
|
||||
|----------|--------|--------|
|
||||
| Windows 10+ x64 | ✅ | ✅ |
|
||||
| Linux x64 | ✅ | ✅ |
|
||||
| Linux ARM64 | ✅ | ✅ (CI only) |
|
||||
|
||||
- **Go 1.25+** (server)
|
||||
- **Node.js 20+** (client)
|
||||
- **Rust / Cargo** (Tauri client)
|
||||
- **Rust / Cargo** (Tauri client — not needed for server-only work)
|
||||
- **Docker + Compose v2** (optional — alternative to building the server locally)
|
||||
|
||||
### Available Commands
|
||||
|
||||
@@ -26,12 +31,19 @@ How to set up the development environment and contribute to OwnCord.
|
||||
|
||||
#### Client (Tauri v2)
|
||||
|
||||
**Build & dev**
|
||||
|
||||
| Command | Description |
|
||||
|---------|-------------|
|
||||
| `npm run dev` | Start Vite dev server with hot reload |
|
||||
| `npm run build` | TypeScript check + Vite production build |
|
||||
| `npm run tauri dev` | Launch Tauri app in dev mode |
|
||||
| `npm run tauri build` | Build release installer |
|
||||
| `npm run tauri build` | Build release installer (NSIS on Windows, AppImage+deb on Linux) |
|
||||
|
||||
**Tests**
|
||||
|
||||
| Command | Description |
|
||||
|---------|-------------|
|
||||
| `npm test` | Run all tests (vitest) |
|
||||
| `npm run test:unit` | Unit tests only |
|
||||
| `npm run test:integration` | Integration tests only |
|
||||
@@ -41,10 +53,22 @@ How to set up the development environment and contribute to OwnCord.
|
||||
| `npm run test:e2e:ui` | Playwright UI mode |
|
||||
| `npm run test:watch` | Vitest watch mode |
|
||||
| `npm run test:coverage` | Coverage report |
|
||||
| `npm run test:mutate` | Stryker mutation testing |
|
||||
| `npm run test:mutate:dry` | Stryker dry-run (no mutations applied) |
|
||||
| `npm run test:browser` | Vitest browser-mode tests |
|
||||
|
||||
**Type checking, linting & formatting**
|
||||
|
||||
| Command | Description |
|
||||
|---------|-------------|
|
||||
| `npm run typecheck` | Full typecheck (all sources) |
|
||||
| `npm run typecheck:build` | Typecheck build config only |
|
||||
| `npm run lint` | ESLint check (src/) |
|
||||
| `npm run lint` | oxlint + ESLint check (src/) |
|
||||
| `npm run lint:fix` | ESLint auto-fix |
|
||||
| `npm run lint:ox` | oxlint only (fast correctness checks) |
|
||||
| `npm run format` | Prettier format (src/ + tests/) |
|
||||
| `npm run format:check` | Prettier check only (no writes) |
|
||||
| `npm run knip` | Dead code and unused export detection |
|
||||
|
||||
## Active Branches
|
||||
|
||||
|
||||
+35
-12
@@ -4,32 +4,55 @@ Get OwnCord up and running in minutes.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- **Windows 10+** (x64)
|
||||
| | Windows x64 | Linux x64 | Linux ARM64 |
|
||||
|-|:-----------:|:---------:|:-----------:|
|
||||
| Server | ✅ | ✅ | ✅ |
|
||||
| Client | ✅ | ✅ | ✅ |
|
||||
|
||||
- **Go 1.25+** (only if building the server from source)
|
||||
- **Node.js 20+** (only if building the client from source)
|
||||
- **Rust / Cargo** (only if building the Tauri client from source)
|
||||
- **LiveKit Server** binary (optional, for voice/video) -- see [LiveKit Setup](livekit-setup.md)
|
||||
- **Node.js 20+** + **Rust / Cargo** (only if building the client from source)
|
||||
- **Docker + Compose v2** (alternative to building the server — Linux only)
|
||||
- **LiveKit Server** (optional, for voice/video) -- see [LiveKit Setup](livekit-setup.md)
|
||||
|
||||
## Step 1: Download
|
||||
|
||||
Get the latest release from GitHub Releases. Download `chatserver.exe` and the `OwnCord` installer.
|
||||
### Option A — Pre-built binaries (recommended)
|
||||
|
||||
Or build from source:
|
||||
Download from [GitHub Releases](https://github.com/J3vb/OwnCord/releases):
|
||||
|
||||
| Platform | Server | Client |
|
||||
|----------|--------|--------|
|
||||
| Windows x64 | `chatserver.exe` | `OwnCord_x.x.x_x64-setup.exe` |
|
||||
| Linux x64 | `chatserver-linux-amd64.tar.gz` | `OwnCord_x.x.x_x86_64.AppImage` or `_amd64.deb` |
|
||||
| Linux ARM64 | _(included in server tar)_ | `OwnCord_x.x.x_aarch64.AppImage` or `_arm64.deb` |
|
||||
|
||||
### Option B — Docker (Linux server only)
|
||||
|
||||
```bash
|
||||
# Server
|
||||
cd Server
|
||||
go build -o chatserver.exe -ldflags "-s -w -X main.version=1.0.0" .
|
||||
cp .env.example .env # set LIVEKIT_API_KEY + LIVEKIT_API_SECRET
|
||||
cp livekit.yaml.example livekit.yaml # set node_ip + matching keys
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
See [Deployment Guide — Docker](deployment.md#docker-linux) for full details.
|
||||
|
||||
### Option C — Build from source
|
||||
|
||||
```bash
|
||||
# Server (Windows)
|
||||
cd Server && go build -o chatserver.exe -ldflags "-s -w -X main.version=1.0.0" .
|
||||
|
||||
# Server (Linux)
|
||||
cd Server && CGO_ENABLED=0 go build -o chatserver -ldflags "-s -w -X main.version=1.0.0" .
|
||||
|
||||
# Client
|
||||
cd Client/tauri-client
|
||||
npm install
|
||||
npm run tauri build
|
||||
cd Client/tauri-client && npm install && npm run tauri build
|
||||
```
|
||||
|
||||
## Step 2: Run the Server
|
||||
|
||||
Run `chatserver.exe`. On first run:
|
||||
**Windows/Linux binary:** Run `chatserver.exe` (Windows) or `./chatserver` (Linux). On first run:
|
||||
|
||||
1. `config.yaml` is created in the working directory with default settings
|
||||
2. `data/` directory is created for the database, TLS certs, uploads, and backups
|
||||
|
||||
Reference in New Issue
Block a user