# Configuring Networks Only users who intend on providing some resource to a network, such as [storage][storage] or [a public address][publicaddr], will need to perform any network-related configuration on their host. There are two different ways to manage the configuration of a host related to a particular network: command-line, or configuration file. Command-line is generally more convenient, but the configuration file exposes even more fine-grained controls for super power users and might be preferred by them. When a host is joined to multiple networks the user is able to configure some of them using one mode and the rest using the other. [storage]: contributing-storage.md [publicaddr]: contributing-a-public-address.md ## Command-line Interface (CLI) Configuring using the CLI is as easy as using the `isle` command-line tool, and is covered by other documentation such as those linked above. Keep in mind that if a network's configuration is managed by a configuration file then the related CLI commands will return an error indicating that the configuration file must be modified instead. ```bash isle vpn public-address unset # [4] Network configuration is managed by the daemon.yml ``` ## Configuration File (daemon.yml) A `daemon.yml` file can be provided to the daemon process when it is run using the `--config-path` parameter. If Isle is [installed from a package][install] then this file will be automatically referenced by the daemon service, and can be found at `/etc/isle/daemon.yml`. If not the steps to create it are described in that same document. Within the `daemon.yml` is the `networks` field, which accepts a mapping of network identifier to network configuration. The comments in the file itself describe the available configuration parameters. There are three different ways to identify the network in this file: * Network identifier (a big long random string, unique to each network) * Network name * Network domain If you're not sure of how to identify a network, you can see all three for each network using the `isle network list` command: [install]: ../install.md ## Switching From CLI to Configuration File (or Vice-Versa) If you want to switch from using CLI-based configuration to using the configuration file, you only need to add the desired configuration to the `daemon.yml` file and restart the `isle` process. You can use `isle network get-config` to get the currently active configuration for a network in the same format as would be used in `daemon.yml`. This can be copy-pasted into the `daemon.yml` for a clean transition. If you want to switch from using the configuration file to using CLI-based configuration you only need to remove the section of the configuration file related to the network and restart the `isle` service. Isle will remember the most recently used configuration for the network and use that upon restart if none is provided in the configuration file.