🗃️ Committing everything that changed 🗃️
Some checks failed
release-tag / release-image (push) Failing after 0s

rootfs/root/docker/setup/03-files.sh
rootfs/tmp/etc/nginx/nginx.conf
rootfs/usr/local/etc/docker/init.d/00-mysqld.sh
rootfs/usr/local/etc/docker/init.d/05-nginx.sh
rootfs/usr/local/etc/docker/init.d/99-nginx.sh
This commit is contained in:
casjay 2024-09-07 17:10:26 -04:00
parent 8ff40028a0
commit bff821dacc
Signed by untrusted user who does not match committer: jason
GPG Key ID: 1AB309F42A764145
4 changed files with 33 additions and 103 deletions

View File

@ -28,7 +28,13 @@ exitCode=0
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Main script
[ -d "/tmp/etc" ] && copy "/tmp/etc/." "/etc/"
[ -d "/etc/nginx/conf.d" ] || mkdir -p "/etc/nginx/conf.d"
[ -f "/etc/mysql/my.cnf" ] && symlink "/etc/mysql/my.cnf" "/etc/my.cnf"
cat <<EOF >/etc/nginx/conf.d/phpmyadmin.conf
location ^~ /phpmyadmin {
alias "REPLACE_PHPMYADMIN_WWW_ROOT;
}
EOF
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Set the exit code
exitCode=$?

View File

@ -1,82 +0,0 @@
# nginx configuration for sites
user REPLACE_WWW_USER;
worker_processes auto;
daemon on;
error_log REPLACE_LOG_DIR/nginx.log warn;
pid REPLACE_RUN_DIR/nginx.pid;
events { worker_connections 1024; }
http {
include REPLACE_ETC_DIR/mime.types;
default_type "text/html";
sendfile on;
keepalive_timeout 65;
gzip on;
map $http_upgrade $connection_upgrade { default upgrade; '' close; }
disable_symlinks off;
server {
listen 0.0.0.0:80 default_server;
server_name REPLACE_SERVER_NAME;
client_max_body_size 0;
proxy_intercept_errors off;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;
add_header Content-Security-Policy "script-src 'self' 'unsafe-inline' 'unsafe-eval' *; frame-src 'self' *; object-src 'self'" always;
index index.php index.cgi index.pl index.aspx index.txt index.json index.html index.unknown.php index.default.php;
root /var/lib/nginx/html;
location /health {
default_type text/plain;
return 200 'ok';
}
location /health/text {
default_type text/plain;
return 200 'ok';
}
location /health/json {
default_type application/json;
return 200 '{"status":"ok","message":"running"}';
}
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
fastcgi_param HTTP_PROXY "";
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_SCHEME $scheme;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param REDIRECT_STATUS 200;
}
location / {
root REPLACE_PHPMYADMIN_WWW_ROOT;
}
location /phpmyadmin {
alias /usr/share/phpmyadmin;
}
}

View File

