OpenStadia
OpenStadia is an open-source project that serves as an alternative to Google Stadia. It allows users to remotely connect
to a powerful computer using the WebRTC protocol.
Social
Deployment Options
There are two deployment options available:
- Local Deployment: This option does not require a connection to remote servers, but it can only be used within a local
network or with a static public IP address (router configuration may be required).
- Hub Server Deployment: This option involves using a hub server to establish connections between users. The open
version of the hub server can be accessed at https://github.com/openstadia/openstadia-hub.
Supported OS
OpenStadia currently supports the following operating system:
- Linux (Tested on Ubuntu 22.04)
- Windows (Tested on Windows 11)
Support Table
|
Linux |
Windows |
macOS |
External Device |
Video Capture |
π’ |
π’ |
π£ |
π‘ |
Audio Capture |
π‘ |
π‘ |
π£ |
π‘ |
Mouse Capture |
π’ |
π’ |
π£ |
π‘ |
Keyboard Capture |
π’ |
π’ |
π£ |
π‘ |
Gamepad Capture |
π’ |
π’ |
π£ |
π‘ |
Virtual Display |
π’ |
π£ |
π΄ |
β« |
Virtual Drive |
π£ |
π£ |
π£ |
π£ |
File System Explorer |
π’ |
π’ |
π£ |
β« |
Remote Terminal |
π’ |
π’ |
π£ |
β« |
Container |
π£ |
β« |
π΄ |
β« |
HID Capture |
π£ |
π£ |
π΄ |
π£ |
TCP Tunneling |
π£ |
π£ |
π΄ |
β« |
- π’ - supported
- π£ - support is planned
- π΄ - support is NOT planned
- π‘ - work in progress
- β« - support is NOT possible
Configuration
Configuration settings for OpenStadia are specified in the openstadia.yaml
file, which should be located in the same
directory as the executable file. The following parameters can be configured:
- hub: The URL address of the hub server. This parameter is not used in local deployments. Please note that there is
currently no public hub available.
- local: Config for local deployment
- apps: A list of applications that users can launch from their remote devices. Currently, all applications open
on a virtual display to avoid disrupting the system's operation.
Example configuration
hub:
enabled: true
addr: "wss://hub.openstadia.com"
token: "my-awesome-secret"
local:
enabled: true
host: "0.0.0.0"
port: "9090"
apps:
- name: "my-awesome-app"
command: [ "/home/user/my-awesome-app" ]
width: 1920
height: 1080
Getting Started
To get started with OpenStadia, follow these steps:
- Clone the OpenStadia repository.
- Configure the openstadia.yaml file with the desired settings.
- Choose the deployment option based on your requirements:
- For local deployment, ensure you have a powerful computer with a static public IP address or configure your router
accordingly.
- For hub server deployment, set up the hub server using the instructions provided
at https://github.com/openstadia/openstadia-hub.
- Build or run the OpenStadia application.
- Connect to OpenStadia using a supported web browser or client application.
- Enjoy remote access to a powerful computer for gaming or other resource-intensive tasks.
Build Instructions
To build and run OpenStadia using the Go programming language, please follow these instructions:
Common
- Install Go on your system by following the official documentation: Installing Go.
- Clone the OpenStadia repository using the following command:
git clone https://github.com/openstadia/openstadia.git
- Navigate to the project directory:
cd openstadia
- Install the project dependencies using the following command:
go get
Linux
- Install build requirements
sudo apt-get install \
libx11-dev \
libxext-dev \
libvpx-dev \
libx11-dev \
xorg-dev \
libxtst-dev
- Build the OpenStadia application using the following command:
go build
Windows
- Install MSYS2 on your system by following the official documentation: Installing MSYS2.
- Open MSYS2 UCRT64 console
C:/msys64/msys2_shell.cmd -defterm -here -no-start -ucrt64
- Install build requirements
pacman -S mingw-w64-ucrt-x86_64-toolchain
pacman -S mingw-w64-ucrt-x86_64-libvpx
pacman -S mingw-w64-ucrt-x86_64-libpng
- Build the OpenStadia application using the following command:
.\scripts\build-dev.ps1
Launching
- Run the OpenStadia application:
./openstadia
-
Connect to OpenStadia using a supported web browser or client application. http://127.0.0.1:8080
-
Enjoy remote access to a powerful computer for gaming or other resource-intensive tasks.
Experimental
The project contains some experimental features that need to be activated by passing flags for the build
Flag |
Description |
d3d |
Enables experimental DXGI OutputDuplication screen capture (only for Windows) |
tray |
Enables launching application in OS tray |
Example
go build -tags=d3d
Contributing
Contributions to OpenStadia are welcome! If you encounter any issues or have ideas for improvements, please submit them
via the GitHub issue tracker. You can also contribute by submitting pull requests with bug fixes or new features.
Please refer to the CONTRIBUTING.md file in the OpenStadia repository for more information on how to contribute.
License
OpenStadia is released under the MIT License. Please see the LICENSE file for
more details.