Timemachine Application Support Thread


Recommended Posts

Posted (edited)

This thread is meant to provide support for issues related to the Time Machine Application Template view on GitHub

How does this Application work?
This application is based on the docker container mbentley/docker-timemachine. It will create its own share for TimeMachine clients and thus does not use the existing network share functionality in Unraid.

What is the best way to start using this Application?
I think the best way would be to start with the parameters left at their default and work your way up from there.
You will need to map a path on your host to the container for persistent data storage. For that path, you will need to execute the following command so that the container can write to it (in this example /mnt/user/timemachine is the path on the host that is used by TimeMachine):
sudo chown -R 1000:1000 /mnt/user/timemachine/

Where can I get more information about configuration options?
As mentioned above, this application is based on mbentley/docker-timemachine. Therefore the most extensive and up to date information is available in the documentation of that project .

 

Edited by moritzf
Add more information for new users
  • Like 3
Link to comment

Hello,

 

I have multiple Mac systems that I would like to use this Docker for. Would I be correct if I wanted each Mac to have its own TimeMachine backup area would I add multiple paths like the following:

 

/mnt/user/timemachine/Mac1

/mnt/user/timemachine/Mac2

/mnt/user/timemachine//Mac3

Etc.

 

Any other changes I would need to make in the Docker install?

 

Thank.

Link to comment
2 hours ago, rockrimmon said:

Hello,

 

I have multiple Mac systems that I would like to use this Docker for. Would I be correct if I wanted each Mac to have its own TimeMachine backup area would I add multiple paths like the following:

 

/mnt/user/timemachine/Mac1

/mnt/user/timemachine/Mac2

/mnt/user/timemachine//Mac3

Etc.

 

Any other changes I would need to make in the Docker install?

 

Thank.


In general, you should be able to back up multiple Macs to the same TimeMachine share without adding any further paths. If you desire to keep the backups somehow separate, I would suggest to set up a user for each Mac.

Alternatively, you could spawn mutiple instances of the Docker container. After installing the application, it should create a first docker container and the template should be accessible in the Docker-UI. You can then create further instances of the container through Docker->Add Container-> Selection of "TimeMachine" as a template. Each container can be mapped to the path on your Unraid-Host that you desire (e.g. /mnt/user/timemachine/Mac1, /mnt/user/timemachine/Mac2). 


For configuration of multiple users, I would refer you to  https://github.com/mbentley/docker-timemachine#adding-multiple-users--shares.
Following the instructions you will find there, you should be able to set up multiple users that you could each set up for the different Macs.

Link to comment
3 hours ago, UBS said:

may i ask please - this provide any functionalty difference from the native wayn of makeing share for use in timemachine?

 

1235100225_ScreenShot2022-05-25at18_36_18.thumb.png.dd39361cf3231aaaef50ade72e110fd6.png

 


I guess that you can adjust most of the settings through some trickery in Unraid as well. For any fixes or incompatibility issues however, you will be relying on Unraid/Limetech to update the corresponding components of their system.
And from what I read, it can be a hazzle to get TimeMachine up and running reliably as is.

