Econet file/printer server running over aun.
3.8K
A modern Econet fileserver for Acorn/BBC Micro kit — speaking Acorn's AUN protocol (Econet over UDP/IP) and, via the EconetUSB adapter, real physical Econet. Bring your 8-bit machines onto a network built for 2026 without giving up a single *command.
GitHub: https://github.com/johnhomelan/aun-filestore
Run one lightweight container and get a full Econet site: file server, print server, IP routing, and a handful of services for vintage clients that most bridges never touch — all managed from a browser.
Three transports run simultaneously, with the correct one chosen automatically per packet — services never know which was used:
| Encapsulation | Transport | Use case |
|---|---|---|
| AUN | UDP/IP | Standard Acorn networking over Ethernet |
| Piconet | EconetUSB (serial) | Real physical Econet wire |
| WebSocket | TCP / WebSocket | Browser BBC emulators (e.g. jsbeeb) |
| Remote Bridge | TCP | Linking two server instances across a network |
Connect two AUN Filestore instances over TCP so Econet clients on one site transparently reach services on the other — HMAC-authenticated, with the local Piconet interface switching to monitor mode to forward inter-network traffic. Perfect for linking a home Econet to a friend's, or a physical wire to a cloud-hosted network.
*command compatibility, MDFS extras)Pluggable, layered virtual filesystem — mix and match per subtree:
A browser-based admin UI starts automatically (:8080 by default) — live service status, sessions and open streams, ARP/routing/NAT tables, print spool downloads, and more.
docker run --name=filestored -p 32768/udp -d crowly/aun-filestore
UDP port 32768 must be exposed — that's the AUN traffic port.
The image EXPOSEs every port filestored can bind. Addresses and port numbers are all configurable (see *_listen_port in the config reference); the values below are the defaults. Publish (-p) only the ones you actually use.
| Port | Service | What it's for |
|---|---|---|
32768/udp | AUN | Econet-over-UDP traffic to and from AUN clients. Required. |
8080/tcp | Admin web UI | Browser-based admin front end (service status, sessions, ARP/routing/NAT tables, print spool downloads). |
8090/tcp | WebSocket bridge | Client-facing WebSocket transport for browser BBC emulators such as jsbeeb. |
8091/tcp | Remote Socket Protocol relay | Relays raw UDP socket traffic to helper daemons (e.g. sharefsd, dnsd, ntpd) running in other containers. Binds 127.0.0.1 unless reconfigured. |
8092/tcp | Remote Provider Protocol relay | Relays whole Econet packets to Service Providers hosted elsewhere (e.g. sql-serverd, ecosyslogd). |
8765/tcp | Remote Bridge Protocol | Links two AUN Filestore instances over TCP. Disabled by default; the actual port comes from each SERVER entry in remotebridge.txt — 8765 is the documented example. |
docker run --name=filestored -p 32768/udp \
-v /storage/root:/var/lib/aun-filestore-root \
-v /storage/print:/var/spool/aun-filestore-print \
-v /storage/config:/etc/aun-filestored \
-v /storage/log:/var/log \
-d crowly/aun-filestore
| Volume | Purpose |
|---|---|
/var/lib/aun-filestore-root | Root of the exported filestore |
/var/spool/aun-filestore-print | Submitted print jobs |
/etc/aun-filestored | Config directory |
/var/log | Server logs |
To drive a real Econet wire you need an EconetUSB adaptor (a Raspberry Pi Pico running the Econet firmware). Plugged into the host it enumerates as a USB CDC serial device — usually /dev/ttyUSB0, or /dev/ttyACM0 for a bare Pico. filestored reads the adaptor from /dev/econet inside the container (the piconet_device config default), so pass the host device in under that name with --device:
docker run --name=filestored -p 32768/udp \
--device=/dev/ttyUSB0:/dev/econet \
-v /storage/config:/etc/aun-filestored \
-d crowly/aun-filestore
--device=/dev/ttyACM0:/dev/econet. If several USB serial devices are present, prefer a stable /dev/serial/by-id/... path.--device (not a -v bind mount) — only --device adds the cgroup rule that lets the container actually do I/O on the node.--device=/dev/ttyUSB0) and set piconet_device="/dev/ttyUSB0" in /etc/aun-filestored/default.conf.piconetmap.txt in the config directory listing the Econet network numbers (one per line, up to 8) reachable over the wire. With no adaptor present filestored just logs a reconnect error and carries on, so this is safe to omit when you have no hardware.Full config reference and protocol docs are in the GitHub repo.
Content type
Image
Digest
sha256:c5286f61f…
Size
427.2 MB
Last updated
9 days ago
docker pull crowly/aun-filestore