Skip to content

Latest commit

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Easy Deployment

Easy deployment tool for Python application. There are mainly two parts:

  • Create a virtual environment (Optional).
  • Install your application as a service.

Deploy your application with one command!

Install

It's recommended that you install this package in the Global Python Environment.

pip install ezd

On Windows, be careful if you want to uninstall this package. Make sure all services created with this tool are removed.

Usage

Config file

Run ezd init to create a config file named deploy.json.

{
"env": {
"name": "venv"
},
"service": {
"name": "",
"cmd": [],
"display": "",
"description": ""
}
}

A list of full parameters:

ParameterTypeDescriptionWindowsLinux
env.namestringThe name of virtual environment.✔️✔️
env.lookupstringOffline package lookup directory used by pip.✔️✔️
env.localstringA directory contains local package file.✔️✔️
env.requirementboolWhether to install dependencies in requirements.txt. Default is true.✔️✔️
service.namestringThe name of service.✔️✔️
service.cmdlist[string]The command line to be executed.✔️✔️
service.displaystringDisplay name of service.✔️
service.descriptionstringDescription of service.✔️✔️
service.startstringStart type of service (demand/auto/boot/disabled/system). Default is auto.✔️✔️
service.restartintRestart delay (seconds) when service failed. Default is 30.✔️✔️
service.restart_policystringConfigures whether the service shall be restarted when the service exits. Default is on-failure.✔️
service.runtime_max_secintConfigures a maximum time for the service to run. Default is 0.✔️
service.working_directorystringConfigures the working directory of the service. Default is ..✔️✔️
service.depslist[string]Dependencies of service.✔️✔️
service.interactiveboolRun service in interactive mode. Default is false.✔️
service.userstringRun service with given user.✔️✔️
service.passwordstringPassword of the user.✔️
service.delayedboolDelayed start of service.✔️

Commands

Run ezd -h to see all commands.

usage: ezd [-h] command
Easy Deployment Tool
positional arguments:
command Command <init|deploy|install|uninstall|start|stop>
options:
-h, --help show this help message and exit
--config CONFIG config file

Available commands:

CommandDescription
initCreate an example config file deploy.json.
deployCreate virtual environment and install dependencies.
installInstall a service (Automatically run deploy command first).
uninstallRemove service (Automatically run stop command first).
startStart service.
stopStop service.

Update config

Upgrade or install packages

If you need to upgrade or install packages, just edit the requirements.txt file and follow the steps below:

  1. Stop the service

    ezd stop
  2. Deploy new packages

    ezd deploy
  3. Start the service

    ezd start

Update service

If you update the service settings of the config file, you must uninstall the old service first.

  1. Uninstall the service

    ezd uninstall
  2. Install service

    ezd install
  3. Start the service

    ezd start

Examples

Jupyter notebook

Create a new nb directory and start working in it.

cd nb
echo notebook > requirements.txt
ezd init

The deploy.json file looks like this:

{
"env": {
"name": "venv"
},
"service": {
"name": "notebook",
"cmd": [
"jupyter-notebook.exe"
],
"display": "Jupyter Notebook",
"description": "Jupyter Notebook Service"
}
}

We are ready to deploy now.

ezd install
ezd start

You can now visit http://localhost:8888/ to confirm jupyter notebook is running.

Ping test

Create a new pingtest directory and start working in it.

cd pingtest
ezd init

For non-python project, we can omit virtual environment since we don't need it. The deploy.json file looks like this:

{
"service": {
"name": "pingtest",
"cmd": [
"ping",
"-t",
"1.1.1.1"
],
"display": "Ping it",
"description": "A ping test service"
}
}

Deploy now!

ezd install
ezd start

Let's confirm ping is running:

$ tasklist | findstr PING
PING.EXE 19564 Services 0 4,540 K

About

Easy Deployment Tool

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages