Update scripts appropritate to new directory structure
This commit is contained in:
@ -1,2 +1,2 @@
|
|||||||
MACHINE=
|
MACHINE=raptor
|
||||||
MYSQL_ROOT_PASSWORD=
|
DOMAIN_PLACEHOLDER=raptor.dimti.ru
|
@ -18,48 +18,54 @@ source .env
|
|||||||
P_UID=1000
|
P_UID=1000
|
||||||
P_GID=1000
|
P_GID=1000
|
||||||
|
|
||||||
|
PROJECT_DIR=/opt/projects/${PROJECT}
|
||||||
|
CONFIG_DIR=${PROJECT_DIR}/config
|
||||||
|
HOSTFILES_DIR=${PROJECT_DIR}/hostfiles
|
||||||
|
LOGS_DIR=${PROJECT_DIR}/logs
|
||||||
|
MARIADB_DIR=${PROJECT_DIR}/mariadb
|
||||||
|
PROFILER_DIR=${PROJECT_DIR}/profiler
|
||||||
|
SSH_DIR=${PROJECT_DIR}/ssh
|
||||||
|
WWW_DIR=${PROJECT_DIR}/www
|
||||||
|
|
||||||
|
|
||||||
mkdir /opt/stacks/${PROJECT}
|
mkdir /opt/stacks/${PROJECT}
|
||||||
|
|
||||||
cat << EOF > /opt/stacks/${PROJECT}/compose.yaml
|
cat << EOF > /opt/stacks/${PROJECT}/compose.yaml
|
||||||
name: ${PROJECT}
|
|
||||||
services:
|
services:
|
||||||
nginx:
|
nginx:
|
||||||
extends:
|
extends:
|
||||||
file: /opt/structure/docker-compose.base.yml
|
file: ./../structure/compose.base.yaml
|
||||||
service: nginx
|
service: nginx
|
||||||
php:
|
php:
|
||||||
extends:
|
extends:
|
||||||
file: /opt/structure/docker-compose.base.yml
|
file: ./../structure/compose.base.yaml
|
||||||
service: php
|
service: php
|
||||||
build:
|
|
||||||
args:
|
|
||||||
- PHP_VERSION=8.1
|
|
||||||
workspace:
|
workspace:
|
||||||
extends:
|
extends:
|
||||||
file: /opt/structure/docker-compose.base.yml
|
file: ./../structure/compose.base.yaml
|
||||||
service: workspace
|
service: workspace
|
||||||
build:
|
build:
|
||||||
args:
|
args:
|
||||||
- PROJECT=\${PROJECT}
|
- INSTALL_NODE=false
|
||||||
- PHP_VERSION=8.1
|
working_dir: /var/www/\${PROJECT}
|
||||||
expose:
|
|
||||||
- 22
|
|
||||||
working_dir: /var/www/${PROJECT}
|
|
||||||
volumes:
|
volumes:
|
||||||
- /opt/projects/${PROJECT}/profiler:/tmp/profiler
|
- ConfigJetBrains:/home/laradock/.config/JetBrains
|
||||||
- /opt/projects/${PROJECT}/www:/var/www
|
- BashHistoryLog:/home/laradock/.bash_history
|
||||||
|
- VSCodeServerInsiders:/home/laradock/.vscode-server-insiders
|
||||||
|
secrets:
|
||||||
|
- composer_auth
|
||||||
|
networks:
|
||||||
|
apihole_net:
|
||||||
|
aliases:
|
||||||
|
- workspace.${PROJECT}.saturn
|
||||||
mariadb:
|
mariadb:
|
||||||
extends:
|
extends:
|
||||||
file: /opt/structure/docker-compose.base.yml
|
file: ./../structure/compose.base.yaml
|
||||||
service: mariadb
|
service: mariadb
|
||||||
redis:
|
redis:
|
||||||
extends:
|
extends:
|
||||||
file: /opt/structure/docker-compose.base.yml
|
file: ./../structure/compose.base.yaml
|
||||||
service: redis
|
service: redis
|
||||||
seafile:
|
|
||||||
extends:
|
|
||||||
file: /opt/structure/docker-compose.base.yml
|
|
||||||
service: seafile
|
|
||||||
secrets:
|
secrets:
|
||||||
user_authorized_keys:
|
user_authorized_keys:
|
||||||
file: /opt/projects/\${PROJECT}/ssh/authorized_keys
|
file: /opt/projects/\${PROJECT}/ssh/authorized_keys
|
||||||
@ -72,38 +78,57 @@ secrets:
|
|||||||
networks:
|
networks:
|
||||||
dockge_default:
|
dockge_default:
|
||||||
external: true
|
external: true
|
||||||
structure:
|
pma_default:
|
||||||
|
external: true
|
||||||
|
apihole_net:
|
||||||
|
external: true
|
||||||
volumes:
|
volumes:
|
||||||
seafile:
|
ConfigJetBrains:
|
||||||
|
BashHistoryLog:
|
||||||
|
VSCodeServerInsiders:
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
SEAFILE_USER="${MACHINE}-workspace-${PROJECT}@dimti.ru"
|
# Possible PHP_VERSION is 7.4, 8.1, 8.2 & 8.3
|
||||||
SEAFILE_PASS=$(pwgen -s 20 1)
|
|
||||||
SEAFILE_DUMPS_LIB=$2
|
|
||||||
|
|
||||||
echo "Seafile credentionals for create new account:"
|
|
||||||
echo "SEAFILE_USER=${SEAFILE_USER}"
|
|
||||||
echo "SEAFILE_PASS=${SEAFILE_PASS}"
|
|
||||||
|
|
||||||
cat << EOF > /opt/stacks/${PROJECT}/.env
|
cat << EOF > /opt/stacks/${PROJECT}/.env
|
||||||
PROJECT=${PROJECT}
|
PROJECT=${PROJECT}
|
||||||
MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
PHP_VERSION=8.3
|
||||||
SEAFILE_USER=${SEAFILE_USER}
|
EOF
|
||||||
SEAFILE_PASS=${SEAFILE_PASS}
|
|
||||||
SEAFILE_DUMPS_LIB=${SEAFILE_DUMPS_LIB}
|
SEAFILE_USER="${MACHINE}-${PROJECT}-workspace@dimti.ru"
|
||||||
|
SEAFILE_PASS=$(pwgen -s 20 1)
|
||||||
|
SEAFILE_LIB=$2
|
||||||
|
|
||||||
|
echo "Seafile credentionals for create new account:"
|
||||||
|
echo "SEAFILE_USER: ${SEAFILE_USER}"
|
||||||
|
echo "SEAFILE_PASS: ${SEAFILE_PASS}"
|
||||||
|
|
||||||
|
PROJECT_UPPERCASE=$(echo ${PROJECT} | tr '[:lower:]' '[:upper:]')
|
||||||
|
|
||||||
|
cat << EOF >> /opt/stacks/seafile/.env
|
||||||
|
|
||||||
|
${PROJECT_UPPERCASE}_USER=${SEAFILE_USER}
|
||||||
|
${PROJECT_UPPERCASE}_PASS=${SEAFILE_PASS}
|
||||||
|
${PROJECT_UPPERCASE}_LIB=${SEAFILE_LIB}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
sed -e "s/volumes:/volumes:\n\s\sseafile-$PROJECT:/g" /opt/stacks/seafile/compose.yaml
|
||||||
|
|
||||||
|
cat << EOF >> /opt/stacks/seafile/compose.yaml
|
||||||
|
${PROJECT}:
|
||||||
|
extends:
|
||||||
|
file: ./compose.base.yaml
|
||||||
|
service: seafile
|
||||||
|
volumes:
|
||||||
|
- /opt/projects/${PROJECT}/hostfiles:/library
|
||||||
|
- seafile-${PROJECT}:/seafile
|
||||||
|
environment:
|
||||||
|
SEAF_USERNAME: "\${${PROJECT_UPPERCASE}_USER}"
|
||||||
|
SEAF_PASSWORD: "\${${PROJECT_UPPERCASE}_PASS}"
|
||||||
|
SEAF_LIBRARY: "\${${PROJECT_UPPERCASE}_LIB}"
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
chown -R $_PUID:$P_GID /opt/stacks/${PROJECT}
|
chown -R $_PUID:$P_GID /opt/stacks/${PROJECT}
|
||||||
|
|
||||||
PROJECT_DIR=/opt/projects/${PROJECT}
|
|
||||||
CONFIG_DIR=${PROJECT_DIR}/config
|
|
||||||
HOSTFILES_DIR=${PROJECT_DIR}/hostfiles
|
|
||||||
LOGS_DIR=${PROJECT_DIR}/logs
|
|
||||||
MARIADB_DIR=${PROJECT_DIR}/mariadb
|
|
||||||
PROFILER_DIR=${PROJECT_DIR}/profiler
|
|
||||||
SSH_DIR=${PROJECT_DIR}/ssh
|
|
||||||
WWW_DIR=${PROJECT_DIR}/www
|
|
||||||
|
|
||||||
mkdir -p ${CONFIG_DIR}/composer
|
mkdir -p ${CONFIG_DIR}/composer
|
||||||
mkdir -p ${CONFIG_DIR}/mariadb
|
mkdir -p ${CONFIG_DIR}/mariadb
|
||||||
mkdir -p ${CONFIG_DIR}/nginx/conf.d
|
mkdir -p ${CONFIG_DIR}/nginx/conf.d
|
||||||
@ -121,6 +146,8 @@ EOF
|
|||||||
|
|
||||||
cat << EOF > ${CONFIG_DIR}/mariadb/90-mysqld.cnf
|
cat << EOF > ${CONFIG_DIR}/mariadb/90-mysqld.cnf
|
||||||
[mysqld]
|
[mysqld]
|
||||||
|
general_log=OFF
|
||||||
|
general_log_file=/var/log/mariadb/mariadb.log
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
cat << EOF > ${CONFIG_DIR}/nginx/conf.d/vhosts.conf
|
cat << EOF > ${CONFIG_DIR}/nginx/conf.d/vhosts.conf
|
||||||
@ -128,7 +155,7 @@ upstream php {
|
|||||||
server php:9000;
|
server php:9000;
|
||||||
}
|
}
|
||||||
map \$http_host \$root {
|
map \$http_host \$root {
|
||||||
${PROJECT}.local.wpstudio.ru /var/www/${PROJECT};
|
${PROJECT}.${DOMAIN_PLACEHOLDER} /var/www/${PROJECT};
|
||||||
}
|
}
|
||||||
server {
|
server {
|
||||||
listen 80 default;
|
listen 80 default;
|
||||||
@ -177,10 +204,20 @@ mkdir ${PROFILER_DIR}
|
|||||||
mkdir ${SSH_DIR}
|
mkdir ${SSH_DIR}
|
||||||
touch ${SSH_DIR}/authorized_keys
|
touch ${SSH_DIR}/authorized_keys
|
||||||
ssh-keygen -N "" -t ed25519 -f ${SSH_DIR}/id_ed25519 -C workspace-${PROJECT}@${MACHINE} 2>&1 > /dev/null
|
ssh-keygen -N "" -t ed25519 -f ${SSH_DIR}/id_ed25519 -C workspace-${PROJECT}@${MACHINE} 2>&1 > /dev/null
|
||||||
|
|
||||||
echo "SSH Key:"
|
echo "SSH Key:"
|
||||||
cat ${SSH_DIR}/id_ed25519.pub
|
cat ${SSH_DIR}/id_ed25519.pub
|
||||||
|
echo
|
||||||
|
|
||||||
ssh-keyscan -H github.com > ${SSH_DIR}/known_hosts 2>/dev/null
|
ssh-keyscan -H github.com > ${SSH_DIR}/known_hosts 2>/dev/null
|
||||||
chown $P_UID:$P_GID -R ${SSH_DIR}
|
chown $P_UID:$P_GID -R ${SSH_DIR}
|
||||||
|
|
||||||
mkdir -p ${WWW_DIR}/${PROJECT}
|
mkdir -p ${WWW_DIR}/${PROJECT}
|
||||||
|
|
||||||
|
cat << EOF > ${WWW_DIR}/${PROJECT}/index.php
|
||||||
|
<?php
|
||||||
|
|
||||||
|
phpinfo();
|
||||||
|
EOF
|
||||||
|
|
||||||
chown -R $P_UID:$P_GID ${WWW_DIR}
|
chown -R $P_UID:$P_GID ${WWW_DIR}
|
||||||
|
23
make-base-dirs.sh
Normal file → Executable file
23
make-base-dirs.sh
Normal file → Executable file
@ -4,23 +4,22 @@ set -e
|
|||||||
P_UID=1000
|
P_UID=1000
|
||||||
P_GID=1000
|
P_GID=1000
|
||||||
|
|
||||||
cd /opt
|
SHARED_DIR=/opt/shared
|
||||||
|
|
||||||
mkdir cache
|
cd ${SHARED_DIR}
|
||||||
cd cache
|
|
||||||
|
mkdir cache && cd cache
|
||||||
mkdir composer JetBrains yarn
|
mkdir composer JetBrains yarn
|
||||||
|
|
||||||
cd /opt
|
mkdir local-share && cd local-share
|
||||||
mkdir npm nvm projects pyenv
|
|
||||||
|
|
||||||
mkdir share
|
|
||||||
cd share
|
|
||||||
mkdir JetBrains pnpm
|
mkdir JetBrains pnpm
|
||||||
|
|
||||||
|
cd ${SHARED_DIR}
|
||||||
|
mkdir nvm pyenv tmux
|
||||||
|
|
||||||
|
cd ${SHARED_DIR}
|
||||||
chown -R $P_UID:$P_GID \
|
chown -R $P_UID:$P_GID \
|
||||||
cache \
|
cache \
|
||||||
npm \
|
local-share
|
||||||
nvm \
|
nvm \
|
||||||
projects \
|
pyenv \
|
||||||
pyenv \
|
|
||||||
share
|
|
Reference in New Issue
Block a user