Inserting letsencrypt service name variable, and correcting proxy variables and public (actually smarthost) proxy service file.

This commit is contained in:
2022-04-03 20:12:29 +00:00
parent 9bba9f7494
commit 8b7b1b5f12
5 changed files with 46 additions and 17 deletions

View File

@@ -1,5 +1,4 @@
FROM proxy-scheduler:latest FROM proxy-scheduler:latest
COPY scripts /scripts COPY scripts /scripts
ENTRYPOINT ["/scripts/scheduler.sh"] ENTRYPOINT ["/scripts/scheduler.sh"]

View File

@@ -57,7 +57,7 @@
], ],
"ENV_FILES": [ "/etc/system/config/proxy.json" ], "ENV_FILES": [ "/etc/system/config/proxy.json" ],
"EXTRA": "null", "EXTRA": "null",
"DEPEND": "null", "DEPEND": { "public-proxy.networks.loadbalancer", "public-proxy.containers.loadbalancer-27dhuwdh" ],
"START_ON_BOOT": "true", "START_ON_BOOT": "true",
"CMD": "null", "CMD": "null",
"PRE_START": "null", "PRE_START": "null",

View File

@@ -23,6 +23,7 @@
"DOCKER_REGISTRY_URL": "registry.format.hu", "DOCKER_REGISTRY_URL": "registry.format.hu",
"PROXY_TYPE": "", "PROXY_TYPE": "",
"LETSENCRYPT_URL": "letsencrypt.org", "LETSENCRYPT_URL": "letsencrypt.org",
"LETSENCRYPT_SERVICE_NAME": "letsencrypt.json",
"CERT_DIR": "/keys", "CERT_DIR": "/keys",
"DOMAIN_DIR": "/domains", "DOMAIN_DIR": "/domains",
"PROXY_SERVICE_FILE": "public-proxy.json", "PROXY_SERVICE_FILE": "public-proxy.json",

View File

