Inserting letsencrypt service name variable, and correcting proxy variables and public (actually smarthost) proxy service file.
This commit is contained in:
@@ -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"]
|
||||||
|
@@ -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",
|
||||||
|
@@ -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",
|
||||||
|
@@ -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
|
||||||
|
|
||||||
|
|
||||||
|
@@ -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
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user