# Farm Control Server [![Build Status](https://ci.tombutcher.work/buildStatus/icon?job=farmcontrol%2Ffarmcontrol-server%2Fmain&style=flat-square)](https://ci.tombutcher.work/job/farmcontrol/job/farmcontrol-server/job/main/) A Bun application that bridges communication between Farm Control cloud services, local websocket clients, and connected printers. ## Features - Connects to the Farm Control websocket API - Provides a local HTTP server for CLI and integrations - Desktop UI built with React, Ant Design, and Electrobun - Headless Linux service packaging for servers and Raspberry Pi hosts - Relays printer and document printer state to the desktop UI ## Requirements - [Bun](https://bun.sh) 1.1 or newer ## Installation 1. Clone this repository 2. Install dependencies: ``` bun install ``` 3. Edit `config.json` for your environment 4. Start the server: ``` bun run dev ``` ## Development - Headless server: `bun run dev` - Desktop app with hot reload: `bun run dev:app` - Renderer only: `bun run dev:renderer` ## Building - Desktop app (current platform): `bun run build:app` - Linux headless packages: `bun run build:linux` Electrobun handles desktop packaging. Linux headless builds use `bun build --compile`. ## Configuration `config.json` contains `development` and `production` sections. Each section supports: - `logLevel` - `url` (websocket server) - `apiUrl` - `host.id` and `host.authCode` - `dataDir` ## License MIT