* create stack project reorganize to separate scripts

+ pma hosts modify
This commit is contained in:
2025-04-03 13:11:21 +03:00
parent 301dd15919
commit e57b8b9ac7
7 changed files with 324 additions and 207 deletions

View File

@ -0,0 +1,74 @@
#!/bin/bash
set -e
# Проект должен быть указан родительским скриптом
if [ ! -n "$PROJECT" ]; then
echo "❌ Проект не указан!"
exit 1
fi
CONFIG_DIR=${PROJECT_DIR}/config
mkdir ${CONFIG_DIR}
mkdir ${CONFIG_DIR}/composer
mkdir ${CONFIG_DIR}/mariadb
mkdir ${CONFIG_DIR}/nginx
mkdir ${CONFIG_DIR}/nginx/conf.d
mkdir ${CONFIG_DIR}/nginx/includes.d
mkdir ${CONFIG_DIR}/nginx/ssl.d
mkdir ${CONFIG_DIR}/redis
cat << EOF > ${CONFIG_DIR}/composer/auth.json
{
"github-oauth": {
"github.com": ""
}
}
EOF
cat << EOF > ${CONFIG_DIR}/mariadb/90-mysqld.cnf
[mysqld]
general_log=OFF
general_log_file=/var/log/mariadb/mariadb.log
EOF
cat << EOF > ${CONFIG_DIR}/nginx/conf.d/vhosts.conf
upstream php {
server php:9000;
}
map \$http_host \$root {
${PROJECT}.${DOMAIN_PLACEHOLDER} /var/www/${PROJECT};
}
server {
listen 80 default;
root \$root;
include includes.d/octobercms.conf;
include includes.d/staticfiles.conf;
client_max_body_size 300M;
large_client_header_buffers 4 32k;
location ~ ^/index.php {
fastcgi_pass php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
fastcgi_param SERVER_NAME \$host;
}
}
EOF
cp /opt/stacks/structure/config/nginx/includes.d/octobercms.conf ${CONFIG_DIR}/nginx/includes.d/
cp /opt/stacks/structure/config/nginx/includes.d/staticfiles.conf ${CONFIG_DIR}/nginx/includes.d/
cat << EOF > ${CONFIG_DIR}/redis/redis-local.conf
port 6379
tcp-backlog 128
protected-mode no
stop-writes-on-bgsave-error no
databases 4
always-show-logo no
syslog-enabled yes
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
EOF
chown $P_UID:$P_GID -R ${CONFIG_DIR}

View File

@ -0,0 +1,24 @@
#!/bin/bash
set -e
# Проект должен быть указан родительским скриптом
if [ ! -n "$PROJECT" ]; then
echo "❌ Проект не указан!"
exit 1
fi
HOSTFILES_DIR=${PROJECT_DIR}/hostfiles
mkdir ${HOSTFILES_DIR}
chown $P_UID:$P_GID ${HOSTFILES_DIR}
LOGS_DIR=${PROJECT_DIR}/logs
mkdir ${LOGS_DIR}
mkdir ${LOGS_DIR}/mariadb
mkdir ${LOGS_DIR}/nginx
mkdir ${LOGS_DIR}/php-fpm
MARIADB_DIR=${PROJECT_DIR}/mariadb
mkdir ${MARIADB_DIR}
PROFILER_DIR=${PROJECT_DIR}/profiler
mkdir ${PROFILER_DIR}

View File

@ -0,0 +1,20 @@
#!/bin/bash
set -e
# Проект должен быть указан родительским скриптом
if [ ! -n "$PROJECT" ]; then
echo "❌ Проект не указан!"
exit 1
fi
SSH_DIR=${PROJECT_DIR}/ssh
mkdir ${SSH_DIR}
touch ${SSH_DIR}/authorized_keys
ssh-keygen -N "" -t ed25519 -f ${SSH_DIR}/id_ed25519 -C workspace-${PROJECT}@${MACHINE} 2>&1 > /dev/null
echo "SSH Key:"
cat ${SSH_DIR}/id_ed25519.pub
echo
ssh-keyscan -H github.com > ${SSH_DIR}/known_hosts 2>/dev/null
chown $P_UID:$P_GID -R ${SSH_DIR}