# DevOps

Install, deploy, secure and monitor Zato environments.

## Get started

Install Zato with Docker on Linux, Windows or Mac, in the cloud or on premises, then deploy your projects with git and keep the whole environment in version control.

[Installation](https://zato.io/docs/admin/guide/install/index.html)

```yaml
name: Installation
actors:
  - id: you
    label: You
  - id: docker
    label: Docker
  - id: environment
    label: Zato environment
steps:
  - from: you
    to: docker
    label: One docker run creates the environment
    align: left
    items:
      - The image is pulled on first use
      - Linux, Windows and Mac alike
  - from: docker
    to: environment
    label: The container starts every component
    align: left
    items:
      - Server, Dashboard and scheduler start together
  - from: environment
    to: you
    kind: return
    label: The environment is up and ready to log in to
```

```yaml
name: Enmasse (GitOps)
actors:
  - id: repository
    label: Git repository
  - id: enmasse
    label: Enmasse import
  - id: server
    label: Zato server
steps:
  - from: repository
    to: enmasse
    label: The pipeline runs the import
    align: left
    items:
      - The whole environment is YAML in git
      - Environment variables supply secrets
  - from: enmasse
    to: server
    label: Enmasse applies the configuration
  - from: server
    to: enmasse
    kind: return
    label: The server confirms each object
  - from: enmasse
    to: repository
    kind: return
    label: The pipeline reports the outcome
    align: left
    items:
      - Missing objects are created
      - Existing ones are updated in place
      - The same file deploys every environment
```

## Deployment and CI/CD

[Enmasse (GitOps) Export and import environment configuration as YAML across dev, test and production.](https://zato.io/docs/admin/enmasse.html) [Enmasse reference The full reference of all options available in enmasse YAML configuration files.](https://zato.io/docs/admin/enmasse-reference.html) [Deploying projects Deploy your Python code and configuration to Zato environments.](https://zato.io/tutorials/devops/deployment.html) [CI/CD test pipelines Run Zato API tests in GitHub Actions, GitLab CI, Azure DevOps and Jenkins.](https://zato.io/docs/api-testing/ci-cd.html)

## Containers and environments

[Docker configuration Quickstart containers, IDE integration, custom pip requirements and persistent configuration.](https://zato.io/docs/admin/guide/docker/index.html) [Kubernetes Helm, health probes, ConfigMap-driven configuration and what a second replica requires.](https://zato.io/docs/admin/guide/kubernetes.html) [ODB configuration The operational database - SQLite, MySQL and PostgreSQL, including TLS connections.](https://zato.io/docs/admin/odb.html) [Environment variables The reference of environment variables - ports, databases, passwords and platform settings.](https://zato.io/tutorials/devops/env-variables.html) [On-prem Gateway Connect a cloud-hosted Zato environment to systems on a private network through a single outbound connection.](https://zato.io/docs/admin/on-prem-gateway/index.html) [Architecture How to design production setups, from single-server to multi-server environments.](https://zato.io/docs/arch/index.html)

## Day-2 operations

[Production checklist What to confirm before an environment takes real traffic - one page, one pass.](https://zato.io/docs/admin/production-checklist.html) [Starting and stopping The Docker commands, what persists across container replacements and what to check afterwards.](https://zato.io/docs/admin/start-stop.html) [Updating environments Replacing a container with a newer image, and what to confirm before you do.](https://zato.io/docs/admin/guide/install/update.html) [Backup What to back up, how to restore it, and what not to bother backing up.](https://zato.io/docs/admin/backup.html) [Ports and network What listens where, which ports to publish and which outbound access the platform needs.](https://zato.io/docs/admin/ports.html)

## Security

[Security overview Platform access, API traffic, checklists and compliance - the whole security area in one place.](https://zato.io/docs/admin/security/index.html) [Security checklist The checklist of what to change, close and verify before an environment takes production traffic.](https://zato.io/docs/admin/security/checklist.html) [Dashboard authentication The admin account and Microsoft Entra ID single sign-on with group-based access.](https://zato.io/docs/admin/dashboard-auth.html) [Rate limiting and firewall Burst control, request caps, IP filtering, time-based rules and silent drops.](https://zato.io/docs/admin/guide/rate-limit.html) [SSL/TLS Configure custom or auto-generated TLS certificates for servers and the Dashboard.](https://zato.io/docs/admin/security/ssl/index.html) [Cryptography and secrets Generate secrets, encrypt data and hash passwords with the platform's crypto API.](https://zato.io/docs/dev/crypto/index.html)

## Observability

[Audit log Record API traffic across REST, SOAP, IMAP and pub/sub, with database storage.](https://zato.io/docs/admin/audit-log/index.html) [Monitoring with Prometheus The /metrics endpoint, RED metrics, scraping configuration and PromQL queries.](https://zato.io/docs/monitoring/index.html) [Logging Log streaming and aggregation, log-level environment variables and per-run scheduler logs.](https://zato.io/docs/admin/logging.html) [Health checks The ping endpoints of each component, and proactive checks of outgoing connections.](https://zato.io/docs/admin/health-checks.html)