Therefore I think there is a certain advantage of running TimeMachine as a Docker image. The docker image used (https://github.com/mbentley/docker-timemachine) is in active development and quick to fix issues. The focus of that project is clear - TimeMachine and nothing but TimeMachine.
I have been using this solution for a couple of months and it has been rock solid.

  • Like 4
Link to comment
1 hour ago, riff.79 said:

Is it advised to use the disk shares or users shares for this application?

I guess it does not really matter but I am using user shares all over my Unraid and have my timemachine share hidden from all users. That kind of makes sense because you do not want anyone toying around with the data. I only want TimeMachine to access and read/write the data.

The screenshot illustrates how I set up my share.
 

Bildschirmfoto 2022-05-26 um 08.50.26.png

Link to comment
Posted (edited)
6 hours ago, moritzf said:

The screenshot illustrates how I set up my share.

If no users have access to the TM share how do you mount that share on the Mac in order to set Time Machine to use that destination?

 

Edit: maybe mounting the destination first to be able to select it for backups is no longer necessary with mDNS advertising?

Edited by wgstarks
Link to comment
49 minutes ago, wgstarks said:

If no users have access to the TM share how do you mount that share on the Mac in order to set Time Machine to use that destination?

 

Edit: maybe mounting the destination first to be able to select it for backups is no longer necessary with mDNS advertising?

It is not Unraid that provides the share to the TimeMachine clients, it is the Docker container. So you can hide the share in Unraid and the Docker Container (aka. the TimeMachine application discussed in this thread) will provide an appropriate share.

Link to comment
16 minutes ago, moritzf said:

It is not Unraid that provides the share to the TimeMachine clients, it is the Docker container. So you can hide the share in Unraid and the Docker Container (aka. the TimeMachine application discussed in this thread) will provide an appropriate share.

Got it. The unRAID share is only accessed from the docker.

Link to comment

When attempting to install I see in the instructions that I need to run this command on the share-

sudo chown -R񎗨:1000 /mnt/user/timemachine/

I’m guessing that I need to replace /timemachine/ with the actual share I have configured?

What is the symbol after -R?

Link to comment
Posted (edited)
2 hours ago, wgstarks said:

When attempting to install I see in the instructions that I need to run this command on the share-

sudo chown -R񎗨:1000 /mnt/user/timemachine/

I’m guessing that I need to replace /timemachine/ with the actual share I have configured?

What is the symbol after -R?


hmm - where did you take that from? In the app description, the text is displayed correctly for me (see screenshot). And yes - you will need to replace /mnt/user/timemachine/ with the actual share (or path) that you mapped to the Time Machine Container.

Bildschirmfoto 2022-05-26 um 18.44.15.png

Edited by moritzf
Link to comment

Got the docker installed easily enough but Time Machine backups don't complete.

 

run command-

Quote

root@localhost:# /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d --name='TimeMachine' --net='br0' --ip='10.0.1.21' -e TZ="America/New_York" -e HOST_OS="Unraid" -e HOST_HOSTNAME="Brunnhilde" -e HOST_CONTAINERNAME="TimeMachine" -e 'VOLUME_SIZE_LIMIT'='1 T' -e 'TM_USERNAME'='wgstarks' -e 'PASSWORD'='4{s7A/ndxpTG=CbR' -e 'ADVERTISED_HOSTNAME'='TimeMachineSMB' -e 'CUSTOM_SMB_CONF'='false' -e 'CUSTOM_USER'='false' -e 'DEBUG_LEVEL'='1' -e 'MIMIC_MODEL'='TimeCapsule8,119' -e 'EXTERNAL_CONF'='' -e 'HIDE_SHARES'='no' -e 'TM_GROUPNAME'='TimeMachineSMB' -e 'TM_UID'='1000' -e 'SET_PERMISSIONS'='false' -e 'SMB_INHERIT_PERMISSIONS'='no' -e 'SMB_NFS_ACES'='yes' -e 'SMB_METADATA'='stream' -e 'SMB_PORT'='445' -e 'SMB_VFS_OBJECTS'='acl_xattr fruit streams_xattr' -e 'WORKGROUP'='WORKGROUP' -e 'TM_GID'='1000' -e 'SHARE_NAME'='TimeMachineSMB' -l net.unraid.docker.managed=dockerman -l net.unraid.docker.icon='https://upload.wikimedia.org/wikipedia/de/f/f4/Time_Machine_%28Apple%29_Logo.png' -v '/mnt/user/TimeMachineSMB/':'/opt/timemachine':'rw' --hostname timemachine 'mbentley/timemachine' 

e4909bb64888fdb1ab398c9cbcf31e15314b941095a549ad1f99372be9bd6c21

The command finished successfully!

 

 

Time Machine log from mac-

Quote

2022-05-26 17:26:48  Initial network volume parameters for 'TimeMachineSMB-1' {disablePrimaryReconnect: 0, disableSecondaryReconnect: 0, reconnectTimeOut: 60, QoS: 0x0, attributes: 0x1C}
2022-05-26 17:26:48  Configured network volume parameters for 'TimeMachineSMB-1' {disablePrimaryReconnect: 1, disableSecondaryReconnect: 0, reconnectTimeOut: 60, QoS: 0x20, attributes: 0x1C}
2022-05-26 17:28:22  Mountpoint '/Volumes/TimeMachineSMB-1' is still valid
2022-05-26 17:28:22  Requested backup cancellation or termination before 2022-05-26 21:29:22 +0000

 

I made 3 or 4 attempts to backup but could only find one entry in the log related to this destination.

Link to comment

Got it working I think. I had mounted the backup location on the mac via the IP (10.0.1.21/TimeMachineSMB) and added that location to Time Machine. After my previous post I realized that TIMEMACHINE.local is also listed as an available destination and that one seems to be working although it's only at 1.1% right now.

 

Not sure why its TIMEMACHINE.local though. ADVERTISED_HOSTNAME is set to TimeMachineSMB. Shouldn't it be TimeMachineSMB.local?

Link to comment

I realized when I started getting docker image size warnings that the TM backup was writing to my docker image so I stopped the backup and rebooted the unraid server to clear the docker image. Deleted and re-installed this docker with default settings. Also created a new share and ran the chmod command on it. Now I'm getting Time Machine backup failures because the backup disk image cannot be created.

 

TM log-

Quote

2022-05-26 19:31:43  Starting manual backup

2022-05-26 19:31:43  Attempting to mount 'smb://wgstarks@TIMEMACHINE._smb._tcp.local./timemachine'

2022-05-26 19:31:44  Mounted 'smb://wgstarks@TIMEMACHINE._smb._tcp.local./timemachine' at '/Volumes/.timemachine/TIMEMACHINE._smb._tcp.local./6327500C-6BF8-4267-AAB7-7737403AB5B2/timemachine' (1.1 TB of 1.1 TB available)

2022-05-26 19:31:44  Initial network volume parameters for 'timemachine' {disablePrimaryReconnect: 0, disableSecondaryReconnect: 0, reconnectTimeOut: 60, QoS: 0x0, attributes: 0x1C}

2022-05-26 19:31:44  Configured network volume parameters for 'timemachine' {disablePrimaryReconnect: 1, disableSecondaryReconnect: 0, reconnectTimeOut: 30, QoS: 0x20, attributes: 0x1C}

2022-05-26 19:31:44  Mountpoint '/Volumes/.timemachine/TIMEMACHINE._smb._tcp.local./6327500C-6BF8-4267-AAB7-7737403AB5B2/timemachine' is still valid

2022-05-26 19:31:44  Mountpoint '/Volumes/.timemachine/TIMEMACHINE._smb._tcp.local./6327500C-6BF8-4267-AAB7-7737403AB5B2/timemachine' is still valid

2022-05-26 19:31:44  Using a band size of 64 MB (max bands set to 16384, image size 1.04 TB)

2022-05-26 19:31:44  Creating an encrypted sparsebundle using Case-sensitive APFS filesystem

2022-05-26 19:31:54  Failed to create '/Volumes/.timemachine/TIMEMACHINE._smb._tcp.local./6327500C-6BF8-4267-AAB7-7737403AB5B2/timemachine/B114B4EC-A042-5642-B37C-216F971A436B.sparsebundle', results: {

2022-05-26 19:31:54  Mountpoint '/Volumes/.timemachine/TIMEMACHINE._smb._tcp.local./6327500C-6BF8-4267-AAB7-7737403AB5B2/timemachine' is still valid

2022-05-26 19:31:56  Unmounted '/Volumes/.timemachine/TIMEMACHINE._smb._tcp.local./6327500C-6BF8-4267-AAB7-7737403AB5B2/timemachine'

2022-05-26 19:31:56  Backup failed (20: BACKUP_FAILED_DISK_IMAGE_NOT_CREATED)

2022-05-26 19:31:56  Not prioritizing backups with priority errors. lockState=0

 

Current docker run command-

Quote

root@localhost:# /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d --name='TimeMachine' --net='br0' --ip='10.0.1.21' -e TZ="America/New_York" -e HOST_OS="Unraid" -e HOST_HOSTNAME="Brunnhilde" -e HOST_CONTAINERNAME="TimeMachine" -e 'VOLUME_SIZE_LIMIT'='1 T' -e 'TM_USERNAME'='redacted' -e 'PASSWORD'='redacted' -e 'ADVERTISED_HOSTNAME'='timemachine' -e 'CUSTOM_SMB_CONF'='false' -e 'CUSTOM_USER'='false' -e 'DEBUG_LEVEL'='1' -e 'MIMIC_MODEL'='TimeCapsule8,119' -e 'EXTERNAL_CONF'='' -e 'HIDE_SHARES'='no' -e 'TM_GROUPNAME'='timemachine' -e 'TM_UID'='1000' -e 'SET_PERMISSIONS'='false' -e 'SMB_INHERIT_PERMISSIONS'='no' -e 'SMB_NFS_ACES'='yes' -e 'SMB_METADATA'='stream' -e 'SMB_PORT'='445' -e 'SMB_VFS_OBJECTS'='acl_xattr fruit streams_xattr' -e 'WORKGROUP'='WORKGROUP' -e 'TM_GID'='1000' -e 'SHARE_NAME'='timemachine' -l net.unraid.docker.managed=dockerman -l net.unraid.docker.icon='https://upload.wikimedia.org/wikipedia/de/f/f4/Time_Machine_%28Apple%29_Logo.png' -v '/mnt/user/timemachine_smb/':'/opt/timemachine':'rw' --hostname timemachine 'mbentley/timemachine' 

a5189052563244ef3087449f9ff3fbb4a9bbcae966f125734ce423b74cbba055

The command finished successfully!

 

Link to comment

Alright, this time I think I've really got it working. I had to let the docker create the user share (no idea why but it worked) and then run the chown command on that share. After that the backups started working but writing to the docker image again.🤨

 

Started really digging into the docker setting and found this-

Quote

Container Path: /opt/timemachine
Directory to store the time machine backups. If you change the User Name (TM_USERNAME) value that it will change the data path from /opt/timemachine to /opt/value-of-TM_USERNAME.

 

I had changed the TM_USERNAME but the docker didn't change the data path. It was still /opt/timemachine in the settings but I'm guessing the backups were writing to /opt/value-of-TM_USERNAME which wasn't mapped to anything. I changed TM_USERNAME back to default and everything looks good so far. 

 

Am I misunderstanding the comment I quoted above? Does the /opt/timemachine container path need to be changed manually if a custom username is set?

Link to comment
8 hours ago, wgstarks said:

Alright, this time I think I've really got it working. I had to let the docker create the user share (no idea why but it worked) and then run the chown command on that share. After that the backups started working but writing to the docker image again.🤨

 

Started really digging into the docker setting and found this-

 

I had changed the TM_USERNAME but the docker didn't change the data path. It was still /opt/timemachine in the settings but I'm guessing the backups were writing to /opt/value-of-TM_USERNAME which wasn't mapped to anything. I changed TM_USERNAME back to default and everything looks good so far. 

 

Am I misunderstanding the comment I quoted above? Does the /opt/timemachine container path need to be changed manually if a custom username is set?


I think you understood the moment correctly. As with all Docker based applications, Environment-Variables (and that is what TM_USERNAME is) only affect things happening inside of the container. So the container will change the path it writes to - and you will need to make sure that that path is mapped  to the host for persistent storage.

As for the discrepancy with TimeMachineSMB and TimeMachine that might come from the extra parameter "--hostname timemachine" in the configuration. Perhaps you will need to match that name with the value of ADVERTISED_HOSTNAME. 

Link to comment
2 hours ago, moritzf said:

and you will need to make sure that that path is mapped  to the host for persistent storage.

Yeah, this was the part I had originally missed. Maybe I’m a little dense but it wasn’t clear to me at first that I would need to edit the path or I suppose I could have also added a new path. All working good now though. Initial backup just completed about an hour ago.

Link to comment

Cannot create encrypted backup. I get an error that the backup disk image could not be created.

 

macOS Time Machine log-

Quote

2022-05-28 09:52:22  Starting manual backup

2022-05-28 09:52:22  Cleared pending cancellation request

2022-05-28 09:52:22  Attempting to mount 'smb://timemachine@timemachine._smb._tcp.local./timemachine'

2022-05-28 09:52:26  Mounted 'smb://timemachine@timemachine._smb._tcp.local./timemachine' at '/Volumes/.timemachine/timemachine._smb._tcp.local./0390E087-DF77-4232-818C-722A15806A97/timemachine' (1.1 TB of 1.1 TB available)

2022-05-28 09:52:26  Initial network volume parameters for 'timemachine' {disablePrimaryReconnect: 0, disableSecondaryReconnect: 0, reconnectTimeOut: 60, QoS: 0x0, attributes: 0x1C}

2022-05-28 09:52:26  Configured network volume parameters for 'timemachine' {disablePrimaryReconnect: 1, disableSecondaryReconnect: 0, reconnectTimeOut: 30, QoS: 0x20, attributes: 0x1C}

2022-05-28 09:52:26  Mountpoint '/Volumes/.timemachine/timemachine._smb._tcp.local./0390E087-DF77-4232-818C-722A15806A97/timemachine' is still valid

2022-05-28 09:52:26  Mountpoint '/Volumes/.timemachine/timemachine._smb._tcp.local./0390E087-DF77-4232-818C-722A15806A97/timemachine' is still valid

2022-05-28 09:52:26  Using a band size of 64 MB (max bands set to 16384, image size 1.04 TB)

2022-05-28 09:52:26  Creating an encrypted sparsebundle using Case-sensitive APFS filesystem

2022-05-28 09:52:45  Failed to create '/Volumes/.timemachine/timemachine._smb._tcp.local./0390E087-DF77-4232-818C-722A15806A97/timemachine/B114B4EC-A042-5642-B37C-216F971A436B.sparsebundle', results: {

2022-05-28 09:52:46  Mountpoint '/Volumes/.timemachine/timemachine._smb._tcp.local./0390E087-DF77-4232-818C-722A15806A97/timemachine' is still valid

2022-05-28 09:52:46  Unmounted '/Volumes/.timemachine/timemachine._smb._tcp.local./0390E087-DF77-4232-818C-722A15806A97/timemachine'

2022-05-28 09:52:46  Backup failed (20: BACKUP_FAILED_DISK_IMAGE_NOT_CREATED)

2022-05-28 09:52:47  Not prioritizing backups with priority errors. lockState=0

 

run command-

Quote

root@localhost:# /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d --name='TimeMachine' --net='br0' --ip='10.0.1.21' -e TZ="America/New_York" -e HOST_OS="Unraid" -e HOST_HOSTNAME="Brunnhilde" -e HOST_CONTAINERNAME="TimeMachine" -e 'VOLUME_SIZE_LIMIT'='1 T' -e 'TM_USERNAME'='timemachine' -e 'PASSWORD'='4{s7A/ndxpTG=CbR' -e 'ADVERTISED_HOSTNAME'='timemachine' -e 'CUSTOM_SMB_CONF'='false' -e 'CUSTOM_USER'='false' -e 'DEBUG_LEVEL'='1' -e 'MIMIC_MODEL'='TimeCapsule8,119' -e 'EXTERNAL_CONF'='' -e 'HIDE_SHARES'='no' -e 'TM_GROUPNAME'='timemachine' -e 'TM_UID'='1000' -e 'SET_PERMISSIONS'='false' -e 'SMB_INHERIT_PERMISSIONS'='no' -e 'SMB_NFS_ACES'='yes' -e 'SMB_METADATA'='stream' -e 'SMB_PORT'='445' -e 'SMB_VFS_OBJECTS'='acl_xattr fruit streams_xattr' -e 'WORKGROUP'='WORKGROUP' -e 'TM_GID'='1000' -e 'SHARE_NAME'='timemachine' -l net.unraid.docker.managed=dockerman -l net.unraid.docker.icon='https://upload.wikimedia.org/wikipedia/de/f/f4/Time_Machine_%28Apple%29_Logo.png' -v '/mnt/user/timemachine/':'/opt/timemachine':'rw' --hostname timemachine 'mbentley/timemachine' 

e4362ca3db037a976e3ce47ce54b875dc1afc9c1fff129631d0fd1bcbe5b4464

The command finished successfully!

 

I was able to successfully complete un-encrypted backups but the encrypted backups always fail with the same error.

 

brunnhilde-diagnostics-20220528-1000.zip

Link to comment

Just wanted to say thank you for making this available! I’ve had mixed results with the built in unraid TimeMachine functionality lately, but this just worked straight up.

One question, has anyone attempted a full restore from a backup managed by this docker to a new/different Mac?


Sent from my iPhone using Tapatalk

Link to comment

Trying to create a second backup I originally created several user.conf files in a folder in appdata and set the path per the instructions but the docker failed to start with an error that the path had to be to a location within the container. Since I didn't know how to write the .conf files to the docker image I decided to just create multiple instances of the docker. The first is setup and running without any issues but the second I am unable to login from the client mac. I'm using a very simple user name and password but the login fails repeatedly. I do see one oddity. On the first mac client Time Machine shows the disk as "<sharename> on timemachine.local". On the second mac the disk shows as "<sharename>on timemachine#2.local". Tried changing the advertised name but then Time Machine doesn't see the destination at all.

 

Instance #1 run command-

Quote

root@localhost:# /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d --name='TimeMachine_m1_mini' --net='br0' --ip='10.0.1.21' -e TZ="America/New_York" -e HOST_OS="Unraid" -e HOST_HOSTNAME="Brunnhilde" -e HOST_CONTAINERNAME="TimeMachine_m1_mini" -e 'VOLUME_SIZE_LIMIT'='1 T' -e 'TM_USERNAME'='m1_mini' -e 'PASSWORD'='zUhkZ2nGRs2M8ytnmr3m' -e 'ADVERTISED_HOSTNAME'='timemachine' -e 'CUSTOM_SMB_CONF'='false' -e 'CUSTOM_USER'='false' -e 'DEBUG_LEVEL'='1' -e 'MIMIC_MODEL'='TimeCapsule8,119' -e 'EXTERNAL_CONF'='' -e 'HIDE_SHARES'='no' -e 'TM_GROUPNAME'='timemachine' -e 'TM_UID'='1000' -e 'SET_PERMISSIONS'='false' -e 'SMB_INHERIT_PERMISSIONS'='no' -e 'SMB_NFS_ACES'='yes' -e 'SMB_METADATA'='stream' -e 'SMB_PORT'='445' -e 'SMB_VFS_OBJECTS'='acl_xattr fruit streams_xattr' -e 'WORKGROUP'='WORKGROUP' -e 'TM_GID'='1000' -e 'SHARE_NAME'='timemachine_m1_mini' -l net.unraid.docker.managed=dockerman -l net.unraid.docker.icon='https://upload.wikimedia.org/wikipedia/de/f/f4/Time_Machine_%28Apple%29_Logo.png' -v '/mnt/user/m1_mini/':'/opt/m1_mini':'rw' --hostname timemachine 'mbentley/timemachine' 

34dbb3710540bb8eb787b76fdddc29e23e0461a516e41384c396b20a0f10d95e

The command finished successfully!

 

 

Instance #2 (not working) run command-

Quote

root@localhost:# /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d --name='TimeMachine_jasper' --net='br0' --ip='10.0.1.22' -e TZ="America/New_York" -e HOST_OS="Unraid" -e HOST_HOSTNAME="Brunnhilde" -e HOST_CONTAINERNAME="TimeMachine_jasper" -e 'VOLUME_SIZE_LIMIT'='1 T' -e 'TM_USERNAME'='jasper' -e 'PASSWORD'='1234567890' -e 'ADVERTISED_HOSTNAME'='timemachine' -e 'CUSTOM_SMB_CONF'='false' -e 'CUSTOM_USER'='false' -e 'DEBUG_LEVEL'='1' -e 'MIMIC_MODEL'='TimeCapsule8,119' -e 'EXTERNAL_CONF'='' -e 'HIDE_SHARES'='no' -e 'TM_GROUPNAME'='timemachine' -e 'TM_UID'='1000' -e 'SET_PERMISSIONS'='false' -e 'SMB_INHERIT_PERMISSIONS'='no' -e 'SMB_NFS_ACES'='yes' -e 'SMB_METADATA'='stream' -e 'SMB_PORT'='445' -e 'SMB_VFS_OBJECTS'='acl_xattr fruit streams_xattr' -e 'WORKGROUP'='WORKGROUP' -e 'TM_GID'='1000' -e 'SHARE_NAME'='timemachine_jasperSMB' -l net.unraid.docker.managed=dockerman -l net.unraid.docker.icon='https://upload.wikimedia.org/wikipedia/de/f/f4/Time_Machine_%28Apple%29_Logo.png' -v '/mnt/user/jasper':'/opt/jasper':'rw' --hostname timemachine 'mbentley/timemachine' 

117fbb09408c5670100695c599a0e6596b20b0f20c0b76b89dc0856bb841d9b1

The command finished successfully!

 

Link to comment

It took me several days of trial and error to get this docker working for multiple macs so I decided to writeup the process and perhaps save someone else some headaches. In my case I followed the multiple user guide in the mbentley/docker-timemachine GitHub repo.

 

DISCLAIMER: I'm not an expert on Time Machine or dockers and hopefully I haven't included any errors in this guide but there may be some. If you find any please let me know.

 

Docker configuration screeshots-

1377775778_ScreenShot2022-06-03at7_17_04PM.thumb.png.d49f1ceaae35d5ae8b3f58c1c42cddde.png

944124111_ScreenShot2022-06-03at7_18_30PM.thumb.png.c37885d5b0b18b546ce0cd00be341260.png

1354229027_ScreenShot2022-06-03at7_18_47PM.thumb.png.9a272695928f3d9c9a58da6df7e784e9.png

Most of these settings are left as default.

 

Changes/additions needed:

 

1. You will need to create configuration files (example below) for each user you are adding. For EXTERNAL CONFIGURATION DIRECTORY variable add a path that is within the container for those files. I used /users since that's the path used in the GitHub example. You will also need to add a new path in the docker configuration to map the container path to the actual host path. Since I used my appdata folder for this the new path was /mnt/users/appdata/timemachine/:/users.

 

1970305047_ScreenShot2022-06-03at7_36_51PM.thumb.png.0181dd1fb145a897b89ddace6cb372ea.png

 

 

2. Each user must have a path set for the backup data mapped to /opt/<username> in the container. One path is already configured in the template. Additional paths must be added as needed. I let the docker create these shares (rather than me creating them ahead of time) so that they are configured properly.

 

1247015737_ScreenShot2022-06-03at7_43_04PM.thumb.png.ad68c0d1dd350fa4fd5d0f03f6e53d3c.png

 

 

3. Create the user configuration files mentioned above. These files must be named <username>.conf and each must have a unique TM_UID number.

 

m1_mini.conf

TM_USERNAME=m1_mini
TM_GROUPNAME=timemachine
PASSWORD=****************
SHARE_NAME=m1_miniSMB
VOLUME_SIZE_LIMIT=”1 T”
TM_UID=1001
TM_GID=1000

 

jasper.conf

TM_USERNAME=jasper
TM_GROUPNAME=timemachine
PASSWORD=******************
SHARE_NAME=jasperSMB
VOLUME_SIZE_LIMIT=”1 T”
TM_UID=1002
TM_GID=1000

 

Note the unique TM_UID numbers.

 

 

4. After starting the docker and allowing it to create the shares configured open a terminal window and run this command adjusted to match the names of your shares and the proper UID and GID numbers.

sudo chown -R <UID>:<GID> /mnt/user/<nameofshare>/

You will need to run this command for each user/share configured in the docker.

 

 

After completing these steps start a TimeMachine backup and check the destination share to be sure TM is writing to a sparsebundle file in that share. I had multiple failures when trying to get this docker working because I had mapped paths incorrectly in the host paths as well as the container paths. This will cause the backup to write to your docker image and rapidly fill it, so catch it before it becomes a problem.

  • Like 3
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.