# Publishing Sources

A Source defines the execution environment for your tasks—what Docker container to run and under what constraints.

## What's in a Source

| Component                 | Description                                                   |
| ------------------------- | ------------------------------------------------------------- |
| **Docker Compose**        | Container network configuration (YAML) for each hardware type |
| **Min payment**           | Minimum $OGPU per task                                        |
| **Max duration**          | Maximum execution time allowed                                |
| **Hardware requirements** | VRAM, RAM, compute capability                                 |
| **Delivery method**       | First Response or Manual Confirmation                         |
| **Privacy settings**      | Optional encryption for task data                             |

## Creating a Source

### Via Client App

1. Go to [client.opengpu.network](https://client.opengpu.network)
2. Connect your wallet
3. Click "Create Source"
4. Configure:
   * Upload Docker Compose configuration
   * Set payment and timing constraints
   * Choose supported hardware environments
   * Select delivery method
5. Deploy

### Via SDK

```python
source_config = {
    "name": "My-LLM-Model",
    "docker_images": {
        "nvidia": "myregistry/mymodel:cuda-latest"
    },
    "constraints": {
        "min_payment": 0.001,
        "max_duration": 3600,
        "min_vram_gb": 8
    },
    "delivery_method": "FirstResponse"
}

source = await client.sources.create(source_config)
```

## Container Configuration

Sources require Docker Compose YAML files defining your container network. You can upload separate configurations for each hardware type (CPU, NVIDIA, AMD) or use the Hugging Face Ready option for direct model integration.

Since providers execute client-provided containers, sources are subject to trust considerations. See [Staking & Security](/opengpu-network/introduction/staking-and-security.md) for how the protocol handles this.

## After Publishing

Once your Source is live:

1. Providers discover it and evaluate compatibility
2. Providers register and download your container
3. You can start publishing Tasks to it


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://opengpu-network.gitbook.io/opengpu-network/for-clients/publishing-sources.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
