mirror of
https://github.com/10h30/kazewp.git
synced 2026-05-12 15:21:20 +09:00
initial commit
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
${DOMAIN} {
|
||||
#reverse_proxy wordpress_${DOMAIN}:80
|
||||
|
||||
tls internal
|
||||
root * /var/www/${DOMAIN}/html
|
||||
encode zstd gzip
|
||||
|
||||
# Serve WordPress PHP files through php-fpm:
|
||||
php_fastcgi wordpress_${DOMAIN}:9000 {
|
||||
root /var/www/html
|
||||
}
|
||||
|
||||
# Enable the static file server:
|
||||
file_server {
|
||||
precompressed gzip
|
||||
}
|
||||
header / {
|
||||
X-Frame-Options "SAMEORIGIN"
|
||||
X-Content-Type-Options "nosniff"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
services:
|
||||
db_${DOMAIN}:
|
||||
container_name: db_${DOMAIN}
|
||||
image: mariadb:11.2-jammy
|
||||
volumes:
|
||||
- ./db_data:/var/lib/mysql
|
||||
restart: always
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
||||
MYSQL_DATABASE: wordpress
|
||||
MYSQL_USER: wordpress
|
||||
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
||||
healthcheck:
|
||||
test: ["CMD", "mariadb-admin", "ping", "-h", "localhost", "--silent"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
networks:
|
||||
- ${DOMAIN}_net
|
||||
|
||||
wordpress_${DOMAIN}:
|
||||
container_name: wordpress_${DOMAIN}
|
||||
depends_on:
|
||||
- db_${DOMAIN}
|
||||
image: wordpress:fpm-alpine
|
||||
volumes:
|
||||
- ./html/:/var/www/html
|
||||
|
||||
restart: always
|
||||
environment:
|
||||
WORDPRESS_DB_HOST: db_${DOMAIN}:3306
|
||||
WORDPRESS_DB_USER: wordpress
|
||||
WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD}
|
||||
WORDPRESS_DB_NAME: wordpress
|
||||
networks:
|
||||
- ${DOMAIN}_net
|
||||
- caddy_net
|
||||
|
||||
wpcli:
|
||||
depends_on:
|
||||
- db_${DOMAIN}
|
||||
- wordpress_${DOMAIN}
|
||||
environment:
|
||||
WORDPRESS_DB_HOST: db_${DOMAIN}:3306
|
||||
WORDPRESS_DB_USER: wordpress
|
||||
WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD}
|
||||
WORDPRESS_DB_NAME: wordpress
|
||||
image: wordpress:cli
|
||||
entrypoint: wp
|
||||
command: "--info"
|
||||
volumes_from:
|
||||
- wordpress_${DOMAIN}
|
||||
networks:
|
||||
- ${DOMAIN}_net
|
||||
- caddy_net
|
||||
|
||||
networks:
|
||||
${DOMAIN}_net:
|
||||
driver: bridge
|
||||
caddy_net:
|
||||
external: true
|
||||
@@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
|
||||
wp_cli() {
|
||||
docker run --rm \
|
||||
--network container:wordpress_${DOMAIN} \
|
||||
-v "$(pwd):/var/www/html" \
|
||||
wordpress:cli-php8.1 \
|
||||
wp "$@"
|
||||
}
|
||||
|
||||
wpcli() {
|
||||
docker compose run --rm wpcli "$@"
|
||||
}
|
||||
|
||||
echo "Waiting for MySQL to be ready..."
|
||||
#while ! docker exec db_${DOMAIN} mysqladmin ping -h localhost --silent; do
|
||||
# sleep 1
|
||||
#done
|
||||
while [ "$(docker inspect --format='{{.State.Health.Status}}' db_${DOMAIN})" != "healthy" ]; do
|
||||
echo "MariaDB is not healthy yet. Retrying..."
|
||||
sleep 5
|
||||
done
|
||||
|
||||
|
||||
echo "Installing WordPress..."
|
||||
wpcli core install \
|
||||
--url="https://${DOMAIN}" \
|
||||
--title="${SITE_TITLE}" \
|
||||
--admin_user="${ADMIN_USER}" \
|
||||
--admin_password="${ADMIN_PASSWORD}" \
|
||||
--admin_email="${ADMIN_EMAIL}" \
|
||||
--skip-email
|
||||
|
||||
echo "Installing and activating plugins..."
|
||||
wpcli plugin install wordfence --activate
|
||||
wpcli theme install twentytwentyfour --activate
|
||||
wpcli plugin update --all
|
||||
wpcli theme update --all
|
||||
|
||||
echo "WordPress setup completed!"
|
||||
Reference in New Issue
Block a user