Sign inSign up

lordbasex/go-link-device

By lordbasex

•Updated about 4 hours ago

Play arcade games online with friends from the browser: MAME + WebRTC, up to 4 players with voice.

Image
Networking
Web servers
0

77

lordbasex/go-link-device repository overview

Play classic arcade games online with your friends, straight from the browser.

This image is the go-link device without a window: your server (or Raspberry Pi) becomes the arcade. It runs the games with the MAME 2003-Plus engine (libretro) and streams video, sound and voice over WebRTC. Friends join from any browser with a link and a PIN, with no install and no ROMs.

⁠Quick start

docker run -d --name go-link --network host \
  -v go-link:/data \
  -v ~/roms:/data/go-link/roms \
  lordbasex/go-link-device:latest

Then:

  1. Open the web panel at http://<this machine's address>:7373. Its key:
    docker exec go-link go-link-device panel token --config /data/device.json
    
  2. Download the emulator core from the panel (one click). It is downloaded on first use, never bundled.
  3. Add your ROMs (MAME 2003-Plus / MAME 0.78 sets) to the folder you mounted. go-link checks every set and tells you which are ready.
  4. Start a game and invite your friends: a link, a QR or a 9-digit code, plus a PIN for each person. They play from the browser.

You can also link the device to go-link.org/device⁠ with the code shown in the panel, and manage it from anywhere.

⁠Tags

TagWhat it is
latestThe latest release
vX.Y.ZA given release, e.g. v0.1.2

Every tag is built for linux/amd64 and linux/arm64 (Raspberry Pi 4/5 with a 64-bit system). The same image is on the GitHub Container Registry: ghcr.io/lordbasex/go-link-device.

⁠Volumes

Path in the containerWhat goes there
/dataEverything go-link keeps: configuration, the emulator core, saved games, history, recordings and logs. Use a named volume.
/data/go-link/romsYour ROM sets. Add :ro to block uploads from the website.
/data/go-link/thumbnails/MAMEOptional game pictures, in the libretro layout (Named_Boxarts, Named_Titles, Named_Snaps).

The container runs as user golink (uid 1000): host folders you mount without :ro must be writable by uid 1000.

⁠Ports and network

WebRTC needs UDP straight to the players, so --network host is the simple way on Linux.

Without the host's network (for example Docker Desktop on macOS or Windows), publish the panel and a fixed UDP port, and announce your computer's LAN address:

docker run -d --name go-link \
  -p 7373:7373 -p 50000:50000/udp \
  -v go-link:/data -v ~/roms:/data/go-link/roms \
  lordbasex/go-link-device:latest --udp-port 50000 --announce 192.168.1.20
PortUse
7373/tcpThe local web panel
UDP (random, or the one you set with --udp-port)WebRTC media to the players

⁠Docker Compose

services:
  go-link:
    image: lordbasex/go-link-device:latest
    restart: unless-stopped
    network_mode: host
    volumes:
      - go-link-data:/data
      - ~/roms:/data/go-link/roms
volumes:
  go-link-data:

⁠Features

  • Up to 4 players per room, with voice between them; everyone else watches live and waits in an arcade-style queue.
  • Private rooms: an invitation (link, QR or code) and a single-use PIN for each person.
  • Several games at once, pause, save slots, automatic save and resume, and a game history.
  • Recordings of your games with everyone's voices, exported to MP4 from the browser.
  • Gamepads, keyboard, and an on-screen gamepad on phones (the room becomes a handheld console).
  • ROM validation without running the game.

go-link does not include, host or download any ROMs, game images or BIOS files. Use only ROMs you have the right to use, such as backups of arcade boards you own. MAME® is a registered trademark of Gregory Ember; go-link is not affiliated with MAMEdev or libretro. The mame2003-plus core, downloaded at your request, is for non-commercial use only. Full terms: go-link.org/terms⁠.

⁠Help the project

Report bugs and ideas in GitHub Issues⁠, ask in Discussions⁠, and read CONTRIBUTING.md⁠ to contribute. And please ⭐ star the repository!

Tag summary

Content type

Image

Digest

sha256:e9e6b3dff…

Size

38.4 MB

Last updated

about 4 hours ago

docker pull lordbasex/go-link-device