selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

ElkarBackup logo

Self-host ElkarBackup

v2.3.9

Centralized backup with web UI for Linux and Windows

ReleaseOpen SourceOther
Updated10 months ago
LanguageJavaScript
Setup difficultyModerate
MobileResponsive
Stars
418
Port
80 (HTTP web interface)
Requires
MariaDB/MySQL, Rsync
Docker
ghcr.io/elkarbackup/elkarbackup
Install with Docker
Login form screenshotJobs overview screenshotEdit client screenshotJob edit screenshotEdit policy screenshotEdit script screenshot

What is ElkarBackup?

This free, open-source backup tool lets system administrators manage network backups from a single web interface. It uses rsync and rsnapshot to provide efficient, deduplicated backups with hardlinks, enabling instant recovery of any backup point. The software supports both Linux and Windows clients, offers pre- and post-backup scripts, quota management, email notifications, and multi-language support. Deployment options include Docker Compose, native Debian/Ubuntu packages, or manual installation. A MariaDB/MySQL database stores configuration and metadata, while backup data lives on the filesystem (local or NFS). Licensed under GPL-3.0, actively maintained since 2013.

Should you self-host ElkarBackup?

ElkarBackup scores 51/100 on selfhost.directory (how scoring works) and ranks #31 of 46 in Backup. It has 418 GitHub stars.

It shipped 10 stable releases in the past year. The latest, v2.3.9, came out on 24 December 2025. New versions land roughly every 1 days.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is Other-licensed and written mostly in JavaScript.

Its closest alternative on selfhost.directory is Restic (82/100, 36 853 stars). It scores higher overall, so compare the two before you pick. See ElkarBackup vs Restic side by side.

Features

  • Backup mirroring
  • Centralized Backups
  • Detailed logging
  • Email notifications
  • Instant Recovery
  • Linux and Windows client backup
  • Multi-language Support
  • Multi-user with permissions (WIP)Marked as work in progress in documentation
  • Pre- and post-backup scripts
  • Quota Management
  • Remote job execution via API
  • SSH-based secure transfer
  • Web-based management UI

ElkarBackup README

How to install ElkarBackup

Install ElkarBackup with Docker

Docker
Environment variables
SYMFONY__DATABASE__PASSWORD, EB_CRON, and other SYMFONY__* variables

$ docker run --name my-elkarbackup --link mariadb:lts -d ghcr.io/elkarbackup/elkarbackup:latest

Requires separate MariaDB container

How to configure ElkarBackup

  • EB_ACLenabledUse setfacl, otherwise use chown

    Use setfacl, otherwise use chown

    values: enabled, disabled

  • EB_CRONenabledRun tick command periodically

    Run tick command periodically

    values: enabled, disabled

  • PHP_TZEurope/ParisTimezone (PHP)

    Timezone (PHP)

    values: Any valid timezone

  • SYMFONY__DATABASE__DRIVERpdo_mysqlDatabase driver

    Database driver

    values: pdo_mysql, pdo_sqlite

  • SYMFONY__DATABASE__HOSTdbDatabase host

    Database host

    values: Hostname or IP

  • SYMFONY__DATABASE__NAMEelkarbackupDatabase name

    Database name

    values: Database name

  • SYMFONY__DATABASE__PASSWORDrootDatabase password

    Database password

    values: Password string

  • SYMFONY__DATABASE__PATHDatabase path (for SQLite)

    Database path (for SQLite)

    values: File path

  • SYMFONY__DATABASE__PORT3306Database port

    Database port

    values: Port number

  • SYMFONY__DATABASE__USERrootDatabase user

    Database user

    values: Database user

  • SYMFONY__EB__BACKUP__DIR/app/backupsBackups directory

    Backups directory

    values: Directory path

  • SYMFONY__EB__DISK_USAGE_ENABLEDtrueRun disk usage statistics after job completion

    Run disk usage statistics after job completion

    values: true, false

  • SYMFONY__EB__MAX__PARALLEL__JOBS1Max parallel jobs

    Max parallel jobs

    values: Integer

  • SYMFONY__EB__POST__ON__PRE__FAILtruePost on pre fail

    Post on pre fail

    values: true, false

  • SYMFONY__EB__PUBLIC__KEY/app/.ssh/id_rsa.pubSSH public key path

    SSH public key path

    values: File path

  • SYMFONY__EB__SECRETrandom value will be generatedFramework secret

    Framework secret

    values: Random string

  • SYMFONY__EB__TMP__DIR/app/tmpTemp directory

    Temp directory

    values: Directory path

  • SYMFONY__EB__UPLOAD__DIR/app/uploadsScripts directory

    Scripts directory

    values: Directory path

  • SYMFONY__EB__URL__PREFIXURL path prefix (e.g. /elkarbackup)

    URL path prefix (e.g. /elkarbackup)

    values: Path prefix

  • SYMFONY__MAILER__FROMFrom email address

    From email address

    values: Email address

  • SYMFONY__MAILER__HOSTlocalhostMailer host

    Mailer host

    values: Hostname or IP

  • SYMFONY__MAILER__PASSWORDMailer password

    Mailer password

    values: Password

  • SYMFONY__MAILER__TRANSPORTsmtpMailer transport

    Mailer transport

    values: smtp, sendmail, etc.

  • SYMFONY__MAILER__USERMailer username

    Mailer username

    values: Username

  • TZEurope/ParisTimezone

    Timezone

    values: Any valid timezone

ElkarBackup releases & version history

FAQ

I don't remember root's password. Is there any way to reset the password?

Run the console command: /usr/share/elkarbackup/bin/console elkarbackup:create_admin --reset

Can I execute a job remotely?

Yes, generate a token in the client configuration and use curl to trigger the job.

Is there a way to run a job from the command line?

Use the "Enqueue now" option from the web UI, or run the tick command with a specific date/time via console.

Can I use directories with spaces in exclude/include option?

Use backslashes to escape spaces (e.g., directory\ with\ spaces) or quotation marks.

Can I set a backup path with whitespaces?

Rsnapshot 1.3.1 doesn't allow special characters. Use symbolic links or normalized directory names.

Backup job fails with QUOTA EXCEEDED and I can't rerun the task

Modify the Quota option for the client. Set to -1 to disable quota.

Backup job fails: "Lockfile /tmp/something.pid exists and so does its process, can not continue"

A pending job is running for the same task. Kill the process and remove the pid file, or check for scheduling conflicts.

Can this tool make an exact copy of the permissions structure of Windows?

No, rsync/rsnapshot does not preserve Windows file permissions.

Is there a way to see the generated rsnapshot configuration file?

Yes, add "config" to your Job URL (e.g., /client/1/job/1/config).

Restore button is disabled or it doesn't work (Error 404 Not Found)

Check and fix the backup location directory's permissions and ACLs.

Job finished with error "File has vanished"

This is likely caused by a temporary file. Exclude the directory to avoid the error.

I've changed 'parameters.yml' but it doesn't work

After editing parameters.yml, you must clear the cache using the console command.

Backup job fails: "permission denied (publickey,password)"

You need to copy the ElkarBackup server's public SSH key to the client.

Backup job fails: "rsync: command not found"

You need to install rsync on the client machine.

More in Backup Management

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…