Skip to main content

A supervisor for docker-compose apps.

Project description

Harbormaster

Harbormaster is a small utility that lets you easily deploy multiple Docker-Compose applications.

Installation

Installing Harbormaster is simple. You can use pipx (recommended):

$ pipx install docker-harbormaster

Or pip (less recommended):

$ pip install docker-harbormaster

You need to also make sure you have git installed on your system.

Usage

Harbormaster uses a single YAML configuration file that's basically a list of repositories to deploy:

repositories:
  myapp:
    url: https://github.com/someuser/somerepo.git
    branch: main
  otherapp:
    url: https://gitlab.com/otheruser/otherrepo.git
    compose_filename: mydocker-compose.yml

Then, just run Harbormaster in the same directory as that configuration file. Harbormaster will parse the file, automatically download the repositories mentioned in it (and keep them up to date).

Harbormaster only ever writes to the working directory you specify, and nowhere else. All the data for each Compose app is under <workdir>/data/<appname>, so you can easily back up the entire data directory in one go.

Handling data directories

Due to the way Compose files work, you need to do some extra work to properly tell Harbormaster about your volumes.

Harbormaster provides two kinds of directories: Data and cache.

Data is anything that you want to keep. Data directories will never be deleted, if you remove an app later on, its corresponding data directory will be moved under the archives/ directory and renamed to <appname>-<deletion date>.

Cache is anything you don't care about. When you remove an app from the config, the cache dir is deleted.

Harbormaster will look for a file called docker-compose.yml at the root of the repo, and look for the specific strings {{ HM_DATA_DIR }} and {{ HM_CACHE_DIR }} in it. It will replace those strings with the proper directories (without trailing slashes), so the volumes section of your Compose file in your repository needs to look something like this:

volumes:
  - {{ HM_DATA_DIR }}/my_data:/some_data_dir
  - {{ HM_DATA_DIR }}/foo:/home/foo
  - {{ HM_CACHE_DIR }}/my_cache:/some_cache_dir

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

docker-harbormaster-0.1.3.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

docker_harbormaster-0.1.3-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

Details for the file docker-harbormaster-0.1.3.tar.gz.

File metadata

  • Download URL: docker-harbormaster-0.1.3.tar.gz
  • Upload date:
  • Size: 16.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.10

File hashes

Hashes for docker-harbormaster-0.1.3.tar.gz
Algorithm Hash digest
SHA256 40b94a67e8fbf94428d04011404fe87e2c5255f48afff8ccc0ac2b44a884e382
MD5 65b89d8b79c8f621636ff083edc28d02
BLAKE2b-256 14a906c22312a2e95a291a49bd3c743935c55521fe9877573363ec15596d1682

See more details on using hashes here.

File details

Details for the file docker_harbormaster-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: docker_harbormaster-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 17.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.10

File hashes

Hashes for docker_harbormaster-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 0c92c0cec288389950004bd05e38da60bacc8b298885c10e945eb8207f4cf43e
MD5 e6e7394fa677e60212626a475b07fdc7
BLAKE2b-256 31da3107baf710c5ef75920dc38a1bc16621b29008de1f17a1683243b3e97107

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page