Add phpMyAdmin support to Docker and Caddy configuration. Fix validation to allow subdomain

This commit is contained in:
2025-04-28 01:35:37 +00:00
parent 28e15c4a73
commit 6315a002db
5 changed files with 29 additions and 8 deletions
+21
View File
@@ -11,6 +11,27 @@ create_caddy_config() {
mkdir -p "${CADDY_DIR}/sites" mkdir -p "${CADDY_DIR}/sites"
# Define phpMyAdmin service block
PHPMYADMIN_CADDY_BLOCK=$(
cat <<-EOL
# Redirect /pma to /pma/
redir /pma /pma/ 301
# Route requests for /pma (and subpaths) to the phpMyAdmin container
handle_path /pma* {
reverse_proxy phpmyadmin_${DOMAIN}
}
EOL
)
if [[ "$USE_PHPMYADMIN" == "y" ]]; then
export PHPMYADMIN_CADDY_BLOCK="$PHPMYADMIN_CADDY_BLOCK"
else
export PHPMYADMIN_CADDY_BLOCK=""
fi
envsubst < "${SCRIPT_DIR}/templates/caddy.template" > "$CONFIG_FILE" envsubst < "${SCRIPT_DIR}/templates/caddy.template" > "$CONFIG_FILE"
if ! grep -q "import sites/\*.caddy" "${CADDY_DIR}/Caddyfile"; then if ! grep -q "import sites/\*.caddy" "${CADDY_DIR}/Caddyfile"; then
+3 -5
View File
@@ -77,7 +77,7 @@ create_docker_compose() {
# Define phpMyAdmin service block # Define phpMyAdmin service block
PHPMYADMIN_BLOCK=$( PHPMYADMIN_BLOCK=$(
cat <<-EOL cat <<-EOL
phpmyadmin: phpmyadmin_${DOMAIN}:
container_name: phpmyadmin_${DOMAIN} container_name: phpmyadmin_${DOMAIN}
depends_on: depends_on:
- db_${DOMAIN} - db_${DOMAIN}
@@ -85,13 +85,11 @@ create_docker_compose() {
environment: environment:
- PMA_HOST=db_${DOMAIN} - PMA_HOST=db_${DOMAIN}
- MYSQL_ROOT_PASSWORD=\${MYSQL_ROOT_PASSWORD} - MYSQL_ROOT_PASSWORD=\${MYSQL_ROOT_PASSWORD}
- PMA_ABSOLUTE_URI=https://${DOMAIN}/pma/
restart: always restart: always
ports:
- "8080:80"
networks: networks:
- ${DOMAIN}_net - ${DOMAIN}_net
profiles: - caddy_net
- phpmyadmin
EOL EOL
) )
+2 -1
View File
@@ -207,7 +207,8 @@ install_site() {
cd "$WP_PROJECT_DIR" cd "$WP_PROJECT_DIR"
# Ask if the user wants to include phpMyAdmin in the setup # Ask if the user wants to include phpMyAdmin in the setup
read -p "Do you want to include phpMyAdmin? (y/n): " USE_PHPMYADMIN read -p "Do you want to include phpMyAdmin? (Y/n) [N]: " USE_PHPMYADMIN
USE_PHPMYADMIN=${USE_PHPMYADMIN:-n}
USE_PHPMYADMIN=$(echo "$USE_PHPMYADMIN" | tr '[:upper:]' '[:lower:]') USE_PHPMYADMIN=$(echo "$USE_PHPMYADMIN" | tr '[:upper:]' '[:lower:]')
# Create necessary configuration files for Docker Compose, Caddy, and WordPress # Create necessary configuration files for Docker Compose, Caddy, and WordPress
+1 -1
View File
@@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
validate_domain() { validate_domain() {
if [[ ! $1 =~ ^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.[a-zA-Z]{2,}$ ]]; then if [[ ! $1 =~ ^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$ ]]; then
echo -e "${RED}Invalid domain format${NC}" echo -e "${RED}Invalid domain format${NC}"
return 1 return 1
fi fi
+2 -1
View File
@@ -18,5 +18,6 @@ ${DOMAIN} {
X-Content-Type-Options "nosniff" X-Content-Type-Options "nosniff"
} }
import wordpress import wordpress
}
$PHPMYADMIN_CADDY_BLOCK
}