improve sh

This commit is contained in:
Rodolfo Berrios
2024-02-16 16:13:06 -03:00
parent 763fa1a31d
commit e08ec6bf90
11 changed files with 37 additions and 57 deletions

View File

@@ -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} \

View File

@@ -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)

View File

@@ -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).

View File

@@ -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.

View File

@@ -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}"

View File

@@ -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} \

View File

@@ -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

View File

@@ -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}"

View 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}"

View File

@@ -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}"

View File

@@ -1,5 +1,4 @@
#!/usr/bin/env bash
set -e
ENV_FILE="./.env"