netatalk/netatalk3

By netatalk

Updated almost 2 years ago
Archived

DEPRECATED; Please use netatalk/netatalk

Image
Networking
4

10K+

netatalk/netatalk3 repository overview

DEPRECATED

This repository is no longer being updated. Please migrate your containers to netatalk/netatalk.

COMPATIBILITY WARNING

If you previously used the Netatalk 3.1.18 image for making Time Machine backups in macOS, you may run into errors after upgrading to the Netatalk 3.2.0 image or later. It is recommended to discard the backup sparsebundle and redo the backup. If you absolutely must access the older backup sparsebundle, downgrading to the 3.1.18 image should restore access.


About Netatalk

Netatalk v3 is a performant Open Source file server that implements the Apple Filing Protocol (AFP) 3.4 over TCP/IP.

It is capable of serving many macOS or Classic Mac OS clients simultaneously as an AppleShare file server.

How to Use

These are examples. Please replace the default username and password with something more secure.

With docker compose (docker managed volume and Zeroconf).

services:
  netatalk:
    image: netatalk/netatalk3:latest
    network_mode: "host"
    cap_add:
      - NET_ADMIN
    volumes:
      - afpshare:/mnt/afpshare
      - afpbackup:/mnt/afpbackup
      - /var/run/dbus:/var/run/dbus
    environment:
      - "AFP_USER=atalk"
      - "AFP_PASS=atalk"
volumes:
  afpshare:
  afpbackup:

With docker run

docker run --rm --network host --cap-add=NET_ADMIN --volume "/path/to/share:/mnt/afpshare" --volume "/var/run/dbus:/var/run/dbus" --env AFP_USER=atalk --env AFP_PASS=atalk --name netatalk netatalk/netatalk3:latest

AppleTalk

Support for the AppleTalk network stack is missing in Netatalk v3. If you need AppleTalk to network Classic Mac OS or Apple II computers, please upgrade to Netatalk 4.0.

Container configuration

AFP uses TCP port 548, so consequently the Netatalk container is configured to expose this port.

For simplicity, exactly one user, one shared volume, and one Time Machine volume is supported in this image. It is hard coded to output afpd logs to the container's stdout, default info log level.

It is recommended to set up either a bind mount, or a Docker managed volume for persistent storage. Without this, the shared volume be stored in volatile storage that is lost upon container shutdown.

Service discovery

In order to use Zeroconf service discovery, the container requires the "host" network driver with NET_ADMIN capabilities.

Additionally, we rely on the host's D-Bus for Zeroconf, achieved with a bind mount for /var/run/dbus:/var/run/dbus.

These settings reduces the isolation of the Netatalk container, so if your priority is isolation and security, the file server will function perfectly fine without them. The tradeoff is that you will have to manually specify the host’s IP address from the client every time when connecting to the AFP file server.

Environment Variables

Mandatory

These are required to set the credentials used to authenticate with the file server.

  • AFP_USER
  • AFP_PASS
Optional
  • AFP_GROUP <- group that owns the shared volume, and that AFP_USER gets assigned to
  • AFP_UID <- specify user id of AFP_USER
  • AFP_GID <- specify group id of AFP_GROUP
  • SERVER_NAME <- the name of the server reported to Zeroconf
  • SHARE_NAME <- the name of the file sharing volume
  • AFP_LOGLEVEL <- the verbosity of logs; default is "info"
  • INSECURE_AUTH <- when non-zero, enable the "Clear Text" and "Guest" UAMs
  • MANUAL_CONFIG <- when non-zero, skip netatalk config file modification, allowing you to manually manage them

Reporting issues

If you found a bug in the Netatalk docker image or Netatalk itself, please raise an issue ticket in GitHub. We will follow up on your report as soon as possible.

See Also

Tag summary

Content type

Image

Digest

sha256:de8bb7b30

Size

280.7 MB

Last updated

almost 2 years ago

docker pull netatalk/netatalk3