Metadata-Version: 2.1
Name: py-deployer
Version: 1.7.5
Summary: Lightweight package to execute zero-downtime deployment on Linux servers
Home-page: https://github.com/best-practice-src/py-deployer
Author: Fabrizio Fubelli
Author-email: fabrizio@fubelli.org
License: UNKNOWN
Project-URL: Source, https://github.com/best-practice-src/py-deployer/blob/main/README.md
Project-URL: Tracker, https://github.com/best-practice-src/py-deployer/issues
Keywords: deployment python releases git zero-downtime ssh
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: Unix
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Natural Language :: English
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Version Control :: Git
Classifier: Topic :: System
Classifier: Topic :: Utilities
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: argparse
Requires-Dist: gitpython
Requires-Dist: giturlparse
Requires-Dist: paramiko
Requires-Dist: pathlib
Requires-Dist: pyyaml

# Py Deployer

Py Deployer is a lightweight package to execute zero-downtime deployment on **Linux servers**.

```bash
pydeploy -s prod
```

## ✨ Features

- Cross-technology deployments
- Simple configuration
- Zero downtime deployments
- Multiple environment management
- Release version management
- Use SSH protocol

#### ⚠ This package does not currently support after-deployment scripts

## 1️⃣ Installation

```bash
sudo pip3 install py-deployer
```

## 2️⃣ Configuration

Create the file `deploy/config.yaml` inside your project as following:

```yaml
# Example of file: ./deploy/config.yaml

deploy:
  # Shared files and folders (between releases)
  shared: [.env]

  # All available servers (SSH configuration)
  servers:
    dev:
      hostname: '10.56.12.0'
      port: 22
      user: 'dev_username'
      password: ~ # Ignore that if you use SSH keys
      deploy_path: '/server/application/path'
      stage: 'develop'
      branch: 'dev'
      identity_file: ~  # Ignore that if it stay in the default folder (~/.ssh)
      repository: ~     # Ignore that if you run pydeploy from a git project directory
      max_releases: 3
    # ...
    prod:
      hostname: '10.56.11.0'
      port: 22
      user: 'prod_username'
      password: ~ # Ignore that if you use SSH keys
      deploy_path: '/server/application/path'
      stage: 'production'
      branch: 'master'
      identity_file: ~  # Ignore that if it stay in the default folder (~/.ssh)
      repository: ~     # Ignore that if you run pydeploy from a git project directory
      max_releases: 3


```

## 3️⃣ Deployment

Deploy your application by running:

```bash
pydeploy -s <dev|stag|prod|...>
```

## Links

- [PyPi](https://pypi.org/project/py-deployer/)

