Lastest Netatalk with configurable user/pass and volume settings to run Time machine
500K+
A docker container to compile the lastest version of Netatalk in order to run a Time Machine server.
If you want to use this on an ARM-Device (like the Raspberry Pi), you have two options:
$ docker run -h timemachine --name timemachine --restart=unless-stopped -d -v /external_volume:/timemachine -it -p 548:548 -p 636:636 odarriba/timemachine-rpi
$ docker build -t timemachine-rpi:latest -f Dockerfile.rpi .
$ docker run -h timemachine --name timemachine --restart=unless-stopped -d -v /external_volume:/timemachine -it -p 548:548 -p 636:636 timemachine-rpi
To download the docker container and execute it, simply run:
$ docker run -h timemachine --name timemachine --restart=unless-stopped -d -v /external_volume:/timemachine -it -p 548:548 -p 636:636 odarriba/timemachine
Replace external_volume with a local path where you want to store your data.
As the image has been started using the --restart=always flag, it will start when the computers boots up.
To add a user, run:
$ docker exec timemachine add-account USERNAME PASSWORD VOL_NAME VOL_ROOT [VOL_SIZE_MB]
But take care that:
VOL_NAME will be the name of the volume shown on your OSX as the network driveVOL_ROOT should be an absolute path, preferably a sub-path of /timemachine (e.g., /timemachine/backup), so it will be stored in the according sub-path of your external volume.VOL_SIZE_MB is an optional parameter. It indicates the max volume size for that user.Now you have a docker instance running netatalk.
Avahi daemon is commonly used to help your computers to find the services provided by a server.
Avahi isn't built into this Docker image because, due to Docker's networking limitations, Avahi can't spread it's messages to announce the services.
If you want to enable this feature, you can install Avahi daemon on your host following these steps (Ubuntu version):
avahi-daemon: run sudo apt-get install avahi-daemon avahi-utilsavahi/nsswitch.conf to /etc/nsswitch.confavahi/afpd.service to /etc/avahi/services/afpd.servicesudo /etc/init.d/avahi-daemon restartMake sure
your server can receive traffic on port 548 and 636 (e.g., ufw allow 548, (636 respectively)).
your Mac allows outgoing connections (Little Snitch?)
To start using it, follow these steps:
If you use Avahi, open Finder, go to Shared and connect to your server with your new username and password.
Alternatively (or if you don't use Avahi) from Finder press CMD-K and type afp://your-server where your-server can be your server's name or IP address (e.g., afp://my-server or afp://192.168.0.5).
Go to System Preferences, and open Time Machine settings.
Open Add or Remove Backup Disk...
Select your new volume.
In the example below, the Docker instance is running on server central. For USERNAME the account Backup along with a PASSWORD was created. Once connected, the account Backup is available in Time Machine settings:

You can configure the container using environment variables (for example, if you use a docker-compose environment).
There are these environment variables:
Using these variables, the container will create a user at boot time (only one per container) and the data will be stored directly in the volume /timemachine, without subfolders.
Make sure you actually mount the server volume (see Step 5) before trying to find it in Time Machine settingss.
The idea of using avahi-daemon installed in the bare metal server is to avoid having to execute the container with --net=host, which a potentially insecure flag. But, as the last option to check things out, it should be fine. You just should know what you are enabling.
A Time Machine network disk is just a disk image in an AFP volume that supports the correct level of encryption. So to be recognised by the TimeMachine daemon, you should mount the unit manually for the first time, configure TimeMachine on your computer, and then the OS will do that for you automatically.
Because if you don't do it this way, the discovery message won't be able to reach your computers.
Content type
Image
Digest
Size
22.3 MB
Last updated
about 9 years ago
docker pull odarriba/timemachine-rpi