diff --git a/docs/contributing.md b/docs/contributing.md index 0bd86704..f00261bb 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -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 diff --git a/docs/quick-start.md b/docs/quick-start.md index 285c43ca..bf3a8d0b 100644 --- a/docs/quick-start.md +++ b/docs/quick-start.md @@ -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