@@ -142,11 +142,100 @@ npm run dev
142142
143143Useful root scripts:
144144
145+ <<<<<<< HEAD
145146``` bash
146147npm run dev
147148npm run build
148149npm run typecheck
149150npm run dist
151+ =======
152+ # # Download
153+
154+ Grab the latest release for your platform:
155+
156+ 👉 ** [Download from GitHub Releases](https://github.com/OpenCloudGaming/OpenNOW/releases)**
157+
158+ | Platform | File |
159+ | ----------| ------|
160+ | Windows (installer) | ` OpenNOW-v0.2.4-setup-x64.exe` |
161+ | Windows (portable) | ` OpenNOW-v0.2.4-portable-x64.exe` |
162+ | macOS (x64) | ` OpenNOW-v0.2.4-mac-x64.dmg` |
163+ | macOS (ARM) | ` OpenNOW-v0.2.4-mac-arm64.dmg` |
164+ | Linux (x64) | ` OpenNOW-v0.2.4-linux-x86_64.AppImage` |
165+ | Linux (ARM64) | ` OpenNOW-v0.2.4-linux-arm64.AppImage` |
166+
167+ # # Nix
168+
169+ You' ll need to add this repo into your flake.nix:
170+ ```nix
171+ {
172+ inputs = {
173+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
174+
175+ opennow.url = "github:OpenCloudGaming/OpenNOW";
176+ };
177+
178+ outputs = {
179+ self,
180+ nixpkgs,
181+ opennow,
182+ ... }@inputs: {
183+ };
184+ }
185+ ```
186+ Then add the package to your configuration:
187+ ```nix
188+ # Home-manager
189+ {
190+ pkgs,
191+ inputs,
192+ ...
193+ }: {
194+ home.packages = with pkgs; [
195+ inputs.opennow.packages.${pkgs.system}.default
196+ ];
197+ }
198+ ```
199+
200+ ```nix
201+ # Nixos configuraion
202+ {
203+ pkgs,
204+ inputs,
205+ ...
206+ }: {
207+ environment.systemPackages = with pkgs; [
208+ inputs.opennow.packages.${pkgs.system}.default
209+ ];
210+ }
211+ ```
212+
213+
214+ ## Architecture
215+
216+ OpenNOW is an Electron app with three processes:
217+
218+ | Layer | Technology | Role |
219+ |-------|-----------|------|
220+ | **Main** | Node.js + Electron | OAuth, CloudMatch API, WebSocket signaling, settings |
221+ | **Renderer** | React 19 + TypeScript | UI, WebRTC streaming, input encoding, stats |
222+ | **Preload** | Electron contextBridge | Secure IPC between main and renderer |
223+
224+ ```
225+ opennow-stable/src/
226+ ├── main/ # Electron main process
227+ │ ├── gfn/ # Auth, CloudMatch, signaling, games, subscription
228+ │ ├── index.ts # Entry point, IPC handlers, window management
229+ │ └── settings.ts # Persistent user settings
230+ ├── renderer/src/ # React UI
231+ │ ├── components/ # Login, Home, Library, Settings, StreamView
232+ │ ├── gfn/ # WebRTC client, SDP, input protocol
233+ │ └── App.tsx # Root component with routing and state
234+ ├── shared/ # Shared types and IPC channel definitions
235+ │ ├── gfn.ts # All TypeScript interfaces
236+ │ └── ipc.ts # IPC channel constants
237+ └── preload/ # Context bridge (safe API exposure)
238+ >>>>>>> bf6734b (Add Nix installation instructions in README and fix app links in flake)
150239```
151240
152241For a fuller setup guide, see [docs/development.md](docs/development.md).
0 commit comments