Sign inSign up

crowly/aun-filestore

By crowly

Updated 9 days ago

Econet file/printer server running over aun.

Image
Networking
1

3.8K

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.txt8765 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

9 days ago

docker pull crowly/aun-filestore