轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像
交易
充值流量¥8起我的订单
文档
工具
提交工单页面收录
emulatorjs

linuxserver/emulatorjs

LinuxServer.io 社区镜像

linuxserver/emulatorjs 是一款基于Docker的自托管网页版多平台游戏模拟器,支持NES、SNES、PS1、街机等经典主机游戏,无需复杂配置即可快速部署。通过浏览器实现跨设备(电脑、手机、平板)访问,支持自定义ROM导入与管理,还原复古游戏操作体验。轻量化设计兼顾性能与易用性,适合家庭娱乐或复古游戏收藏爱好者,让你随时随地重温童年经典游戏时光。

87 次收藏下载次数: 0状态:社区镜像维护者:LinuxServer.io 社区镜像仓库类型:镜像最近更新:1 年前
让 AI 帮你使用轩辕镜像? · 展开查看说明 · 点击收起说明

如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这句话即可:

请先完整阅读并严格遵守以下文档中的全部规则与要求:

https://xuanyuan.cloud/agents.md

在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

DockerHub 官方简介
轩辕镜像中文简介
下载命令
镜像标签列表与下载命令
轩辕镜像,不浪费每一次拉取。
点击查看

The https://linuxserver.io team brings you another container release featuring:

  • regular and timely application updates
  • easy user mappings (PGID, PUID)
  • custom base image with s6 overlay
  • weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth
  • regular security updates

Find us at:

  • https://blog.linuxserver.io - all the things you can do with our containers including How-To guides, opinions and much more!
  • https://linuxserver.io/*** - realtime support / chat with the community and the team.
  • https://discourse.linuxserver.io - post on our community forum.
  • https://fleet.linuxserver.io - an online web interface which displays all of our maintained images.
  • https://github.com/linuxserver - view the source for all of our repositories.
  • https://opencollective.com/linuxserver - please *** helping us by either donating or contributing to our budget

DEPRECATION NOTICE

This image is deprecated. We will not offer support for this image and it will not be updated.

Please *** these alternatives: https://github.com/gaseous-project/gaseous-server https://github.com/rommapp/romm/ https://github.com/webrcade/webrcade

https://github.com/linuxserver/docker-emulatorjs

https://github.com/linuxserver/emulatorjs - In browser web based emulation portable to nearly any device for many retro consoles. A mix of emulators is used between Libretro and EmulatorJS.

Supported Architectures

We utilise the docker manifest for multi-platform awareness. More information is available from docker https://distribution.github.io/distribution/spec/manifest-v2-2/#manifest-list and our announcement https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/.

Simply pulling lscr.io/linuxserver/emulatorjs:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags.

The architectures supported by this image are:

ArchitectureAvailableTag
x86-64✅amd64-<version tag>
arm64✅arm64v8-<version tag>
armhf❌

Application Setup

The Backend can be accessed at:

  • [***]

The first thing you will need to do is click to download the default art/configs from this interface, this will setup a skeleton directory in your /data mount. From there add roms to the respective roms directories and follow the on screen instructions to add them to your web frontend running on port 80.

I understand there may be some confusion as to project naming, but when this project (linuxserver/emulatorjs) started it was meant to be a simple frontend for self hosting folks to use the at the time deobfuscated code of [*] that https://github.com/ethanaobrien was working on. Since then https://github.com/EmulatorJS/EmulatorJS has evolved into it's own amazing project based on https://github.com/libretro cores that have been highly optimized to function for web. This project mostly contains custom built libretro cores found https://github.com/linuxserver/libretro-cores. So in general despite the naming of this project and the logo this is just a docker container with a web based backend for generating a useable self hosted emulation website and is in no way affiliated with https://github.com/EmulatorJS/EmulatorJS.**

This container (outside of the profile functionality) only generates a static set of files that can be hosted on any web provider even object storage. Everything runs in the client's browser and there are no dependencies on this container. To extract/copy this website it is at the path /emulatorjs/frontend inside the container. If you are happy with the catalouge you have created and no longer want to run stuff like the IPFS backend or want to upload these files to some other hosting provider you can simply copy the contents of that directory and kill off this container. This container can also be started without IPFS once you collection is set using the environment variable -e DISABLE_IPFS=true.

Read Only Rom Mounts

Mounting in existing rom directories Read Only can be achieved by using a special root path /roms, For example for NES:

-v /path/to/nes/roms:/roms/nes:ro

The folder names for systems are:

  • 3do
  • arcade
  • atari2600
  • atari5200
  • atari7800
  • colecovision
  • doom
  • gb
  • gba
  • gbc
  • jaguar
  • lynx
  • msx
  • n64
  • nds
  • nes
  • ngp
  • odyssey2
  • pce
  • psx
  • sega32x
  • segaCD
  • segaGG
  • segaMD
  • segaMS
  • segaSaturn
  • segaSG
  • snes
  • vb
  • vectrex
  • ws

Compatible and Tested Browsers

