---
layout: blog
title: Introducing micro deploy
permalink: /blog/1
description: Deploy your Go Micro services to any Linux server with a single command
---

# Introducing micro deploy

<img src="/images/generated/blog-deploy.png" alt="Introducing micro deploy" style="width: 100%; border-radius: 8px; margin: 1rem 0 1.5rem;" />

*January 27, 2026 • By the Go Micro Team*

We're excited to announce **micro deploy** in Go Micro v5.13.0 — a simple way to deploy your services to any Linux server.

## The Problem

Go Micro has always been great for building microservices:

```bash
micro new myservice
cd myservice
micro run
```

But getting those services to production? That was on you. You'd need to figure out Docker, Kubernetes, or write your own deployment scripts.

We tried to solve this with Micro v3 — a full platform-as-a-service. But it was too much. Too complex. Nobody wanted another platform to manage.

## The Solution

The new approach is simple: **systemd + SSH**.

Every Linux server has systemd. It's battle-tested, it manages processes, it restarts them when they crash, it handles logging. Why reinvent it?

### One-Time Server Setup

```bash
ssh user@server
curl -fsSL https://go-micro.dev/install.sh | sh
sudo micro init --server
```

This creates:
- `/opt/micro/bin/` — where your binaries live
- `/opt/micro/config/` — environment files
- A systemd template for managing services

### Deploy

```bash
micro deploy user@server
```

That's it. The command:
1. Builds your services for Linux
2. Copies binaries via SSH
3. Configures systemd services
4. Verifies everything is running

### Manage

```bash
micro status --remote user@server
micro logs --remote user@server
micro logs myservice --remote user@server -f
```

## Named Deploy Targets

Add deploy targets to your `micro.mu`:

```
service users
    path ./users
    port 8081

service web
    path ./web
    port 8080

deploy prod
    ssh deploy@prod.example.com

deploy staging
    ssh deploy@staging.example.com
```

Then:

```bash
micro deploy prod
micro deploy staging
```

## Philosophy

- **systemd is the standard** — don't fight it, use it
- **SSH is the transport** — no custom agents or protocols
- **Errors guide you** — every failure tells you how to fix it
- **No platform** — just your server, your services

## What's Next?

This is just the beginning. We're thinking about:

- **Secrets management** — integrating with vault/sops
- **Multi-server deploys** — deploy to a fleet
- **Metrics** — Prometheus endpoints out of the box
- **Rolling updates** — zero-downtime deployments

## Try It

```bash
go install go-micro.dev/v5/cmd/micro@v5.13.0
micro new myapp
cd myapp
micro run

# When you're ready to deploy:
micro deploy user@your-server
```

See the [deployment guide](/docs/deployment.html) for full documentation.

---

*Go Micro is an open source framework for distributed systems development in Go. [Star us on GitHub](https://github.com/micro/go-micro).*

<div class="post-nav">
  <div><a href="/blog/">← All Posts</a></div>
  <div></div>
</div>
