> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ardor.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Service

> A Service in Ardor Cloud represents a containerized application with its source code, configuration, and runtime settings. Services can be created from Docker images, GitHub repositories, or built from scratch, providing flexibility for different development workflows.

## Overview

<img src="https://mintcdn.com/ardor/sf-RwXk0pWSNetwj/docs/services/images/overview.webp?fit=max&auto=format&n=sf-RwXk0pWSNetwj&q=85&s=ad0694ed6b10e1005c551b15480f272e" alt="Service Overview" width="1710" height="492" data-path="docs/services/images/overview.webp" />

<Tip>
  **Just tell Cerebrum what you need.** "Create a Python API with PostgreSQL" or "add a Redis cache" — Cerebrum will build everything for you. This documentation explains how things work and helps when you want to configure details manually.
</Tip>

## Creating a Service

Click **Add Service** and choose your source:

<img src="https://mintcdn.com/ardor/sf-RwXk0pWSNetwj/docs/services/images/creation-options.webp?fit=max&auto=format&n=sf-RwXk0pWSNetwj&q=85&s=ad81a37fe13b2620101838cacc5f454d" alt="Create Service options" width="851" height="848" data-path="docs/services/images/creation-options.webp" />

<CardGroup cols="3">
  <Card title="Docker Image" icon="docker" href="/docs/services/create_service/docker-image">
    Deploy any public image from Docker Hub — databases, caches, ready-to-run apps
  </Card>

  <Card title="GitHub Repository" icon="github" href="/docs/services/create_service/import-from-github">
    Import existing code from your GitHub repos
  </Card>

  <Card title="Empty Service" icon="file-circle-plus" href="/docs/services/create_service/empty">
    Start from scratch — write your own code with Cerebrum's help
  </Card>
</CardGroup>

<Note>
  After creation, Ardor initializes a dev container for your service. This may take some time depending on the service type.
</Note>

## Deployment

All services, except those based on Docker images, require a `Dockerfile` in the project root. The Dockerfile defines how your application is built and containerized.

<Card title="Dockerfile Requirements" icon="file-code">
  Your Dockerfile should:

  * Expose the port your application listens on
  * Define the command to start your application
</Card>

<Card title="Deployments Guide" icon="rocket" href="/docs/environments/deployments">
  Learn how deployments work — build process, environments, and troubleshooting failed builds.
</Card>

## Resource Configuration

Services require CPU, RAM, and optionally storage resources to run. Configure resource allocation using sliders to match your application's requirements and expected usage patterns.

<img src="https://mintcdn.com/ardor/sf-RwXk0pWSNetwj/docs/services/images/resources.webp?fit=max&auto=format&n=sf-RwXk0pWSNetwj&q=85&s=d6b272b13370cb290df2da5cb5e58ee2" alt="Service Resource Configuration" width="867" height="906" data-path="docs/services/images/resources.webp" />

Available resource ranges:

* **CPU**: Adjustable from 0.1 to 4 cores
* **RAM**: Configurable from 128MB to 8GB
* **Storage**: Optional persistent storage from 1GB to 16GB

<Note>
  Not sure how much you need? Start with minimal values and adjust based on actual usage. If your service needs more than the available limits — [reach out to us](https://discord.gg/duxdV5hT5y)!
</Note>

## Development Container

Each service gets its own isolated dev container — a live environment for you and Cerebrum to build, test, and iterate.

* **Isolated**: Own filesystem, terminal, CPU/RAM, and development URL
* **Live**: Real-time code execution with hot reload

<Note>
  Something not working? Just ask Cerebrum — it can read logs, debug issues, fix code, and restart your container.
</Note>

## Best Practices

<CardGroup cols="2">
  <Card title="Resource Planning" icon="chart-bar">
    Start with minimal resources and scale up based on actual usage.
  </Card>

  <Card title="Security" icon="shield">
    Use secrets for sensitive data. Never commit API keys to your repository.
  </Card>

  <Card title="Development Workflow" icon="code">
    Build and test in dev container, then deploy to production.
  </Card>

  <Card title="Port Configuration" icon="network-wired">
    Always read the `PORT` environment variable — don't hardcode ports.
  </Card>
</CardGroup>

## What's Next

<CardGroup cols="2">
  <Card title="Docker Images" icon="docker" href="/docs/services/create_service/docker-image">
    Deploy databases, caches, and ready-to-run apps from Docker Hub
  </Card>

  <Card title="Empty Service" icon="file-circle-plus" href="/docs/services/create_service/empty">
    Build from scratch with your own code and Dockerfile
  </Card>

  <Card title="GitHub Integration" icon="github" href="/docs/integrations/github">
    Connect repos and keep code in GitHub
  </Card>

  <Card title="Deployments" icon="rocket" href="/docs/environments/deployments">
    Build process and troubleshooting
  </Card>

  <Card title="Networking" icon="network-wired" href="/docs/services/networking">
    Internal URLs, public access, and architecture patterns
  </Card>

  <Card title="Environments" icon="layer-group" href="/docs/services/environments">
    Create isolated environments for features, staging, and production
  </Card>

  <Card title="Variables & Secrets" icon="key" href="/docs/services/variables-and-secrets">
    Configure services with environment variables
  </Card>

  <Card title="Logging" icon="scroll" href="/docs/services/logging">
    Monitor, debug, and understand your services
  </Card>
</CardGroup>
