---
sidebar_position: 1
question: "Should I use abi dev up, Docker, or a remote cluster?"
kind: guide
---

> **You are reading the v2.x docs (engine modules). New projects use v3.** [Read this page in v3](/capabilities/deploy/overview) · [Migrate from 2.x to 3.0](/capabilities/upgrade/migrate-to-3)

# Deployment

A project made by `abi new project` runs the same way everywhere: an engine that loads your
modules, a message broker (NATS on ABI 3.x; RabbitMQ on 2.x and on 3.x without NATS), Nexus,
and the backing services your config points at. What changes between a laptop
and production is the config file and who runs the pieces.

## Pick a way to run it

| You want | Use | Guide |
|---|---|---|
| To develop, on your machine, without Docker | `abi dev up` | [Quickstart](/user-guide/get-started/quickstart) |
| The full stack on one machine | `abi deploy local`, `abi stack start` | [Deploy with Docker](/v2/capabilities/deploy/local-docker) |
| One server with a domain and certificates (ABI 3.x) | `abi deploy dokploy` | [Deploy with Dokploy](/v2/capabilities/deploy/dokploy) |
| Your cluster, a container platform or Naas Spaces; a managed NATS (ABI 3.x) | `config.remote.yaml`, `abi deploy naas` | [Production](/v2/capabilities/deploy/production) |
| No outbound network | Local models, an offline bundle | [Air-gapped](/v2/capabilities/deploy/air-gapped) |

[Deployment models](/v2/capabilities/deploy/deployment-models) compares them, from local development to
self-hosted production and the enterprise reference architectures.

## Before production

- **Secrets.** Nothing in the config is a secret: `{{ secret.X }}` resolves from the environment or a
  secret adapter. See [Add secrets](/v2/capabilities/deploy/add_secrets_to_production).
- **Security.** There is no default password, sign-up is off, the broker must stay private, and every module you enable runs inside the engine. See
  [Security and compliance](/v2/capabilities/deploy/security-compliance) and the
  [security model](/developer-guide/architecture/security).
- **Availability.** On ABI 3.x with NATS, one engine serves the kernel services per NATS account, and deploys
  without downtime need shared backends and `ABI_ROLLOUT_ID`. On 2.x a deploy stops the engine, then starts it. See [High availability](/v2/capabilities/deploy/high-availability).
- **Upgrades.** Moving a 2.x deployment: [Migrate from 2.x to 3.0](/user-guide/upgrade/migrate-to-3).
- **Remote agents.** [Publish remote agents](/v2/capabilities/deploy/publish_remote_agents).

## Enterprise implementation

:::info Professional services
naas.ai's team designs and implements enterprise deployments (on-premises, air-gapped, hybrid,
government) with you. Contact [support@naas.ai](mailto:support@naas.ai) to discuss your needs and
timeline. The pages of this section describe what ABI itself provides; what a deployment must add
(identity provider, monitoring, backups, network controls) is yours or your integrator's.
:::
