#!/bin/bash echo "Start installing aurora blog" echo "installing yum-utils..." sudo yum install -y yum-utils if [ $? -ne 0 ]; then echo "yum-utils install failed" exit 1 fi echo "Configuring docker Alibaba Cloud image... " sudo yum-config-manager \ --add-repo \ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo if [ $? -ne 0 ]; then echo "Docker image warehouse configuration failed" exit 1 fi echo "Updating yum package index..." sudo yum makecache fast if [ $? -ne 0 ]; then echo "yum package index update failed" exit 1 fi echo "Installing docker..." sudo yum install docker-ce docker-ce-cli containerd.io if [ $? -ne 0 ]; then echo "Docker installation failed" exit 1 fi echo "Starting docker..." sudo systemctl start docker if [ $? -ne 0 ]; then echo "Docker failed to start " exit 1 else echo "Docker launched successfully" fi echo "Setting docker to boot automatically..." sudo systemctl enable docker if [ $? -ne 0 ]; then echo "Docker failed to set up self-boot" exit 1 fi sudo mkdir -p /etc/docker if [ $? -ne 0 ]; then echo "mkdir -p /etc/docker failed" exit 1 fi sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://dockerhub.azk8s.cn", "https://mirror.ccs.tencentyun.com", "https://registry.cn-hangzhou.aliyuncs.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.m.daocloud.io", "https://noohub.ru", "https://huecker.io", "https://dockerhub.timeweb.cloud", "https://hub.atomgit.com/repos", "https://docker.1panel.live", "https://hub.rat.dev" ] } EOF if [ $? -ne 0 ]; then echo "tee /etc/docker/daemon.json failed" exit 1 fi sudo systemctl daemon-reload if [ $? -ne 0 ]; then echo "systemctl daemon-reload failed" exit 1 fi sudo systemctl restart docker if [ $? -ne 0 ]; then echo "systemctl restart docker failed" exit 1 fi echo "Creating docker network bridge..." sudo docker network create aurora if [ $? -ne 0 ]; then echo "Docker network bridge creation failed" exit 1 fi mysql_version="8.0.39-debian" echo "Installing mysql..." sudo docker pull mysql:$mysql_version if [ $? -ne 0 ]; then echo "MySQL image download failed" exit 1 fi sudo mkdir -p /opt/data/mysql/data if [ $? -ne 0 ]; then echo "mkdir -p /opt/data/mysql/data failed" exit 1 fi sudo mkdir -p /opt/data/mysql/conf if [ $? -ne 0 ]; then echo "mkdir -p /opt/data/mysql/conf failed" exit 1 fi sudo mkdir -p /opt/data/mysql/mysqld if [ $? -ne 0 ]; then echo "mkdir -p /opt/data/mysql/mysqld failed" exit 1 fi sudo chmod 777 /opt/data/mysql/data if [ $? -ne 0 ]; then echo "chmod 777 /opt/data/mysql/data failed" exit 1 fi sudo chmod 777 /opt/data/mysql/conf if [ $? -ne 0 ]; then echo "chmod 777 /opt/data/mysql/conf failed" exit 1 fi sudo chmod 777 /opt/data/mysql/mysqld if [ $? -ne 0 ]; then echo "chmod 777 /opt/data/mysql/mysqld failed" exit 1 fi config_file="my.cnf" sudo cp $config_file /opt/data/mysql/conf/ if [ $? -eq 0 ]; then echo "mysql configuration file copied successfully" else echo "Copying mysql configuration file failed" exit 1 fi MYSQL_PASSWORD="Aurora_123456" echo "Starting mysql..." sudo docker run \ --name mysql \ --restart=always \ -p 3306:3306 \ -v /opt/data/mysql/mysqld:/var/run/mysqld -v /opt/data/mysql/data:/var/lib/mysql -v /opt/data/mysql/conf:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=$MYSQL_PASSWORD -d mysql:$mysql_version if [ $? -ne 0 ]; then echo "mysql failed to start" exit 1 else echo "mysql started successfully" fi sudo docker network connect aurora mysql if [ $? -ne 0 ]; then echo "mysql failed to join docker network" exit 1 else echo "mysql successfully joined docker network" fi machine_physics_net=$(ls /sys/class/net/ | grep -v "$(ls /sys/devices/virtual/net/)") local_ip=$(ip addr | grep "$machine_physics_net" | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}') public_ip=$(curl ifconfig.me) echo "Creating database..." sleep 20 sudo docker exec -i mysql mysql -h $local_ip -uroot -p$MYSQL_PASSWORD -e "CREATE DATABASE aurora CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;" if [ $? -ne 0 ]; then echo "Database creation failed" exit 1 else echo "Database created successfully" fi echo "Initializing database..." sudo docker exec -i mysql mysql -h $local_ip -uroot -p$MYSQL_PASSWORD aurora <$(pwd)/aurora.sql if [ $? -ne 0 ]; then echo "Database initialization failed" exit 1 else echo "Database initialization successful" fi redis_version="7.0.13" echo "Installing redis..." sudo docker pull redis:$redis_version if [ $? -ne 0 ]; then echo "Redis image download failed" exit 1 fi REDIS_PASSWORD="123456" echo "Starting redis..." sudo docker run --name redis \ --restart=always \ -p 6379:6379 -d redis:$redis_version \ --requirepass $REDIS_PASSWORD if [ $? -ne 0 ]; then echo "redis failed to start" exit 1 else echo "redis launched successfully" fi sudo docker network connect aurora redis if [ $? -ne 0 ]; then echo "redis failed to join docker network" exit 1 else echo "redis successfully joined docker network" fi rabbitmq_version="3.12.14" echo "Installing rabbitmq..." sudo docker pull rabbitmq:$rabbitmq_version-management if [ $? -ne 0 ]; then echo "rabbitmq image download failed" exit 1 fi echo "Starting rabbitmq..." sudo docker run --name rabbitmq \ --restart=always -p 5672:5672 -p 15672:15672 \ -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest \ -d rabbitmq:$rabbitmq_version-management if [ $? -ne 0 ]; then echo "rabbitmq failed to start" exit 1 else echo "rabbitmq launched successfully" fi sudo docker network connect aurora rabbitmq if [ $? -ne 0 ]; then echo "rabbitmq failed to join docker network" exit 1 else echo "rabbitmq successfully joined docker network" fi echo "Installing minio..." sudo docker pull minio/minio if [ $? -ne 0 ]; then echo "Minio image download failed" exit 1 fi sudo mkdir -p /opt/data/minio/config if [ $? -ne 0 ]; then echo "minio profile directory creation failed" exit 1 fi sudo mkdir -p /opt/data/minio/data if [ $? -ne 0 ]; then echo "minio data directory creation failed" exit 1 fi echo "Starting minio..." sudo docker run \ -p 9000:9000 \ -p 9090:9090 \ --name minio \ -d --restart=always \ -e "MINIO_ACCESS_KEY=minioadmin" \ -e "MINIO_SECRET_KEY=minioadmin" \ -v /opt/data/minio/data:/data \ -v /opt/data/minio/config:/root/.minio \ minio/minio server \ /data --console-address ":9090" -address ":9000" if [ $? -ne 0 ]; then echo "minio failed to start" exit 1 else echo "Minio launched successfully" fi sudo docker network connect aurora minio if [ $? -ne 0 ]; then echo "Minio failed to join docker network" exit 1 else echo "Minio joins docker network successfully" fi echo "Creating minio default bucket..." minio_bucket="aurora" minio_myname="myminio" sudo docker exec -it minio mc alias set $minio_myname http://minio:9000 minioadmin minioadmin if [ $? -ne 0 ]; then echo "minio alias setting failed" exit 1 fi sudo docker exec -it minio mc mb $minio_myname/$minio_bucket if [ $? -ne 0 ]; then echo "minio default bucket creation failed" exit 1 else echo "minio default bucket created successfully" fi sudo docker exec -it minio mc anonymous set public $minio_myname/$minio_bucket if [ $? -ne 0 ]; then echo "Minio default bucket permissions setting failed" exit 1 fi echo "Installing openjdk 8..." sudo docker pull openjdk:8-jdk if [ $? -ne 0 ]; then echo "Openjdk 8 image download failed" exit 1 fi echo "Starting backend services..." minio_url=http://$public_ip:8066/minio/ sudo docker run -d \ -p 8080:8080 \ --name aurora_server --restart=always \ -v $(pwd):$(pwd) \ openjdk:8-jdk java -jar -Dupload.minio.bucketName=$minio_bucket -Dupload.minio.url=$minio_url $(pwd)/aurora-springboot-0.0.1.jar if [ $? -ne 0 ]; then echo "Back-end service startup failed" exit 1 else echo "Back-end service started successfully" fi sudo docker network connect aurora aurora_server if [ $? -ne 0 ]; then echo "Back-end service failed to join docker network" exit 1 else echo "Back-end service successfully joined docker network" fi echo "Restarting backend services..." sudo docker restart aurora_server if [ $? -ne 0 ]; then echo "Back-end service restart failed" exit 1 else echo "Back-end service restarted successfully" fi echo "Installing nginx..." sudo docker pull nginx if [ $? -ne 0 ]; then echo "nginx image download failed" exit 1 fi echo "Starting nginx..." sudo docker run -d \ --name aurora_nginx \ --restart=always \ -p 8066:8066 \ -v $(pwd)/nginx.conf:/etc/nginx/nginx.conf \ -v $(pwd)/blog_web:/usr/local/aurora-vue/blog \ -v $(pwd)/admin_web:/usr/local/aurora-vue/admin \ nginx if [ $? -ne 0 ]; then echo "nginx failed to start" exit 1 else echo "nginx started successfully" fi sudo docker network connect aurora aurora_nginx if [ $? -ne 0 ]; then echo "nginx failed to join docker network" exit 1 else echo "nginx successfully joins docker network" fi echo "Restarting nginx..." sudo docker restart aurora_nginx if [ $? -ne 0 ]; then echo "nginx restart failed" exit 1 else echo "nginx restarted successfully" fi echo "All services started successfully" echo "服务器安全组需要开放:8066端口,才能访问博客" echo 访问 http://$public_ip:8066/ 即可访问博客 echo 访问 http://$public_ip:8066/admin/ 即可访问后台管理 echo "后台管理默认账号密码为:admin@163.com / 123456" echo "作者:花未眠(http://www.linhaojun.top/)" echo "部署脚本作者:karl(https://kangxianghui.top/)" echo "感谢您选择使用Aurora博客系统,祝您使用愉快!"