> How do I install SPX on my device? There are several ways to get the [[Documentation/Graphics Controller/Overview|SPX Graphics Controller]] up and running. Most users should start with the **official installation**, which comes pre-compiled and ready to use. Developers who want to customize or contribute can build SPX from the **source code** instead. --- ## Binary Installation After receiving your SPX Graphics Controller, follow these steps to ensure a clean and working installation. > [!tip] For production environments, always use the official installer. Pre-compiled releases are more carefully tested than the source code in the repository. ### 1. Download Download the version best suited for your operating system. > [!TIP] Get the official SPX Graphics Controller from the [SPX Graphics website](https://spxgraphics.com/software). ### 2. Unzip Extract the downloaded ZIP file to the folder where you want to run SPX. ### 3. Start SPX Run the executable. On first launch, SPX generates a [[Documentation/Server/Configurations|config.json]] file with default values along with `LOG` and `DATAROOT` folders in the installation directory. A browser window opens automatically with the SPX interface, typically at `http://127.0.0.1:5656`. See [[Guides/Getting Started/First Launch|First Launch]] for a walkthrough of the initial setup. ### Common Errors **Port in use:** If SPX fails to start with `Error: listen EADDRINUSE: address already in use`, another application is already using that port. Open `config.json` in a text editor, change the `general.port` value to a different port (e.g. `5657`), save, and relaunch. **Bad CPU type in executable (M1/M2 Mac):** On Apple Silicon Macs, you may see *"bad cpu type in executable"*. Fix this by running Terminal with Rosetta: right-click Terminal → Get Info → check **Open using Rosetta**, then launch SPX from that Terminal session. **File not executable (Mac and Linux):** On macOS and Linux, the operating system may not treat the downloaded file as an executable. Open a terminal, navigate to the extracted folder, and run: ```bash # Linux sudo chmod +x ./SPX_linux64 # macOS sudo chmod +x ./SPX_macos64 ``` **macOS "App is damaged" error:** Some Mac users encounter *"App is damaged and can't be opened. You should move it to the Trash."* This is caused by macOS adding an extended attribute to the file. Remove it with `xattr` in the Terminal: ```bash xattr -cr ./SPX_macos64 ``` **macOS wrong folder issue:** On some Mac systems, generated files may appear in the user's home directory instead of the application directory. If this happens, navigate to the installation folder in a Terminal first, or use the full path to the executable. --- ## SPX Launcher SPX Launcher is a desktop application for launching and managing SPX Graphics Controller directly from your desktop. - Start and stop the SPX server - View server status and logs - Quick access to the SPX web interface --- ## SPX Installer SPX Installer is a desktop application that provides a graphical interface for installing your SPX Graphics Controller. --- ## Source Code Installation The SPX source code is publicly available on [GitHub](https://github.com/TuomoKu/SPX-GC). Developers can clone the repository and run SPX directly using NodeJS. > [!warning] The source code in the repository is always in a **work in progress** state and features may or may not work. For production use, always prefer the official installer. ### Prerequisites - **Node.js** (v14 or later) - **npm** (comes with Node.js) - **Git** (for cloning the repository) ### Steps 1. Clone the repository: ```bash git clone https://github.com/TuomoKu/SPX-GC.git . ``` 2. Install dependencies: ```bash npm i ``` 3. Start the server: ```bash node server.js ``` For development mode with hot reloading, use: ```bash npm run dev ``` ### Running with PM2 For production deployments from source code, consider using the [PM2](https://pm2.keymetrics.io/) process manager. PM2 keeps SPX running in the background, restarts it automatically on crashes, and provides monitoring tools. ```bash npm start ``` You can also run several SPX instances simultaneously on different ports by using a PM2 `ecosystem.config.js` file. Each instance can have its own port and [[Documentation/Server/Configurations|configuration]]. > [!note] When running multiple instances, make sure each instance uses a unique `general.port` value in its [[Documentation/Server/Configurations|config.json]]. --- ## Read Next - [[Guides/Getting Started/First Launch|First Launch]] - What to expect on first startup - [[Documentation/Server/Configurations|Configurations]] - Server configuration options - [[Documentation/Server/License|License]] - License types and management - [[Documentation/Products/Overview|Products Overview]] - Compare SPX product tiers