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.
- Host: GitHub
- URL: https://github.com/yacinemk/podsy
- Owner: YacineMK
- License: mit
- Created: 2025-07-09T08:12:49.000Z (7 months ago)
- Default Branch: master
- Last Pushed: 2025-07-10T18:19:12.000Z (7 months ago)
- Last Synced: 2025-07-11T00:47:29.276Z (7 months ago)
- Topics: cli, containers, devops, golang, podman, yaml
- Language: Go
- Homepage:
- Size: 2.56 MB
- Stars: 15
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Podsy
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.