Chromium Based Browsers- This is the golden standard whether desktop or on mobile (Android) Chrome/Chromium/Brave/Edge should always be used. They have the best performance when it comes to WebAssembly.

Firefox- This will work (at reduced performance though) without tested controller support.

Safari iOS- Safari performs well and has controller support though in recent updates the amount of ram available to a single tab (~265MB) makes it impossible to run n64 emulation or anything CD based. Do not use https://developer.apple.com/documentation/webkit/wkwebview applications like Chrome or Firefox on iOS they will not be detected properly in the client software. Your best bet in iOS is to add the web page to your home screen from Safari and launch from there to get a full screen interface.

Edge Xbox Series X/S- This also performs well and was the basis of this project though recent console updates have knocked the ram available to a single tab from 1GB to 128MB making it impossible to run CD based games or n64.

Navigation Basics

Retroarch Menu- The Retroarch menu can be accessed using F1 on keyboard, start/select/R1/L1 at the same time on controller, or pressing the button in the top left in touch mode.

Fast Scrolling- Items in the menu can be scrolled by letter by using PgUp/PgDn on the keyboard or the R1/L1 buttons on controller. In touch mode scrolling can be sped up by touching and dragging (while holding) either up or down.

For Xbox users please click the select button a couple times after launching a game to ensure the B button does not trigger a "back" action in the browser. (official name "view button" it is the two small squares) Exiting the controller mode and back to browser controls can be triggered by holding the start button for 3 seconds. (official name "menu button" the three lines)

Usage

To help you get started creating a container from this image you can either use docker-compose or the docker cli.

[!NOTE] Unless a parameter is flaged as 'optional', it is mandatory and a value must be provided.

