# Contributing Storage This document is for you if your host machine can be reliably be online at all times and has 1GB or more of unused drive space you'd like to contribute to the network. ## Set Up Your Firewall The Isle daemon will automatically allow the ports used for your storage allocations in Isle's builtin firewall. See the doc on [Firewalls](./firewalls.md), to be sure that your host's firewall is properly set up for providing storage. ## Configure Isle See the [Configuring Networks](./configuring-networks.md) document for notes on how to configure Isle networks. This guide assumes configuration using the CLI. The `isle storage allocation` sub-commands can be used to inspect and manage the storage allocations provided by the host. ```bash isle storage allocations list # [] isle storage allocation add \ --data-path /mnt/drive/isle/data \ --meta-path /mnt/drive/isle/meta \ --capacity 100 isle storage allocations list # - index: 0 # data_path: /mnt/drive/isle/data # meta_path: /mnt/drive/isle/meta # capacity: 100 # s3_api_port: 3901 # rpc_port: 3900 # admin_port: 3902 ``` The above example shows 100GB of storage being added to the network at `/mnt/drive/isle/data`. It's important to remember that the same data or meta directory cannot be shared between different allocations or different networks. The meta directory doesn't store very much data. If possible it's better to place the meta directory on a fast drive like an SSD, while the data directory for the same allocation remains on a large spinning-disk drive. This is not a requirement though, and the network will function fine either way. ## Removing Allocations If you later decide to no longer provide storage the `isle storage allocations remove` command can be used to remove it. Each allocation is identified by its index, as returned by `isle storage allocations list`. ```bash isle storage allocations list # - index: 0 # data_path: /mnt/drive/isle/data # meta_path: /mnt/drive/isle/meta # capacity: 100 # s3_api_port: 3901 # rpc_port: 3900 # admin_port: 3902 isle storage allocation remove --index=0 isle storage allocations list # [] ``` Once removed, it is advisable to wait some time before removing storage allocations from other hosts. This ensures that all data which was previously on this host has had a chance to fully replicate to multiple other hosts. ## Further Reading Isle uses the [garage][garage] project for its storage system. See the [Managing Garage](managing-garage.md) document for more information on how to interact directly with the garage instance being run by isle. [garage]: https://garagehq.deuxfleurs.fr/documentation/quick-start/