bacchus
Advanced tools
+1
-1
| Metadata-Version: 2.1 | ||
| Name: bacchus | ||
| Version: 1.0.1 | ||
| Version: 1.0.2 | ||
| Summary: Home Server solution based on docker | ||
@@ -5,0 +5,0 @@ License: MIT |
+1
-1
| [tool.poetry] | ||
| name = "bacchus" | ||
| version = "1.0.1" | ||
| version = "1.0.2" | ||
| description = "Home Server solution based on docker" | ||
@@ -5,0 +5,0 @@ authors = ["David Francos <opensource@davidfrancos.net>"] |
+1
-1
@@ -25,3 +25,3 @@ # -*- coding: utf-8 -*- | ||
| 'name': 'bacchus', | ||
| 'version': '1.0.1', | ||
| 'version': '1.0.2', | ||
| 'description': 'Home Server solution based on docker', | ||
@@ -28,0 +28,0 @@ 'long_description': None, |
+8
-16
@@ -18,6 +18,6 @@ from pathlib import Path | ||
| def __init__(self, domain, client, docker_prefix, compose, parent, **kwargs): | ||
| name = self.__class__.__name__.lower() | ||
| self.service_name = self.__class__.__name__.lower() | ||
| self.providers = parent.providers | ||
| self.compose = compose | ||
| self.path = DOCKER_PATH / 'data' / name | ||
| self.path = DOCKER_PATH / 'data' / self.service_name | ||
| self.domain = domain | ||
@@ -33,20 +33,12 @@ self.meta = kwargs | ||
| @property | ||
| def containers(self): | ||
| """Return a list of all containers associated with current docker""" | ||
| return { | ||
| a.name.split('_')[1]: a | ||
| for a in self.client.containers.list() | ||
| if a.name.split('_')[0] == self.prefix | ||
| } | ||
| def running(self): | ||
| return self.__class__.__name__.lower() in self.compose.services | ||
| def container_for(self, service_name): | ||
| return next((a for a in self.client.containers.list() if a.id == self.compose.get_service_id(service_name))) | ||
| @property | ||
| def container(self): | ||
| return self.containers.get(self.__class__.__name__.lower()) | ||
| return self.container_for(self.service_name) | ||
| @property | ||
| def running(self): | ||
| if not self.container: | ||
| return False | ||
| return self.container.status == 'running' | ||
| def wait_for_status(self): | ||
@@ -53,0 +45,0 @@ """Wait for container to start.""" |
@@ -15,15 +15,18 @@ from bacchus.base import HomeServerApp | ||
| self.logger.debug('Setting up certificates with lego') | ||
| self.logger.debug( | ||
| self.client.containers.run( | ||
| 'goacme/lego', | ||
| command=cmd, | ||
| environment={'GANDIV5_API_KEY': self.meta['dns_api_key']}, | ||
| volumes={ | ||
| self.path.absolute(): { | ||
| 'bind': '/.lego', | ||
| 'mode': 'rw' | ||
| } | ||
| }, | ||
| auto_remove=True, | ||
| detach=False)) | ||
| try: | ||
| self.logger.debug( | ||
| self.client.containers.run( | ||
| 'goacme/lego', | ||
| command=cmd, | ||
| environment={'GANDIV5_API_KEY': self.meta['dns_api_key']}, | ||
| volumes={ | ||
| self.path.absolute(): { | ||
| 'bind': '/.lego', | ||
| 'mode': 'rw' | ||
| } | ||
| }, | ||
| detach=False)) | ||
| except Exception as err: | ||
| print(err) | ||
| self.logger.debug('Set up certificates with lego') | ||
@@ -30,0 +33,0 @@ |
@@ -54,4 +54,16 @@ from pathlib import Path | ||
| def get_service_id(self, name): | ||
| return subprocess.check_output(['docker-compose', 'ps', '-q', name], | ||
| cwd=DOCKER_PATH, | ||
| env=self.env).strip().decode() | ||
| @property | ||
| def services(self): | ||
| services = [a.strip() for a in subprocess.check_output(['docker-compose', 'ps', '--services'], | ||
| cwd=DOCKER_PATH, | ||
| env=self.env).decode().splitlines()] | ||
| return services | ||
| def restart(self): | ||
| self.stop() | ||
| self.start() |
@@ -171,3 +171,3 @@ import json | ||
| 'http://onlyoffice-document-server/') | ||
| self.containers['onlyoffice-document-server'].exec_run([ | ||
| self.container_for('onlyoffice-document-server').exec_run([ | ||
| "sed", "-i", | ||
@@ -174,0 +174,0 @@ 's/"rejectUnauthorized": true/"rejectUnauthroized": false/g', |
Alert delta unavailable
Currently unable to show alert delta for PyPI packages.
56721
0.82%1114
0.36%