Netatalk - Free and Open Source AFP File Server

Continuous Integration: [Build Status] [Test Status] [Container Status]

Code Quality: [Security] [Reliability] [Maintainability]

Supply Chain Security: [OpenSSF Scorecard] [OpenSSF Best Practices]

About Netatalk

Netatalk is a Free and Open Source file server for Unix-like operating
systems that implements the Apple Filing Protocol (AFP) over TCP/IP and
AppleTalk. AFP is the native file sharing protocol used on Apple II,
Classic Mac OS, early Mac OS X, as well as one of several supported
protocols on macOS. Netatalk is also compatible with many 3rd party AFP
clients, including afpfs-ng and afp-perl.

Why Should I Use Netatalk?

If you have a local network of macOS, Mac OS X, Classic Mac OS, or even
Apple II computers, running a Netatalk AFP server allows you to share,
collaborate on, and back up files remotely. The latest macOS at the time
of writing (macOS 26 Tahoe) comes with a built-in AFP client, so
Netatalk can act as a seamless bridge between new and old Macs.

Compared to cross-platform file sharing protocols like NFS and FTP,
Netatalk delivers a Mac-like user experience, with seamless integration
of Mac filesystem metadata - notably Extended Attributes on macOS and
resource forks on Classic Mac OS - as well as compatibility with modern
macOS features such as Bonjour, Time Machine, and Spotlight.

Compared to Samba (SMB), Netatalk has demonstrably faster transfer
speeds, and stronger backwards compatibility with OS X 10.8 Mountain
Lion clients and earlier.

AppleTalk

Netatalk supports the AppleTalk family of protocols, including the DDP
transport layer for AFP file sharing with very old Macs or Apple II
computers.

In addition, a print server, time server, MacIP gateway bridge, and
Apple II netboot server are also provided.

All versions of Netatalk except the 3.x release series can speak
AppleTalk. However, your host OS must supply an AppleTalk networking
stack to be able to use this feature. Please read the AppleTalk chapter
in the manual for more information.

Documentation

To aid in your installation and configuration of Netatalk, a
comprehensive manual is published on the project website.

Additionally, each Netatalk program and configuration file also has a
man page which can be accessed on the command line, f.e. man afpd.

Collaborative wiki articles maintained by project members can be found
on the GitHub wiki, which is also mirrored on the Netatalk website.

Community

Netatalk developers and users can be found in online communal spaces
like TinkerDifferent or 68kmla. You can head over there if you want to
ask for help or share your Netatalk stories.

There is also an official Netatalk Discussions board on GitHub which is
the best place to ask for technical assistance.

Finally, the traditional place where Netatalk developers and users
interact with each other are the netatalk-admins and netatalk-devel
mailing lists. While these lists aren't as active as they used to be,
the archives are a veritable treasure trove of decades of Mac networking
know-how.

Installation

Most OS distributions and package repositories ship a version of
Netatalk. If you want a pre-built binary package, try your package
manager first.

To get started with building Netatalk from source code, the Installation
Quick Start is a good starting point.

Container deployments

Netatalk is distributed as a container image and can be deployed with
containerization engines such as Docker or Podman.

Read the container readme for more information.

Administrative GUI

A Webmin module for Netatalk is available, used for configuring and
operating the Netatalk daemons through a convenient web interface.

See the Webmin module readme for instructions how to install and get
started with the module. or this overview of the module's feature set.

Contributions

Bug reports and feature requests should be filed as GitHub issue
tickets.

Before contributing code to the project, please read the Contributing
readme for the coding and collaboration conventions used by this
project.

PRs are automatically picked up by GitHub CI, which runs the builds,
integration tests, as well as static analysis scan on SonarCloud (the
latter only for PRs created by project members.)

Security

See the Security Policy for a breakdown of Netatalk version supported
with security patches, our security vulnerability reporting guidelines,
as well as the full record of historical security advisories.

We would love to hear from you if you think you found a security
vulnerability in Netatalk. Please read the above policy and then file a
security issue ticket with us. We promise to follow up with you as soon
as possible.

Hosting

This project is currently hosted on GitHub. This is not ideal; the
GitHub platform itself is a proprietary system that is not Free and Open
Souce Software (FOSS). We are deeply concerned about the long term
sustainability of using a proprietary system like GitHub to develop our
FOSS project.

We have an open ticket on our GitLab mirror for project members and
volunteers to discuss hosting options.

If you are a contributor who prefer to not use GitHub, please see the
Developer FAQ for instructions on how to create and submit patches
without using GitHub directly.

License and Copyright

The netatalk software package is distributed under the GNU General
Public License v2. However, individual source files or modules may be
covered by other open source licenses. Refer to the headers of each
source file, or the copyright/license notice in a module subdir.

Any use of this project's code to train commercial large language models
was done without permission by this project's contributors. We protest
the use of our code in a way that goes against the word and spirit of
our open source licenses.
