diff --git a/SUMMARY.md b/SUMMARY.md index 6e6d8d1a..f7f9f710 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -30,6 +30,7 @@ * [Setup server](building-with-ocean/deploying-components/setup-server.md) * [Deploying Marketplace](building-with-ocean/deploying-components/deploying-marketplace.md) * [Deploying Aquarius](building-with-ocean/deploying-components/deploying-aquarius.md) + * [Deploying Provider](building-with-ocean/deploying-components/deploying-provider.md) * [Deploying Ocean subgraph](building-with-ocean/deploying-components/deploying-ocean-subgraph.md) * [Contributing](core-concepts/contributing.md) * [Contributor Code of Conduct](core-concepts/code-of-conduct.md) diff --git a/building-with-ocean/deploying-components/deploying-provider.md b/building-with-ocean/deploying-components/deploying-provider.md new file mode 100644 index 00000000..c83b7c63 --- /dev/null +++ b/building-with-ocean/deploying-components/deploying-provider.md @@ -0,0 +1,80 @@ +# Deploying Provider + +### About Provider + +Provider encrypts the URL and metadata during publish and decrypts the URL when the dataset is downloaded or a compute job is started. It enables the access to data assets by streaming data (and never the URL). It performs checks on chain for buyer permissions and payments. It also Provides compute services (connects to C2D environment). +The source code of Provider can be access from [here](https://github.com/oceanprotocol/provider). + +### Prerequisites + +* Docker and Docker compose are installed. Click [here](https://docs.docker.com/engine/install/) to view guide on installing docker. +* Ethereum API. + See [this](../obtaining-api-key.md) guide on obtaining api key. + +### Create a working directory + +``` +mkdir Provider +cd Provider +``` + +### Create a \`.env\` file + +Copy the below content into the \`.env\` file and edit the values as needed. + + +{% code title=".env" %} +``` +# Mandatory variables + +# Update the value to the appropriate tag from here: https://hub.docker.com/r/oceanprotocol/provider-py/tags +PROVIDER_VERSION=latest +PROVIDER_PRIVATE_KEY= +NETWORK_URL= +AQUARIUS_URL= +``` +{% endcode %} + +### Create docker-compose file + +{% code title="docker-compose.provider.yml" %} +```yaml +version: '3' +services: + provider: + image: oceanprotocol/provider-py:v1.0.20 + container_name: provider + ports: + - 8030:8030 + networks: + - ocean_backend + environment: + NETWORK_URL: ${NETWORK_URL} + PROVIDER_PRIVATE_KEY: ${PROVIDER_PRIVATE_KEY} + LOG_LEVEL: DEBUG + OCEAN_PROVIDER_URL: "http://0.0.0.0:8030" + OCEAN_PROVIDER_WORKERS: "1" + OCEAN_PROVIDER_TIMEOUT: "9000" + # Defining OPERATOR_SERVICE_URL is optional. Set the value only if Provider should support Compute-to-data. + OPERATOR_SERVICE_URL: "" + # Defining IPFS_GATEWAY is optional. Set the value if Provider should support resolving IPFS urls. + IPFS_GATEWAY: "" + AQUARIUS_URL: ${AQUARIUS_URL} +volumes: + data: + driver: local +networks: + ocean_backend: + driver: bridge +``` +{% endcode %} + +### Start Provider + +``` +docker-compose \ +-f docker-compose.provider.yml +--env-file .env \ +-d \ +up +```