Airo: Effortless Project Deployment from Local to Production VPS
Summary
Airo is a Go-based tool designed for simple and efficient deployment of projects from a local machine to a production VPS. It automates the process of building Docker images and deploying them via SSH or a registry, making it ideal for self-hosted side projects. This solution offers a straightforward alternative to complex CI/CD pipelines, focusing on speed and control.
Repository Info
Tags
Click on any tag to explore related repositories
Introduction
Airo is an open-source tool written in Go that simplifies the deployment of your projects directly from your local computer to a production Virtual Private Server (VPS). It's designed to streamline the process of building Docker images and deploying them securely over SSH or through a Docker registry, all driven by a simple airo.yaml configuration file. Airo aims to make self-hosting projects accessible and efficient, reducing the complexity often associated with modern deployment strategies.
Installation
To get started with Airo, you can install it directly from the source code. Ensure you have Go installed on your system.
git clone https://github.com/bypirob/airo.git
cd airo
make install
Examples
Airo uses an airo.yaml file to define your project's images and deployment strategy. Here's a typical configuration example:
images:
app:
base_image: node:24-alpine
target_arch: linux/amd64
deploy:
type: ssh # or registry
containers:
- name: "app"
image: "app"
port: 3000
app_port: 3000
env_file: "/etc/airo/app.env"
networks:
- "frontend"
- "backend"
ssh:
host: "192.168.1.100"
user: "admin"
port: 22
identity_file: "~/.ssh/id_rsa"
registry:
registry_url: "registry.example.com"
repository: "my-app"
Once configured, you can use various commands to manage your deployments:
airo build --tag dev --context .
airo push dev
airo deploy --tag dev
airo release --tag dev --context .
airo status
airo tags
airo version
The airo release command combines building, pushing, and deploying into a single step.
Why Use Airo?
Airo offers a compelling solution for developers who want to deploy their side projects without the overhead of complex infrastructure. While Kubernetes, PaaS, and extensive CI/CD pipelines are powerful, they can be overkill for simpler projects. Airo provides a cost-effective and controlled approach, allowing you to manage your server while still benefiting from automation. Key advantages include:
- Focus on product development, not infrastructure management.
- Efficient Docker image handling, building and delivering via registry or direct copy.
- Instant deployment with a single command from your local machine.
- Secure and easy updates for configurations and containers using SSH.
Links
Explore the Airo project on GitHub for more details, contributions, and the latest updates: