Docker
The same server runs in Docker on Linux, a NAS or anything else with Docker, with the same dashboard. Put the docker-compose.yml below in a folder, set the path to your games in it, then:
mkdir config && sudo chown 1000:1000 configdocker compose up -dand open the dashboard at http://<the machine's address>:8360. Set a password for it on its Settings page (or with NETDISC_WEB_PASSWORD): without one, anyone on your network can open it and change its settings. docker compose logs -f shows the server’s log too.
It uses the image ghcr.io/marcusisdahl/netdisc360, published with each release for x86-64 and ARM64. To build it yourself instead, clone the repository and run docker compose up -d --build.
docker-compose.yml
Section titled “docker-compose.yml”The file’s comment “See “Docker” in README.md” refers to the settings on this page.
# NetDisc360 (a NetISO server for Aurora) in Docker. Put your games in a# folder, set the path below, then: docker compose up -d# and open the dashboard at http://<this machine>:8360.# See "Docker" in README.md for every setting.services: netdisc: image: ghcr.io/marcusisdahl/netdisc360:latest build: . container_name: netdisc restart: unless-stopped # Host networking: the Xbox connects straight to this machine on port 4323, # and the server sees the Xbox's real address. (Docker Desktop on Windows # or macOS: use the ports below instead and set NETDISC_XBOX.) network_mode: host # ports: # - "4323:4323" # NetISO # - "8360:8360" # the dashboard volumes: # Your games: ISOs, extracted games and GOD packages, subfolders too. # Read-only: the server never writes to them. - ./games:/games:ro # The dashboard's settings. Must be writable by user 1000:1000 # (sudo chown 1000:1000 ./config). - ./config:/config environment: TZ: Etc/UTC # your time zone, for the log's times # A password for the dashboard. Without one, anyone on your network can # open it and change the settings. (Or set one on the dashboard.) NETDISC_WEB_PASSWORD: "" # The rest can be set on the dashboard instead. These are only the first # start's settings: once saved in ./config, the dashboard's win. # Only these consoles' game folders are kept up to date (IP addresses, # separated by commas). Empty: every console that connects. NETDISC_XBOX: "" # Aurora's FTP login (Aurora: Settings > FTP). NETDISC_FTP_USER: xboxftp NETDISC_FTP_PASSWORD: xboxftp # NETDISC_NO_CATEGORY: "true" # leave Aurora's Xbox 360 category alone # NETDISC_NO_PUSH: "true" # only serve games, don't touch the Xbox # Files must be readable by this user (default 1000:1000). # user: "1000:1000"Settings
Section titled “Settings”| Setting | Default | |
|---|---|---|
volume /games |
Your games (read-only is fine). Mount more folders under it, like /games/isos, or anywhere else and add them on the dashboard. |
|
volume /config |
The dashboard’s settings (netdisc.ini). It must be writable by user 1000:1000. |
|
NETDISC_WEB_PASSWORD |
The dashboard’s password. Or NETDISC_WEB_PASSWORD_FILE with the path of a Docker secret. Set this way, it can’t be changed on the dashboard. |
|
NETDISC_WEB_PORT |
8360 | The dashboard’s port. 0: no dashboard. |
NETDISC_XBOX |
every console that connects | Only these consoles’ game folders are kept up to date: IP addresses, separated by commas. Needed on Docker Desktop (Windows, macOS), where the server doesn’t see the consoles’ own addresses. |
NETDISC_FTP_USER |
xboxftp |
Aurora’s FTP login. |
NETDISC_FTP_PASSWORD |
xboxftp |
Or NETDISC_FTP_PASSWORD_FILE with the path of a Docker secret. |
NETDISC_NO_CATEGORY |
true: leave Aurora’s Xbox 360 category alone. |
|
NETDISC_NO_SCAN |
true: don’t ask Aurora to scan after changes. |
|
NETDISC_NO_PUSH |
true: only serve games; leave the console alone. |
|
NETDISC_XBOX_FOLDER, NETDISC_AURORA |
/Hdd1/NetISO, /Hdd1/Apps/Aurora |
As --xbox-folder and --aurora (see the server’s options). |
NETDISC_PORT, NETDISC_FTP_PORT |
4323, 21 | |
NETDISC_VERBOSE |
true: log every request. |
|
TZ |
UTC | Your time zone, for the log’s times. |
-
The variables from
NETDISC_XBOXdown are only the first start’s settings. Once the server has saved its settings in/config, what’s saved there wins, and you change them on the dashboard. (NETDISC_WEB_PASSWORD, the ports andNETDISC_VERBOSEalways apply.) -
The compose file uses host networking, so the console reaches the server on port 4323 of the host and the server sees the console’s real address. With port mapping instead (
ports:with4323:4323and8360:8360, as on Docker Desktop), setNETDISC_XBOX. -
The server runs as user 1000:1000. If it can’t read your games, set
user:in the compose file to an ID that can (and giveconfigto that ID). -
Without Docker Compose:
Terminal window docker run -d --name netdisc --network host --restart unless-stopped -v /path/to/games:/games:ro -v /path/to/config:/config -e NETDISC_WEB_PASSWORD=<a password> ghcr.io/marcusisdahl/netdisc360
To update the image, see Updating.