diff --git a/$user/lsd/config.yaml b/$user/lsd/config.yaml new file mode 100644 index 0000000..f7ec6f1 --- /dev/null +++ b/$user/lsd/config.yaml @@ -0,0 +1,73 @@ +# ========== 经典模式 ========== +# 如果为 true,不使用任何颜色或图标,与标准 ls 行为类似 +classic: false + +# ========== 分块(Blocks) ========== +# 定义每行显示哪些信息块,按顺序排列 +blocks: + - permission # 文件权限 (rwxr-xr-x) + - user # 文件所有者 + - group # 用户组 + - size # 文件大小 + - date # 日期/时间 + - name # 文件名(必须包含) + +# ========== 颜色主题 ========== +color: + # 何时使用颜色:always(总是)、auto(自动)、never(从不) + when: auto + + # 自定义文件类型颜色(覆盖默认值) + theme: custom + +# ========== 日期格式 ========== +date: "+%Y-%m-%d %H:%M:%S" # 可选:relative(相对时间)、iso(ISO格式) + +# ========== 跟随符号链接 ============ +dereference: false + +# ========== 图标 ========== +icons: + # 何时显示图标:always、auto、never + when: auto + + # 图标主题(需要对应的 Nerd Font) + theme: fancy # 或 unicode + + # 分隔符(图标与文件名之间的字符) + separator: " " + +# ========== 忽略选项 ========== +ignore-globs: + - "*.bak" # 忽略所有 .bak 文件 + - ".git" # 忽略 .git 目录 + - "__pycache__" # 忽略 Python 缓存 + +# ========== 布局 ========== +layout: grid # grid(网格)| tree(树状)| oneline(单行) + +# ========== 递归深度(--tree 时有效) ========== +recursion: + enabled: false + depth: 3 # 递归显示的最大深度 + +# ========== 排序 ========== +sorting: + column: name # 排序字段:name、size、time、version、extension + # reverse: false # 是否倒序 + # dir-grouping: first # 目录排序:first(靠前)、last(靠后)、none + +# ========== 符号链接 ========== +# 是否显示符号链接的目标路径 +no-symlink: false +symlink-arrow: " ➜ " + +# ========== 总大小 ========== +total-size: false # 是否显示总大小(在目录底部) + +# ========== 截断所有者名 ========== +truncate-owner: + after: 8 # 用户名超过多少字符截断 + +# ========== 超链接 ========== +hyperlink: never # always | auto | never 是否生成终端超链接 diff --git a/$user/lsd/ colors.yaml b/$user/lsd/ colors.yaml new file mode 100644 index 0000000..f9d8a06 --- /dev/null +++ b/$user/lsd/ colors.yaml @@ -0,0 +1,32 @@ +# 文件类型颜色 +file-type: + directory: + foreground: cyan + bold: true + symlink: + foreground: magenta + italic: true + executable: + foreground: green + bold: true + socket: + foreground: red + pipe: + foreground: yellow + block-device: + foreground: red + char-device: + foreground: yellow + +# 文件扩展名颜色(覆盖文件类型颜色) +extensions: + rs: + foreground: white + bold: true + py: + foreground: yellow + js: + foreground: green + md: + foreground: cyan + italic: true diff --git a/adminer/env.cfg b/adminer/env.cfg new file mode 100644 index 0000000..66b7a3d --- /dev/null +++ b/adminer/env.cfg @@ -0,0 +1,3 @@ +IMAGE_TAG_VER=5.4.2 +IMAGE_TAG=adminer:${IMAGE_TAG_VER} +Volumes_Path=/data/volumes/adminer diff --git a/ansible/env.cfg b/ansible/env.cfg new file mode 100644 index 0000000..a3c8af7 --- /dev/null +++ b/ansible/env.cfg @@ -0,0 +1 @@ +IMAGE_TAG=hub.tp229.com:3500/ansible-alpine:py3.13-rootless \ No newline at end of file diff --git a/base/env.cfg b/base/env.cfg new file mode 100644 index 0000000..3415203 --- /dev/null +++ b/base/env.cfg @@ -0,0 +1,2 @@ +Cadvisor_Tag_Ver=v0.53.0 +Cadvisor_Image=hub.6t7.net/base/cadvisor:${Cadvisor_Tag_Ver} \ No newline at end of file diff --git a/builder/alpine/env.cfg b/builder/alpine/env.cfg new file mode 100644 index 0000000..2956c93 --- /dev/null +++ b/builder/alpine/env.cfg @@ -0,0 +1 @@ +IMAGE_TAG=alpine:3 \ No newline at end of file diff --git a/builder/debian/env.cfg b/builder/debian/env.cfg new file mode 100644 index 0000000..1ca3420 --- /dev/null +++ b/builder/debian/env.cfg @@ -0,0 +1 @@ +IMAGE_TAG=debian:13 \ No newline at end of file diff --git a/builder/golang/env.cfg b/builder/golang/env.cfg new file mode 100644 index 0000000..46ff4c2 --- /dev/null +++ b/builder/golang/env.cfg @@ -0,0 +1,3 @@ +IMAGE_TAG_BASH=golang:1.25.0-trixie +IMAGE_TAG_ASH=golang:1.25.0-alpine +Volumes_Path=/data/volumes \ No newline at end of file diff --git a/builder/golang/env.cfg.example b/builder/golang/env.cfg.example index 954ede8..7be1a4c 100644 --- a/builder/golang/env.cfg.example +++ b/builder/golang/env.cfg.example @@ -8,8 +8,9 @@ # $EDITOR env.cfg # 填入真实密码/密钥后保存 # docker compose -p golang --env-file ./env.cfg -f ./stack.yml up -d # -IMAGE_TAG_BASH=golang:1.25.0-trixie -IMAGE_TAG_ASH=golang:1.25.0-alpine +IMAGE_TAG_BASH=golang:1.25-trixie + +IMAGE_TAG_ASH=golang:1.25-alpine Volumes_Path=/data/volumes diff --git a/builder/nodejs/env.cfg b/builder/nodejs/env.cfg new file mode 100644 index 0000000..a80b127 --- /dev/null +++ b/builder/nodejs/env.cfg @@ -0,0 +1,3 @@ +IMAGE_TAG_BASH=node:22.18.0-bookworm +IMAGE_TAG_ASH=node:22.18.0-alpine +Volumes_Path=/data/volumes \ No newline at end of file diff --git a/dbSer/postgres/env.cfg.example b/dbSer/postgres/env.cfg.example index da04477..41a6d85 100644 --- a/dbSer/postgres/env.cfg.example +++ b/dbSer/postgres/env.cfg.example @@ -17,13 +17,13 @@ #IMAGE_TAG=postgres:15.6-bookworm -IMAGE_TAG=postgres:16.10 +IMAGE_TAG=postgres:16.14 -IMAGE_TAG_V17=postgres:17.6 +IMAGE_TAG_V17=postgres:17.10 -IMAGE_TAG_V18=postgres:18.0 +IMAGE_TAG_V18=postgres:18.4 -IMAGE_TAG_V15=postgres:15.14 +IMAGE_TAG_V15=postgres:15.18 POSTGRES_PASSWORD= diff --git a/domain-admin/env.cfg.example b/domain-admin/env.cfg.example index 91693f0..9efef45 100644 --- a/domain-admin/env.cfg.example +++ b/domain-admin/env.cfg.example @@ -8,7 +8,7 @@ # $EDITOR env.cfg # 填入真实密码/密钥后保存 # docker compose -p domain-admin --env-file ./env.cfg -f ./stack.yml up -d # -IMAGE_TAG_VER=v1.6.73 +IMAGE_TAG_VER=v1.6.78 IMAGE_TAG=mouday/domain-admin:${IMAGE_TAG_VER} diff --git a/drawnix/env.cfg.example b/drawnix/env.cfg.example index f6311a7..57a4cd8 100644 --- a/drawnix/env.cfg.example +++ b/drawnix/env.cfg.example @@ -8,6 +8,6 @@ # $EDITOR env.cfg # 填入真实密码/密钥后保存 # docker compose -p drawnix --env-file ./env.cfg -f ./stack.yml up -d # -IMAGE_TAG_VER=v0.3.0 +IMAGE_TAG_VER=v0.4.1 IMAGE_TAG=pubuzhixing/drawnix:${IMAGE_TAG_VER} diff --git a/grafana/env.cfg b/grafana/env.cfg new file mode 100644 index 0000000..97b7021 --- /dev/null +++ b/grafana/env.cfg @@ -0,0 +1,2 @@ +IMAGE_TAG_VER=12.2.0 +IMAGE_TAG=grafana/grafana:${IMAGE_TAG_VER} \ No newline at end of file diff --git a/grafana/env.cfg.example b/grafana/env.cfg.example index 29ea1e9..590f9c4 100644 --- a/grafana/env.cfg.example +++ b/grafana/env.cfg.example @@ -8,6 +8,6 @@ # $EDITOR env.cfg # 填入真实密码/密钥后保存 # docker compose -p grafana --env-file ./env.cfg -f ./stack.yml up -d # -IMAGE_TAG_VER=12.2.0 +IMAGE_TAG_VER=13.0.2 IMAGE_TAG=grafana/grafana:${IMAGE_TAG_VER} diff --git a/grafana/readme.md b/grafana/readme.md index 0f3a516..0b54278 100644 --- a/grafana/readme.md +++ b/grafana/readme.md @@ -1,4 +1,69 @@ -## Grafana +# Grafana 部署说明 -image: grafana/grafana:12.2.0 -ports: 3000 \ No newline at end of file +[Grafana](https://grafana.com/) 是一个开源的可观测性平台,支持 Prometheus、InfluxDB、Loki、Elasticsearch 等多种数据源,提供丰富的仪表盘和告警能力,适用于基础设施监控、应用性能分析和日志可视化等场景。 + +## 目录结构 + +| 文件 | 说明 | +|------|------| +| `compose.yml` | Docker Compose 部署配置 | +| `env.cfg` | 环境变量(镜像版本) | +| `env.cfg.example` | 环境变量模板(不含敏感信息) | + +## 部署命令 + +```bash +# 拉取镜像 +docker compose -p grafana --env-file ./grafana/env.cfg -f ./grafana/compose.yml pull + +# 启动服务 +docker compose -p grafana --env-file ./grafana/env.cfg -f ./grafana/compose.yml up -d + +# 停止服务 +docker compose -p grafana --env-file ./grafana/env.cfg -f ./grafana/compose.yml down + +# 查看日志 +docker compose -p grafana --env-file ./grafana/env.cfg -f ./grafana/compose.yml logs -f +``` + +## 环境变量说明 + +| 变量 | 说明 | 示例 | +|------|------|------| +| `IMAGE_TAG_VER` | Grafana 镜像版本 | `13.0.2` | +| `IMAGE_TAG` | 完整镜像标签 | `grafana/grafana:13.0.2` | + +## 访问服务 + +- 默认端口:`3000` +- 访问地址:`http://<主机IP>:3000` +- 默认登录凭据:`admin / admin`(首次登录后建议修改密码) + +## 持久化 + +当前配置使用无状态模式,容器重启后仪表盘和配置会丢失。如需持久化,建议在 `compose.yml` 中添加卷挂载: + +```yaml +services: + grafana: + volumes: + - ${Volumes_Path:-/data/volumes/grafana}:/var/lib/grafana # 数据持久化 +``` + +并确保宿主机目录权限正确: + +```bash +# 创建数据目录 +mkdir -pv /data/volumes/grafana + +# 设置目录属主为 Grafana 容器用户(UID 472) +chown -R 472:472 /data/volumes/grafana +``` + +## 注意事项 + +- Grafana 和 Gitea 默认都使用 3000 端口,部署在同一宿主机时需通过 `env.cfg` 或 compose 调整端口映射避免冲突 +- 容器使用 `restart: unless-stopped` 策略,宿主机重启后自动拉起 +- 默认使用匿名用户访问,如需接入 LDAP/OAuth 等认证,需挂载自定义 `grafana.ini` 配置文件 +- 生产环境建议配置数据源和告警渠道的持久化存储 +- 当前 `env.cfg.example` 版本为 `13.0.2`,实际部署版本以 `env.cfg` 为准 \ No newline at end of file diff --git a/joplin/amd.env.cfg b/joplin/amd.env.cfg new file mode 100644 index 0000000..b815fd3 --- /dev/null +++ b/joplin/amd.env.cfg @@ -0,0 +1,10 @@ +IMAGE_TAG=joplin/server:3.6.1 +# only amd64 +#IMAGE_TAG=joplin/server:2.14.2-beta +## 实际部署时需要考虑APP_BASE_URL变量值 +APP_BASE_URL=https://joplin.6t7.net +POSTGRES_USER=postgres +POSTGRES_PASSWORD=Kevin0412PgSql +POSTGRES_DATABASE=joplin-db +POSTGRES_PORT=5432 +POSTGRES_HOST=10.0.74.3 \ No newline at end of file diff --git a/memos/db-184.cnf b/memos/db-184.cnf new file mode 100644 index 0000000..3422783 --- /dev/null +++ b/memos/db-184.cnf @@ -0,0 +1,6 @@ +DB_DRIVER=postgres +DB_USER=postgres +DB_PASSWORD=Kevin0412PgSql +DB_DATANAME=memos-db +DB_HOST=192.168.100.184 +DB_POST=5432 \ No newline at end of file diff --git a/memos/db-61.cnf b/memos/db-61.cnf new file mode 100644 index 0000000..bb6720f --- /dev/null +++ b/memos/db-61.cnf @@ -0,0 +1,6 @@ +DB_DRIVER=postgres +DB_USER=postgres +DB_PASSWORD=Kevin0412PgSql +DB_DATANAME=memos-db +DB_HOST=192.168.10.61 +DB_POST=5432 \ No newline at end of file diff --git a/memos/env-lkc.cnf b/memos/env-lkc.cnf new file mode 100644 index 0000000..fa26d6b --- /dev/null +++ b/memos/env-lkc.cnf @@ -0,0 +1,7 @@ +DB_DRIVER=postgres +DB_USER=postgres +DB_PASSWORD=Kevin0412PgSql +DB_DATANAME=memos-db +#DB_HOST=192.168.100.184 +DB_HOST=10.0.74.3 +DB_POST=5432 \ No newline at end of file diff --git a/n8n/env.cfg b/n8n/env.cfg new file mode 100644 index 0000000..3456e21 --- /dev/null +++ b/n8n/env.cfg @@ -0,0 +1,24 @@ +IMAGE_TAG_LATEST=2.3.6 +IMAGE_TAG_Pre=2.4.4 + +# 数据库连接配置 +POSTGRES_HOST=localhost +POSTGRES_PORT=5432 +POSTGRES_DB=n8n +POSTGRES_USER=n8n +POSTGRES_PASSWORD=n8n_password + +# n8n基础配置 +N8N_BASIC_AUTH_ACTIVE=true +N8N_BASIC_AUTH_USER=admin +N8N_BASIC_AUTH_PASSWORD=admin_password + +# 时区 +GENERIC_TIMEZONE=Asia/Shanghai +TZ=Asia/Shanghai + +# Webhook配置 +WEBHOOK_URL=http://localhost:5678 + +# 加密密钥 +N8N_ENCRYPTION_KEY=your_encryption_key_here \ No newline at end of file diff --git a/n9e/compose-pgsql/stack.yml b/n9e/compose-pgsql/stack.yml index c60e959..6079740 100644 --- a/n9e/compose-pgsql/stack.yml +++ b/n9e/compose-pgsql/stack.yml @@ -2,12 +2,10 @@ networks: nightingale: driver: bridge - services: - redis: image: "redis:8-alpine" - container_name: redis + container_name: n9e_redis hostname: redis restart: always ports: @@ -18,7 +16,7 @@ services: - nightingale nightingale: - image: flashcatcloud/nightingale:8.5.0 + image: flashcatcloud/nightingale:9.0.0-beta.3 container_name: nightingale hostname: nightingale restart: always @@ -38,4 +36,4 @@ services: links: - redis:redis command: > - sh -c "/app/n9e" \ No newline at end of file + sh -c "/app/n9e" diff --git a/n9e/readme.md b/n9e/readme.md index 04fbf35..1397909 100644 --- a/n9e/readme.md +++ b/n9e/readme.md @@ -13,4 +13,4 @@ compose-pgsql 目录下是 postgresql 版本 ### 注意事项 - 请根据实际情况选择合适的版本进行安装部署。 - 请先复制 compose-* 目录下的文件到目标目录。并修改其中的环境变量和配置文件。 -- 防止使用默认值导致的安全问题。 \ No newline at end of file +- 防止使用默认值导致的安全问题。 diff --git a/ntfy/env.cfg.example b/ntfy/env.cfg.example index 6f7102e..c86f0e3 100644 --- a/ntfy/env.cfg.example +++ b/ntfy/env.cfg.example @@ -10,8 +10,20 @@ # -IMAGE_TAG_VER=v2.15 +IMAGE_TAG_VER=v2.24 IMAGE_TAG=binwiederhier/ntfy:${IMAGE_TAG_VER} Volumes_Path=/data/volumes/ntfy + +NTFY_BASE_URL=http://ntfy:80 + +# Web推送密钥对(自行生成): +# docker run --rm binwiederhier/ntfy ntfy web push generate > keys.txt +# 或:docker exec ntfy ntfy web push generate +# 然后将 public key 和 private key 分别填入下方 +NTFY_WEB_PUSH_PUBLIC_KEY= +NTFY_WEB_PUSH_PRIVATE_KEY= + +# Web推送关联的邮件地址(用于通知等场景) +NTFY_WEB_PUSH_EMAIL_ADDRESS= diff --git a/ntfy/stack.yml b/ntfy/stack.yml index c846c1e..7f6cd7d 100644 --- a/ntfy/stack.yml +++ b/ntfy/stack.yml @@ -9,26 +9,25 @@ services: container_name: ntfy #tty: true stdin_open: true - command: - serve + command: serve restart: unless-stopped ports: - - '5480:80' + - "5480:80" environment: - - TZ=Asia/Shanghai # 时区设置为上海时区 - - NTFY_BASE_URL= # ntfy服务的基础访问URL(协议+主机+端口) - - NTFY_CACHE_FILE=/var/lib/ntfy/cache.db # 缓存数据的存储文件路径 - - NTFY_AUTH_FILE=/var/lib/ntfy/auth.db # 授权信息(如用户认证数据)的存储文件路径 - - NTFY_AUTH_DEFAULT_ACCESS=deny-all # 默认访问权限:禁止所有未授权访问 - - NTFY_BEHIND_PROXY=true # 标识ntfy服务运行在代理服务器后方(如Nginx等) - - NTFY_ATTACHMENT_CACHE_DIR=/var/lib/ntfy/attachments # 附件资源的缓存存储目录 - - NTFY_ENABLE_LOGIN=true # 启用登录功能,允许用户通过账号密码授权访问 - - NTFY_WEB_PUSH_PUBLIC_KEY= # Web推送功能的公钥(用于消息加密) - - NTFY_WEB_PUSH_PRIVATE_KEY= # Web推送功能的私钥(与公钥配对,用于解密/签名) - - NTFY_WEB_PUSH_FILE=/var/lib/ntfy/webpush.db # Web推送相关的数据存储文件路径 - - NTFY_WEB_PUSH_EMAIL_ADDRESS= # Web推送关联的邮件地址(用于通知等场景) - - NTFY_ENABLE_SIGNUP=false # 禁用用户注册功能,阻止新用户自主创建账号 - - NTFY_ENABLE_METRICS=true # 启用指标收集功能,用于监控和分析服务运行状态 + - TZ=Asia/Shanghai # 时区设置为上海时区 + - NTFY_BASE_URL=${NTFY_BASE_URL} # ntfy服务的基础访问URL(协议+主机+端口) + - NTFY_CACHE_FILE=/var/lib/ntfy/cache.db # 缓存数据的存储文件路径 + - NTFY_AUTH_FILE=/var/lib/ntfy/auth.db # 授权信息(如用户认证数据)的存储文件路径 + - NTFY_AUTH_DEFAULT_ACCESS=deny-all # 默认访问权限:禁止所有未授权访问 + - NTFY_BEHIND_PROXY=true # 标识ntfy服务运行在代理服务器后方(如Nginx等) + - NTFY_ATTACHMENT_CACHE_DIR=/var/lib/ntfy/attachments # 附件资源的缓存存储目录 + - NTFY_ENABLE_LOGIN=true # 启用登录功能,允许用户通过账号密码授权访问 + - NTFY_WEB_PUSH_PUBLIC_KEY=${NTFY_WEB_PUSH_PUBLIC_KEY} # Web推送功能的公钥(用于消息加密) + - NTFY_WEB_PUSH_PRIVATE_KEY=${NTFY_WEB_PUSH_PRIVATE_KEY} # Web推送功能的私钥(与公钥配对,用于解密/签名) + - NTFY_WEB_PUSH_FILE=/var/lib/ntfy/webpush.db # Web推送相关的数据存储文件路径 + - NTFY_WEB_PUSH_EMAIL_ADDRESS=${NTFY_WEB_PUSH_EMAIL_ADDRESS} # Web推送关联的邮件地址(用于通知等场景) + - NTFY_ENABLE_SIGNUP=false # 禁用用户注册功能,阻止新用户自主创建账号 + - NTFY_ENABLE_METRICS=true # 启用指标收集功能,用于监控和分析服务运行状态 volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro diff --git a/readme.md b/readme.md index 0b28e3c..0a6ecfc 100644 --- a/readme.md +++ b/readme.md @@ -7,3 +7,133 @@ > 1. 该脚本只是一个简单的示例,不保证任何的稳定性。 > 2. 请根据自己的需求进行修改。 +## 项目结构 + +项目包含多个可独立部署的服务栈,每个服务栈位于单独的目录中,包含以下核心文件: +- `stack.yml` / `compose.yml` - Docker Compose 配置文件 +- `env.cfg` - 环境变量配置文件(包含敏感信息,已 gitignore) +- `env.cfg.example` - 环境变量配置模板(不含敏感信息) +- `readme.md` - 服务说明文档(可选) + +## 使用示例 + +### Gitea 部署实践事例 + +**场景**:要部署 Gitea 服务,但希望保持项目目录的原始配置不变,同时在独立的目录中进行定制化部署。 + +**1. 创建独立部署目录**: +```bash +# 假设当前在 deploy.stack 项目根目录 +# 创建独立的部署目录 +mkdir -p ~/mydeploy +cd ~/mydeploy + +# 复制项目中的 Gitea 配置(相对路径或绝对路径) +cp -r ../deploy.stack/gitea . +# 或者使用绝对路径 +# cp -r /path/to/your/deploy.stack/gitea . + +# 进入 Gitea 目录 +cd gitea +``` + +**2. 准备环境变量**: +```bash +# 复制环境变量模板 +cp env.cfg.example env.cfg + +# 编辑环境变量(根据实际需求修改) +vim env.cfg +``` + +**3. 修改配置(在 mydeploy 目录中)**: + +**修改端口映射**(Gitea 默认使用 3000 端口,可能与 Grafana 冲突): +```yaml +# 在 lky-prod.yml 或 rpi-prod.yml 中添加端口映射 +ports: + - "3001:3000" # 将容器内 3000 端口映射到宿主机 3001 端口 +``` + +**调整数据卷路径**(根据实际存储位置): +```bash +# 在 env.cfg 中修改 Volumes_Path +Volumes_Path=/data/volumes/gitea +``` + +**更新镜像版本**: +```bash +# 在 env.cfg 中修改镜像版本 +IMAGE_TAG_VER=1.25.2 +IMAGE_TAG=gitea/gitea:${IMAGE_TAG_VER}-rootless +``` + +**选择环境配置文件**: +- `lky-prod.yml` - 用于生产环境(Linux 服务器) +- `rpi-prod.yml` - 用于树莓派环境 +- 根据实际环境选择合适的 compose 文件 + +**4. 创建数据目录**: +```bash +# 根据 env.cfg 中的 Volumes_Path 创建目录 +mkdir -pv /data/volumes/gitea/{data,config,logs} + +# 设置正确的权限(Gitea 使用 UID 1000) +chown -R 1000:1000 /data/volumes/gitea/ +``` + +**5. 部署服务**: +```bash +# 拉取镜像(根据选择的配置文件) +docker compose -p gitea --env-file ./env.cfg -f ./lky-prod.yml pull +# 或使用 rpi-prod.yml +# docker compose -p gitea --env-file ./env.cfg -f ./rpi-prod.yml pull + +# 启动服务 +docker compose -p gitea --env-file ./env.cfg -f ./lky-prod.yml up -d + +# 查看日志 +docker compose -p gitea --env-file ./env.cfg -f ./lky-prod.yml logs -f + +# 查看服务状态 +docker compose -p gitea --env-file ./env.cfg -f ./lky-prod.yml ps + +# 停止服务 +docker compose -p gitea --env-file ./env.cfg -f ./lky-prod.yml down +``` + +**6. 优势**: +- **配置隔离**:在 `mydeploy` 目录中的修改不会影响原始项目配置 +- **版本管理**:可以针对不同环境维护不同的配置版本 +- **快速回滚**:如需恢复原始配置,只需删除 `mydeploy` 目录并重新部署 +- **测试验证**:可以在 `mydeploy` 中测试新配置,确认无误后再应用到生产环境 + +**7. 注意事项**: +- **配置兼容性**:确保 `mydeploy` 目录中的配置文件与原始项目保持兼容,特别是 compose 文件版本 +- **定期同步**:关注原始项目的更新(安全补丁、新功能等),适时同步到 `mydeploy` 目录 +- **配置备份**:定期备份 `mydeploy` 目录中的自定义配置 +- **敏感信息安全**:`env.cfg` 包含密码、密钥等敏感信息,确保文件权限为 600 +```bash +chmod 600 env.cfg +``` +- **版本控制**:建议将 `mydeploy` 目录纳入版本控制(排除 `env.cfg`) +- **多环境管理**:可以为不同环境创建不同的 `mydeploy` 目录,如 `mydeploy-prod`、`mydeploy-dev` + +**8. 通用模式**: +这种 "mydeploy" 模式不仅适用于 Gitea,也适用于项目中的其他服务: + +```bash +# 部署 Grafana +cp -r ../deploy.stack/grafana ~/mydeploy/grafana + +# 部署 Memos +cp -r ../deploy.stack/memos ~/mydeploy/memos + +# 部署 Portainer +cp -r ../deploy.stack/portainer-ce ~/mydeploy/portainer-ce + +# 部署 Traefik +cp -r ../deploy.stack/traefik ~/mydeploy/traefik +``` + +每个服务都可以在独立的目录中进行定制化配置和测试,实现真正的配置隔离和环境管理。 diff --git a/victoriametrics/compose.yml b/victoriametrics/compose.yml index d36baa1..bf92bb3 100644 --- a/victoriametrics/compose.yml +++ b/victoriametrics/compose.yml @@ -1,3 +1,4 @@ +# RUN:: docker compose -p prod-dbs --env-file ./victoriametrics/env.cfg -f ./victoriametrics/compose.yml up -d services: victoriametrics: