This commit is contained in:
Rodolfo Berrios
2024-02-04 15:12:55 -03:00
parent 03be684df9
commit af34858092
6 changed files with 69 additions and 6 deletions

View File

@@ -1,6 +1,7 @@
#!make
SYSTEM ?= ubuntu/22.04
ENV_FILE = ./.env
DOMAIN ?= chevereto.cloud
NAMESPACE ?= chevereto
NAMESPACE_FILE = ./namespace/${NAMESPACE}
NAMESPACE_FILE_EXISTS = false
@@ -75,8 +76,8 @@ feedback--compose: feedback--image
@echo "🐋 ${COMPOSE_FILE}"
feedback--url:
@echo "🔌 ${PORT}"
@echo "${URL} @URL"
@echo "Protocol ${PROTOCOL} (:${PORT})"
@echo "@URL ${URL}"
feedback--image:
@echo "📦 ${IMAGE} (BASE ${IMAGE_NAME})"
@@ -209,6 +210,17 @@ destroy: feedback feedback--compose cloudflare--delete
${DOCKER_COMPOSE} down --volumes
@rm namespace/${NAMESPACE}
# Provisioning
provision: feedback
make namespace HOSTNAME="${NAMESPACE}.${DOMAIN}"
make spawn NAMESPACE=${NAMESPACE}
install: feedback
docker exec -it --user ${DOCKER_USER} \
${CONTAINER_BASENAME}_${SERVICE} \
app/bin/legacy -C install -u "${ADMIN_USER}" -e "${ADMIN_EMAIL}" -x "${ADMIN_PASSWORD}"
# nginx-proxy
proxy:

View File

@@ -1,4 +1,4 @@
version: "3.8"
version: "3.9"
services:
database:
@@ -9,6 +9,10 @@ services:
volumes:
- database:/var/lib/mysql
restart: always
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
timeout: 10s
retries: 10
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: chevereto
@@ -24,6 +28,9 @@ services:
volumes:
- storage:/var/www/html/images/
restart: always
depends_on:
database:
condition: service_healthy
expose:
- 80
- 443

23
deploy.sh Executable file
View File

@@ -0,0 +1,23 @@
#!/usr/bin/env bash
set -e
NAMESPACE="$1"
ADMIN_USER="${ADMIN_USER:-admin}"
ADMIN_EMAIL="$2"
ADMIN_PASSWORD="$(openssl rand -base64 8)"
NAMESPACE=${NAMESPACE} make provision &&
NAMESPACE=${NAMESPACE} \
ADMIN_PASSWORD=${ADMIN_PASSWORD} \
ADMIN_EMAIL=${ADMIN_EMAIL} \
ADMIN_USER=${ADMIN_USER} make install
echo "🚀 Deployment complete!"
NAMESPACE=${NAMESPACE} make feedback--url
echo "Login details"
echo "--"
echo "Email: ${ADMIN_EMAIL}"
echo "Password: ${ADMIN_PASSWORD}"

View File

@@ -1,4 +1,4 @@
version: "3.8"
version: "3.9"
services:
database:
@@ -11,6 +11,10 @@ services:
ports:
- ${DB_PORT}:3306
restart: always
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
timeout: 10s
retries: 10
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: chevereto
@@ -32,6 +36,9 @@ services:
- ${HTTP_PORT}:80
- ${HTTPS_PORT}:443
restart: always
depends_on:
database:
condition: service_healthy
environment:
CHEVERETO_ENVIRONMENT: dev
CHEVERETO_DB_HOST: database

View File

@@ -1,4 +1,4 @@
version: "3.8"
version: "3.9"
services:
database:
@@ -9,6 +9,10 @@ services:
volumes:
- database:/var/lib/mysql
restart: always
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
timeout: 10s
retries: 10
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: chevereto
@@ -26,6 +30,9 @@ services:
- ${HTTP_PORT}:80
- ${HTTPS_PORT}:443
restart: always
depends_on:
database:
condition: service_healthy
environment:
VIRTUAL_HOST: ${HOSTNAME}
LETSENCRYPT_HOST: ${HOSTNAME}

View File

@@ -66,7 +66,7 @@ docker run -d \
Create your own `docker-compose.yml` at your project folder.
```yml
version: "3.8"
version: "3.9"
services:
database:
@@ -76,6 +76,10 @@ services:
volumes:
- database:/var/lib/mysql
restart: always
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
timeout: 10s
retries: 10
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: chevereto
@@ -89,6 +93,9 @@ services:
volumes:
- storage:/var/www/html/images/
restart: always
depends_on:
database:
condition: service_healthy
expose:
- 80
environment: