---
title: "Deploy CoPaw - AI Assistant"
description: "Versatile local/cloud AI assistant with memory, tasks, and chat channels."
category: "AI/ML"
url: https://railway.com/deploy/copaw-ai
---

# Deploy CoPaw - AI Assistant

Versatile local/cloud AI assistant with memory, tasks, and chat channels.

**[Deploy CoPaw - AI Assistant on Railway](https://railway.com/template/copaw-ai)**

- **Category:** AI/ML

## Template content

### CoPaw

- **Image:** agentscope/copaw:latest
- **Public domain:** Yes

## Documentation

# Deploy and Host CoPaw on Railway

CoPaw is a personal AI assistant designed to run locally or in the cloud and connect with multiple chat applications. It provides memory and personalization, scheduled tasks, extensible Skills, MCP support, model configuration, and channels including DingTalk, Feishu, QQ, Discord, and iMessage. It also includes a web-based Console for managing the assistant.

## About Hosting CoPaw

Hosting CoPaw on Railway involves deploying the official `agentscope/copaw:latest` Docker image and exposing its Console on port `8088`. CoPaw stores configuration, memory, and Skills in its working directory, `/app/working`, so a Railway Volume should be mounted there to preserve data across deployments and restarts. Railway provides the public HTTPS endpoint for the Console, while model providers and chat channels can be configured through the Console after deployment. Cloud LLM providers may require API keys, while local model backends such as llama.cpp and MLX do not require cloud API keys.

## Common Use Cases

* Personal AI assistants with persistent memory and personalization
* Multi-channel assistants for Discord, DingTalk, Feishu, QQ, iMessage, and other supported channels
* AI productivity and research workflows using Skills, scheduled tasks, MCP tools, and configurable models

## Dependencies for CoPaw Hosting

* CoPaw Docker image
* Railway Volume for persistent configuration, memory, and Skills
* An LLM provider, such as a supported cloud provider or local model backend
* API keys for cloud providers or tools that require them

### Deployment Dependencies

* [CoPaw GitHub Repository](https://github.com/teambition/CoPaw)
* [CoPaw Documentation](https://copaw.agentscope.io/)
* [CoPaw Docker Image](https://hub.docker.com/r/agentscope/copaw)
* [CoPaw Model Configuration Documentation](https://copaw.agentscope.io/docs/models)
* [CoPaw Channel Documentation](https://copaw.agentscope.io/docs/channels)
* [CoPaw Configuration Documentation](https://copaw.agentscope.io/docs/config)

### Implementation Details

#### Docker

CoPaw provides an official Docker image on Docker Hub:

```docker
agentscope/copaw:latest
```

The `latest` tag is documented as the stable image.

Railway can deploy the prebuilt image directly, so no custom build command is required.

#### Public Networking

CoPaw's Console listens on port `8088`.

| Protocol | Proxy Type | Target Port | Purpose                           |
| -------- | ---------- | ----------: | --------------------------------- |
| HTTP     | HTTP Proxy |        8088 | CoPaw Console and web application |

After deployment, generate a Railway domain for port `8088` from **Settings → Networking → Generate Domain**.

The resulting URL can be used to access the CoPaw Console.

#### Environment Variables

CoPaw does not require a fixed set of environment variables for its basic deployment. Model providers and additional tools can be configured from the Console. The documentation specifically supports passing provider keys such as `DASHSCOPE_API_KEY` through the environment, while tool-specific keys such as `TAVILY_API_KEY` can also be configured through **Settings → Environment variables**.

| Variable            | Required | Description                                                 |
| ------------------- | -------- | ----------------------------------------------------------- |
| `DASHSCOPE_API_KEY` | Optional | API key for DashScope when using it as a cloud LLM provider |
| `TAVILY_API_KEY`    | Optional | API key for tools that use Tavily, such as web search       |

Raw Editor example:

```env
DASHSCOPE_API_KEY=your_dashscope_api_key
TAVILY_API_KEY=your_tavily_api_key
```

These variables are optional because CoPaw can also configure providers through the Console. Cloud LLM providers require an API key before they can be used.

#### Persistent Storage

Persistent storage is required for a useful Railway deployment.

The official Docker instructions mount the CoPaw working directory at:

```text
/app/working
```

and state that configuration, memory, and Skills are stored in the volume.

To add persistent storage:

1. Open the CoPaw service in Railway.
2. Go to **Settings**.
3. Open **Volumes**.
4. Add a Volume.
5. Set the mount path to:

```text
/app/working
```

The Volume preserves CoPaw configuration, memory, Skills, and other working data when the service restarts or is redeployed.

#### Database

No external database is documented as required.

CoPaw stores its configuration and memory in its working directory, which should be persisted using the Railway Volume.

#### Build & Start

No custom build or start commands are required when deploying the official Docker image.

Use:

```docker
agentscope/copaw:latest
```

The documented Docker deployment exposes port `8088` and mounts persistent data at `/app/working`.

#### Accessing the Application

After deployment:

1. Open the CoPaw service in Railway.
2. Open **Settings → Networking**.
3. Generate a domain for port `8088`.
4. Open the generated HTTPS URL in your browser.
5. Use the CoPaw Console to configure the assistant.

The Console is the primary interface for chatting with CoPaw and configuring models, channels, Skills, MCP clients, and other settings.

#### First Login and Model Setup

After opening the Railway domain, configure an LLM provider before attempting to chat.

For a cloud LLM:

1. Open the CoPaw Console.
2. Go to **Settings → Models**.
3. Select a provider.
4. Enter the provider API key.
5. Enable the provider and model.
6. Start chatting with CoPaw.

The project documentation states that CoPaw will not work with a cloud LLM until a valid API key is configured.

You can alternatively configure supported provider keys through Railway environment variables.

#### Channels

CoPaw supports multiple chat channels, including:

* DingTalk
* Feishu
* QQ
* Discord
* iMessage
* Telegram
* Voice channels

Channels can be configured from the CoPaw Console after deployment. The project is designed so additional channels and capabilities can be extended through its configuration and Skills system.

#### Skills and MCP

CoPaw includes built-in Skills and supports custom Skills in its workspace. It also supports MCP clients for extending the agent with additional tools and capabilities. These can be managed through the Console after deployment.

#### Local Models

CoPaw supports local model backends including llama.cpp, MLX, and Ollama. The project documentation notes that local models do not require cloud API keys.

When using Ollama as a separate service, configure its reachable Base URL in CoPaw's **Settings → Models → Ollama** rather than using `localhost` to refer to another Railway service.

## Why Deploy CoPaw on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying CoPaw on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


## Similar templates

- [Chat Chat](https://railway.com/deploy/-WWW5r) — Chat Chat, your own unified chat and search to AI platform.
- [stella](https://railway.com/deploy/stella) — Self-host stella with web, API, Postgres, Redis, and object storage.
- [Hermes Agent | OpenClaw Alternative with Dashboard](https://railway.com/deploy/hermes-agent-or-openclaw-alternative-wit) — Self-Hosted Hermes AI Agent for Telegram, Discord & Slack

Open this page in a browser: https://railway.com/deploy/copaw-ai
