======================== Creating custom channels ======================== In this tutorial, we walk through how to create your own channel that can either be accessed via the local or network file system or served from a webserver. To create a custom channel: #. You will need to install conda-build to complete this tutorial. If you do not already have it, you can install it with the following command: .. code:: conda install conda-build #. Organize all the packages in subdirectories for the platforms you wish to serve. Below is an example of what this may look like: .. code:: channel ├── linux-64 │ └── package-1.0-0.tar.bz2 ├── osx-64 │ └── package-1.0-0.tar.bz2 └── win-64 └── package-1.0-0.tar.bz2 #. Run ``conda index`` on the channel root directory: .. code:: conda index channel/ The conda index command generates a file ``repodata.json``, saved to each repository directory, which conda uses to get the metadata for the packages in the channel. .. note:: Each time you add or modify a package in the channel, you must rerun ``conda index`` for conda to see the update. #. To test custom channels, serve the custom channel using a web server or using a ``file://`` URL to the channel directory. Test by sending a search command to the custom channel. **Example**: if you want a file in the custom channel location ``/opt/channel/linux-64/``, search for files in that location: .. code:: conda search -c file:///opt/channel/ --override-channels .. note:: * The channel URL does not include the platform, as conda automatically detects and adds the platform. * The option ``--override-channels`` ensures that conda searches only your specified channel and no other channels, such as default channels or any other channels you may have listed in your ``.condarc`` file. If you have set up your private repository correctly, you get the following output: .. code:: Fetching package metadata: . . . . This is followed by a list of the conda packages found. This verifies that you have set up and indexed your private repository successfully.