{"user":"lizardbyte","name":"sunshine","namespace":"lizardbyte","repository_type":"image","status":1,"status_description":"active","description":"Self-hosted game stream host for Moonlight.","is_private":false,"is_automated":false,"star_count":43,"pull_count":539356,"last_updated":"2026-11-08T02:24:46.414648Z","last_modified":"2026-11-07T23:13:55.137934Z","date_registered":"2022-08-10T19:55:43.248091Z","collaborator_count":0,"affiliation":null,"hub_user":"lizardbyte","has_starred":false,"full_description":"# Docker\n\n## Important note\nStarting with v0.18.0, tag names have changed. You may no longer use `latest`, `master`, `vX.X.X`.\n\n## Build your own containers\nThis image provides a method for you to easily use the latest Sunshine release in your own docker projects. It is not\nintended to use as a standalone container at this point, and should be considered experimental.\n\n```dockerfile\nARG SUNSHINE_VERSION=latest\nARG SUNSHINE_OS=ubuntu-22.04\nFROM lizardbyte/sunshine:${SUNSHINE_VERSION}-${SUNSHINE_OS}\n\n# install Steam, Wayland, etc.\n\nENTRYPOINT steam \u0026\u0026 sunshine\n```\n\n### SUNSHINE_VERSION\n- `latest`, `master`, `vX.X.X`\n- commit hash\n\n### SUNSHINE_OS\nSunshine images are available with the following tag suffixes, based on their respective base images.\n\n- `debian-bookworm`\n- `ubuntu-22.04`\n- `ubuntu-24.04`\n\n### Tags\nYou must combine the `SUNSHINE_VERSION` and `SUNSHINE_OS` to determine the tag to pull. The format should be\n`\u003cSUNSHINE_VERSION\u003e-\u003cSUNSHINE_OS\u003e`. For example, `latest-ubuntu-24.04`.\n\nSee all our available tags on [docker hub](https://hub.docker.com/r/lizardbyte/sunshine/tags) or\n[ghcr](https://github.com/LizardByte/Sunshine/pkgs/container/sunshine/versions) for more info.\n\n## Where used\nThis is a list of docker projects using Sunshine. Something missing? Let us know about it!\n\n- [Games on Whales](https://games-on-whales.github.io)\n\n## Port and Volume mappings\nExamples are below of the required mappings. The configuration file will be saved to `/config` in the container.\n\n### Using docker run\nCreate and run the container (substitute your `\u003cvalues\u003e`):\n\n```bash\ndocker run -d \\\n  --device /dev/dri/ \\\n  --name=\u003cimage_name\u003e \\\n  --restart=unless-stopped \\\n  --ipc=host \\\n  -e PUID=\u003cuid\u003e \\\n  -e PGID=\u003cgid\u003e \\\n  -e TZ=\u003ctimezone\u003e \\\n  -v \u003cpath to data\u003e:/config \\\n  -p 47984-47990:47984-47990/tcp \\\n  -p 48010:48010 \\\n  -p 47998-48000:47998-48000/udp \\\n  \u003cimage\u003e\n```\n\n### Using docker-compose\nCreate a `docker-compose.yml` file with the following contents (substitute your `\u003cvalues\u003e`):\n\n```yaml\nversion: '3'\nservices:\n  \u003cimage_name\u003e:\n    image: \u003cimage\u003e\n    container_name: sunshine\n    restart: unless-stopped\n    volumes:\n      - \u003cpath to data\u003e:/config\n    environment:\n      - PUID=\u003cuid\u003e\n      - PGID=\u003cgid\u003e\n      - TZ=\u003ctimezone\u003e\n    ipc: host\n    ports:\n      - \"47984-47990:47984-47990/tcp\"\n      - \"48010:48010\"\n      - \"47998-48000:47998-48000/udp\"\n```\n\n### Using podman run\nCreate and run the container (substitute your `\u003cvalues\u003e`):\n\n```bash\npodman run -d \\\n  --device /dev/dri/ \\\n  --name=\u003cimage_name\u003e \\\n  --restart=unless-stopped \\\n  --userns=keep-id \\\n  -e PUID=\u003cuid\u003e \\\n  -e PGID=\u003cgid\u003e \\\n  -e TZ=\u003ctimezone\u003e \\\n  -v \u003cpath to data\u003e:/config \\\n  -p 47984-47990:47984-47990/tcp \\\n  -p 48010:48010 \\\n  -p 47998-48000:47998-48000/udp \\\n  \u003cimage\u003e\n```\n\n### Parameters\nYou must substitute the `\u003cvalues\u003e` with your own settings.\n\nParameters are split into two halves separated by a colon. The left side represents the host and the right side the\ncontainer.\n\n**Example:** `-p external:internal` - This shows the port mapping from internal to external of the container.\nTherefore `-p 47990:47990` would expose port `47990` from inside the container to be accessible from the host's IP on\nport `47990` (e.g. `http://\u003chost_ip\u003e:47990`). The internal port must be `47990`, but the external port may be changed\n(e.g. `-p 8080:47990`). All the ports listed in the `docker run` and `docker-compose` examples are required.\n\n\n| Parameter                   | Function             | Example Value      | Required |\n|-----------------------------|----------------------|--------------------|----------|\n| `-p \u003cport\u003e:47990`           | Web UI Port          | `47990`            | True     |\n| `-v \u003cpath to data\u003e:/config` | Volume mapping       | `/home/sunshine`   | True     |\n| `-e PUID=\u003cuid\u003e`             | User ID              | `1001`             | False    |\n| `-e PGID=\u003cgid\u003e`             | Group ID             | `1001`             | False    |\n| `-e TZ=\u003ctimezone\u003e`          | Lookup [TZ value][1] | `America/New_York` | False    |\n\nFor additional configuration, it is recommended to reference the *Games on Whales*\n[sunshine config](https://github.com/games-on-whales/gow/blob/2e442292d79b9d996f886b8a03d22b6eb6bddf7b/compose/streamers/sunshine.yml).\n\n[1]: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n\n#### User / Group Identifiers:\nWhen using data volumes (-v flags) permissions issues can arise between the host OS and the container. To avoid this\nissue you can specify the user PUID and group PGID. Ensure the data volume directory on the host is owned by the same\nuser you specify.\n\nIn this instance `PUID=1001` and `PGID=1001`. To find yours use id user as below:\n\n```bash\n$ id dockeruser\nuid=1001(dockeruser) gid=1001(dockergroup) groups=1001(dockergroup)\n```\n\nIf you want to change the PUID or PGID after the image has been built, it will require rebuilding the image.\n\n## Supported Architectures\n\nSpecifying `lizardbyte/sunshine:latest-\u003cSUNSHINE_OS\u003e` or `ghcr.io/lizardbyte/sunshine:latest-\u003cSUNSHINE_OS\u003e` should\nretrieve the correct image for your architecture.\n\nThe architectures supported by these images are shown in the table below.\n\n| tag suffix      | amd64/x86_64 | arm64/aarch64 |\n|-----------------|--------------|---------------|\n| debian-bookworm | ✅            | ✅             |\n| ubuntu-22.04    | ✅            | ✅             |\n| ubuntu-24.04    | ✅            | ✅             |\n","permissions":{"read":true,"write":false,"admin":false},"media_types":["application/vnd.docker.container.image.v1+json","application/vnd.docker.distribution.manifest.list.v2+json","application/vnd.oci.image.index.v1+json"],"content_types":["image"],"categories":[],"immutable_tags_settings":{"enabled":false,"rules":[".*"]},"storage_size":616952750487,"source":null}