mirror of
https://github.com/chevereto/docker.git
synced 2025-12-16 21:19:44 +01:00
improve sh
This commit is contained in:
10
Makefile
10
Makefile
@@ -158,7 +158,7 @@ cloudflare:
|
||||
@./scripts/system/cloudflare.sh
|
||||
|
||||
cloudflare--create:
|
||||
@./scripts/system/cloudflare--create.sh | (printf "CLOUDFLARE_IDENTIFIER=" && cat) >> ${NAMESPACE_FILE}
|
||||
@NAMESPACE_FILE=${NAMESPACE_FILE} ./scripts/system/cloudflare--create.sh
|
||||
|
||||
cloudflare--delete:
|
||||
@./scripts/system/cloudflare--delete.sh
|
||||
@@ -215,7 +215,7 @@ down--volumes: feedback feedback--compose
|
||||
spawn: feedback feedback--compose feedback--url cloudflare--create up-d
|
||||
|
||||
.PHONY: deploy
|
||||
deploy: feedback feedback--compose feedback--url
|
||||
deploy:
|
||||
@./scripts/system/deploy.sh
|
||||
|
||||
update: feedback feedback--compose feedback--url
|
||||
@@ -225,12 +225,6 @@ destroy: feedback feedback--compose cloudflare--delete
|
||||
${DOCKER_COMPOSE} down --volumes
|
||||
@rm namespace/${NAMESPACE}
|
||||
|
||||
# Provisioning
|
||||
|
||||
provision: feedback--short
|
||||
make namespace HOSTNAME="${NAMESPACE}.${DOMAIN}"
|
||||
make spawn NAMESPACE=${NAMESPACE}
|
||||
|
||||
install: feedback--short
|
||||
docker exec -it --user ${DOCKER_USER} \
|
||||
${CONTAINER_BASENAME}_${SERVICE} \
|
||||
|
||||
14
README.md
14
README.md
@@ -96,20 +96,6 @@ make image
|
||||
make namespace NAMESPACE=yourproject HOSTNAME=yourdomain.tld
|
||||
```
|
||||
|
||||
## Spawn Chevereto instance
|
||||
|
||||
* Run the Chevereto container using [spawn](docs/DOCKER-COMPOSE.md#spawn):
|
||||
|
||||
```sh
|
||||
make spawn NAMESPACE=yourproject
|
||||
```
|
||||
|
||||
* 💡 When using free edition pass `EDITION=free`:
|
||||
|
||||
```sh
|
||||
make spawn NAMESPACE=yourproject EDITION=free
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
* [SETUP](./docs/SETUP.md)
|
||||
|
||||
@@ -53,10 +53,6 @@ The A record used to point CNAMEs generated by this project.
|
||||
|
||||
**Note:** Following commands must run only after creating the [NAMESPACE](NAMESPACE.md).
|
||||
|
||||
### Spawn instance
|
||||
|
||||
Refer to [make spawn](DOCKER-COMPOSE.md#spawn).
|
||||
|
||||
### Destroy instance
|
||||
|
||||
Refer to [make destroy](DOCKER-COMPOSE.md#destroy).
|
||||
|
||||
@@ -97,16 +97,6 @@ make down--volumes
|
||||
|
||||
## Combined commands
|
||||
|
||||
### Spawn
|
||||
|
||||
💡 Use it right after creating the NAMESPACE.
|
||||
|
||||
This will run [cloudflare--create](CLOUDFLARE.md#create-cname-record) and [up-d](DOCKER-COMPOSE.md#up-daemon).
|
||||
|
||||
```sh
|
||||
make spawn NAMESPACE=yourproject
|
||||
```
|
||||
|
||||
### Destroy
|
||||
|
||||
💡 Use it when needing to complety destroy an instance.
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/bin/bash
|
||||
curl --request POST \
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
echo "* Creating ${HOSTNAME} CNAME record at CloudFlare"
|
||||
CLOUDFLARE_IDENTIFIER=$(curl --request POST \
|
||||
--url https://api.cloudflare.com/client/v4/zones/${CLOUDFLARE_ZONE_ID}/dns_records \
|
||||
--header "Content-Type: application/json" \
|
||||
--header "Authorization: Bearer ${CLOUDFLARE_TOKEN}" \
|
||||
@@ -9,4 +11,10 @@ curl --request POST \
|
||||
"type": "CNAME",
|
||||
"proxied": true,
|
||||
"ttl": 3600
|
||||
}' | jq -r '.result.id'
|
||||
}' | jq -r '.result.id')
|
||||
if [ "${CLOUDFLARE_IDENTIFIER}" == null ]; then
|
||||
echo "CloudFlare integration failure"
|
||||
exit 1
|
||||
fi
|
||||
echo "CLOUDFLARE_IDENTIFIER=${CLOUDFLARE_IDENTIFIER}" >>${NAMESPACE_FILE}
|
||||
echo "[OK] Hostname created @ ${CLOUDFLARE_IDENTIFIER}"
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
|
||||
curl --request DELETE \
|
||||
--url https://api.cloudflare.com/client/v4/zones/${CLOUDFLARE_ZONE_ID}/dns_records/${CLOUDFLARE_IDENTIFIER} \
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
|
||||
CLOUDFLARE_FILE_PATH=${PROJECT_DIR}/../nginx/cloudflare.conf
|
||||
cat >${CLOUDFLARE_FILE_PATH} <<EOM
|
||||
|
||||
@@ -2,8 +2,9 @@
|
||||
set -e
|
||||
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
|
||||
CRON_FILE=/etc/cron.d/chevereto
|
||||
echo "* Creating ${CRON_FILE}"
|
||||
cat >${CRON_FILE} <<EOM
|
||||
* * * * * ${USER} ${PROJECT_DIR}/cron--run.sh >/dev/null 2>&1
|
||||
45 2 * * * ${USER} ${PROJECT_DIR}/cloudflare.sh >/dev/null 2>&1
|
||||
EOM
|
||||
echo ${CRON_FILE}
|
||||
echo "[OK] Cron file created @ ${CRON_FILE}"
|
||||
|
||||
@@ -1,23 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
NAMESPACE="${NAMESPACE}"
|
||||
ADMIN_USER="${ADMIN_USER:-admin}"
|
||||
ADMIN_EMAIL="${ADMIN_EMAIL}"
|
||||
ADMIN_PASSWORD="$(openssl rand -base64 8)"
|
||||
|
||||
NAMESPACE=${NAMESPACE} make --no-print-directory provision &&
|
||||
NAMESPACE=${NAMESPACE} \
|
||||
ADMIN_PASSWORD=${ADMIN_PASSWORD} \
|
||||
ADMIN_EMAIL=${ADMIN_EMAIL} \
|
||||
ADMIN_USER=${ADMIN_USER} make --no-print-directory install
|
||||
|
||||
if [ -z "${CLOUDFLARE_A_NAME}" ]; then
|
||||
HOSTNAME="${DOMAIN}"
|
||||
echo "* CLOUDFLARE_A_NAME is not set. Skipping DNS creation."
|
||||
else
|
||||
HOSTNAME="${NAMESPACE}.${DOMAIN}"
|
||||
fi
|
||||
echo "* Using hostname ${HOSTNAME}"
|
||||
make --no-print-directory feedback feedback--compose feedback--url NAMESPACE=${NAMESPACE}
|
||||
make --no-print-directory namespace NAMESPACE=${NAMESPACE} HOSTNAME="${HOSTNAME}"
|
||||
if [ -n "${CLOUDFLARE_A_NAME}" ]; then
|
||||
make --no-print-directory cloudflare--create NAMESPACE=${NAMESPACE}
|
||||
fi
|
||||
make --no-print-directory up-d NAMESPACE=${NAMESPACE}
|
||||
make --no-print-directory install NAMESPACE=${NAMESPACE} ADMIN_USER=${ADMIN_USER} ADMIN_EMAIL=${ADMIN_EMAIL} ADMIN_PASSWORD=${ADMIN_PASSWORD}
|
||||
echo ""
|
||||
echo "🚀 Deployment complete!"
|
||||
|
||||
echo "[OK] Deployment complete!"
|
||||
NAMESPACE=${NAMESPACE} make --no-print-directory feedback--url
|
||||
|
||||
echo "Login details"
|
||||
echo "--"
|
||||
echo "Email: ${ADMIN_EMAIL}"
|
||||
|
||||
@@ -4,13 +4,14 @@ if [ -f "${NAMESPACE_FILE}" ]; then
|
||||
echo "[!] File ${NAMESPACE_FILE} already exists"
|
||||
exit 1
|
||||
fi
|
||||
echo "* Creating ${NAMESPACE_FILE}"
|
||||
if [ "${ENCRYPTION_KEY}" == "" ]; then
|
||||
ENCRYPTION_KEY=$(openssl rand -base64 32)
|
||||
echo '🔑 Using auto encryption key'
|
||||
echo '* 🔑 Using auto encryption key'
|
||||
fi
|
||||
mkdir -p $(dirname ${NAMESPACE_FILE})
|
||||
cat >${NAMESPACE_FILE} <<EOM
|
||||
HOSTNAME=${HOSTNAME}
|
||||
ENCRYPTION_KEY=${ENCRYPTION_KEY}
|
||||
EOM
|
||||
echo ${NAMESPACE_FILE}
|
||||
echo "[OK] Namespace file created @ ${NAMESPACE_FILE}"
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
ENV_FILE="./.env"
|
||||
|
||||
Reference in New Issue
Block a user