# Container Apps

> Run game servers, databases and apps on Container Apps, with a console, file manager, backups, schedules and more.

Source: https://www.coritan.com/docs/managed-containers/

In the dashboard:

- /solutions/containers: https://www.coritan.com/solutions/containers
- /dashboard/servers: https://www.coritan.com/dashboard/servers

Container Apps runs a game server, a database or an application for you in its own container. You choose the software when you order, we install it and give it an address, and you run it from the dashboard with a console, a file manager, SFTP, snapshots, schedules and shared access. The dashboard calls each one a *server*.

It suits Minecraft worlds and other game servers, databases such as MariaDB, PostgreSQL, MongoDB and Redis, and Node.js or Python apps. The **Software** section of the order page lists everything you can run today. If you need a whole virtual machine with root access instead, use [Cloud Compute](/docs/cloud-compute/).

## Your servers

The **Container Apps** page in the [dashboard](https://www.coritan.com/dashboard/servers) lists every server you own and every server someone has shared with you. Each row shows the server's name, status, tags, address, software and location, with meters for **Memory**, **CPU** and **Disk**.

- Filter the list with **All**, **Running**, **Stopped**, **Installing** or **Suspended**, or select a tag. With more than five servers, a search box finds a server by name, address or tag.
- Select **Copy address** on a row to copy the address players or apps connect to.
- Select **Order server** to open the [order page](/docs/managed-containers/order-a-server/), where you can also add a dedicated address and more snapshot storage to the order.

Select a server's name to open it. The top of the server page shows its status, software, location, server ID (**Copy server ID**) and address, the power buttons, and live **CPU**, **Memory**, **Disk**, **Network in** and **Uptime** figures. The tabs below hold everything else.

The public page at `https://www.coritan.com/solutions/containers` describes the product. Order from the dashboard's order page, which shows the plans, software and locations that are actually available.

## What you can do

Get started:

- [Order a server](/docs/managed-containers/order-a-server/)
- [Host a Minecraft server](/docs/managed-containers/host-a-minecraft-server/), from order to first join
- [How free servers work](/docs/managed-containers/free-servers/)

Run the server:

- [Use the console and power controls](/docs/managed-containers/console/)
- [Server settings](/docs/managed-containers/settings/): address, resources, startup command and tags
- [Change the server software](/docs/managed-containers/software/), with [plugins, mods and modpacks](/docs/managed-containers/software/plugins-and-mods/), [installed addons](/docs/managed-containers/software/installed-addons/), [Java settings](/docs/managed-containers/software/java-settings/), a [resource pack](/docs/managed-containers/software/resource-pack/), [safe mode](/docs/managed-containers/software/safe-mode/), [Bedrock crossplay](/docs/managed-containers/software/bedrock-crossplay/) and [Bedrock packs](/docs/managed-containers/software/bedrock-packs/)
- [Manage server ports](/docs/managed-containers/ports/)

Files and data:

- [Manage server files](/docs/managed-containers/files/) and [connect with SFTP](/docs/managed-containers/sftp/)
- [Import a server from another host](/docs/managed-containers/import/)
- [Create and manage server databases](/docs/managed-containers/databases/)
- [Take a server snapshot](/docs/managed-containers/snapshots/), then [manage and restore snapshots](/docs/snapshots/) for your whole account
- [Manage server backups](/docs/managed-containers/backups/) made before snapshots replaced them

Automate and share:

- [Schedule server tasks](/docs/managed-containers/schedules/)
- [Install server updates](/docs/managed-containers/updates/) and [create server rules](/docs/managed-containers/rules/)
- [Share a server with other users](/docs/managed-containers/users/)

Reference:

- [Server limits and rate limits](/docs/managed-containers/limits/)
- [Troubleshoot servers](/docs/managed-containers/troubleshooting/)

## How servers are billed

Each server is a service on the plan you chose when you ordered it, billed on its cycle (monthly, a longer term, or hourly). The order page shows each plan's price for the cycle you pick. You change the plan or cancel the server from its service page, which the **Plan and billing** link on the server's **Settings** tab opens. [Billing](/docs/billing/) explains invoices, credit and cancellation.

## Limits

- The plan sets each server's memory, CPU, disk, and its database, backup and port slots. The **Resources** card on the server's **Settings** tab shows them.
- Snapshots draw on one allowance for your whole account. [How snapshot storage works](/docs/snapshots/storage-allowance/) explains how big it is.
- Some actions, such as power signals, are rate limited per server. [Server limits and rate limits](/docs/managed-containers/limits/) lists them.

## With the API

`GET /api/v1/client/servers` lists the servers you own or share, the same list the **Container Apps** page shows. Add `?tag=` with one of your tags to list only the servers that carry it. For a server someone shared with you, `owner_email` is `null`.

```bash
curl https://api.coritan.com/api/v1/client/servers \
  -H "Authorization: Bearer $CORITAN_TOKEN"
```

Each item carries the server's `uuid`, `name`, `status`, `ip_address` and `port`, its plan limits (`memory_mb`, `disk_mb`, `cpu_percent`, `allocation_limit`, `database_limit`, `backup_limit`), `template_name` for its software, `location_name`, `service_id` and `tags`. Use the `uuid` in every other server request.

`GET /api/v1/client/servers/live` returns the power state and current usage of several servers in one request. Pass up to 50 server UUIDs, separated by commas, in the `uuids` parameter; without it you get your 50 newest servers.

```bash
curl "https://api.coritan.com/api/v1/client/servers/live?uuids=$SERVER_A,$SERVER_B" \
  -H "Authorization: Bearer $CORITAN_TOKEN"
```

The response holds `items`, one per server with its `uuid`, `state` and usage, and `degraded`, which is `true` when at least one server's state is `unknown` because it could not be read in time.

`GET /api/v1/client/servers/{uuid}` returns one server with the same fields, plus `variables` (its startup variables) and `startup_command`. A server you cannot see answers `404` with `Server not found`. A server that is being deleted answers `409` with the reason `server_deleting`.

## API

- `GET /api/v1/client/servers`: List servers owned by or accessible to current user (https://www.coritan.com/docs/api/reference/client/container-apps/servers/#op-get-api-v1-client-servers)
- `GET /api/v1/client/servers/live`: State and usage for the servers on the list, one request instead of one per server (https://www.coritan.com/docs/api/reference/client/container-apps/servers/#op-get-api-v1-client-servers-live)
- `GET /api/v1/client/servers/{uuid}`: Get server details (https://www.coritan.com/docs/api/reference/client/container-apps/servers/#op-get-api-v1-client-servers-uuid)