@ -107,7 +107,7 @@ SERVICE_GROUP="mysql" # Set the service group
#SERVICE_GID="0" # set the group id
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# execute command variables - keep single quotes variables will be expanded later
EXEC_CMD_BIN='mysqld' # command to execute
EXEC_CMD_BIN='mariadbd' # command to execute
EXEC_CMD_ARGS='--user=$SERVICE_USER --datadir=$DATABASE_DIR' # command arguments
EXEC_PRE_SCRIPT='' # execute script before
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@ -266,6 +266,7 @@ __post_execute() {
local sysname="${SERVER_NAME:-${FULL_DOMAIN_NAME:-$HOSTNAME}}" # set hostname
local root_user_pass="${root_user_pass:-$DATABASE_ROOT_PASSWORD:-$}"
local DATABASE_ROOT_PASSWORD="${root_user_pass:-$(__random_password)}"
db_root_user="${MYSQL_ROOT_USER_NAME:-root}"
echo "$DATABASE_ROOT_PASSWORD" >"${ROOT_FILE_PREFIX}/${SERVICE_NAME}_pass"
# wait
sleep $waitTime
@ -278,25 +279,29 @@ __post_execute() {
bash -c "$CONF_DIR/mysql/init.sh"
fi
if [ -n "$DATABASE_CREATE" ]; then
mysql -v -u $SERVICE_USER <<MYSQL_SCRIPT
mariadb -v -u $db_root_user <<MYSQL_SCRIPT
CREATE DATABASE IF NOT EXISTS $DATABASE_CREATE;
MYSQL_SCRIPT
fi
if [ "$user_name" != "root" ] && [ -n "$user_name" ]; then
mysql -v -u $SERVICE_USER <<MYSQL_SCRIPT
mariadb -v -u $db_root_user <<MYSQL_SCRIPT
CREATE USER IF NOT EXISTS '$user_name'@'%' IDENTIFIED BY '$user_pass';
MYSQL_SCRIPT
fi
if [ "$user_name" != "root" ] && [ -n "$DATABASE_CREATE" ]; then
mysql -v -u $SERVICE_USER <<MYSQL_SCRIPT
mariadb -v -u $db_root_user <<MYSQL_SCRIPT
GRANT ALL PRIVILEGES ON $DATABASE_CREATE.* TO '$user_name'@'%';
MYSQL_SCRIPT
elif [ "$user_name" = "root" ] && [ -n "$DATABASE_CREATE" ]; then
mysql -v -u $SERVICE_USER <<MYSQL_SCRIPT
mariadb -v -u $db_root_user <<MYSQL_SCRIPT
GRANT ALL PRIVILEGES ON $DATABASE_CREATE.* TO 'root'@'localhost';
MYSQL_SCRIPT
fi
mysql -v -u $SERVICE_USER <<MYSQL_SCRIPT
mariadb -v -u $db_root_user <<MYSQL_SCRIPT
CREATE USER IF NOT EXISTS 'root'@'%' IDENTIFIED BY '$DATABASE_ROOT_PASSWORD';
MYSQL_SCRIPT
mariadb -v -u $db_root_user <<MYSQL_SCRIPT
ALTER USER 'root'@'%' IDENTIFIED BY '$DATABASE_ROOT_PASSWORD';
ALTER USER 'root'@'localhost' IDENTIFIED BY '$DATABASE_ROOT_PASSWORD';
FLUSH PRIVILEGES;
MYSQL_SCRIPT

View File

@ -1,14 +1,14 @@
#!/usr/bin/env bash
# shellcheck shell=bash
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
##@Version : 202408111915-git
##@Version : 202408101458-git
# @@Author : Jason Hempstead
# @@Contact : jason@casjaysdev.pro
# @@License : WTFPL
# @@ReadME : 05-nginx.sh --help
# @@ReadME : 00-nginx.sh --help
# @@Copyright : Copyright: (c) 2024 Jason Hempstead, Casjays Developments
# @@Created : Sunday, Aug 11, 2024 19:15 EDT
# @@File : 05-nginx.sh
# @@Created : Saturday, Aug 10, 2024 14:58 EDT
# @@File : 00-nginx.sh
# @@Description :
# @@Changelog : New script
# @@TODO : Better documentation
@ -73,7 +73,7 @@ DATABASE_BASE_DIR="${DATABASE_BASE_DIR:-/data/db}"
DATABASE_DIR="${DATABASE_DIR_NGINX:-$DATABASE_BASE_DIR/sqlite}"
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Set webroot
WWW_ROOT_DIR="/usr/share/httpd/default"
WWW_ROOT_DIR="/var/lib/nginx/html"
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Default predefined variables
DATA_DIR="/data/nginx" # set data directory
@ -99,8 +99,8 @@ SERVICE_PORT="80"
RUNAS_USER="root" # normally root
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# User and group in which the service switches to - IE: nginx,apache,mysql,postgres
#SERVICE_USER="nginx" # execute command as another user
#SERVICE_GROUP="nginx" # Set the service group
SERVICE_USER="nginx" # execute command as another user
SERVICE_GROUP="nginx" # Set the service group
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Set user and group ID
#SERVICE_UID="0" # set the user id
@ -108,7 +108,7 @@ RUNAS_USER="root" # normally root
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# execute command variables - keep single quotes variables will be expanded later
EXEC_CMD_BIN='nginx' # command to execute
EXEC_CMD_ARGS='-c $ETC_DIR/nginx.conf' # command arguments
EXEC_CMD_ARGS='-c $CONF_DIR/nginx.conf' # command arguments
EXEC_PRE_SCRIPT='' # execute script before
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Is this service a web server
@ -146,7 +146,7 @@ user_pass="${NGINX_USER_PASS_WORD:-}" # normal user password
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Additional variables
PHPMYADMIN_WWW_ROOT="/usr/share/phpmyadmin"
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Specifiy custom directories to be created
ADD_APPLICATION_FILES=""
@ -165,7 +165,7 @@ CMD_ENV=""
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Per Application Variables or imports
PHPMYADMIN_WWW_ROOT="/usr/share/phpmyadmin"
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Custom prerun functions - IE setup WWW_ROOT_DIR
__execute_prerun() {
@ -173,7 +173,8 @@ __execute_prerun() {
__init_config_etc
# Define other actions/commands
mkdir -p "$CONF_DIR/conf.d" "$CONF_DIR/sites-enabled" "$CONF_DIR/streams-enabled" "$CONF_DIR/sites-available"
mkdir -p "$ETC_DIR/conf.d" "$ETC_DIR/sites-enabled" "$ETC_DIR/streams-enabled" "$ETC_DIR/sites-available" "$WWW_ROOT_DIR/.well-known"
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Run any pre-execution checks
@ -215,13 +216,13 @@ __update_conf_files() {
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# replace variables
__replace "REPLACE_PHPMYADMIN_WWW_ROOT" "$PHPMYADMIN_WWW_ROOT" "$CONF_DIR/nginx.conf"
# __replace "" "" "$CONF_DIR/nginx.conf"
# replace variables recursively
# __find_replace "" "" "$CONF_DIR"
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# define actions
__replace "REPLACE_PHPMYADMIN_WWW_ROOT" "$PHPMYADMIN_WWW_ROOT" "$CONF_DIR/conf.d/phpmyadmin.conf"
# exit function
return $exitCode
}