An open API service indexing awesome lists of open source software.

https://github.com/yacinemk/podsy

Podsy is a lightweight CLI tool that lets you orchestrate Podman containers using simple YAML files inspired by Docker Compose, built with Go.
https://github.com/yacinemk/podsy

cli containers devops golang podman yaml

Last synced: 7 months ago
JSON representation

Podsy is a lightweight CLI tool that lets you orchestrate Podman containers using simple YAML files inspired by Docker Compose, built with Go.

Awesome Lists containing this project

README

          

# Podsy


Podsy Logo


A lightweight Podman Compose alternative for managing multi-container applications

## 🚀 Overview

Podsy is a developer-friendly CLI orchestrator that brings Docker Compose-style workflows to Podman. It lets you define multi-container applications in simple YAML files and run them with a single command.

## ✨ Features

- **Simple YAML Configuration**: Define your multi-container setup in a single file
- **Podman Integration**: Leverages Podman's rootless containers for better security
- **Resource Management**: Handles networks, volumes, secrets, and configs
- **Self-updating**: Easy updates to the latest version with a single command

## 📥 Installation

### Using Pre-built Binaries

Download the latest release from [GitHub Releases](https://github.com/YacineMK/Podsy/releases).

```bash
# Download the binary
curl -L -o podsy https://github.com/YacineMK/Podsy/releases/latest/download/podsy-linux-amd64

# Make it executable
chmod +x podsy

# Move to a directory in your PATH
sudo mv podsy /usr/local/bin/
```

### Building from Source

```bash
# Clone the repository
git clone https://github.com/YacineMK/Podsy.git
cd Podsy

# Build
make build

# Install
sudo cp dist/podsy /usr/local/bin/
```

## 🛠️ Quick Start

1. Create a `podman-compose.yaml` file:

```yaml
version: "0.0.1"

services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- web-content:/usr/share/nginx/html:ro
networks:
- podman

redis:
image: redis:alpine
networks:
- podman
volumes:
- redis-data:/data

networks:
podman:
external: true
name: podman

volumes:
web-content:
redis-data:
```

2. Start your application:

```bash
podsy up
```

3. Stop your application:

```bash
podsy down
```

## 📖 Command Reference

### `podsy up`

Start services defined in a Podman compose file.

```bash
podsy up [--file/-f filename]
```

### `podsy down`

Stop and remove containers (without deleting volumes, configs, or networks).

```bash
podsy down [--file/-f filename]
```

### `podsy validate`

Validate a Podman Compose YAML file.

```bash
podsy validate [--file/-f filename]
```

### `podsy config`

Edit Podman registry configuration file.

```bash
podsy config
```

### `podsy update`

Check for updates and upgrade Podsy to the latest version.

```bash
podsy update
```

### `podsy version`

Print the version of Podsy.

```bash
podsy version
```

## 🧩 Advanced Features

### Using Secrets and Configs

Podsy supports Docker Compose-style secrets and configs:

```yaml
services:
web:
image: nginx:alpine
secrets:
- source: web_secret
configs:
- source: web_config

secrets:
web_secret:
file: ./secret.txt

configs:
web_config:
file: ./nginx.conf
```

## 🤝 Contributing

Contributions are welcome! Please see our [Contributing Guide](CONTRIBUTING.md) for more details.

## 📄 License

Podsy is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.