Metadata-Version: 2.4
Name: poco
Version: 0.99.6
Summary: poco lets you catalogue and manage your Docker projects using simple YAML files to shorten the route from finding your project to initialising it in your environment.
Home-page: https://www.shiwaforce.com
Author: Shiwaforce.com
License: Apache License 2.0
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.12.3
Description-Content-Type: text/markdown
License-File: LICENCE
Requires-Dist: PyYAML>=6.0.2
Requires-Dist: pyaml==21.10.1
Requires-Dist: gitpython==3.1.30
Requires-Dist: svn==1.0.1
Requires-Dist: docopt==0.6.2
Requires-Dist: pygithub==1.55
Requires-Dist: python-gitlab==3.9.0
Requires-Dist: packaging>=24.0
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# POCO

[![Test](https://github.com/shiwaforce/poco/actions/workflows/test.yaml/badge.svg)](https://github.com/shiwaforce/poco/actions/workflows/test.yaml)
[![pypi](https://img.shields.io/pypi/v/poco.svg)](https://pypi.python.org/pypi/poco)
[![pypi](https://img.shields.io/pypi/pyversions/poco.svg)](https://pypi.python.org/pypi/poco)
[![Test Coverage](https://api.codeclimate.com/v1/badges/62a09af060af69ece1d2/test_coverage)](https://codeclimate.com/github/shiwaforce/poco/test_coverage)
[![Maintainability](https://api.codeclimate.com/v1/badges/62a09af060af69ece1d2/maintainability)](https://codeclimate.com/github/shiwaforce/poco/maintainability)

<p align="center">
  <img width="200" height="200" title="Poco Logo" src="https://raw.githubusercontent.com/shiwaforce/poco/master/logo.svg?sanitize=true"/>
</p>

**Poco** helps to organise and manage Docker, Docker-Compose, Kubernetes projects of any complexity using simple YAML config files to shorten the route from finding your project to initialising it in your local environment.

- **Simple**. Configure, run and switch between projects with a very simple command line interface.
- **Flexibility**. Manage, scale, maintain projects of any complexity with ease.
- **Configure Once, Use Everywhere**. Configure project once so the rest of your team will feel the value of zero configuration.

## Features

- **Docker, Docker-Compose, Kubernetes, Helm** support out of the box.
- **Git, SVN** support out of the box.
- **Project Catalog, Multiple Catalogues**. Create your own project catalog. Organise your projects without additional tools.
- **Multiple Plans**. Create multiple plans for different environments or even environments for demo purposes. Switch between plans (environments) with ease.
- **Simple Config Files**. Poco helps to split config files, so it is easy to maintain and scale them any time.
- **Script Support (Hooks)**. Add additional scripts any time.

## Global options

- `-V`, `--verbose` — Print more (e.g. merged docker compose config for `up`/`down`).
- `-VV` or `--no-matrix` — No matrix effect, show full output (for `up`/`down`). Implies verbose.
- `-q`, `--quiet` — Print less.
- `--offline` — Offline mode.
- `--always-update` — Project repository handle by user.

For `poco up` / `poco down`, a matrix-style effect runs by default; only the final result is shown. Set `POCO_MATRIX=0` to disable the effect, or use `-VV` / `--no-matrix` to disable it and see the full log.

## Documentation

All documentation is available on [getpoco.io](https://getpoco.io/)

- [Documentation](https://getpoco.io/documentation/)
- [Install](https://getpoco.io/documentation/install/)
- [Tutorials](https://getpoco.io/tutorials/hello-world/)
- [Github, Gitlab Integration](https://getpoco.io/documentation/third-party-integrations/)

## Requirements

- **Python 3.12.3** or newer (supported version: **3.14.3**)
- Git or SVN
- SSH
- Docker (17.0.0 or higher version is recommended)
- Docker Compose V2 (plugin: `docker compose`), for compose support
- kubectl, for Kubernetes support
- helm, for helm functionality support

## Quick start

Install `poco`:

```
$:~ pip install poco
```

Init project:

```
$:~ mkdir my-project
$:~ cd my-project
$:~ poco init
```

`poco.yml` and `docker-compose.yml` example files will be created.

Start project:

```
$:~ poco up
```

Before adding your project to Poco Repo create new empty git repository,
add repository to your local Poco Repo config:

```
$:~ poco repo add <name> <git-url>
```

Now you can add your project to repo:

```
$:~ poco project add [<target-dir>] [<catalog>]
```

Publish your changes:

```
$:~ poco repo push
```

Stop your project:

```
$:~ poco stop
```

## Kubernetes & Helm helpers

- **kubectx** — List or switch kubectl context: `poco kubectx` (list), `poco kubectx <context>` (switch).
- **kubens** — List or switch namespace: `poco kubens` (list), `poco kubens <namespace>` (set current context namespace).
- **helm-repos** — List Helm repositories: `poco helm-repos`.
- **helm-list** — List Helm releases: `poco helm-list`, `poco helm-list --all-namespaces` for all namespaces.

Requires `kubectl` and/or `helm` installed and configured.

## Changelog

See [CHANGELOG.md](CHANGELOG.md) for release history. Recent: **0.99.6** — kubectx/kubens/helm helpers, matrix 20-line TTY-adaptive effect, verbose merged compose, `-VV`/`--no-matrix`.

## Licence

[MIT](http://opensource.org/licenses/MIT)
Copyright (c) 2017-present, [Shiwaforce.com](https://www.shiwaforce.com/en/)