docker-compose (recommended, https://docs.linuxserver.io/general/docker-compose)

yaml
---
services:
  emulatorjs:
    image: lscr.io/linuxserver/emulatorjs:latest
    container_name: emulatorjs
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - SUBFOLDER=/ #optional
    volumes:
      - /path/to/config:/config
      - /path/to/data:/data
    ports:
      - 3000:3000
      - 80:80
      - 4001:4001 #optional
    restart: unless-stopped

docker cli (https://docs.docker.com/engine/reference/commandline/cli/)

bash
docker run -d \
  --name=emulatorjs \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -e SUBFOLDER=/ `#optional` \
  -p 3000:3000 \
  -p 80:80 \
  -p 4001:4001 `#optional` \
  -v /path/to/config:/config \
  -v /path/to/data:/data \
  --restart unless-stopped \
  lscr.io/linuxserver/emulatorjs:latest

Parameters

Containers are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate <external>:<internal> respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.

ParameterFunction
-p 3000:3000Rom/artwork management interface, used to generate/manage config files and download artwork
-p 80:80Emulation frontend containing static web files used to browse and launch games
-p 4001IPFS peering port, if you want to participate in the P2P network to distribute frontend artwork please forward this to the Internet
-e PUID=1000for UserID - see below for explanation
-e PGID=1000for GroupID - see below for explanation
-e TZ=Etc/UTCspecify a timezone to use, see this list.
-e SUBFOLDER=/Specify a subfolder for reverse proxies IE '/FOLDER/'
-v /configPath to store user profiles
-v /dataPath to store roms/artwork

Environment variables from files (Docker secrets)

You can set any environment variable from a file by using a special prepend FILE__.

As an example:

bash
-e FILE__MYVAR=/run/secrets/mysecretvariable

Will set the environment variable MYVAR based on the contents of the /run/secrets/mysecretvariable file.

Umask for running applications

For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.

User / Group Identifiers

When using volumes (-v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID.

Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.

In this instance PUID=1000 and PGID=1000, to find yours use id your_user as below:

bash
id your_user

Example output:

text
uid=1000(your_user) gid=1000(your_user) groups=1000(your_user)

Docker Mods

We publish various https://github.com/linuxserver/docker-mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.

Support Info

  • Shell access whilst the container is running:

    bash
    docker exec -it emulatorjs /bin/bash
    
  • To monitor the logs of the container in realtime:

    bash
    docker logs -f emulatorjs
    
  • Container version number:

    bash
    docker inspect -f '{{ index .Config.Labels "build_version" }}' emulatorjs
    
  • Image version number:

    bash
    docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/emulatorjs:latest
    

Updating Info

Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (noted in the relevant readme.md), we do not recommend or support updating apps inside the container. Please consult the Application Setup section above to see if it is recommended for the image.

Below are the instructions for updating containers:

Via Docker Compose

  • Update images:

    • All images:

      bash
      docker-compose pull
      
    • Single image:

      bash
      docker-compose pull emulatorjs
      
  • Update containers:

    • All containers:

      bash
      docker-compose up -d
      
    • Single container:

      bash
      docker-compose up -d emulatorjs
      
  • You can also remove the old dangling images:

    bash
    docker image prune
    

Via Docker Run

  • Update the image:

    bash
    docker pull lscr.io/linuxserver/emulatorjs:latest
    
  • Stop the running container:

    bash
    docker stop emulatorjs
    
  • Delete the container:

    bash
    docker rm emulatorjs
    
  • Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your /config folder and settings will be preserved)

  • You can also remove the old dangling images:

    bash
    docker image prune
    

Image Update Notifications - Diun (Docker Image Update Notifier)

[!TIP] We recommend https://crazymax.dev/diun/ for update notifications. Other tools that automatically update containers unattended are not recommended or supported.

Building locally

If you want to make local modifications to these images for development purposes or just to customize the logic:

bash
git clone https://github.com/linuxserver/docker-emulatorjs.git
cd docker-emulatorjs
docker build \
  --no-cache \
  --pull \
  -t lscr.io/linuxserver/emulatorjs:latest .

The ARM variants can be built on x86_64 hardware and vice versa using lscr.io/linuxserver/qemu-static

bash
docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset

Once registered you can define the dockerfile to use with -f Dockerfile.aarch64.

Versions

  • 28.01.24: - Skip IPFS config if DISABLE_IPFS is set as env variable.
  • 27.01.24: - Add atari5200 support.
  • 24.01.24: - Pin node back on aarch64 as well for compatibility.
  • 23.01.24: - Add logic to symlink out RO rom directories to support upgrades.
  • 14.01.24: - Update remaining cores for melonds and yabause threaded to fix audio issues.
  • 11.01.24: - Use Node 16 on x86 image to restore metadata uploads in backend, update psx core to current.
  • 07.01.24: - Update to use new Mupen64 plus core by default.
  • 06.01.24: - Update many emulators to fix audio issues and use latest codebases.
  • 29.12.23: - Rebase to Alpine 3.19, add option to launch without IPFS.
  • 09.08.23: - Rebase to Alpine 3.18, migrate to s6v3.
  • 06.07.23: - Deprecate armhf. As announced https://www.linuxserver.io/blog/a-farewell-to-arm-hf
  • 24.11.22: - Update IPFS links for chdman.
  • 04.04.22: - Ingest pre-built chdman bins during build time.
  • 23.02.22: - Update ingestion point for emulatorjs bins.
  • 25.01.22: - Allow users to mount in existing rom directories.
  • 14.01.22: - Add profile paths and rebase to Alpine 3.15.
  • 04.01.22: - Add headers needed for Threaded emulators.
  • 29.11.21: - Add wasm mime type to NGINX.
  • 26.11.21: - Configure IPFS in a lower power mode, use homebuilt blobs for emu cores.
  • 19.11.21: - Pin retroarch version.
  • 14.11.21: - Update default cores to ingest.
  • 23.10.21: - Initial release.

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 emulatorjs 镜像标签

docker pull docker.xuanyuan.run/linuxserver/emulatorjs:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull linuxserver/emulatorjs:<标签>

轩辕镜像配置手册

按平台快速找到配置文档

一键安装

一键安装 Docker

Linux Docker 一键安装

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Apple Container

macOS 原生容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

Unraid

Unraid NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

爱快 4.0 · iKuai 镜像加速

宝塔面板

一键配置镜像源

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

版本功能对比

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

专属域名用法

专属域名 · 开启停用 · 多仓库

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 专业版 · 企业版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

docker.sock / daemon

账号

失败是否计费

manifest · blob · 计费

申请开票(企业 / 个人)

开票 · 发票 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
LinuxServer.io 社区镜像
...
linuxserver/emulatorjs
定价查看流量套餐与价格
博客Docker 镜像公告与技术博客
专业版 · 高速稳定拉取镜像
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
50GB 仅 ¥8/年
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
用户协议·隐私政策·增值电信业务经营许可证:浙B2-20261007·©2024-2026 源码跳动©2024-2026 杭州源码跳动科技有限公司·商务合作:点击复制邮箱

更多 emulatorjs 镜像推荐

marce007/emulatorjs logo

marce007/emulatorjs

marce007
emulatorjs emulador de consolas snes gba ps y más (roms->) https://www.emulatorgames.net/roms
1万+ 次下载
2 年前更新
bratcliff009/emulatorjs logo

bratcliff009/emulatorjs

bratcliff009
containerized emulatorJS for a class
1.8千+ 次下载
1 年前更新
wghaos/emulatorjs logo

wghaos/emulatorjs

wghaos
暂无描述
1万+ 次下载
1 年前更新
lsiodev/emulatorjs logo

lsiodev/emulatorjs

lsiodev
基于浏览器的网页版复古游戏机模拟器,支持多种设备,集成Libretro和EmulatorJS混合模拟器,可通过Web界面管理ROM和游戏库,提供便捷的自托管复古游戏体验。
7.8千+ 次下载
1 年前更新
lspipepr/emulatorjs logo

lspipepr/emulatorjs

lspipepr
暂无描述
7.1千+ 次下载
1 年前更新
yuxiang115/emulatorjs logo

yuxiang115/emulatorjs

yuxiang115
暂无描述
2.1千+ 次下载
1 年前更新

查看更多 emulatorjs 相关镜像