Skip to content

Commit 34bccd5

Browse files
authored
Add install script (#28)
* docs: update README * docs: update README * docs: update README * feat: add install script * feat: update install script * feat: update install script * feat: update install script * feat: update install script * docs: update README * feat: update install script * feat: update install script * docs: update README * docs: update README
1 parent 32fdc7b commit 34bccd5

File tree

2 files changed

+263
-23
lines changed

2 files changed

+263
-23
lines changed

README.md

+30-23
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@
1616
- [tinyPortMapper](https://github.com/wangyu-/tinyPortMapper) ( AMD64 / ARM64 )
1717
- [Prometheus Node Exporter](https://github.com/leishi1313/node_exporter) ( AMD64 )
1818

19-
### 限制
19+
### 面板服务器与被控机说明
2020

21-
本面板无需单独配置被控机,只需保证安装面板的服务器能够通过 ssh 连接至被控机即可,**但被控机需确保已安装 systemd ~~和 python~~**~~且 iptables 功能(包括流量控制等依赖 iptables 的功能)需要被控端安装了 iptables ,gost 只支持 Linux X64 系统~~
21+
**面板建议安装在单独的一台服务器上,建议安装配置为不低于单核 1G 内存的 VPS 中**,可以直接部署到本地。**被控机端无需做任何特别配置,只需保证面板服务器能够通过 ssh 连接至被控机即可。**
22+
23+
面板服务器在连接被控机的时候会检测被控机是否已经安装好 python (python 为被控机必须依赖),如果被控机上没安装会自动在被控机上通过 apt / yum 执行 python 安装(优先安装python3),如果被控机没有自带 python 且自动安装失败会导致面板显示被控机连接失败(表现为被控机连接状态持续转圈)。从 0.16.5 版本开始,会加入对被控机 iptables 和 systemd 依赖的检测安装,以保证转发、流量统计等必需功能正常运行。
2224

2325
#### 面板(主控机)支持进度:
2426

@@ -29,7 +31,7 @@
2931
- 虚拟平台
3032
- [x] KVM
3133
- [x] VMware
32-
- [ ] OVZ (理论支持,未测试
34+
- [x] OVZ (需要 OVZ 支持 docker
3335
- CPU 架构
3436
- [x] AMD64
3537
- [x] ARM64 (0.15.3+ 镜像版本支持)
@@ -46,17 +48,28 @@
4648
- [x] OVZ
4749
- CPU 架构
4850
- [x] AMD64
49-
- [x] ARM64 (仅支持部分功能)
51+
- [x] ARM64 (0.16.3+ 镜像版本支持,仅支持部分功能)
52+
53+
## 怎么跑起来?
54+
55+
## 一键脚本(推荐)
56+
57+
目前已支持一键安装、更新、卸载、启动、停止、重启面板以及备份数据库、添加超级管理员帐号操作。
58+
59+
```shell
60+
bash <(curl -fsSL https://raw.githubusercontent.com/Aurora-Admin-Panel/deploy/main/install.sh)
61+
```
5062

51-
## 怎么跑起来?&nbsp;👉<a href="#%E6%9B%B4%E6%96%B0">更新</a>
63+
## 手动安装
64+
65+
如果一键脚本提示不支持当前系统版本时,可以尝试使用手动安装的方式。
5266

5367
### 1. 安装 docker(必须)
5468

5569
```shell
56-
curl -fsSL https://get.docker.com -o get-docker.sh
57-
sudo sh get-docker.sh
58-
# 启动并设置开机自启docker
59-
systemctl enable --now docker
70+
curl -fsSL https://get.docker.com | sudo bash -s docker && sudo systemctl enable --now docker
71+
# 国内机器安装可以选择使用阿里镜像
72+
# curl -fsSL https://get.docker.com | sudo bash -s docker --mirror Aliyun && sudo systemctl enable --now docker
6073

6174
# 如果当前执行安装命令的不是 root 用户,请执行下面部分
6275
# =================非root用户执行==================
@@ -69,8 +82,7 @@ newgrp docker
6982
### 2. 安装 docker-compose(必须)
7083

7184
```shell
72-
sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
73-
sudo chmod +x /usr/local/bin/docker-compose
85+
sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose
7486

7587
# 如果 /usr/local/bin 不在环境变量 PATH 里
7688
# ============================可选================================
@@ -89,15 +101,10 @@ ssh-keygen -t rsa -b 4096 -C "[email protected]"
89101
# 然后还需要将面板服务器 ~/.ssh/id_rsa.pub 里面的内容复制到每一台被控机的 ~/.ssh/authorized_keys 文件中去。
90102
```
91103

92-
### 4. 安装 / 启动面板(必须)
104+
### 4. 安装并启动面板(必须)
93105

94106
```shell
95-
mkdir -p ~/aurora
96-
cd ~/aurora
97-
wget https://raw.githubusercontent.com/Aurora-Admin-Panel/deploy/main/docker-compose.yml -O docker-compose.yml
98-
# 测试版采用以下链接的配置文件,正式版跳过
99-
# wget https://raw.githubusercontent.com/Aurora-Admin-Panel/deploy/main/docker-compose-dev.yml -O docker-compose.yml
100-
docker-compose up -d
107+
mkdir -p ~/aurora && cd ~/aurora && wget https://raw.githubusercontent.com/Aurora-Admin-Panel/deploy/main/docker-compose.yml -O docker-compose.yml && docker-compose up -d
101108
# 创建管理员用户(密码必须设置8位以上,否则无法登陆)
102109
docker-compose exec backend python app/initial_data.py
103110
```
@@ -115,14 +122,14 @@ docker-compose exec backend python app/initial_data.py
115122

116123
### 正式版
117124
```shell
118-
cd aurora
125+
cd ~/aurora
119126
wget https://raw.githubusercontent.com/Aurora-Admin-Panel/deploy/main/docker-compose.yml -O docker-compose.yml
120127
docker-compose pull && docker-compose down --remove-orphans && docker-compose up -d
121128
```
122129

123-
### 内测版
130+
### ~~内测版(目前已不维护,请不要使用)~~
124131
```shell
125-
cd aurora
132+
cd ~/aurora
126133
wget https://raw.githubusercontent.com/Aurora-Admin-Panel/deploy/main/docker-compose-dev.yml -O docker-compose.yml
127134
docker-compose pull && docker-compose down --remove-orphans && docker-compose up -d
128135
```
@@ -139,8 +146,8 @@ docker-compose exec postgres pg_dump -d aurora -U [数据库用户名,默认au
139146
# 首先先把所有服务停下
140147
docker-compose down
141148
# 只启动数据库服务
142-
docker-compose up postgres
143-
# 在另外一个窗口,执行数据恢复
149+
docker-compose up -d postgres
150+
# 执行数据恢复
144151
docker-compose exec -T postgres psql -d aurora -U [数据库用户名,默认aurora] < data.sql
145152
# 然后正常启动所有服务
146153
docker-compose up -d

install.sh

+233
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,233 @@
1+
#! /bin/bash
2+
3+
Green_font_prefix="\033[32m" && Red_font_prefix="\033[31m" && Green_background_prefix="\033[42;37m" && Red_background_prefix="\033[41;37m" && Font_color_suffix="\033[0m"
4+
Info="${Green_font_prefix}[信息]${Font_color_suffix}"
5+
Error="${Red_font_prefix}[错误]${Font_color_suffix}"
6+
Tip="${Green_font_prefix}[注意]${Font_color_suffix}"
7+
8+
AURORA_PATH="$HOME/aurora"
9+
10+
function check_root() {
11+
[[ $EUID != 0 ]] && echo -e "${Error} 请使用 root 账号运行该脚本!" && exit 1
12+
}
13+
14+
function check_system() {
15+
source '/etc/os-release'
16+
ARCH=$(uname -m)
17+
[[ $ARCH == "x86_64" || $ARCH == "aarch64" ]] || (echo -e "${Error} 极光面板仅支持安装在 X64 或 ARM64 架构的机器上!" && exit 1)
18+
if [ $ID = "centos" ]; then
19+
OS_FAMILY="centos"
20+
UPDATE="yum makecache -q -y"
21+
INSTALL="yum install -q -y"
22+
elif [ $ID = "debian" ] || [ $ID = "ubuntu" ]; then
23+
OS_FAMILY="debian"
24+
UPDATE="apt update -qq -y"
25+
INSTALL="apt install -qq -y"
26+
else
27+
echo -e "${Error} 系统 $ID $VERSION_ID 暂不支持一键脚本,请尝试手动安装!" && exit 1
28+
fi
29+
}
30+
31+
function install_software() {
32+
[[ -z $1 ]] || (type $1 > /dev/null 2>&1 || (echo -e "开始安装依赖 $1 ..." && $INSTALL $1) || ($UPDATE && $INSTALL $1))
33+
}
34+
35+
function install_docker() {
36+
if ! type docker > /dev/null 2>&1; then
37+
curl -fsSL "https://get.docker.com" | bash -s docker --mirror Aliyun
38+
systemctl enable --now docker
39+
fi
40+
}
41+
42+
function install_docker_compose() {
43+
if ! type docker-compose > /dev/null 2>&1; then
44+
curl -fsSL "https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
45+
chmod +x /usr/local/bin/docker-compose
46+
ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose
47+
fi
48+
}
49+
50+
function install_all() {
51+
install_software wget
52+
install_software curl
53+
install_docker
54+
install_docker_compose
55+
}
56+
57+
function install() {
58+
install_all
59+
[[ -n $(docker ps | grep aurora) ]] && echo -e "${Tip} 极光面板已经安装,且正在运行!" && exit 0
60+
[ -d ${AURORA_PATH} ] || mkdir -p ${AURORA_PATH}
61+
cd ${AURORA_PATH} && wget "https://raw.githubusercontent.com/Aurora-Admin-Panel/deploy/main/docker-compose.yml" -O docker-compose.yml
62+
docker-compose up -d && docker-compose exec backend python app/initial_data.py && \
63+
(echo -e "${Info} 极光面板安装成功,已启动!" && exit 0) || (echo -e "${Error} 极光面板安装失败!" && exit 1)
64+
}
65+
66+
function check_install() {
67+
[ -f "$HOME/aurora/docker-compose.yml" ] || (echo -e "${Tip} 未检测到已经安装极光面板,请先安装!" && exit 1)
68+
}
69+
70+
function update() {
71+
check_install || exit 1
72+
install_all
73+
cd ${AURORA_PATH} && wget "https://raw.githubusercontent.com/Aurora-Admin-Panel/deploy/main/docker-compose.yml" -O docker-compose.yml
74+
docker-compose pull && docker-compose down --remove-orphans && docker-compose up -d && \
75+
(echo -e "${Info} 极光面板更新成功!" && exit 0) || (echo -e "${Error} 极光面板更新失败!" && exit 1)
76+
}
77+
78+
function uninstall() {
79+
[ -f "$HOME/aurora/docker-compose.yml" ] || (echo -e "${Tip} 未检测到已经安装极光面板!" && exit 0)
80+
cd ${AURORA_PATH}
81+
[[ -n $(docker ps | grep aurora) ]] && docker-compose down
82+
docker volume rm aurora_db-data && docker volume rm aurora_app-data && \
83+
(rm -rf ${AURORA_PATH} && echo -e "${Info} 卸载成功!" && exit 0) || (echo -e "${Error} 卸载失败!" && exit 1)
84+
}
85+
86+
function no_run_tip() {
87+
LEVEL=$1 && [[ -z $LEVEL || $LEVEL != ${Info} || $LEVEL != ${Tip} || $LEVEL != ${Error} ]] && LEVEL=${Tip}
88+
TIPS=$2 && [[ -z $TIPS ]] && TIPS="极光面板未在运行!"
89+
[[ -z $(docker ps | grep aurora) ]] && echo -e "${LEVEL} $TIPS"
90+
}
91+
92+
function start() {
93+
check_install || exit 1
94+
[[ -n $(docker ps | grep aurora) ]] && echo -e "${Info} 极光面板正在运行" && exit 0
95+
cd ${AURORA_PATH} && docker-compose up -d && echo -e "${Info} 启动成功!" || echo -e "${Error} 启动失败!"
96+
}
97+
98+
function stop() {
99+
check_install || exit 1
100+
no_run_tip ${Info} && exit 0
101+
cd ${AURORA_PATH} && docker-compose down && echo -e "${Info} 停止成功!" || echo -e "${Error} 停止失败!"
102+
}
103+
104+
function restart() {
105+
check_install || exit 1
106+
no_run_tip ${Tip} "极光面板未在运行,请直接启动!" && exit 0
107+
cd ${AURORA_PATH} && docker-compose restart && echo -e "${Info} 重启成功!" || echo -e "${Error} 重启失败!"
108+
}
109+
110+
function backend_logs() {
111+
check_install || exit 1
112+
no_run_tip && exit 1
113+
cd ${AURORA_PATH} && docker-compose logs -f --tail="100" backend worker
114+
}
115+
116+
function frontend_logs() {
117+
check_install || exit 1
118+
no_run_tip && exit 1
119+
cd ${AURORA_PATH} && docker-compose logs -f --tail="100" frontend
120+
}
121+
122+
function all_logs() {
123+
check_install || exit 1
124+
no_run_tip && exit 1
125+
cd ${AURORA_PATH} && docker-compose logs -f --tail="100"
126+
}
127+
128+
function export_logs() {
129+
check_install || exit 1
130+
no_run_tip && exit 1
131+
cd ${AURORA_PATH} && docker-compose logs > logs && \
132+
echo -e "${Info} 日志导出成功:${AURORA_PATH}/logs" || echo -e "${Error} 日志导出失败!"
133+
}
134+
135+
function backup() {
136+
check_install || exit 1
137+
[[ -z $(docker ps | grep aurora | grep postgres) ]] && echo -e "${Tip} 极光面板未在运行,请先启动!" && exit 1
138+
DB_USER=$(grep POSTGRES_USER ${AURORA_PATH}/docker-compose.yml | awk '{print $2}')
139+
[[ -z $DB_USER ]] && DB_USER="aurora"
140+
DB_NAME=$(grep POSTGRES_DB ${AURORA_PATH}/docker-compose.yml | awk '{print $2}')
141+
[[ -z $DB_NAME ]] && DB_NAME="aurora"
142+
cd ${AURORA_PATH} && docker-compose exec postgres pg_dump -d $DB_NAME -U $DB_USER -c > data.sql && \
143+
echo -e "${Info} 数据库导出成功:${AURORA_PATH}/data.sql" || echo -e "${Error} 数据库导出失败!"
144+
}
145+
146+
function restore() {
147+
check_install || exit 1
148+
echo -e "${Tip} 高危操作,请手动执行!" && exit 0
149+
}
150+
151+
function add_superu() {
152+
check_install || exit 1
153+
[[ -z $(docker ps | grep aurora | grep backend) ]] && echo -e "${Tip} 极光面板未在运行,请先启动!" && exit 1
154+
cd ${AURORA_PATH} && docker-compose exec backend python app/initial_data.py
155+
}
156+
157+
function welcome_aurora() {
158+
check_root
159+
check_system
160+
echo -e "${Green_font_prefix}
161+
极光面板 一键脚本
162+
--------------------------------
163+
1. 安装 极光面板
164+
2. 更新 极光面板
165+
3. 卸载 极光面板
166+
————————————
167+
4. 启动 极光面板
168+
5. 停止 极光面板
169+
6. 重启 极光面板
170+
————————————
171+
7. 查看 后端实时日志
172+
8. 查看 前端实时日志
173+
9. 查看 全部实时日志
174+
10. 导出 全部日志
175+
————————————
176+
11. 备份 数据库
177+
12. 还原 数据库
178+
13. 添加 管理员用户
179+
————————————
180+
0. 退出脚本
181+
————————————
182+
${Font_color_suffix}"
183+
read -r -e -p " 请输入数字 [1-13]: " num && echo
184+
case "$num" in
185+
1)
186+
install
187+
;;
188+
2)
189+
update
190+
;;
191+
3)
192+
uninstall
193+
;;
194+
4)
195+
start
196+
;;
197+
5)
198+
stop
199+
;;
200+
6)
201+
restart
202+
;;
203+
7)
204+
backend_logs
205+
;;
206+
8)
207+
frontend_logs
208+
;;
209+
9)
210+
all_logs
211+
;;
212+
10)
213+
export_logs
214+
;;
215+
11)
216+
backup
217+
;;
218+
12)
219+
restore
220+
;;
221+
13)
222+
add_superu
223+
;;
224+
0)
225+
exit 0
226+
;;
227+
*)
228+
echo -e "${Error} 请输入正确数字 [1-13]"
229+
;;
230+
esac
231+
}
232+
233+
welcome_aurora

0 commit comments

Comments
 (0)