A simple areca backup client built into a Docker container Areca backup is an old (not updated since 2015) but simple backup client that still works today
Due to its nature, Areca does everything client-side since it only connects to sftp or ftp servers. By running a client directly on your NAS, you can easily merge backups for example without having to download 50+ GiB, then upload them back, which is handy if you are doing this over the Internet (in my case, this would take ages with my poor 8 Mb/s upload speed). The process can also be done in the background, simply start the process and close the page. Obviously, by using docker binds, you can also do classical backups from this container if you want
This container includes OpenJDK 11, Areca and also a newer Jsch lib since the included one does not support most recent SSH standards. For the WebUI, this docker uses this base
First of all, you need to build the image. You just simply need to clone the repo, and then run
docker build <path_to_the_repo_folder> --tag areca-backup-docker
Then simply run the docker with
docker run -p 5800:5800 areca-backup-docker
Then you will be able to access the WebGUI by opening http://[HOST IP ADDR]:5800
in your web browser
Here is the list of ports used by container. They can be mapped to the host
via the -p <HOST_PORT>:<CONTAINER_PORT>
parameter. The port number inside the
container cannot be changed, but you are free to use any port on the host side.
Port | Mapping to host | Description |
---|---|---|
5800 | Mandatory | Port used to access the application's GUI via the web interface. |
5900 | Optional | Port used to access the application's GUI via the VNC protocol. Optional if no VNC client is used. |
The areca workspace is stored under /config/.areca
It is recomended to bind the /config
folder to your host filesystem to easily import or export areca configuration
The environment variables are the same as the base image. Here is a copy of the README of this container, for more information, please read the whole documentation:
Variable | Description | Default |
---|---|---|
APP_NAME |
Name of the application. | Areca backup |
USER_ID |
ID of the user the application runs as. See User/Group IDs to better understand when this should be set. | 1000 |
GROUP_ID |
ID of the group the application runs as. See User/Group IDs to better understand when this should be set. | 1000 |
SUP_GROUP_IDS |
Comma-separated list of supplementary group IDs of the application. | (unset) |
UMASK |
Mask that controls how file permissions are set for newly created files. The value of the mask is in octal notation. By default, this variable is not set and the default umask of 022 is used, meaning that newly created files are readable by everyone, but only writable by the owner. See the following online umask calculator: http://wintelguy.com/umask-calc.pl |
(unset) |
TZ |
[TimeZone] of the container. Timezone can also be set by mapping /etc/localtime between the host and the container. |
Etc/UTC |
KEEP_APP_RUNNING |
When set to 1 , the application will be automatically restarted if it crashes or if a user quits it. |
0 |
APP_NICENESS |
Priority at which the application should run. A niceness value of -20 is the highest priority and 19 is the lowest priority. By default, niceness is not set, meaning that the default niceness of 0 is used. NOTE: A negative niceness (priority increase) requires additional permissions. In this case, the container should be run with the docker option --cap-add=SYS_NICE . |
(unset) |
TAKE_CONFIG_OWNERSHIP |
When set to 1 , owner and group of /config (including all its files and subfolders) are automatically set during container startup to USER_ID and GROUP_ID respectively. |
1 |
CLEAN_TMP_DIR |
When set to 1 , all files in the /tmp directory are deleted during the container startup. |
1 |
DISPLAY_WIDTH |
Width (in pixels) of the application's window. | 1280 |
DISPLAY_HEIGHT |
Height (in pixels) of the application's window. | 768 |
SECURE_CONNECTION |
When set to 1 , an encrypted connection is used to access the application's GUI (either via a web browser or VNC client). See the Security section for more details. |
0 |
VNC_PASSWORD |
Password needed to connect to the application's GUI. See the VNC Password section for more details. | (unset) |
X11VNC_EXTRA_OPTS |
Extra options to pass to the x11vnc server running in the Docker container. WARNING: For advanced users. Do not use unless you know what you are doing. | (unset) |
ENABLE_CJK_FONT |
When set to 1 , open-source computer font WenQuanYi Zen Hei is installed. This font contains a large range of Chinese/Japanese/Korean characters. |
0 |
When using data volumes (-v
flags), permissions issues can occur between the
host and the container. For example, the user within the container may not
exists on the host. This could prevent the host from properly accessing files
and folders on the shared volume.
To avoid any problem, you can specify the user the application should run as.
This is done by passing the user ID and group ID to the container via the
USER_ID
and GROUP_ID
environment variables.
To find the right IDs to use, issue the following command on the host, with the user owning the data volume on the host:
id <username>
Which gives an output like this one:
uid=1000(myuser) gid=1000(myuser) groups=1000(myuser),4(adm),24(cdrom),27(sudo),46(plugdev),113(lpadmin)
The value of uid
(user ID) and gid
(group ID) are the ones that you should
be given the container.