aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--template/docker-compose.yaml.template3
-rwxr-xr-xtool/modules/nginx.py6
-rw-r--r--tool/modules/path.py3
3 files changed, 8 insertions, 4 deletions
diff --git a/template/docker-compose.yaml.template b/template/docker-compose.yaml.template
index 35027c9..d8e1b85 100644
--- a/template/docker-compose.yaml.template
+++ b/template/docker-compose.yaml.template
@@ -54,12 +54,15 @@ services:
nginx:
image: nginx:latest
container_name: nginx
+ restart: on-failure:3
ports:
- "80:80"
- "443:443"
volumes:
- "./nginx-config:/etc/nginx/conf.d:ro"
+ - "./site:/srv/www:ro"
- "./data/certbot/certs:/etc/letsencrypt:ro"
+ - "./data/certbot/webroot:/srv/acme:ro"
networks:
- external
- internal
diff --git a/tool/modules/nginx.py b/tool/modules/nginx.py
index 62d4044..c6e0a71 100755
--- a/tool/modules/nginx.py
+++ b/tool/modules/nginx.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python3
from .template import Template
-from .path import nginx_template_dir
+from .path import project_abs_path, nginx_template_dir
import json
import jsonschema
import os
@@ -63,8 +63,8 @@ def certbot_command_gen(domain: str, action, test=False) -> str:
domains = list_domains(domain)
if action == 'create':
# create with standalone mode
- return f'docker run -it --name certbot -v "./data/certbot/certs:/etc/letsencrypt" -v "./data/certbot/data:/var/lib/letsencrypt" certbot/certbot certonly --standalone -d {" -d ".join(domains)}{ " --test-cert" if test else "" }'
+ return f'docker run -it --rm --name certbot -v "{project_abs_path}/data/certbot/certs:/etc/letsencrypt" -v "{project_abs_path}/data/certbot/data:/var/lib/letsencrypt" certbot/certbot certonly --standalone -d {" -d ".join(domains)}{ " --test-cert" if test else "" }'
elif action == 'renew':
# renew with webroot mode
- return f'docker run -it --name certbot -v "./data/certbot/certs:/etc/letsencrypt" -v "./data/certbot/data:/var/lib/letsencrypt" -v "./data/certbot/webroot:/var/www/certbot" certbot/certbot renew --webroot -w /var/www/certbot'
+ return f'docker run -it --rm --name certbot -v "{project_abs_path}/data/certbot/certs:/etc/letsencrypt" -v "{project_abs_path}/data/certbot/data:/var/lib/letsencrypt" -v "{project_abs_path}/data/certbot/webroot:/var/www/certbot" certbot/certbot renew --webroot -w /var/www/certbot'
raise ValueError('Invalid action')
diff --git a/tool/modules/path.py b/tool/modules/path.py
index 94adc27..24df27a 100644
--- a/tool/modules/path.py
+++ b/tool/modules/path.py
@@ -2,6 +2,7 @@ import os.path
script_dir = os.path.relpath(os.path.dirname(__file__))
project_dir = os.path.normpath(os.path.join(script_dir, "../../"))
+project_abs_path = os.path.abspath(project_dir)
template_dir = os.path.join(project_dir, "template")
nginx_template_dir = os.path.join(template_dir, "nginx")
data_dir = os.path.join(project_dir, "data")
@@ -9,5 +10,5 @@ tool_dir = os.path.join(project_dir, "tool")
config_file_path = os.path.join(data_dir, "config")
nginx_config_dir = os.path.join(project_dir, "nginx-config")
-__all__ = ["script_dir", "project_dir", "template_dir",
+__all__ = ["script_dir", "project_dir", "project_abs_path", "template_dir",
"nginx_template_dir", "data_dir", "config_file_path", "tool_dir", "nginx_config_dir"]