Enhance database management scripts and update configurations

- Added importdb and importinv scripts for database import functionality.
- Improved dumpdb script for better error handling and output management.
- Updated .gitignore to include CSV files.
- Changed phpfpm service to use bash instead of ash.
- Modified docker-compose.yml to expose Redis and adjust Nginx port.
- Updated OpenSSL configuration for improved security settings.
This commit is contained in:
2026-02-05 15:51:03 -06:00
parent da0d7b3bb1
commit 1294e672fb
11 changed files with 462 additions and 16 deletions

View File

@@ -1,2 +1,2 @@
#!/bin/bash
docker compose exec phpfpm ash
docker compose exec phpfpm bash

View File

@@ -1,9 +1,20 @@
#!/bin/bash
export $(grep -v '^#' .env.db | xargs)
DATE_TIME=$(date +%Y%m%d%H%M)
echo "Dumping $MARIADB_DATABASE SQL"
docker compose exec -T db mariadb-dump -u root -p$MARIADB_ROOT_PASSWORD $MARIADB_DATABASE > $MARIADB_DATABASE-$DATE_TIME.sql
echo "Gzipping file...."
gzip $MARIADB_DATABASE-$DATE_TIME.sql
echo "Done"
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
export $(grep -v '^#' "$PROJECT_DIR/.env.db" | xargs)
cd "$PROJECT_DIR"
DATE_TIME=$(date +%Y%m%d%H%M)
DUMP_FILE="${PROJECT_DIR}/${MARIADB_DATABASE}-${DATE_TIME}.sql"
echo "Dumping ${MARIADB_DATABASE} database..."
docker compose exec -T db mariadb-dump -u root -p"${MARIADB_ROOT_PASSWORD}" "${MARIADB_DATABASE}" > "$DUMP_FILE"
echo "Compressing ${DUMP_FILE}..."
gzip "$DUMP_FILE"
echo "Done: ${DUMP_FILE}.gz"

34
bin/importdb Executable file
View File

@@ -0,0 +1,34 @@
#!/bin/bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
export $(grep -v '^#' "$PROJECT_DIR/.env.db" | xargs)
cd "$PROJECT_DIR"
if [[ $# -lt 1 ]]; then
echo "Usage: bin/importdb <file.sql|file.sql.gz>" >&2
exit 1
fi
SQL_FILE="$1"
if [[ ! -f "$SQL_FILE" ]]; then
echo "Error: File not found: $SQL_FILE" >&2
exit 1
fi
echo "Dropping and recreating database '${MARIADB_DATABASE}'..."
docker compose exec -T db mariadb -u root -p"${MARIADB_ROOT_PASSWORD}" \
--execute "DROP DATABASE IF EXISTS \`${MARIADB_DATABASE}\`; CREATE DATABASE \`${MARIADB_DATABASE}\`;"
echo "Importing ${SQL_FILE} into '${MARIADB_DATABASE}'..."
if [[ "$SQL_FILE" == *.sql.gz ]]; then
gunzip -c "$SQL_FILE" | docker compose exec -T db mariadb -u root -p"${MARIADB_ROOT_PASSWORD}" "${MARIADB_DATABASE}"
else
docker compose exec -T db mariadb -u root -p"${MARIADB_ROOT_PASSWORD}" "${MARIADB_DATABASE}" < "$SQL_FILE"
fi
echo "Done: Database '${MARIADB_DATABASE}' imported successfully."

30
bin/importinv Executable file
View File

@@ -0,0 +1,30 @@
#!/bin/bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
export $(grep -v '^#' "$PROJECT_DIR/.env.db" | xargs)
cd "$PROJECT_DIR"
CSV_FILE="$PROJECT_DIR/inventory.csv"
SQL_FILE="$SCRIPT_DIR/import_inventory.sql"
if [[ ! -f "$CSV_FILE" ]]; then
echo "Error: inventory.csv not found at $CSV_FILE" >&2
exit 1
fi
if [[ ! -f "$SQL_FILE" ]]; then
echo "Error: import_inventory.sql not found at $SQL_FILE" >&2
exit 1
fi
echo "Copying inventory.csv to db container..."
docker cp "$CSV_FILE" "$(docker compose ps -q db):/tmp/inventory.csv"
echo "Importing inventory into '${MARIADB_DATABASE}'..."
docker compose exec -T db mariadb -u root -p"${MARIADB_ROOT_PASSWORD}" "${MARIADB_DATABASE}" < "$SQL_FILE"
echo "Done: Inventory import completed successfully."