https://github.com/bypirob/airo
Deploy your projects from local to production (self-hosted).
https://github.com/bypirob/airo
devops self-hosted
Last synced: 12 days ago
JSON representation
Deploy your projects from local to production (self-hosted).
- Host: GitHub
- URL: https://github.com/bypirob/airo
- Owner: bypirob
- License: mit
- Created: 2025-03-08T10:01:59.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-03-19T16:15:47.000Z (10 months ago)
- Last Synced: 2025-03-19T16:25:55.782Z (10 months ago)
- Topics: devops, self-hosted
- Language: Go
- Homepage:
- Size: 19.5 KB
- Stars: 368
- Watchers: 3
- Forks: 16
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🚀 Airo
**Deploy your projects directly from your local computer to your production server (VPS) easily.**
Airo builds Docker images and deploys them over SSH or via a registry, driven by `airo.yaml`.
## Why Airo?
Deploying side-projects doesn't have to be complicated or expensive. Kubernetes, Platform as a Service (PaaS) and CI/CD pipelines are a powerful and exciting solutions, but sometimes they're more complex than your project requires. If you enjoy managing your server, it can be significantly cheaper and offer greater control over the technical details.
I want to automate this process and deploy easily to my own server. That's why I've created **Airo**:
- 🚀 **Focus on building your product**, not managing infrastructure.
- 🐳 **Build and deliver Docker images via a registry or direct copy**.
- ⚡️ **Deploy instantly** with a single command from your computer.
- 🔑 **Easily update configurations and containers securely** using SSH.
## Installation
### From Source
```bash
git clone https://github.com/bypirob/airo.git
cd airo
make install
```
## Usage
### Configure airo.yaml
```yaml
name: airo
container:
target_arch: linux/amd64
port: 3000
app_port: 3000
deploy:
type: ssh # or registry
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"
```
### Commands
```bash
airo build --tag airo:dev --context .
airo push --tag airo:dev
airo deploy --tag airo:dev
airo status
airo tags
airo tags --remote
airo release --tag airo:dev --context .
airo version
```
### Project and config paths
By default, airo reads `airo.yaml` from the current directory. You can point to a different project root or config file:
```bash
airo build --project /path/to/project --config airo.yaml
```