TimeMachine

TimeMachine

Docker app from moritzf's Repository

Overview

This application provides a Samba based Time Machine network share. It can be configured to support multiple or single users and restrict the maximum size used for Time Machine backups.

Requirements

You will need to set the filesystem permissions on disk. By default, the timemachine user is 1000:1000.

Granting Permissions to write to the directory can be achieved by executing the following command on the host (Unraid): sudo chown -R 1000:1000 /mnt/user/timemachine/

The backing data store for your persistent time machine data must support extended file attributes (xattr). Usually for shares in the Unraid Array this is not a problem. Remote file systems, such as NFS, will very likely not support xattrs. This image will check and try to set xattrs to a test file in /opt/${TM_USERNAME} to warn the user if they are not supported but this will not prevent the image from running.

Also note that if you change the User Name (TM_USERNAME) value that it will change the data path for backup data inside of the container from /opt/timemachine to /opt/value-of-TM_USERNAME.

Runtime arguments

Network
br0
Shell
sh
Privileged
false
Extra Params
--hostname timemachine

Template configuration

Time Machine Backup DataPathrw

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.

Target
/opt/timemachine
Value
/mnt/user/timemachine/
Size LimitVariable

Limits the reported disksize, thus preventing Time Machine from using the whole real disk space for backup. The option takes a number plus an optional unit (e.g. 1 T for 1 Terrabyte). IMPORTANT: This is an approximated calculation that only takes into account the contents of Time Machine sparsebundle images. Therefore you MUST NOT use this volume to store other content when using this option, because it would NOT be accounted. The calculation works by reading the band size from the Info.plist XML file of the sparsebundle, reading the bands/ directory counting the number of band files, and then multiplying one with the other.

Target
VOLUME_SIZE_LIMIT
Default
1 T
Value
1 T
User NameVariable

sets the username time machine runs as

Target
TM_USERNAME
Value
timemachine
User PasswordVariable

sets the password for the timemachine user. The default value is Z92efVNcokU26x.

Target
PASSWORD
Default
Z92efVNcokU26x
Value
Z92efVNcokU26x
Advertised HostnameVariable

Avahi will advertise the smb services at this hostname instead of the local hostname

Target
ADVERTISED_HOSTNAME
Value
timemachine
Use Custom SMB ConfigurationVariable

indicates that you are going to bind mount a custom config to /etc/samba/smb.conf if set to true

Target
CUSTOM_SMB_CONF
Default
false
Value
false
Custom UserVariable

indicates that you are going to bind mount /etc/password, /etc/group, and /etc/shadow; and create data directories if set to true

Target
CUSTOM_USER
Default
false
Value
false
Debug LevelVariable

sets the debug level for nmbd and smbd

Target
DEBUG_LEVEL
Default
1
Value
1
Mimic ModelVariable

sets the value of time machine to mimic (e.g. TimeCapsule8,119 or TimeCapsule6,116)

Target
MIMIC_MODEL
Default
TimeCapsule8,119
Value
TimeCapsule8,119
External Configuration DirectoryVariable

specifies a directory in which individual variable files, ending in .conf. In order to add multiple users who have their own shares, you will need to create a file for each user and put them in a directory.

Target
EXTERNAL_CONF
Hide SharesVariable

set to yes if you would like only the share(s) a user can access to appear

Target
HIDE_SHARES
Default
no
Value
no
Group NameVariable

sets the group name time machine runs as

Target
TM_GROUPNAME
Default
timemachine
Value
timemachine
User UIDVariable

sets the UID of the Executing User (TM_USERNAME)

Target
TM_UID
Default
1000
Value
1000
Set PermissionsVariable

set to true to have the entrypoint set ownership and permission on the /opt/ in the container

Target
SET_PERMISSIONS
Default
false
Value
false
SMB Inherit PermissionsVariable

if yes, permissions for new files will be forced to match the parent folder

Target
SMB_INHERIT_PERMISSIONS
Default
no
Value
no
SMB fruit:nfs_acesVariable

value of fruit:nfs_aces; support for querying and modifying the UNIX mode of directory entries via NFS ACEs

Target
SMB_NFS_ACES
Default
yes
Value
yes
SMB fruit:metadataVariable

value of fruit:metadata; controls where the OS X metadata stream is stored

Target
SMB_METADATA
Default
stream
Value
stream
SMB PortVariable

sets the port that Samba will be available on

Target
SMB_PORT
Default
445
Value
445
SMB vfs objectsVariable

value of vfs objects

Target
SMB_VFS_OBJECTS
Default
acl_xattr fruit streams_xattr
Value
acl_xattr fruit streams_xattr
SMB Workgroup NameVariable

set the SMB workgroup name

Target
WORKGROUP
Default
WORKGROUP
Value
WORKGROUP
Group GIDVariable

sets the GID of the TM_GROUPNAME group

Target
TM_GID
Default
1000
Value
1000
Share NameVariable

sets the name of the timemachine share to.

Target
SHARE_NAME
Default
TimeMachine
Value
TimeMachine

Categories

Download Statistics

5,854,960
Total Downloads
46,420
This Month
38,979
Avg / Month

Total Downloads Over Time

Loading chart...

Details

Repository
mbentley/timemachine
Last Updated2026-05-09
First Seen2022-05-25

Run TimeMachine on Unraid.

TimeMachine is listed in Community Apps for Unraid OS. Explore Unraid to build a flexible home server, NAS, or homelab.