Sign inSign up

crowly/aun-filestore

By crowly

•Updated about 1 month ago

Econet file/printer server running over aun.

Image
Networking
1

3.9K

crowly/aun-filestore repository overview

⁠AUN Filestore

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⁠

⁠Why you'd want this

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.

⁠Network Encapsulation

Three transports run simultaneously, with the correct one chosen automatically per packet — services never know which was used:

EncapsulationTransportUse case
AUNUDP/IPStandard Acorn networking over Ethernet
PiconetEconetUSB (serial)Real physical Econet wire
WebSocketTCP / WebSocketBrowser BBC emulators (e.g. jsbeeb)
Remote BridgeTCPLinking two server instances across a network
⁠Remote Bridge

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.

⁠Services

  • File Server — full Acorn filestore semantics (priv model, boot flags, quotas, *command compatibility, MDFS extras)
  • Print Server — spools Econet print jobs per-user, with optional conversion via a configurable shell script, downloadable from the admin UI
  • IPv4 over Econet — DCI-2/DCI-4 ARP, IP routing between Econet networks, a TCP NAT proxy so BBC Micros can reach real LAN/internet TCP services, and basic ICMP
  • BBCTerm — terminal access to Linux shell commands from a BBC client
  • TorchNet — CP/M file service for Torch Communicator workstations
  • MaceMail — the vintage 1985 MaceMail electronic-mail system, backed by your filestore users
  • Teletext — an Econet TSERV teletext server, optionally auto-populated from the Teefax archive
  • Viewdata — bridges an Econet station to a remote Prestel-style viewdata server (e.g. Telstar) over TCP

⁠Storage (VFS)

Pluggable, layered virtual filesystem — mix and match per subtree:

  • Native Unix filesystem
  • Acorn DFS/ADFS/AFS and SJ Research MDFS/HDFS disc images, mounted as directories
  • Amazon S3 (or S3-compatible, e.g. MinIO) buckets
  • Remote HTTP catalogues, for shared read-only public archives

⁠Admin Web Front End

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 Usage

docker run --name=filestored -p 32768/udp -d crowly/aun-filestore

UDP port 32768 must be exposed — that's the AUN traffic port.

⁠Exposed ports

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.

PortServiceWhat it's for
32768/udpAUNEconet-over-UDP traffic to and from AUN clients. Required.
8080/tcpAdmin web UIBrowser-based admin front end (service status, sessions, ARP/routing/NAT tables, print spool downloads).
8090/tcpWebSocket bridgeClient-facing WebSocket transport for browser BBC emulators such as jsbeeb.
8091/tcpRemote Socket Protocol relayRelays raw UDP socket traffic to helper daemons (e.g. sharefsd, dnsd, ntpd) running in other containers. Binds 127.0.0.1 unless reconfigured.
8092/tcpRemote Provider Protocol relayRelays whole Econet packets to Service Providers hosted elsewhere (e.g. sql-serverd, ecosyslogd).
8765/tcpRemote Bridge ProtocolLinks 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.
⁠Persistent storage
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
VolumePurpose
/var/lib/aun-filestore-rootRoot of the exported filestore
/var/spool/aun-filestore-printSubmitted print jobs
/etc/aun-filestoredConfig directory
/var/logServer logs
⁠Physical Econet (Piconet / EconetUSB)

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
  • Change the left-hand side to wherever your adaptor lives on the host, e.g. --device=/dev/ttyACM0:/dev/econet. If several USB serial devices are present, prefer a stable /dev/serial/by-id/... path.
  • Use --device (not a -v bind mount) — only --device adds the cgroup rule that lets the container actually do I/O on the node.
  • The container process runs as root, so no group/permission setup is needed for the device inside the container.
  • If you would rather keep the host path, map it unchanged (--device=/dev/ttyUSB0) and set piconet_device="/dev/ttyUSB0" in /etc/aun-filestored/default.conf.
  • Create 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⁠.

Tag summary

Content type

Image

Digest

sha256:c5286f61f…

Size

427.2 MB

Last updated

about 1 month ago

docker pull crowly/aun-filestore