2.2 KiB
2.2 KiB
服务器基础环境
公共基础设施脚本,提供以下功能:
- 系统初始化:安装常用工具、设置时区
- Docker 安装:使用阿里云镜像源,配置国内加速
- Nginx 安装:反向代理服务器,统一管理 HTTPS
- Certbot 安装:Let's Encrypt SSL 证书自动申请与续期
- 防火墙配置:开放 SSH / HTTP / HTTPS 端口
设计理念
- 幂等性:每个安装步骤都会先检查是否已安装,避免重复操作
- 可复用:既可以独立运行,也可以被其他服务的部署脚本
source调用 - 国内优化:Docker 使用阿里云 APT 源安装,镜像拉取使用国内加速
使用方式
方式一:独立运行(安装全部基础环境)
# 上传到服务器
scp -r base/ root@<服务器IP>:/opt/base
# 登录服务器执行
cd /opt/base
cp .env.example .env
# 编辑 .env 配置 Docker 镜像加速(可选)
bash setup.sh
方式二:被其他服务脚本调用
#!/usr/bin/env bash
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
BASE_DIR="$(cd "$SCRIPT_DIR/../base" && pwd)"
source "$BASE_DIR/setup.sh"
# 现在可以使用 base 提供的所有函数
check_root
init_system
install_docker
install_nginx
# ...
提供的函数
| 函数 | 说明 |
|---|---|
check_root |
检查是否 root 用户 |
init_system |
系统初始化,安装基础工具 |
install_docker |
安装 Docker + Compose V2 |
configure_docker_mirrors |
配置 Docker 镜像加速 |
install_nginx |
安装配置 Nginx |
install_certbot |
安装 Certbot |
setup_firewall_base |
开放 22/80/443 端口 |
firewall_allow_port <port> [desc] |
开放额外端口 |
setup_ssl_cert <domain> <email> [name] |
申请 SSL 证书 |
deploy_nginx_conf <template> <domain> <name> |
部署 Nginx 反向代理配置 |
load_base_env [dir] |
加载 base/.env |
目录结构
base/
├── setup.sh # 主脚本(函数库 + 独立运行入口)
├── .env.example # 配置模板
├── .env # 实际配置(从 .env.example 复制)
└── README.md # 本文件