Skip to content

lalokalabs/webship

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tools to deploy python web application. The build process is run in container using podman so make sure you have podman properly setup on the build machine.

Install

pipx install webship

Usage

Create directory to hold the deploy project:-

mkdir -p myapp_deploy

Create webship.ini to hold configuration about the deploy:-

[fetch]
repo = [email protected]:xoxzoeu/myapp.git
clone_args = recursive
command = sh get-externals.sh

[build]
pre_command = cp {poetry.toml,key.txt} build/${main:name}
command = poetry install && npm install && npm run dev

[deploy]
path = /app/myapp
hosts =
    127.0.0.1
    127.0.0.2

Notes:- During build pre_command is running outside container while command running inside container.

To build the app:-

webship fetch
webship build myapp 1.0.1 --docker_image=myapp

That will generate the release tarball in build/myapp-1.0.1.tar.gz. Before deploying the release tarball, we can test it first to make sure everything is working as expected:-

webship run build/myapp-1.0.1.tar.gz ".venv/bin/myapp manage runserver 0.0.0.0:8000" --env-file=/home/kamal/python/myapp_deploy/env 

To deploy:-

webship deploy build/myapp-1.0.1.tar.gz

Deploy directory structure is like below:-

    deploy_path (default to /app/<project_name>)
        releases/
        current --> releases/<project_name>-0.0.1

Active release will be /app/<project_name>/current which is a symlink to active version. This structure will allow multiple apps to be deployed on the same server.

About

Tools to deploy python web application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages