Files
ironmount/README.md
2025-11-08 12:55:39 +01:00

6.1 KiB

Ironmount

Powerful backup automation for your remote storage
Encrypt, compress, and protect your data with ease


Demo

Backup management with scheduling and monitoring

Warning

Ironmount is still in version 0.x.x and is subject to major changes from version to version. I am developing the core features and collecting feedbacks. Expect bugs! Please open issues or feature requests

Intro

Ironmount is a backup automation tool that helps you save your data across multiple storage backends. Built on top of Restic, it provides an modern web interface to schedule, manage, and monitor encrypted backups of your remote storage.

Features

  •   Automated backups with encryption, compression and retention policies powered by Restic
  •   Flexible scheduling For automated backup jobs with fine-grained retention policies
  •   End-to-end encryption ensuring your data is always protected
  •   Multi-protocol support: Backup from NFS, SMB, WebDAV, or local directories

Installation

In order to run Ironmount, you need to have Docker and Docker Compose installed on your server. Then, you can use the provided docker-compose.yml file to start the application.

services:
  ironmount:
    image: ghcr.io/nicotsx/ironmount:v0.5.0
    container_name: ironmount
    restart: unless-stopped
    privileged: true
    ports:
      - "4096:4096"
    devices:
      - /dev/fuse:/dev/fuse
    volumes:
      - /var/lib/ironmount:/var/lib/ironmount

Then, run the following command to start Ironmount:

docker compose up -d

Once the container is running, you can access the web interface at http://<your-server-ip>:4096.

Adding your first volume

Ironmount supports multiple volume backends including NFS, SMB, WebDAV, and local directories. A volume represents the source data you want to back up and monitor.

To add your first volume, navigate to the "Volumes" section in the web interface and click on "Create volume". Fill in the required details such as volume name, type, and connection settings.

If you want to track a local directory on the same server where Ironmount is running, you'll first need to mount that directory into the Ironmount container. You can do this by adding a volume mapping in your docker-compose.yml file. For example, to mount /path/to/your/directory from the host to /data in the container, you would add the following line under the volumes section:

services:
  ironmount:
    image: ghcr.io/nicotsx/ironmount:v0.5.0
    container_name: ironmount
    restart: unless-stopped
    privileged: true
    ports:
      - "4096:4096"
    devices:
      - /dev/fuse:/dev/fuse
    volumes:
      - /var/lib/ironmount:/var/lib/ironmount
+     - /path/to/your/directory:/mydata

After updating the docker-compose.yml file, restart the Ironmount container to apply the changes:

docker compose down
docker compose up -d

Now, when adding a new volume in the Ironmount web interface, you can select "Directory" as the volume type and specify search for your mounted path (e.g., /mydata) as the source path.

Preview

Creating a repository

A repository is where your backups will be securely stored encrypted. Ironmount currently supports S3-compatible storage backends and local directories for storing your backup repositories.

Repositories are optimized for storage efficiency and data integrity, leveraging Restic's deduplication and encryption features.

To create a repository, navigate to the "Repositories" section in the web interface and click on "Create repository". Fill in the required details such as repository name, type, and connection settings. If you choose a local directory as the repository type, your backups will be stored at /var/lib/ironmount/repositories/<repository-name>.

Your first backup job

Once you have added a volume and created a repository, you can create your first backup job. A backup job defines the schedule and parameters for backing up a specific volume to a designated repository.

When creating a backup job, you can specify the following settings:

  • Schedule: Define how often the backup should run (e.g., daily, weekly)
  • Retention Policy: Set rules for how long backups should be retained (e.g., keep daily backups for 7 days, weekly backups for 4 weeks)
  • Paths: Specify which files or directories to include in the backup

After configuring the backup job, save it and Ironmount will automatically execute the backup according to the defined schedule. You can monitor the progress and status of your backup jobs in the "Backups" section of the web interface.

Preview

Restoring data

Ironmount allows you to easily restore your data from backups. To restore data, navigate to the "Backups" section and select the backup job from which you want to restore data. You can then choose a specific backup snapshot and select the files or directories you wish to restore. The data you select will be restored to their original location.

Preview

Third-Party Software

This project includes the following third-party software components:

Restic

Ironmount includes Restic for backup functionality.

For a complete list of third-party software licenses and attributions, please refer to the NOTICES.md file.