@@ -4,10 +4,13 @@
DOCKER_REGISTRY_URL=$DOCKER_REGISTRY_URL DOCKER_REGISTRY_URL=$DOCKER_REGISTRY_URL
LETSENCRYPT_URL=$LETSENCRYPT_URL LETSENCRYPT_URL=$LETSENCRYPT_URL
LETSENCRYPT_SERVICE_NAME=$LETSENCRYPT_SERVICE_NAME
CERT_DIR=$CERT_DIR CERT_DIR=$CERT_DIR
DOMAIN_DIR=$DOMAIN_DIR DOMAIN_DIR=$DOMAIN_DIR
DOMAIN=$1 DOMAIN=$1
DOMAIN_CERT_DIR=$CERT_DIR/$DOMAIN DOMAIN_CERT_DIR=$CERT_DIR/$DOMAIN
TIMEOUT=$TIMEOUT
RESTART=$RESTART
# Setup docker registry url path # Setup docker registry url path
@@ -21,10 +24,10 @@ fi
service_exec="docker run --rm \ service_exec="docker run --rm \
-w /services/ \ -w /services/ \
-v /etc/user/config/services/:/services/:ro \ -v /etc/user/config/services/:/services/:ro \
-v /etc/user/config/user.json:/etc/user/config/user.json:ro \
-v /etc/user/config/services/tmp/:/services/tmp/:rw \ -v /etc/user/config/services/tmp/:/services/tmp/:rw \
-v /var/run/docker.sock:/var/run/docker.sock \ -v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker:ro $DOCKER_REGISTRY_URL$SETUP " -v /usr/bin/docker:/usr/bin/docker:ro \
--env DOCKER_REGISTRY_URL=$DOCKER_REGISTRY_URL $DOCKER_REGISTRY_URL$SETUP"
letsencrypt_certificates() { letsencrypt_certificates() {
@@ -44,7 +47,28 @@ letsencrypt_certificates() {
create_self_signed_certificate; create_self_signed_certificate;
fi; fi;
$service_exec /services/letsencrypt.json start LETS_ENCRYPT_VALUE="$(docker ps | grep letsencrypt | grep Up | wc -l)";
for retries in $(seq 0 $((RESTART + 1))); do
if [[ $retries -le $RESTART ]] ; then
if [[ $LETS_ENCRYPT_VALUE -eq 0 ]] ; then
echo "Starting letsencrypt process";
$service_exec $LETSENCRYPT_SERVICE_NAME start ;
break;
else
echo "Waiting "$TIMEOUT" second for previous letsencrypt process ending";
sleep $TIMEOUT;
echo "Not reached number of restart limit: "$RESTART" sleep "$TIMEOUT" and try again to start lets encrypt process."
fi
else
echo "Reached retrying limit: "$RESTART" ,giving up to start lets encrypt process, try self sign the certificate";
create_self_signed_certificate;
fi
done
} }
create_self_signed_certificate() { create_self_signed_certificate() {
@@ -76,6 +100,10 @@ else
echo "{ \"DOMAIN\": \"$DOMAIN\" }" echo "{ \"DOMAIN\": \"$DOMAIN\" }"
} >> "$file" } >> "$file"
letsencrypt_certificates; letsencrypt_certificates;
if [[ ! -f /acme.sh/$DOMAIN/key.pem && ! -f /acme.sh/$DOMAIN/fullchain.pem && ! -f /acme.sh/$DOMAIN/cert.pem ]] ; then
create_self_signed_certificate;
fi
fi fi

View File

@@ -26,9 +26,10 @@ service_exec="docker run --rm \
-w /services/ \ -w /services/ \
-v /etc/user/config/services/:/services/:ro \ -v /etc/user/config/services/:/services/:ro \
-v /etc/user/config/services/tmp/:/services/tmp/:rw \ -v /etc/user/config/services/tmp/:/services/tmp/:rw \
-v /etc/user/config/user.json:/etc/user/config/user.json:ro \
-v /var/run/docker.sock:/var/run/docker.sock \ -v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker:ro $DOCKER_REGISTRY_URL$SETUP " -v /usr/bin/docker:/usr/bin/docker:ro \
--env DOCKER_REGISTRY_URL=$DOCKER_REGISTRY_URL \
$DOCKER_REGISTRY_URL$SETUP"
do_proxy_restart() { do_proxy_restart() {
@@ -65,14 +66,6 @@ do_proxy_restart() {
fi fi
done done
# in case of new proxy configuration generated needed to copy the domain name to the configs file.then remove new_config flag.
if [[ -f $PROXY_CONFIG_DIR/new_config ]] ; then
if [[ ! -f $PROXY_CONFIG_DIR/config || "$(grep $DOMAIN $PROXY_CONFIG_DIR/config 2>/dev/null)" == "" ]] ; then
cat $PROXY_CONFIG_DIR/new_config >> $PROXY_CONFIG_DIR/config;
fi
rm $PROXY_CONFIG_DIR/new_config;
fi
} }
check_domain() { check_domain() {
@@ -122,8 +115,7 @@ if [[ "$RUNNING_CONTAINERS" == "$CONTAINERS_BY_ROLE" || "$RUNNING_CONTAINERS" -g
elif [[ "$RUNNING_CONTAINERS" -eq 0 ]] ; then elif [[ "$RUNNING_CONTAINERS" -eq 0 ]] ; then
echo "No running proxies found, starting all"; echo "No running proxies found, starting all";
$service_exec /services/$SERVICE_NAME.json stop; do_proxy_restart "$CONTAINERS";
$service_exec /services/$SERVICE_NAME.json start;
for proxies in $CONTAINERS ; do for proxies in $CONTAINERS ; do
@@ -176,6 +168,15 @@ fi
# call method # call method
check_proxy_state check_proxy_state
# in case of new proxy configuration generated needed to copy the domain name to the configs file.then remove new_config flag.
if [[ -f $PROXY_CONFIG_DIR/new_config ]] ; then
if [[ ! -f $PROXY_CONFIG_DIR/config || "$(grep $DOMAIN $PROXY_CONFIG_DIR/config 2>/dev/null)" == "" ]] ; then
cat $PROXY_CONFIG_DIR/new_config >> $PROXY_CONFIG_DIR/config;
fi
rm $PROXY_CONFIG_DIR/new_config;
fi
# At last check the previously settings of domain. # At last check the previously settings of domain.
check_domain check_domain