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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40b94a67e8fbf94428d04011404fe87e2c5255f48afff8ccc0ac2b44a884e382 |
|
MD5 | 65b89d8b79c8f621636ff083edc28d02 |
|
BLAKE2b-256 | 14a906c22312a2e95a291a49bd3c743935c55521fe9877573363ec15596d1682 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c92c0cec288389950004bd05e38da60bacc8b298885c10e945eb8207f4cf43e |
|
MD5 | e6e7394fa677e60212626a475b07fdc7 |
|
BLAKE2b-256 | 31da3107baf710c5ef75920dc38a1bc16621b29008de1f17a1683243b3e97107 |