Setting Up Storage
Last updated
Last updated
💬 We offer to set up, secure, and maintain ArchiveBox on your preferred storage provider. We use this revenue (from corporate clients who can afford to pay) to support open source development and keep ArchiveBox free.
ArchiveBox supports a wide range of local and remote filesystems using rclone
and/or Docker storage plugins. The examples below use to demonstrate the concepts, you can adapt them to your OS and environment needs.
Example storage setup:
EXT4
(default on Linux), APFS
(default on macOS)[!TIP] These default filesystems are fully supported by ArchiveBox on Linux and macOS (w/wo Docker).
ZFS
(recommended for best experience on Linux/BSD) ⭐️https://openzfs.github.io/openzfs-docs/
https://openzfs.github.io/openzfs-docs/man/v2.2/8/zpool-create.8.html
https://openzfs.github.io/openzfs-docs/man/v2.2/8/zfs-create.8.html
https://docs.docker.com/storage/storagedriver/zfs-driver/
https://www.ixsystems.com/blog/fast-dedup-is-a-valentines-gift-to-the-openzfs-and-truenas-communities/
NTFS
, HFS+
, BTRFS
[!WARNING] These filesystems are likely supported, but are not officially tested.
EXT2
, EXT3
, FAT32
, exFAT
[!CAUTION] Not recommended. Cannot store files >4GB or more than 31k ~ 65k Snapshot entries due to directory entry limits.
ArchiveBox supports many common types of remote filesystems using RClone, FUSE, Docker Storage providers, and Docker Volume Plugins.
The data/archive/
subfolder contains the bulk archived content, and it supports being stored on a slower remote server (SMB/NFS/SFTP/etc.) or object store (S3/B2/R2/etc.). For data integrity and performance reasons, the rest of the data/
directory (data/ArchiveBox.conf
, data/logs
, etc.) must be stored locally while ArchiveBox is running.
NFS
(Docker Driver)docker-compose.yml
:
SMB
/ Ceph
(Docker CIFS Driver)docker-compose.yml
:
Then define your remote storage config ~/.config/rclone/rclone.conf
:
[!TIP] You can also create
rclone.conf
using the RClone Web GUI:rclone rcd --rc-web-gui
And many more...
https://rclone.org/s3/
https://rclone.org/overview/
Bonus:
Set up gzip compression: https://rclone.org/compress/
Set up file encryption: https://rclone.org/crypt/
Set up hashing engine: https://rclone.org/hasher/
If Needed: Transfer any existing local archive data to the remote volume first
Mount the remote storage volume as FUSE filesystem
[!TIP] You can use any RClone FUSE mounts as a normal volumes (bind mount) for Docker ArchiveBox, typically no storage plugin is needed as long as
allow-other
is setup properly.
docker run -v $PWD:/data -v /opt/archivebox/data/archive:/data/archive
docker-compose.yml
:
This is only needed if you are unable to Option A
for compatibility or performance reasons, or if you prefer defining your remote storage config in docker-compose.yml
instead of rclone.conf
.
docker-compose.yml
:
To start the container and verify the filesystem is accessible within it:
---
[!TIP] This is the recommended filesystem for ArchiveBox on Linux, macOS, and BSD (w/wo Docker). Provides RAID, compression, encryption, deduping, 0-cost point-in-time backups, remote sync, integrity verification, and more...
[!IMPORTANT] data/index.sqlite3
is your main archive DB, it must be on a fast, reliable, local filesystem which supports (SSD/NVMe recommended for best experience).
[!TIP] If you use a remote filesystem, you should switch ArchiveBox's search backend from to (or ).
(ripgrep
scans over every byte in the archive to do each search, which is slow and potentially costly on remote cloud storage)
/ / / /
/ /
/ / /
/ /
/ /
See here for full more detailed instructions here:
See here for full instructions:
First, install the for your CPU architecture (e.g. amd64
or arm64
):
Then, or :
/ /
/