Ostatnio aktywny 1753284966

Bash скрипт, който генерира силни пароли, създава нужните директории и файлове, пита за имена на контейнерите (WordPress и DB), пита за външен порт (по подразбиране 8383), генерира .env, docker-compose.yml, и config/php.ini.

install_wp.sh Surowy
1#!/bin/bash
2
3# Автор: Федя Серафиев
4
5# ====== ВХОДНИ ДАННИ ОТ ПОТРЕБИТЕЛЯ ======
6read -p "👉 Въведи име за контейнера на WordPress [wordpress_app]: " WP_CONTAINER
7WP_CONTAINER=${WP_CONTAINER:-wordpress_app}
8
9read -p "👉 Въведи име за контейнера на базата данни [wordpress_db]: " DB_CONTAINER
10DB_CONTAINER=${DB_CONTAINER:-wordpress_db}
11
12read -p "👉 Въведи външен порт за достъп до WordPress (напр. 8383): " HOST_PORT
13HOST_PORT=${HOST_PORT:-8383}
14
15# ====== ГЕНЕРИРАНЕ НА ПАРОЛИ ======
16MYSQL_ROOT_PASSWORD=$(openssl rand -base64 16)
17MYSQL_DATABASE="wordpress"
18MYSQL_USER="wpuser"
19MYSQL_PASSWORD=$(openssl rand -base64 16)
20
21# ====== СЪЗДАВАНЕ НА ДИРЕКТОРИИ ======
22mkdir -p config wp-content
23
24# ====== .env ФАЙЛ ======
25cat > .env <<EOF
26MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
27MYSQL_DATABASE=${MYSQL_DATABASE}
28MYSQL_USER=${MYSQL_USER}
29MYSQL_PASSWORD=${MYSQL_PASSWORD}
30WORDPRESS_DB_HOST=db:3306
31EOF
32
33# ====== config/php.ini ======
34cat > config/php.ini <<EOF
35upload_max_filesize = 64M
36post_max_size = 64M
37memory_limit = 256M
38EOF
39
40# ====== docker-compose.yml ======
41cat > docker-compose.yml <<EOF
42version: '3.8'
43
44services:
45 db:
46 image: mysql:8.0
47 container_name: ${DB_CONTAINER}
48 restart: always
49 volumes:
50 - db_data:/var/lib/mysql
51 environment:
52 MYSQL_ROOT_PASSWORD: \${MYSQL_ROOT_PASSWORD:-rootpass}
53 MYSQL_DATABASE: \${MYSQL_DATABASE:-wordpress}
54 MYSQL_USER: \${MYSQL_USER:-wpuser}
55 MYSQL_PASSWORD: \${MYSQL_PASSWORD:-wppass}
56 healthcheck:
57 test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
58 interval: 10s
59 timeout: 5s
60 retries: 5
61
62 wordpress:
63 image: wordpress:latest
64 container_name: ${WP_CONTAINER}
65 depends_on:
66 db:
67 condition: service_healthy
68 ports:
69 - "${HOST_PORT}:80"
70 restart: always
71 volumes:
72 - wordpress:/var/www/html
73 - ./wp-content:/var/www/html/wp-content
74 - ./config/php.ini:/usr/local/etc/php/conf.d/custom.ini
75 environment:
76 WORDPRESS_DB_HOST: db:3306
77 WORDPRESS_DB_NAME: \${MYSQL_DATABASE:-wordpress}
78 WORDPRESS_DB_USER: \${MYSQL_USER:-wpuser}
79 WORDPRESS_DB_PASSWORD: \${MYSQL_PASSWORD:-wppass}
80
81volumes:
82 db_data:
83 driver: local
84 wordpress:
85 driver: local
86EOF
87
88# ====== ИЗВОД ======
89echo
90echo "✅ Проектът е инициализиран успешно!"
91echo "📂 Създадени: docker-compose.yml, .env, config/php.ini, wp-content/"
92echo "🌐 Достъп до WordPress: http://localhost:${HOST_PORT}"
93echo
94echo "🔐 Данни за достъп до базата (също записани в .env):"
95echo "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}"
96echo "MYSQL_USER=${MYSQL_USER}"
97echo "MYSQL_PASSWORD=${MYSQL_PASSWORD}"
98echo
99echo "🚀 Стартирай с: docker compose up -d"