Stille 3 anni fa
parent
commit
c83f711044

+ 0 - 10
v2-ui/Dockerfile

@@ -1,10 +0,0 @@
-FROM ubuntu:21.10
-LABEL maintainer="Stille <[email protected]>"
-
-ENV VERSION 5.5.2
-
-RUN apt -y update && apt -y install curl && \
-    curl -O https://raw.githubusercontent.com/sprov065/v2-ui/master/install.sh && chmod +x install.sh&& ./install.sh
-
-CMD [ "sh", "-c", "/usr/local/v2-ui/v2-ui"]
-

+ 0 - 81
v2-ui/README.md

@@ -1,81 +0,0 @@
-# v2-ui
-
-GitHub [stilleshan/dockerfiles](https://github.com/stilleshan/dockerfiles)  
-Docker [stilleshan/v2-ui](https://hub.docker.com/r/stilleshan/v2-ui)
-> *docker image support for X86 and ARM*
-
-## 简介
-基于 [sprov065/v2-ui](https://github.com/sprov065/v2-ui) 项目的 docker 镜像.
-
-## 更新
-- **2021-06-17** 更新`一键安装脚本`.
-- **2021-06-13** 更新`5.5.2`版 docker 镜像,新增同时支持 X86 和 ARM 架构.
-
-## v2-ui-ssl 一键安装脚本部署
-一键安装脚本部署请访问子目录 [v2-ui-ssl](./v2-ui-ssl) 查看详情.
-
-## v2-ui 手动部署
-### docker
-```shell
-docker run -d --name=v2-ui --restart=always --network=host stilleshan/v2-ui
-```
-
-### docker compose
-下载 [docker-compose.yml](https://raw.githubusercontent.com/stilleshan/dockerfiles/main/v2-ui/docker-compose.yml) 执行以下命令启动:
-```shell
-docker-compose up -d
-```
-
-### 挂载
-为方便数据备份和迁移,需将容器内`/etc/v2-ui/v2-ui.db`文件拷贝至宿主机存储,该文件存储所有面板数据及账号信息.并再挂载至容器内.同时创建`ssl`目录,上传证书文件挂载至容器内使用.
-> **注意:** 挂载 ssl 证书后,在 v2-ui 面板中创建账号使用证书的路径为 /ssl/yourdomain.crt .
-#### docker
-通过上文首次执行`docker run`启动容器后:
-```shell
-docker cp v2-ui:/etc/v2-ui/v2-ui.db .
-# 拷贝 v2-ui.db 至宿主机
-docker stop v2-ui
-# 停止容器
-docker rm v2-ui
-# 删除容器
-```
-创建`ssl`目录并上传证书.  
-修改以下命令中挂载路径,启动使用:
-```shell
-docker run -d --name=v2-ui --restart=always --network=host -v /your_path/v2-ui.db:/etc/v2-ui/v2-ui.db -v /your_path/ssl:/ssl stilleshan/v2-ui
-```
-
-#### docker-compose
-通过上文首次执行`docker-compose up -d`启动容器后:
-```shell
-docker cp v2-ui:/etc/v2-ui/v2-ui.db .
-# 拷贝 v2-ui.db 至宿主机
-docker-compose down
-# 停止并删除容器
-```
-创建`ssl`目录并上传证书.  
-修改`docker-compose.yml`,取消注释,参考如下:
-```yml
-version: '3.7'
-services:
-  v2-ui:
-    image: stilleshan/v2-ui
-    container_name: v2-ui
-    volumes:
-      - ./v2-ui.db:/etc/v2-ui/v2-ui.db
-      - ./ssl:/ssl
-    restart: always
-    network_mode: host
-```
-
-确认挂载路径无误后启动使用:
-```shell
-docker-compose up -d
-```
-
-## 使用
-访问`http://服务器IP:65432`使用账号`admin`密码`admin`登录.注意需开放相关端口防火墙,并及时修改账号密码.
-
-## 参考
-GitHub [sprov065/v2-ui](https://github.com/sprov065/v2-ui)
-

+ 0 - 11
v2-ui/docker-compose.yml

@@ -1,11 +0,0 @@
-version: '3.7'
-services:
-  v2-ui:
-    image: stilleshan/v2-ui
-    container_name: v2-ui
-    # volumes:
-    #   - ./v2-ui.db:/etc/v2-ui/v2-ui.db
-    #   - ./ssl:/ssl
-    restart: always
-    network_mode: host
-

+ 0 - 75
v2-ui/v2-ui-ssl/README.md

@@ -1,75 +0,0 @@
-# v2-ui-ssl
-
-GitHub [stilleshan/dockerfiles](https://github.com/stilleshan/dockerfiles)  
-Docker [stilleshan/v2-ui](https://hub.docker.com/r/stilleshan/v2-ui)
-> *docker image support for X86 and ARM*
-
-## 简介
-整合 v2-ui 和 acme.sh 的 docker compose 一键部署方案
-- 支持全自动证书申请,定时每月续签证书.
-- 备份和迁移方便,仅需保存 v2-ui-ssl 一个目录,一条命令即可在其他服务器启动使用.
-- 支持 X86 和 ARM 架构
-
-## 更新
-**2021-06-17** 更新`一键安装脚本`.
-
-## 一键安装脚本部署
-- 使用一键安装脚本后无需继续参考以下`手动部署`段落.
-- 一键安装脚本依旧需要基于本服务器安装 docker 和 docker compose 环境.
-- 一键安装脚本仅限于首次使用,确保服务器之前没有使用过本仓库的`v2-ui`或`v2-ui-ssl`项目.
-- 脚本安装完毕后,会自行删除,避免误操作.
-- 脚本安装完毕后,依旧需要手动执行以下`自动更新证书`段落的操作,以便`v2-ui`定时重启使得证书生效.
-```shell
-wget https://raw.githubusercontent.com/stilleshan/dockerfiles/main/v2-ui/v2-ui-ssl/install.sh && chmod +x install.sh && ./install.sh
-```
-
-
-## 手动部署
-### 下载文件
-部署所需文件已打包,方便直接下载解压使用.
-```shell
-wget https://raw.githubusercontent.com/stilleshan/dockerfiles/main/v2-ui/v2-ui-ssl/v2-ui-ssl.tar
-tar -xvf v2-ui-ssl.tar
-cd v2-ui-ssl
-```
-
-### 配置
-修改`conf/account.conf`文件,在`DOMAIN=`之后填写域名,并参考一下官方文档,填写其他对应的 API 信息.  
-https://github.com/acmesh-official/acme.sh/wiki/dnsapi  
-https://www.ioiox.com/archives/87.html
-
-
-### 启动
-执行以下命令启动,请确保`account.conf`填写正确,容器每次启动都会检测`account.conf`中的`DOMAIN`变量,以及`ssl`目录下是否存在该域名证书,如果没有将会自动申请证书,如已存在则不会申请.
-```shell
-docker-compose up -d
-```
-> 启动后稍等一分钟, **ssl** 目录下将会生成证书文件.
-
-### 自动更新证书
-由于系统将在 GMT 时间每月`1`日`0`点,也就是北京时间`1`日早`8`点重新强制更新证书,并覆盖至`ssl`目录下.则需要同时为`v2-ui`服务设置一个定时重启计划任务:
-```shell
-crontab -e
-# 添加以下计划任务
-0 0 2 * * docker restart v2-ui
-# 为避免时区问题,将在每月 2 号 0 点执行
-```
-
-### 手动更新证书
-也可以手动执行更新证书命令:
-```shell
-docker exec acme sh -c /conf/acme.sh
-```
-
-## 使用
-访问`http://服务器IP:65432`使用账号`admin`密码`admin`登录.注意需开放相关端口防火墙,并及时修改账号密码.
-
-### 证书使用
-**v2-ui** 中创建账户开启`tls`时所需用到的证书路径为
-> /ssl/yourdomain.cer  
-/ssl/yourdomain.key
-
-
-## 参考
-GitHub [sprov065/v2-ui](https://github.com/sprov065/v2-ui)
-

+ 0 - 4
v2-ui/v2-ui-ssl/conf/account.conf

@@ -1,4 +0,0 @@
-export DP_Id=""
-export DP_Key=""
-export DOMAIN=
-export DNSAPI=

+ 0 - 35
v2-ui/v2-ui-ssl/conf/acme.sh

@@ -1,35 +0,0 @@
-PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
-export PATH
-
-# fonts color
-Green="\033[32m"
-Red="\033[31m"
-Yellow="\033[33m"
-GreenBG="\033[42;37m"
-RedBG="\033[41;37m"
-Font="\033[0m"
-# fonts color
-
-
-DOMAIN=$(cat /conf/account.conf | awk -F= '{if($1~"DOMAIN")print $2}')
-DNSAPI=$(cat /conf/account.conf | awk -F= '{if($1~"DNSAPI")print $2}')
-
-acme (){
-    cat /conf/account.conf > /acme.sh/account.conf
-    /root/.acme.sh/acme.sh --upgrade
-    /root/.acme.sh/acme.sh --register-account -m [email protected] --server zerossl
-    /root/.acme.sh/acme.sh --issue $* --dns ${DNSAPI} -d ${DOMAIN} -d \*.${DOMAIN}
-    cp /acme.sh/${DOMAIN}/fullchain.cer /ssl/${DOMAIN}.cer
-    cp /acme.sh/${DOMAIN}/${DOMAIN}.key /ssl/${DOMAIN}.key
-    mv /acme.sh/${DOMAIN} /acme.sh/${DOMAIN}-$(date +%Y)-$(date +%m)-$(date +%d)-${RANDOM}
-}
-
-if [ ! -n "${DOMAIN}" ] ; then
-    echo "请检查 account.conf 信息是否正确"
-else
-    acme $*
-fi
-
-cat >/var/spool/cron/crontabs/root<<EOF
-0 0 1 * * /conf/acme.sh >/dev/null 2>&1
-EOF

+ 0 - 24
v2-ui/v2-ui-ssl/conf/start.sh

@@ -1,24 +0,0 @@
-PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
-export PATH
-
-# fonts color
-Green="\033[32m"
-Red="\033[31m"
-Yellow="\033[33m"
-GreenBG="\033[42;37m"
-RedBG="\033[41;37m"
-Font="\033[0m"
-# fonts color
-
-DOMAIN=$(cat /conf/account.conf | awk -F= '{if($1~"DOMAIN")print $2}')
-DNSAPI=$(cat /conf/account.conf | awk -F= '{if($1~"DNSAPI")print $2}')
-
-cat >/var/spool/cron/crontabs/root<<EOF
-0 0 1 * * /conf/acme.sh >/dev/null 2>&1
-EOF
-
-if [ ! -f "/ssl/${DOMAIN}.cer" ] && [ -n "${DOMAIN}" ]; then
-    /conf/acme.sh
-fi
-
-/entry.sh daemon

BIN
v2-ui/v2-ui-ssl/data/v2-ui.db


+ 0 - 20
v2-ui/v2-ui-ssl/docker-compose.yml

@@ -1,20 +0,0 @@
-version: '3.7'
-services:
-  v2-ui:
-    image: stilleshan/v2-ui
-    container_name: v2-ui
-    volumes:
-      - ./data/v2-ui.db:/etc/v2-ui/v2-ui.db
-      - ./ssl:/ssl
-    restart: always
-    network_mode: host
-
-  acme:
-    image: neilpang/acme.sh
-    container_name: acme
-    volumes:
-      - ./conf:/conf
-      - ./ssl:/ssl
-    restart: always
-    network_mode: host
-    command: ["sh", "-c", "/conf/start.sh"]

+ 0 - 187
v2-ui/v2-ui-ssl/install.sh

@@ -1,187 +0,0 @@
-PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
-export PATH
-
-# fonts color
-Green="\033[32m"
-Red="\033[31m"
-Yellow="\033[33m"
-GreenBG="\033[42;37m"
-RedBG="\033[41;37m"
-Font="\033[0m"
-# fonts color
-
-WORK_PATH=$(dirname $(readlink -f $0))
-
-
-v2_ui_ssl (){
-clear
-echo -e "${Green}请输入需要申请证书的根域名(例如:ioiox.com):${Font}"
-read -p "请输入:" DOMAIN_INPUT
-if [ ! -n "${DOMAIN_INPUT}" ]; then
-    echo -e "${Red}输入错误,请重新运行脚本.${Font}"
-    exit 0
-fi
-DOMAIN=$DOMAIN_INPUT
-echo -e "${Green}请选择域名服务商:${Font}"
-echo -e "1) 腾讯云 dnspod.cn"
-echo -e "2) 阿里云 aliyun"
-echo -e "3) Cloudflare"
-read -p "请选择:" DNSAPI_INPUT
-case "$DNSAPI_INPUT" in
-    1)
-    PLATFORM_NAME='dnspod.cn'
-    DNSAPI='dns_dp'
-    API_ID_HEADER='DP_Id'
-    API_KEY_HEADER='DP_Key'
-    ;;
-    2)
-    PLATFORM_NAME='aliyun'
-    DNSAPI='dns_ali'
-    API_ID_HEADER='Ali_Key'
-    API_KEY_HEADER='Ali_Secret'
-    ;;
-    3)
-    ;;
-    *)
-    echo -e "${Red}输入错误,请重新运行脚本.${Font}"
-    exit 0
-    esac
-
-if [ "$DNSAPI_INPUT" == "3" ]; then
-    echo -e "${Green}=========================================================================================${Font}"
-    echo -e  "${Red}注意: Cloudflare API 有三种:${Font}"
-    echo -e  "${Red}请参考 https://github.com/acmesh-official/acme.sh/wiki/dnsapi#1-cloudflare-option 选择.${Font}"
-    echo "1) Using the global API key"
-    echo "2) Using the new cloudflare api token"
-    echo "3) Using the new cloudflare api token for Single Zone"
-    read -p "请选择:" CHOICE_CLOUDFLARE_INPUT
-    echo -e "${Green}=========================================================================================${Font}"
-    case "$CHOICE_CLOUDFLARE_INPUT" in
-        1)
-        PLATFORM_NAME='Cloudflare'
-        DNSAPI='dns_cf'
-        API_ID_HEADER='CF_Key'
-        API_KEY_HEADER='CF_Email'
-        ;;
-        2)
-        PLATFORM_NAME='Cloudflare'
-        DNSAPI='dns_cf'
-        API_ID_HEADER='CF_Token'
-        API_KEY_HEADER='CF_Account_ID'
-        ;;
-        3)
-        PLATFORM_NAME='Cloudflare'
-        DNSAPI='dns_cf'
-        API_ID_HEADER='CF_Token'
-        API_KEY_HEADER='CF_Account_ID'
-        API_ZONE_HEADER='CF_Zone_ID'
-        ;;
-        *)
-        echo -e "${Red}输入错误,请重新运行脚本.${Font}"
-        exit 0
-        esac
-fi
-
-read -p "请输入 $API_ID_HEADER :" API_ID_INPUT
-read -p "请输入 $API_KEY_HEADER :" API_KEY_INPUT
-if [ "$CHOICE_CLOUDFLARE_INPUT" == "3" ]; then
-    read -p "请输入 $API_ZONE_HEADER :" API_ZONE_HEADER_INPUT
-fi
-
-
-echo -e "${Green}=========================================================================================${Font}"
-echo -e "${Red}请确认以下信息正确无误!${Font}"
-echo -e "${Green}域名: ${Font}${Red}${DOMAIN}${Font}"
-echo -e "${Green}域名服务商: ${Font}${Red}${PLATFORM_NAME}${Font}"
-echo -e "${Green}${API_ID_HEADER}:${Font} ${Red}${API_ID_INPUT}${Font}"
-echo -e "${Green}${API_KEY_HEADER}:${Font} ${Red}${API_KEY_INPUT}${Font}"
-if [ "$CHOICE_CLOUDFLARE_INPUT" == "3" ]; then
-    echo -e "${Green}${API_ZONE_HEADER}:${Font} ${Red}${API_ZONE_HEADER_INPUT}${Font}"
-fi
-echo -e "${Red}请再次确认以上信息正确无误!${Font}"
-echo -e "${Green}=========================================================================================${Font}"
-echo -e "1) 开始部署"
-echo -e "2) 退出脚本"
-read -p "请输入:" START_INPUT
-case "$START_INPUT" in
-    1)
-    echo -e "${Green}开始部署中......${Font}"
-    accout_conf $*
-    ;;
-    2)
-    exit 0
-    ;;
-    *)
-    echo -e "${Red}输入有误,请重新运行脚本.${Font}"
-    exit 0
-    esac
-}
-
-
-accout_conf (){
-WORK_PATH=$(dirname $(readlink -f $0))
-wget https://raw.githubusercontent.com/stilleshan/dockerfiles/main/v2-ui/v2-ui-ssl/v2-ui-ssl.tar
-tar -xvf v2-ui-ssl.tar
-cat >${WORK_PATH}/v2-ui-ssl/conf/account.conf<<EOF
-export ${API_ID_HEADER}="${API_ID_INPUT}"
-export ${API_KEY_HEADER}="${API_KEY_INPUT}"
-export DOMAIN=${DOMAIN}
-export DNSAPI=${DNSAPI}
-EOF
-if [ "$CHOICE_CLOUDFLARE_INPUT" == "3" ]; then
-    sed -i "2a export ${API_ZONE_HEADER}=\"${API_ZONE_HEADER_INPUT}\"" v2-ui-ssl/conf/account.conf
-fi
-docker_compose_ssl
-}
-
-docker_compose_ssl (){
-    cd v2-ui-ssl
-    docker-compose up -d
-    cd ${WORK_PATH}
-    rm -rf ${WORK_PATH}/v2-ui-ssl.tar
-    echo -e "${Green}部署完毕,静等 1 分钟查看 ssl 目录下是否生成证书文件.${Font}"
-    echo -e "${Green}访问 http://服务器IP:65432 使用帐号 admin 密码 admin 登陆,尽快修改帐号密码.${Font}"
-    rm $0
-}
-
-docker_compose_nossl (){
-    WORK_PATH=$(dirname $(readlink -f $0))
-    wget https://raw.githubusercontent.com/stilleshan/dockerfiles/main/v2-ui/v2-ui-ssl/v2-ui-ssl.tar
-    tar -xvf v2-ui-ssl.tar
-    sed -i '8d' ${WORK_PATH}/v2-ui-ssl/docker-compose.yml
-    sed -i '11,20d' ${WORK_PATH}/v2-ui-ssl/docker-compose.yml
-    rm -rf ${WORK_PATH}/v2-ui-ssl/conf
-    mv ${WORK_PATH}/v2-ui-ssl ${WORK_PATH}/v2-ui
-    cd v2-ui
-    docker-compose up -d
-    cd ${WORK_PATH}
-    rm -rf ${WORK_PATH}/v2-ui-ssl.tar
-    echo -e "${Green}部署完毕.访问 http://服务器IP:65432 使用帐号 admin 密码 admin 登陆,尽快修改帐号密码.${Font}"
-    rm $0
-}
-
-
-if ! type docker-compose >/dev/null 2>&1 ; then
-    echo -e "${Red}本机未安装 docker compose 已退出脚本.${Font}";
-    exit 0
-fi
-
-clear
-echo -e "${Green}=========================================================================================${Font}"
-echo -e "${Green}开始安装 v2-ui-ssl${Font}"
-echo -e "${Red}注意:本脚本需要服务器有 docker 和 docker compose 环境${Font}"
-echo -e "${Green}=========================================================================================${Font}"
-echo "1) v2-ui + acme 自动申请和续签证书"
-echo "2) v2-ui 独立版本"
-read -p "请输入:" VS_INPUT
-case "$VS_INPUT" in
-    1)
-    v2_ui_ssl
-    ;;
-    2)
-    docker_compose_nossl
-    ;;
-    *)
-    echo -e "${Red}输入有误,请重新运行脚本.${Font}"
-    exit 0
-    esac

BIN
v2-ui/v2-ui-ssl/v2-ui-ssl.tar