一键安装脚本
#!/bin/bash
echo "=== 开始配置 ALLinSSL ==="
if [ -d "allinssl-data" ]; then
echo "警告:检测到本地已存在配置目录"
read -p "是否清除现有配置并重新初始化?(y/N) " answer
if [ "$answer" = "y" ] || [ "$answer" = "Y" ]; then
echo "清理现有配置..."
rm -rf allinssl-data
echo "现有配置已清理"
else
echo "保留现有配置,退出脚本"
exit 0
fi
fi
if [ -f "docker-compose.yml" ]; then
echo "发现现有的 docker-compose.yml"
read -p "是否覆盖现有的 docker-compose.yml?(y/N) " answer
if [ "$answer" != "y" ] && [ "$answer" != "Y" ]; then
echo "保留现有 docker-compose.yml,退出脚本"
exit 0
fi
fi
read -p "请输入Web访问端口 (默认: 7979): " WEB_PORT
WEB_PORT=${WEB_PORT:-7979}
read -p "请设置管理员用户名 (默认: allinssl): " ADMIN_USER
ADMIN_USER=${ADMIN_USER:-allinssl}
read -p "请设置访问URL (默认: allinssl): " ALLINSSL_URL
ALLINSSL_URL=${ALLINSSL_URL:-allinssl}
ADMIN_PASSWORD=$(openssl rand -base64 12)
echo -e "\n2. 创建必要的目录..."
mkdir -p allinssl-data
echo "目录创建完成"
echo -e "\n3. 创建 docker-compose.yml..."
cat > docker-compose.yml << EOL
version: "3.8"
services:
allinssl:
container_name: allinssl
image: allinssl/allinssl:latest
restart: always
ports:
- "${WEB_PORT}:8888"
environment:
- ALLINSSL_USER=${ADMIN_USER}
- ALLINSSL_PWD=${ADMIN_PASSWORD}
- ALLINSSL_URL=${ALLINSSL_URL}
volumes:
- ./allinssl-data:/www/allinssl/data
network_mode: "bridge"
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
EOL
echo "docker-compose.yml 创建完成"
echo -e "\n=== 配置完成! ==="
echo "配置信息:"
echo "- Web访问端口: ${WEB_PORT}"
echo "- 管理员用户名: ${ADMIN_USER}"
echo "- 管理员密码: ${ADMIN_PASSWORD}"
echo "- 访问URL: ${ALLINSSL_URL}"
echo "- 数据目录: ./allinssl-data"
echo -e "\n你可以:"
echo "1. 编辑 docker-compose.yml 修改更多设置"
echo "2. 使用 'docker compose up -d' 启动服务"
read -p "是否立即启动服务?(y/N) " answer
if [ "$answer" = "y" ] || [ "$answer" = "Y" ]; then
echo "启动 ALLinSSL..."
docker compose up -d
echo -e "\n服务已启动!"
echo "访问地址: http://localhost:${WEB_PORT}/${ALLINSSL_URL}"
fi
echo "\n创建配置信息备份文件..."
cat > allinssl-info.txt << EOL
ALLinSSL 配置信息
==================
Web访问端口: ${WEB_PORT}
管理员用户名: ${ADMIN_USER}
管理员密码: ${ADMIN_PASSWORD}
访问URL: ${ALLINSSL_URL}
访问地址: http://localhost:${WEB_PORT}/${ALLINSSL_URL}
数据目录: ./allinssl-data
EOL
echo "配置信息已保存到 allinssl-info.txt"