browser-based remote play for Playstation
6.3K
EN | 中文.
PSRP is a self-hosted solution that allows you to stream and play PlayStation games directly in your web browser. It bridges your PlayStation console to any device with a modern browser, providing low-latency streaming and full controller support.
| Feature | Description |
|---|---|
| Gamepad Support | Support for physical gamepads/joysticks, virtual touch controller for mobile devices, and customizable keyboard-to-controller mapping |
| Console Registration | Easy registration of your PlayStation console using PIN code, with automatic device discovery |
| Mobile Adaptation | Optimized mobile experience with touch-based virtual controller and responsive UI design |


https://github.com/user-attachments/assets/0a8f075f-7577-4fbc-bdd2-e6741669eb2d
The easiest way to get started is using Docker Compose (see below). For manual setup, you'll need:
The recommended way to deploy PSRP is using Docker Compose. The following configuration sets up all required services:
version: "3.9"
services:
postgres:
image: postgres:16
container_name: postgres
restart: unless-stopped
environment:
- POSTGRES_DB=remoteplay
- POSTGRES_USER=remoteplay
- POSTGRES_PASSWORD=remoteplay
healthcheck:
test: ["CMD-SHELL", "pg_isready -U remoteplay -d remoteplay"]
interval: 5s
timeout: 5s
retries: 5
volumes:
- postgres-data:/var/lib/postgresql/data
frontend:
image: o1298098/remoteplay-web
container_name: web
restart: unless-stopped
environment:
- API_PROXY_URL=http://backend:8080
ports:
- "10110:80"
networks:
- default
backend:
image: o1298098/remoteplay-server
container_name: server
restart: unless-stopped
environment:
- ASPNETCORE_ENVIRONMENT=Production
- Database__HOST=postgres
- Database__PORT=5432
- Database__NAME=remoteplay
- Database__USER=remoteplay
- Database__PASSWORD=remoteplay
# - JWT__Secret=change-me-to-a-strong-secret
# - TZ=Asia/Shanghai
ports:
- "10111:8080"
- "40200-40400:40200-40400/udp"
depends_on:
postgres:
condition: service_healthy
dbtool:
condition: service_completed_successfully
networks:
lan:
ipv4_address: 192.168.50.33
default:
dbtool:
image: o1298098/remoteplay-dbtool
container_name: dbtool
restart: "no"
environment:
- Database__HOST=postgres
- Database__PORT=5432
- Database__NAME=remoteplay
- Database__USER=remoteplay
- Database__PASSWORD=remoteplay
healthcheck:
test: ["CMD-SHELL", "exit 0"]
interval: 1s
retries: 1
networks:
- default
depends_on:
postgres:
condition: service_healthy
networks:
default:
driver: bridge
lan:
driver: macvlan
driver_opts:
parent: eth0
ipam:
config:
- subnet: 192.168.50.0/24
gateway: 192.168.50.1
volumes:
postgres-data:
Adjust the configuration in the docker-compose.yml file:
WebRTC__PublicIp with your server's public IP addresslan network settings to match your network interface (replace eth0 with your actual network interface)Start the services:
docker compose up -d
Access the web interface:
http://your-server-ip:10110http://your-server-ip:10111Register your PlayStation console:
lan network interface matches your physical network adapterContributions via issues, pull requests, or discussions are welcome. Before submitting, please:
Content type
Image
Digest
sha256:25f77f9eb…
Size
22.6 MB
Last updated
9 months ago
docker pull o1298098/remoteplay-web