Skip to main content

PyPI version

Skeppa

A docker deployment tool built in python. It is based on fabric and uses docker-compose to orchestrate and manage containers.

Requirements

To install Skeppa you need Python 2.7, docker and docker-compose.

Installation

Stable

pip install skeppa

Develop

pip install git+git://github.com/marteinn/skeppa.git@develop

Getting started

First off, head to your project and install skeppa: pip install skeppa.

Time to setup deployment instructions. This simple example below will try to build a image called app, push to registry, then deploy on remote machine using the docker-compose file.

  1. touch skeppa.yaml

  2. In your skeppa.yaml, add the following:

    prod:
        project: test-project
        hosts: ssh.yourhost.com
        user:  ssh-user
        path: /home/youruser/yourproject/
        key_filename: ~/.ssh/id_rsa.pub
        image:
            name: app
            path: app
            repository:
                url: registry.mydomain.com/app-image
        compose_files: docker-compose.yml

    (This example requires docker image called ``app`` in your project folder, a working docker repository and a working ``docker-compose.yml``).

    Want a full annotated `skeppa.yaml <https://github.com/marteinn/Skeppa/blob/develop/skeppa.annotated.yaml>`__?

  3. Now run skeppa prod setup, this will upload docker-compose.yml to your prod path.

  4. Time to build and push your docker image, skeppa prod build

  5. Now when the image has been built and is in your repository, type skeppa prod deploy to deploy the image on your remote machine.

  6. Done!

Want more examples?

FAQ

  • How can I supply env-variables to skeppa?

    • Since skappa is based on fabric just add -c yourfile.env when running your command. Skeppa will by default try load either skeppa.env, fabricrc.txt or .fabricrc from your cwd.

  • How can I include env-variables in my skeppa.yaml?

    • Just define your variables like this {{ MY_VAR }}. Example: host: {{ HOST }}.

Usage

The tool consists of 4 commands, they can run in conjunction with eachother.

Command

Description

Example

setup

Initializes you application by creating the necessary directories/files. Must run first

skeppa <environment> setup

build

Builds docker images specified in config

skeppa <environment> build

push

Pushes docker image to registry

skeppa <environment> push

deploy

Pulls down docker image on remote and runs docker-compose up

skeppa <environment> deploy

Skeppa?

The name is a wordplay with the swedish word for “to ship” = “skeppa”.

Credits/refefences

Contributing

Want to contribute? Awesome. Just send a pull request.

License

Skeppa is released under the MIT License.

Release files for skeppa 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for skeppa 1.2.0
File Size Uploaded
skeppa-1.2.0.tar.gz 9.5 kB Details

Release files / skeppa-1.2.0.tar.gz

Download URL skeppa-1.2.0.tar.gz
Size 9.5 kB
Tags Source
SHA-256 checksum
How to use checksums
dacdef8ecf468340b996c837b55be58d0920184506fb446fb5637f725d6ea78a
BLAKE2b-256 checksum
How to use checksums
e131ff4591fd4fc0fbdd908556f7ccc8c218dc1a0877f7a38b81d66abe8bd8ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

2.0.6

1 release file

2.0.5

1 release file

2.0.4

1 release file

2.0.3

1 release file

2.0.2

1 release file

2.0.1

1 release file

2.0.0

1 release file

1.6.2

1 release file

1.6.1

1 release file

1.6.0

1 release file

1.5.1

1 release file

1.5.0

1 release file

1.4.0

1 release file

1.3.0

1 release file

This release

1.2.0 This release

1 release file

1.1.0

1 release file

1.0.1

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page