diff --git a/.idea/dataSources.local.xml b/.idea/dataSources.local.xml index 40b928e..c6fbda0 100644 --- a/.idea/dataSources.local.xml +++ b/.idea/dataSources.local.xml @@ -1,6 +1,6 @@ - + #@ diff --git a/0-部署应用/CloudCone-备份中心/b-vault-warden-dsv3.1.sh b/0-部署应用/CloudCone-备份中心/b-vault-warden-dsv3.1.sh new file mode 100644 index 0000000..5d366ff --- /dev/null +++ b/0-部署应用/CloudCone-备份中心/b-vault-warden-dsv3.1.sh @@ -0,0 +1,342 @@ +#!/bin/bash +# ============================================================================= +# b-vault-warden备份脚本 +# 功能:远程执行Vaultwarden备份、同步备份文件、加密压缩及清理 +# 版本:1.0.0 +# 作者:Shell脚本工程师 +# 许可证:MIT License +# 依赖:ssh, rsync, 7zip, docker (远程主机) +# ============================================================================= + +set -euo pipefail +IFS=$'\n\t' + +# > 全局常量定义 +readonly SCRIPT_NAME="$(basename "$0")" +readonly SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +readonly LOCK_FILE="/tmp/${SCRIPT_NAME}.lock" + +# > 配置参数(可根据需要调整为环境变量) +readonly REMOTE_HOST="s5" +readonly REMOTE_PORT="22333" +readonly REMOTE_USER="root" +readonly REMOTE_BACKUP_CMD="docker exec vault-warden /vaultwarden backup" +readonly REMOTE_DATA_DIR="/data/vault-warden/persist-data" +readonly LOCAL_STAGE_DIR="/tmp/vault_warden_backup_stage" +readonly LOCAL_BACKUP_DIR="${SCRIPT_DIR}/backups" +readonly BACKUP_PATTERNS=( + "config.json" + "rsa_key*" + "attachments" + "sends" + "db_*.sqlite3" +) +readonly ENCRYPTION_PASSWORD="your_encryption_password_here" # > 请在实际使用时修改 + +# > 日志配置 +readonly LOG_DIR="${SCRIPT_DIR}/logs" +readonly LOG_FILE="${LOG_DIR}/backup_$(date +%Y%m%d).log" + +# > 颜色输出定义 +readonly RED='\033[0;31m' +readonly GREEN='\033[0;32m' +readonly YELLOW='\033[1;33m' +readonly BLUE='\033[0;34m' +readonly NC='\033[0m' + +# ============================================================================= +# 日志函数集 +# ============================================================================= + +### +# 初始化日志系统 +# @require 无 +# @return 0 成功 | >0 失败 +### +init_log_system() { + mkdir -p "${LOG_DIR}" || return 1 + touch "${LOG_FILE}" || return 1 + return 0 +} + +### +# 记录日志消息 +# @param level string 日志级别(DEBUG/INFO/WARN/ERROR) +# @param message string 日志消息 +# @require LOG_FILE +# @return 0 成功 +### +log_message() { + local level="$1" + local message="$2" + local timestamp + timestamp=$(date '+%Y-%m-%d %H:%M:%S') + + case "${level}" in + "DEBUG") echo -e "${BLUE}[DEBUG]${NC} ${timestamp} - ${message}" | tee -a "${LOG_FILE}" ;; + "INFO") echo -e "${GREEN}[INFO]${NC} ${timestamp} - ${message}" | tee -a "${LOG_FILE}" ;; + "WARN") echo -e "${YELLOW}[WARN]${NC} ${timestamp} - ${message}" | tee -a "${LOG_FILE}" >&2 ;; + "ERROR") echo -e "${RED}[ERROR]${NC} ${timestamp} - ${message}" | tee -a "${LOG_FILE}" >&2 ;; + *) echo "${timestamp} - ${message}" | tee -a "${LOG_FILE}" ;; + esac + return 0 +} + +# ============================================================================= +# 工具函数集 +# ============================================================================= + +### +# 检查命令是否存在 +# @param command_name string 命令名称 +# @require 无 +# @return 0 存在 | 1 不存在 +### +check_command() { + local command_name="$1" + if ! command -v "${command_name}" >/dev/null 2>&1; then + log_message "ERROR" "命令不存在: ${command_name}" + return 1 + fi + return 0 +} + +### +# 执行远程SSH命令 +# @param command string 要执行的命令 +# @require REMOTE_HOST, REMOTE_PORT, REMOTE_USER +# @return 远程命令的退出码 +### +execute_remote_command() { + local command="$1" + ssh -p "${REMOTE_PORT}" "${REMOTE_USER}@${REMOTE_HOST}" "${command}" + return $? +} + +### +# 创建锁文件防止并发执行 +# @require LOCK_FILE +# @return 0 成功获取锁 | 1 锁已存在 +### +acquire_lock() { + if [ -e "${LOCK_FILE}" ]; then + log_message "ERROR" "备份任务正在运行或异常退出,请检查锁文件: ${LOCK_FILE}" + return 1 + fi + echo "$$" > "${LOCK_FILE}" + trap 'release_lock' EXIT + return 0 +} + +### +# 释放锁文件 +# @require LOCK_FILE +# @return 0 成功 +### +release_lock() { + [ -e "${LOCK_FILE}" ] && rm -f "${LOCK_FILE}" + return 0 +} + +# ============================================================================= +# 核心备份函数 +# ============================================================================= + +### +# 远程执行Vaultwarden备份命令 +# @require execute_remote_command, REMOTE_BACKUP_CMD +# @return 0 成功 | >0 失败 +### +remote_execute_backup() { + log_message "INFO" "开始在远程主机执行Vaultwarden备份..." + + if ! execute_remote_command "${REMOTE_BACKUP_CMD}"; then + log_message "ERROR" "远程备份命令执行失败" + return 1 + fi + + log_message "INFO" "远程备份命令执行成功" + return 0 +} + +### +# 使用rsync同步备份文件到本地 +# @require REMOTE_HOST, REMOTE_PORT, REMOTE_USER, REMOTE_DATA_DIR, LOCAL_STAGE_DIR, BACKUP_PATTERNS +# @return 0 成功 | >0 失败 +### +sync_backup_files() { + log_message "INFO" "开始同步备份文件到本地..." + + # > 创建本地暂存目录 + mkdir -p "${LOCAL_STAGE_DIR}" || { + log_message "ERROR" "创建本地暂存目录失败: ${LOCAL_STAGE_DIR}" + return 1 + } + + # > 构建rsync命令 + local rsync_cmd="rsync -avz --progress -e 'ssh -p ${REMOTE_PORT}'" + + for pattern in "${BACKUP_PATTERNS[@]}"; do + rsync_cmd+=" ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DATA_DIR}/${pattern}" + done + + rsync_cmd+=" ${LOCAL_STAGE_DIR}/" + + # > 执行rsync同步 + if ! eval "${rsync_cmd}"; then + log_message "ERROR" "文件同步失败" + return 1 + fi + + log_message "INFO" "文件同步完成" + return 0 +} + +### +# 使用7zip加密压缩备份文件 +# @require LOCAL_STAGE_DIR, LOCAL_BACKUP_DIR, ENCRYPTION_PASSWORD +# @return 0 成功 | >0 失败 +### +encrypt_and_compress() { + log_message "INFO" "开始加密压缩备份文件..." + + # > 检查7zip命令 + if ! check_command "7z"; then + log_message "ERROR" "7zip命令不存在,请安装p7zip-full包" + return 1 + fi + + # > 创建备份目录 + mkdir -p "${LOCAL_BACKUP_DIR}" || { + log_message "ERROR" "创建备份目录失败: ${LOCAL_BACKUP_DIR}" + return 1 + } + + local backup_file="${LOCAL_BACKUP_DIR}/vaultwarden-backup-$(date +%Y%m%d-%H%M%S).7z" + + # > 执行加密压缩 + if ! (cd "${LOCAL_STAGE_DIR}" && 7z a -p"${ENCRYPTION_PASSWORD}" -mhe=on "${backup_file}" . >/dev/null); then + log_message "ERROR" "加密压缩失败" + return 1 + fi + + log_message "INFO" "加密压缩完成: ${backup_file}" + return 0 +} + +### +# 远程删除备份数据库文件 +# @require execute_remote_command, REMOTE_DATA_DIR +# @return 0 成功 | >0 失败 +### +remote_cleanup_backup() { + log_message "INFO" "开始清理远程备份文件..." + + local cleanup_cmd="rm -rf ${REMOTE_DATA_DIR}/db_*.sqlite3" + + if ! execute_remote_command "${cleanup_cmd}"; then + log_message "ERROR" "远程清理失败" + return 1 + fi + + log_message "INFO" "远程清理完成" + return 0 +} + +### +# 清理本地暂存目录 +# @require LOCAL_STAGE_DIR +# @return 0 成功 +### +local_cleanup() { + log_message "INFO" "清理本地暂存目录..." + [ -d "${LOCAL_STAGE_DIR}" ] && rm -rf "${LOCAL_STAGE_DIR}" + return 0 +} + +# ============================================================================= +# 主执行流程 +# ============================================================================= + +### +# 主备份流程 +# @require 所有上述函数 +# @return 0 成功 | >0 失败 +### +main_backup_process() { + log_message "INFO" "=== 开始Vaultwarden备份任务 ===" + + # > 检查依赖命令 + local required_commands=("ssh" "rsync" "7z") + for cmd in "${required_commands[@]}"; do + if ! check_command "${cmd}"; then + return 1 + fi + done + + # > 执行备份流程 + local steps=( + remote_execute_backup + sync_backup_files + encrypt_and_compress + remote_cleanup_backup + local_cleanup + ) + + for step in "${steps[@]}"; do + if ! "${step}"; then + log_message "ERROR" "备份任务在第 ${#steps[@]} 步失败" + return 1 + fi + done + + log_message "INFO" "=== Vaultwarden备份任务完成 ===" + return 0 +} + +# ============================================================================= +# 脚本入口点 +# ============================================================================= + +# > 设置错误处理 +trap 'log_message "ERROR" "脚本异常退出"; release_lock; exit 1' ERR + +# > 主执行块 +main() { + if ! acquire_lock; then + exit 1 + fi + + if ! init_log_system; then + log_message "ERROR" "日志系统初始化失败" + exit 1 + fi + + if ! main_backup_process; then + log_message "ERROR" "备份任务执行失败" + exit 1 + fi + + release_lock + exit 0 +} + +# > 脚本执行入口 +main "$@" + +# ============================================================================= +# 函数调用关系图 +# ============================================================================= +# main +# ├── acquire_lock +# ├── init_log_system +# └── main_backup_process +# ├── check_command (多次调用) +# ├── remote_execute_backup +# │ └── execute_remote_command +# ├── sync_backup_files +# ├── encrypt_and_compress +# │ └── check_command +# ├── remote_cleanup_backup +# │ └── execute_remote_command +# └── local_cleanup diff --git a/0-部署应用/CloudCone-备份中心/b-vault-warden备份.sh b/0-部署应用/CloudCone-备份中心/b-vault-warden备份.sh new file mode 100644 index 0000000..673b6ea --- /dev/null +++ b/0-部署应用/CloudCone-备份中心/b-vault-warden备份.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +# 定时任务 每天凌晨2点执行 +# 环境变量 +vault_warden_host_ip=s5 + + +remote_fetch_vault_warden_backup_data() { + + ssh -p 22333 root@s5 "docker exec -it vault-warden /vaultwarden backup" + + ssh -p 22333 root@s5 "rm -rf /data/vault-warden/persist-data/db_*.sqlite3" +} + +mkdir -p /tmp/vault_warden_backup_stage/ + + + +rsync -a /data/vault-warden/persist-data/config.json /data/vault-warden/persist-data/rsa_key* /data/vault-warden/persist-data/attachments /data/vault-warden/persist-data/sends /data/vault-warden/persist-data/db_*.sqlite3 /tmp/vault_warden_backup_stage/ + + + +将暂存目录的全部内容打包成最终的归档文件。 +cd /tmp/vault_warden_backup_stage/ +tar -czf vaultwarden-backup-$(date +%Y%m%d-%H%M%S).tar.gz /tmp/vault_warden_backup_stage/* + + +rm -rf /tmp/vault_warden_backup_stage/ + + + + diff --git a/0-部署应用/CloudCone-备份中心/基本环境说明.txt b/0-部署应用/CloudCone-备份中心/基本环境说明.txt new file mode 100644 index 0000000..178a6e7 --- /dev/null +++ b/0-部署应用/CloudCone-备份中心/基本环境说明.txt @@ -0,0 +1,7 @@ + +64.69.32.106 + +购买日期 2026/08/29 +购买价格 15美元/年 + + diff --git a/0-部署应用/CloudCone-备份中心/备份内容说明.txt b/0-部署应用/CloudCone-备份中心/备份内容说明.txt new file mode 100644 index 0000000..788f216 --- /dev/null +++ b/0-部署应用/CloudCone-备份中心/备份内容说明.txt @@ -0,0 +1,28 @@ + + +需要备份的内容 +S5 nextcloud +S5 vault-warden + +T0 gitea + +你是一名计算机领域的大师,你非常善于应用互联网上成熟的工具和自己编写一些小工具,对于数据安全备份具有深刻的理解。 +请为以下的情况创建一套解决方法,只需要解决方案,不需要实际的代码内容 + +主机A的配置为2C 2GB 120GB,用作备份服务器,可以安装任何软件 +主机B的配置为4C 24GB 100GB 已有docker-compose部署的nextcloud和vault-warden应用,nextcloud的信息为,版本nextcloud:27.0.1-apache,本地映射的目录为/data/nextcloud:/var/www/html,使用的数据库为image: mariadb:10.5,同样需要备份数据库信息。其备份方法请严格参考https://docs.nextcloud.com/server/latest/admin_manual/maintenance/backup.html + +vault-warden的信息为:版本image: vaultwarden/server:1.34.3-alpine,本地存储目录为/data/vault-warden/persist-data:/data,需要备份attachments文件,其备份方法请严格参考https://github.com/dani-garcia/vaultwarden/wiki/Backing-up-your-vault + +主机C的配置为4C 24GB 100GB 已部署gitea应用,gitea的信息为image: docker.io/bitnami/gitea:1.19.3-debian-11-r0,本次存储目录为/var/lib/docker/wdd/gitea/gitea_data:/bitnami/gitea,其备份方法请严格参考https://docs.gitea.com/zh-tw/administration/backup-and-restore + +主机A B C是三台独立的公网服务器,他们之间的网络是互联互通的。 +主机A B C之间已经配置使用root用户的免费登录 +主机ABC上的业务均使用root用户启动 + +请给出方案, +1 求B C之上的nextcloud数据按照1周一次备份到C vault-warden数据按照1填一次备份到C gitea的数据按照1周一次备份到C +2 最好采用软件自带的方式导出,需要考虑数据恢复 +3 备份传输最好考虑安全加密,但不是必要的。 +4 最好使用rsync和rclone的方式,第一备份为主机A,第二备份请放置于OneDrive + diff --git a/0-部署应用/CloudCone-备份中心/备份说明.md b/0-部署应用/CloudCone-备份中心/备份说明.md new file mode 100644 index 0000000..12cdd3c --- /dev/null +++ b/0-部署应用/CloudCone-备份中心/备份说明.md @@ -0,0 +1,39 @@ + + +# Vault-Warden备份 + +## 备份说明 +备份频率 每天一次 通过crontab执行 每天凌晨2点执行 +备份副本数 最近3份 +官方备份说明 https://github.com/dani-garcia/vaultwarden/wiki/Backing-up-your-vault + +## 备份过程 +1. 远程执行s5:执行vault-warden官方备份命令 +2. rsync复制s5主机上,特定的备份文件到本地主机备份目录/data/s5_146-56-159-175/vault-warden/ +3. 远程执行s5:删除掉备份的数据库文件 + + +# NextCloud备份 +## 备份说明 +备份频率 每周一次 通过crontab执行 每周日凌晨2点执行 +备份副本数 最近1份 +官方备份说明 https://docs.nextcloud.com/server/latest/admin_manual/maintenance/backup.html + +## 备份过程 +1. 远程执行s5:启用维护模式 docker exec nextcloud_web php occ maintenance:mode --on +2. 远程执行s5:数据库备份 (MariaDB) docker exec nextcloud-db mariadb-dump --single-transaction -h localhost -u nextcloud -p'boge14@Level5' nextcloud > /data/nextcloud/nextcloud-db_backup_$(date +%Y%m%d-%H%M%S).sql +3. rsync复制s5主机上下面的备份文件,到本地主机目录/data/s5_146-56-159-175/nextcloud/ + 1. /data/nextcloud/* +4. 远程执行s5: 删除掉下面的文件 + 1. /data/nextcloud/nextcloud-db_backup_*.sql +5. 远程执行s5: 禁用维护模式 docker exec nextcloud_web php occ maintenance:mode --off + + +# Gitea备份 +## 备份说明 +备份频率 每周三 周六凌晨2点执行 +备份副本数 最近3份 +官方备份说明 https://docs.gitea.com/zh-tw/administration/backup-and-restore + +## 备份过程 +1. 远程执行t0: 执行gitea备份命令 docker exec -it --tempdir=/bitnami/gitea/tmp gitea-gitea-1 /opt/bitnami/gitea/bin/gitea dump -c /bitnami/gitea/custom/conf/app.ini \ No newline at end of file diff --git a/0-部署应用/CloudCone-备份中心/服务器数据备份与恢复方案.docx b/0-部署应用/CloudCone-备份中心/服务器数据备份与恢复方案.docx new file mode 100644 index 0000000..be9fcb6 Binary files /dev/null and b/0-部署应用/CloudCone-备份中心/服务器数据备份与恢复方案.docx differ diff --git a/0-部署应用/Seoul-arm64-02/Vaultwarden+CloudflareTunnel/readme.md b/0-部署应用/Seoul-arm64-02/Vaultwarden+CloudflareTunnel/readme.md index 3a4174f..6362827 100644 --- a/0-部署应用/Seoul-arm64-02/Vaultwarden+CloudflareTunnel/readme.md +++ b/0-部署应用/Seoul-arm64-02/Vaultwarden+CloudflareTunnel/readme.md @@ -2,3 +2,5 @@ ### https://www.dejavu.moe/posts/selfhosted-bitwarden-with-cloudflare-tunnel/ + +官方使用说明 https://github.com/dani-garcia/vaultwarden/wiki \ No newline at end of file diff --git a/0-部署应用/Seoul-arm64-02/Vaultwarden+CloudflareTunnel/vault.env b/0-部署应用/Seoul-arm64-02/Vaultwarden+CloudflareTunnel/vault.env index 9eb43c2..7f488d0 100644 --- a/0-部署应用/Seoul-arm64-02/Vaultwarden+CloudflareTunnel/vault.env +++ b/0-部署应用/Seoul-arm64-02/Vaultwarden+CloudflareTunnel/vault.env @@ -9,6 +9,12 @@ EMERGENCY_ACCESS_ALLOWED=true # 日志等级 LOG_LEVEL=warn +# 是否禁止 +DISABLE_ADMIN_TOKEN=true + +# 是否允许注册 +SIGNUPS_ALLOWED=false + # 注册需要验证? SIGNUPS_VERIFY=true SIGNUPS_VERIFY_RESEND_TIME=3600 @@ -21,7 +27,7 @@ SIGNUPS_DOMAINS_WHITELIST=107421.xyz ORG_CREATION_USERS=you@107421.xyz # 使用 openssl rand -base64 48 命令快速生成管理员令牌 -ADMIN_TOKEN=WnzCmaUPhFsN5jUphoazxw4hlh2cfwjlUPPKJOXxYdLAApxuoFiCIgIjUO8HbaY7 +# ADMIN_TOKEN=WnzCmaUPhFsN5jUphoazxw4hlh2cfwjlUPPKJOXxYdLAApxuoFiCIgIjUO8HbaY7 # 允许邀请? INVITATIONS_ALLOWED=true diff --git a/0-部署应用/Seoul-arm64-02/nextcloud-docker/docker-compose.yaml b/0-部署应用/Seoul-arm64-02/nextcloud-docker/docker-compose.yaml index cd8a381..d97d194 100644 --- a/0-部署应用/Seoul-arm64-02/nextcloud-docker/docker-compose.yaml +++ b/0-部署应用/Seoul-arm64-02/nextcloud-docker/docker-compose.yaml @@ -44,21 +44,21 @@ services: cron: - image: nextcloud:27.0.1-apache + image: nextcloud:27.0.1-apache - restart: always + restart: always - volumes: + volumes: - - /data/nextcloud/cron:/var/www/html + - /data/nextcloud/cron:/var/www/html - entrypoint: /cron.sh + entrypoint: /cron.sh - depends_on: + depends_on: - - db + - db - - redis + - redis diff --git a/0-部署应用/Oracle-Cloud/自建代码仓库-gitea/gitea-bitnami-docker-compose.yaml b/0-部署应用/Tokyo-arm64-01/自建代码仓库-gitea/gitea-bitnami-docker-compose.yaml similarity index 63% rename from 0-部署应用/Oracle-Cloud/自建代码仓库-gitea/gitea-bitnami-docker-compose.yaml rename to 0-部署应用/Tokyo-arm64-01/自建代码仓库-gitea/gitea-bitnami-docker-compose.yaml index 9557602..89d76e9 100644 --- a/0-部署应用/Oracle-Cloud/自建代码仓库-gitea/gitea-bitnami-docker-compose.yaml +++ b/0-部署应用/Tokyo-arm64-01/自建代码仓库-gitea/gitea-bitnami-docker-compose.yaml @@ -1,20 +1,18 @@ -# https://hub.docker.com/r/bitnami/gitea - version: '2' services: postgresql: image: docker.io/bitnami/postgresql:15 volumes: - - '/var/lib/docker/wdd/gitea/postgresql_data/:/bitnami/postgresql' + - '/data/gitea/postgresql_data/:/bitnami/postgresql' environment: - POSTGRESQL_DATABASE=gitea_db - POSTGRESQL_USERNAME=bn_gitea - POSTGRESQL_PASSWORD=Superwdd.12 # ALLOW_EMPTY_PASSWORD is recommended only for development. gitea: - image: docker.io/bitnami/gitea:1.19.3-debian-11-r0 + image: docker.io/bitnami/gitea:1.24.5-debian-12-r0 volumes: - - '/var/lib/docker/wdd/gitea/gitea_data:/bitnami/gitea' + - '/data/gitea/gitea_data:/bitnami/gitea' environment: - GITEA_DATABASE_HOST=postgresql - GITEA_DATABASE_NAME=gitea_db @@ -24,11 +22,11 @@ services: - GITEA_ADMIN_PASSWORD=lovemm.23 - GITEA_ADMIN_EMAIL=wdd@107421.xyz - GITEA_HTTP_PORT=3000 +# - GITEA_DOMAIN=gitea.107421.xyz +# - GITEA_ROOT_URL=gitea.107421.xyz - GITEA_SSH_LISTEN_PORT=22222 - - GITEA_APP_NAME=Gitea-闲下来就喝杯茶吧 - - GITEA_DOMAIN=192.168.35.80 - - GITEA_PROTOCOL=http - - GITEA_RUN_MODE=prod + - ARCHIVE_CLEANUP_ENABLED = true + - ARCHIVE_CLEANUP_TIMEOUT = 168h #设置归档文件过期时间(默认7天) ports: - '3000:3000' - - '22222:22222' + - '22222:22222' \ No newline at end of file diff --git a/0-部署应用/Oracle-Cloud/自建代码仓库-gitea/个人代码仓库反向代理.conf b/0-部署应用/Tokyo-arm64-01/自建代码仓库-gitea/个人代码仓库反向代理.conf similarity index 100% rename from 0-部署应用/Oracle-Cloud/自建代码仓库-gitea/个人代码仓库反向代理.conf rename to 0-部署应用/Tokyo-arm64-01/自建代码仓库-gitea/个人代码仓库反向代理.conf diff --git a/0-部署应用/Oracle-Cloud/自建代码仓库-gitea/个人代码仓库证书申请.sh b/0-部署应用/Tokyo-arm64-01/自建代码仓库-gitea/个人代码仓库证书申请.sh similarity index 100% rename from 0-部署应用/Oracle-Cloud/自建代码仓库-gitea/个人代码仓库证书申请.sh rename to 0-部署应用/Tokyo-arm64-01/自建代码仓库-gitea/个人代码仓库证书申请.sh diff --git a/0-部署应用/Oracle-Cloud/自建代码仓库-gitea/自用3570/gitea-docker-compose-35.70.yaml b/0-部署应用/Tokyo-arm64-01/自建代码仓库-gitea/自用3570/gitea-docker-compose-35.70.yaml similarity index 100% rename from 0-部署应用/Oracle-Cloud/自建代码仓库-gitea/自用3570/gitea-docker-compose-35.70.yaml rename to 0-部署应用/Tokyo-arm64-01/自建代码仓库-gitea/自用3570/gitea-docker-compose-35.70.yaml diff --git a/1-代理Xray/98-subscribe-clash.yaml b/1-代理Xray/98-subscribe-clash.yaml index ead4857..de4be47 100644 --- a/1-代理Xray/98-subscribe-clash.yaml +++ b/1-代理Xray/98-subscribe-clash.yaml @@ -441,12 +441,12 @@ proxy-groups: proxies: - TC-HongKong - BFC-LosAngles - - FV-HongKong - Care-DEU-Dusseldorf-R-TCHK - Oracle-KOR-Seoul-R-TCHK - Oracle-JPN-Tokyo-R-TCHK - Oracle-USA-Phoenix-R-TCHK - Care-DEU-Dusseldorf + - FV-HongKong - Oracle-KOR-Seoul - FV-DEU-Frankfurt - FV-KOR-Seoul diff --git a/1-代理Xray/99-subscribe-octopus-latest.txt b/1-代理Xray/99-subscribe-octopus-latest.txt index 7229a45..d34bd1c 100644 --- a/1-代理Xray/99-subscribe-octopus-latest.txt +++ b/1-代理Xray/99-subscribe-octopus-latest.txt @@ -1,19 +1,17 @@ vless://f8702759-f402-4e85-92a6-8540d577de22@43.154.83.213:24443?type=tcp&encryption=none&security=tls&path=%2f&flow=xtls-rprx-vision&sni=book.107421.xyz#TC-HongKong vless://302fbcb8-e096-46a1-906f-e879ec5ab0c5@154.40.34.106:443?type=tcp&encryption=none&security=tls&path=%2f&flow=xtls-rprx-vision&sni=xx.l4.ca.bg.107421.xyz#BFC-LosAngles -vless://93be1d17-8e02-449d-bb99-683ed46fbe50@43.154.83.213:24453?type=tcp&encryption=none&security=tls&path=%2f&flow=xtls-rprx-vision&sni=book.107421.xyz#CF-HongKong-R-TCHK -vless://cdf0b19a-9524-48d5-b697-5f10bb567734@43.154.83.213:24452?type=tcp&encryption=none&security=tls&path=%2f&flow=xtls-rprx-vision&sni=book.107421.xyz#FV-HongKong - +vless://9fa9b4e7-d76d-4890-92cf-ce9251a76f59@43.154.83.213:24451?type=tcp&encryption=none&security=tls&path=%2f&flow=xtls-rprx-vision&sni=book.107421.xyz#Care-DEU-Dusseldorf-R-TCHK vless://7e27da0c-3013-4ed4-817b-50cc76a0bf81@43.154.83.213:24449?type=tcp&encryption=none&security=tls&path=%2f&flow=xtls-rprx-vision&sni=book.107421.xyz#Oracle-KOR-Seoul-R-TCHK vless://c751811a-404f-4a05-bc41-5d572e741398@43.154.83.213:25000?type=tcp&encryption=none&security=tls&path=%2f&flow=xtls-rprx-vision&sni=book.107421.xyz#Oracle-JPN-Tokyo-R-TCHK vless://fce2a9c6-1380-4ffa-ba84-6b9ec9ee2eea@43.154.83.213:25001?type=tcp&encryption=none&security=tls&path=%2f&flow=xtls-rprx-vision&sni=book.107421.xyz#Oracle-USA-Phoenix-R-TCHK -vless://9fa9b4e7-d76d-4890-92cf-ce9251a76f59@43.154.83.213:24451?type=tcp&encryption=none&security=tls&path=%2f&flow=xtls-rprx-vision&sni=book.107421.xyz#Care-DEU-Dusseldorf-R-TCHK +vless://93be1d17-8e02-449d-bb99-683ed46fbe50@43.154.83.213:24453?type=tcp&encryption=none&security=tls&path=%2f&flow=xtls-rprx-vision&sni=book.107421.xyz#CF-HongKong-R-TCHK +vless://cdf0b19a-9524-48d5-b697-5f10bb567734@43.154.83.213:24452?type=tcp&encryption=none&security=tls&path=%2f&flow=xtls-rprx-vision&sni=book.107421.xyz#FV-HongKong vless://b1417d92-998d-410b-a5f3-cf144b6f043e@45.134.50.233:443?type=tcp&encryption=none&security=tls&path=%2f&flow=xtls-rprx-vision&sni=bingo.107421.xyz#Care-DEU-Dusseldorf vless://1089cc14-557e-47ac-ac85-c07957b3cce3@140.238.14.103:443?type=tcp&encryption=none&security=tls&path=%2f&flow=xtls-rprx-vision&sni=xx.s4.cc.hh.107421.xyz#Oracle-KOR-Seoul - vless://6055eac4-dee7-463b-b575-d30ea94bb768@43.154.83.213:24444?type=tcp&encryption=none&security=tls&path=%2f&flow=xtls-rprx-vision&sni=book.107421.xyz#FV-DEU-Frankfurt vless://1cd284b2-d3d8-4165-b773-893f836c2b51@43.154.83.213:24445?type=tcp&encryption=none&security=tls&path=%2f&flow=xtls-rprx-vision&sni=book.107421.xyz#FV-KOR-Seoul vless://bf0e9c35-84a9-460e-b5bf-2fa9f2fb3bca@43.154.83.213:24446?type=tcp&encryption=none&security=tls&path=%2f&flow=xtls-rprx-vision&sni=book.107421.xyz#FV-JPN-Tokyo