diff --git a/apt.list/ustc/bookworm.sources.list b/apt.list/ustc/Debian12/bookworm.sources.list
similarity index 100%
rename from apt.list/ustc/bookworm.sources.list
rename to apt.list/ustc/Debian12/bookworm.sources.list
diff --git a/apt.list/ustc/docker.list b/apt.list/ustc/Debian12/docker.list
similarity index 100%
rename from apt.list/ustc/docker.list
rename to apt.list/ustc/Debian12/docker.list
diff --git a/apt.list/ustc/Debian13/docker.list b/apt.list/ustc/Debian13/docker.list
new file mode 100644
index 0000000..222c2f1
--- /dev/null
+++ b/apt.list/ustc/Debian13/docker.list
@@ -0,0 +1 @@
+deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.ustc.edu.cn/docker-ce/linux/debian trixie stable
\ No newline at end of file
diff --git a/apt.list/ustc/trixie.sources.list b/apt.list/ustc/Debian13/trixie.sources.list
similarity index 100%
rename from apt.list/ustc/trixie.sources.list
rename to apt.list/ustc/Debian13/trixie.sources.list
diff --git a/base/cadvisor.stack.yaml b/base/cadvisor.stack.yaml
new file mode 100644
index 0000000..05ccfe0
--- /dev/null
+++ b/base/cadvisor.stack.yaml
@@ -0,0 +1,17 @@
+
+## RUN:: docker compose -p base --env-file ./base/env.cfg -f ./base/cadvisor.stack.yaml up -d
+services:
+
+ cadvisor:
+ image: ${Cadvisor_Image}
+ restart: always
+ container_name: cadvisor-prod
+ ports:
+ - 9180:8080
+ volumes:
+ - /:/rootfs:ro
+ - /data/docker/:/var/lib/docker:ro
+ - /var/run:/var/run:rw
+ - /sys:/sys:ro
+ - /dev/disk/:/dev/disk:ro
+ privileged: true
\ No newline at end of file
diff --git a/base/env.cfg b/base/env.cfg
new file mode 100644
index 0000000..d13dc53
--- /dev/null
+++ b/base/env.cfg
@@ -0,0 +1,2 @@
+Cadvisor_Tag_Ver=v0.53.0
+Cadvisor_Image=hub.tp229.com:3500/google/cadvisor:${Cadvisor_Tag_Ver}
\ No newline at end of file
diff --git a/dbSer/loki/env.cfg b/dbSer/loki/env.cfg
new file mode 100644
index 0000000..e69de29
diff --git a/dbSer/loki/readme.md b/dbSer/loki/readme.md
new file mode 100644
index 0000000..d4d65fc
--- /dev/null
+++ b/dbSer/loki/readme.md
@@ -0,0 +1,5 @@
+## LOKI 日志收集服务
+
+[loki docker 安装文档](https://grafana.com/docs/loki/latest/setup/install/docker/)
+
+
diff --git a/dbSer/loki/stack.yml b/dbSer/loki/stack.yml
new file mode 100644
index 0000000..e69de29
diff --git a/gitea/backup.job b/gitea/backup.job
new file mode 100644
index 0000000..8df05a9
--- /dev/null
+++ b/gitea/backup.job
@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+## gitea 数据备份脚本
+## CRON:: 4 4 * * * /data/deploy/crontab/backup.job >> /dev/null 2>&1
+
+DATA_PATH=/data/volumes/gitea
+BACKUP_PATH=/data/backups/gitea
+
+docker stop gitea-app
+sleep 0.3
+rsync -au --delete ${DATA_PATH} ${BACKUP_PATH}
+sleep 0.3
+docker start gitea-app
diff --git a/grafana/env.cfg b/grafana/env.cfg
index 5e499bd..97b7021 100644
--- a/grafana/env.cfg
+++ b/grafana/env.cfg
@@ -1 +1,2 @@
-IMAGE_TAG=grafana/grafana:12.2.0
\ No newline at end of file
+IMAGE_TAG_VER=12.2.0
+IMAGE_TAG=grafana/grafana:${IMAGE_TAG_VER}
\ No newline at end of file
diff --git a/harbor/compose.yaml b/harbor/compose.yaml
index 60ac8d5..470197e 100644
--- a/harbor/compose.yaml
+++ b/harbor/compose.yaml
@@ -1,10 +1,8 @@
-version: '2.3'
services:
log:
- image: goharbor/harbor-log:v2.2.2
+ image: goharbor/harbor-log:v2.14.1
container_name: harbor-log
restart: always
- dns_search: .
cap_drop:
- ALL
cap_add:
@@ -14,18 +12,14 @@ services:
- SETUID
volumes:
- /var/log/harbor/:/var/log/docker/:z
- - type: bind
- source: ./common/config/log/logrotate.conf
- target: /etc/logrotate.d/logrotate.conf
- - type: bind
- source: ./common/config/log/rsyslog_docker.conf
- target: /etc/rsyslog.d/rsyslog_docker.conf
+ - /data/harbor/common/config/log/logrotate.conf:/etc/logrotate.d/logrotate.conf
+ - /data/harbor/common/config/log/rsyslog_docker.conf:/etc/rsyslog.d/rsyslog_docker.conf
ports:
- 127.0.0.1:1514:10514
networks:
- harbor
registry:
- image: goharbor/registry-photon:v2.2.2
+ image: goharbor/registry-photon:v2.14.1
container_name: registry
restart: always
cap_drop:
@@ -35,29 +29,24 @@ services:
- SETGID
- SETUID
volumes:
- - /data/registry:/storage:z
- - ./common/config/registry/:/etc/registry/:z
- - type: bind
- source: /data/secret/registry/root.crt
- target: /etc/registry/root.crt
- - type: bind
- source: ./common/config/shared/trust-certificates
- target: /harbor_cust_cert
+ - /data/harbor/registry:/storage:z
+ - /data/harbor/common/config/registry/:/etc/registry/:z
+ - /data/harbor/secret/registry/root.crt:/etc/registry/root.crt
+ - /data/harbor/common/config/shared/trust-certificates:/harbor_cust_cert
networks:
- harbor
- dns_search: .
depends_on:
- log
logging:
driver: "syslog"
options:
- syslog-address: "tcp://127.0.0.1:1514"
+ syslog-address: "tcp://localhost:1514"
tag: "registry"
registryctl:
- image: goharbor/harbor-registryctl:v2.2.2
+ image: goharbor/harbor-registryctl:v2.14.1
container_name: registryctl
env_file:
- - ./common/config/registryctl/env
+ - /data/harbor/common/config/registryctl/env
restart: always
cap_drop:
- ALL
@@ -66,26 +55,21 @@ services:
- SETGID
- SETUID
volumes:
- - /data/registry:/storage:z
- - ./common/config/registry/:/etc/registry/:z
- - type: bind
- source: ./common/config/registryctl/config.yml
- target: /etc/registryctl/config.yml
- - type: bind
- source: ./common/config/shared/trust-certificates
- target: /harbor_cust_cert
+ - /data/harbor/registry:/storage:z
+ - /data/harbor/common/config/registry/:/etc/registry/:z
+ - /data/harbor/common/config/registryctl/config.yml:/etc/registryctl/config.yml
+ - /data/harbor/common/config/shared/trust-certificates:/harbor_cust_cert
networks:
- harbor
- dns_search: .
depends_on:
- log
logging:
driver: "syslog"
options:
- syslog-address: "tcp://127.0.0.1:1514"
+ syslog-address: "tcp://localhost:1514"
tag: "registryctl"
postgresql:
- image: goharbor/harbor-db:v2.2.2
+ image: goharbor/harbor-db:v2.14.1
container_name: harbor-db
restart: always
cap_drop:
@@ -96,24 +80,24 @@ services:
- SETGID
- SETUID
volumes:
- - /data/database:/var/lib/postgresql/data:z
+ - /data/harbor/database:/var/lib/postgresql/data:z
networks:
harbor:
- dns_search: .
env_file:
- - ./common/config/db/env
+ - /data/harbor/common/config/db/env
depends_on:
- log
logging:
driver: "syslog"
options:
- syslog-address: "tcp://127.0.0.1:1514"
+ syslog-address: "tcp://localhost:1514"
tag: "postgresql"
+ shm_size: '1gb'
core:
- image: goharbor/harbor-core:v2.2.2
+ image: goharbor/harbor-core:v2.14.1
container_name: harbor-core
env_file:
- - ./common/config/core/env
+ - /data/harbor/common/config/core/env
restart: always
cap_drop:
- ALL
@@ -121,24 +105,15 @@ services:
- SETGID
- SETUID
volumes:
- - /data/ca_download/:/etc/core/ca/:z
- - /data/:/data/:z
- - ./common/config/core/certificates/:/etc/core/certificates/:z
- - type: bind
- source: ./common/config/core/app.conf
- target: /etc/core/app.conf
- - type: bind
- source: /data/secret/core/private_key.pem
- target: /etc/core/private_key.pem
- - type: bind
- source: /data/secret/keys/secretkey
- target: /etc/core/key
- - type: bind
- source: ./common/config/shared/trust-certificates
- target: /harbor_cust_cert
+ - /data/harbor/ca_download/:/etc/core/ca/:z
+ - /data/harbor/:/data/:z
+ - /data/harbor/common/config/core/certificates/:/etc/core/certificates/:z
+ - /data/harbor/common/config/core/app.conf:/etc/core/app.conf
+ - /data/harbor/secret/core/private_key.pem:/etc/core/private_key.pem
+ - /data/harbor/data/harbor/secret/keys/secretkey:/etc/core/key
+ - /data/harbor/common/config/shared/trust-certificates:/harbor_cust_cert
networks:
harbor:
- dns_search: .
depends_on:
- log
- registry
@@ -147,10 +122,10 @@ services:
logging:
driver: "syslog"
options:
- syslog-address: "tcp://127.0.0.1:1514"
+ syslog-address: "tcp://localhost:1514"
tag: "core"
portal:
- image: goharbor/harbor-portal:v2.2.2
+ image: goharbor/harbor-portal:v2.14.1
container_name: harbor-portal
restart: always
cap_drop:
@@ -161,25 +136,22 @@ services:
- SETUID
- NET_BIND_SERVICE
volumes:
- - type: bind
- source: ./common/config/portal/nginx.conf
- target: /etc/nginx/nginx.conf
+ - /data/harbor/common/config/portal/nginx.conf:/etc/nginx/nginx.conf
networks:
- harbor
- dns_search: .
depends_on:
- log
logging:
driver: "syslog"
options:
- syslog-address: "tcp://127.0.0.1:1514"
+ syslog-address: "tcp://localhost:1514"
tag: "portal"
jobservice:
- image: goharbor/harbor-jobservice:v2.2.2
+ image: goharbor/harbor-jobservice:v2.14.1
container_name: harbor-jobservice
env_file:
- - ./common/config/jobservice/env
+ - /data/harbor/common/config/jobservice/env
restart: always
cap_drop:
- ALL
@@ -188,25 +160,20 @@ services:
- SETGID
- SETUID
volumes:
- - /data/job_logs:/var/log/jobs:z
- - type: bind
- source: ./common/config/jobservice/config.yml
- target: /etc/jobservice/config.yml
- - type: bind
- source: ./common/config/shared/trust-certificates
- target: /harbor_cust_cert
+ - /data/harbor/job_logs:/var/log/jobs:z
+ - /data/harbor/common/config/jobservice/config.yml:/etc/jobservice/config.yml
+ - /data/harbor/common/config/shared/trust-certificates:/harbor_cust_cert
networks:
- harbor
- dns_search: .
depends_on:
- core
logging:
driver: "syslog"
options:
- syslog-address: "tcp://127.0.0.1:1514"
+ syslog-address: "tcp://localhost:1514"
tag: "jobservice"
redis:
- image: goharbor/redis-photon:v2.2.2
+ image: goharbor/redis-photon:v2.14.1
container_name: redis
restart: always
cap_drop:
@@ -216,19 +183,18 @@ services:
- SETGID
- SETUID
volumes:
- - /data/redis:/var/lib/redis
+ - /data/harbor/redis:/var/lib/redis
networks:
harbor:
- dns_search: .
depends_on:
- log
logging:
driver: "syslog"
options:
- syslog-address: "tcp://127.0.0.1:1514"
+ syslog-address: "tcp://localhost:1514"
tag: "redis"
proxy:
- image: goharbor/nginx-photon:v2.2.2
+ image: goharbor/nginx-photon:v2.14.1
container_name: nginx
restart: always
cap_drop:
@@ -239,14 +205,10 @@ services:
- SETUID
- NET_BIND_SERVICE
volumes:
- - ./common/config/nginx:/etc/nginx:z
- - /data/secret/cert:/etc/cert:z
- - type: bind
- source: ./common/config/shared/trust-certificates
- target: /harbor_cust_cert
+ - /data/harbor/common/config/nginx:/etc/nginx:z
+ - /data/harbor/common/config/shared/trust-certificates:/harbor_cust_cert
networks:
- harbor
- dns_search: .
ports:
- 8080:8080
- 8443:8443
@@ -258,7 +220,7 @@ services:
logging:
driver: "syslog"
options:
- syslog-address: "tcp://127.0.0.1:1514"
+ syslog-address: "tcp://localhost:1514"
tag: "proxy"
networks:
harbor:
diff --git a/harbor/readme.md b/harbor/readme.md
new file mode 100644
index 0000000..dac4be3
--- /dev/null
+++ b/harbor/readme.md
@@ -0,0 +1,57 @@
+## 部署 Harbor
+
+[harbor github](https://github.com/goharbor/harbor)
+
+[Harbor Docs](https://goharbor.io/docs/)
+
+### 以下是harbor的各个组件
+
+| 组件名称 | 核心作用 | 关键功能说明 | 端口/依赖 |
+| --- | --- | --- | --- |
+| harbor-core | Harbor 核心服务 | 提供 API 接口、用户权限管理、项目配置、Webhook 等核心逻辑 | 依赖 harbor-db 和 redis |
+| harbor-db | 元数据存储数据库 | 存储用户信息、项目数据、镜像元数据、复制策略等(PostgreSQL) | 健康状态表明数据服务正常 |
+| harbor-jobservice | 异步任务处理器 | 执行镜像复制、垃圾回收、漏洞扫描等后台任务 | 通过 redis 协调任务队列 |
+| harbor-log | 集中式日志收集器 | 聚合所有组件日志,提供统一查询接口 | 127.0.0.1:1514→10514/tcp |
+| harbor-portal | Web 用户界面 (UI) | 提供图形化管理界面(基于 Vue.js),操作镜像、项目、用户等 | 由 nginx 代理访问 |
+| nginx | 反向代理和入口网关 | 接收外部请求,路由到后端服务(核心/UI/注册表) | 对外端口:
HTTP: 14080
HTTPS: 14443 |
+| redis | 缓存与会话存储 | 缓存数据库查询、存储用户会话、管理任务队列 | 加速系统性能 |
+| registry | Docker 镜像存储服务 | 实际存储镜像文件(Blobs)和清单(Manifests) | 依赖存储卷持久化数据 |
+| registryctl | 注册表控制服务 | 管理 registry 组件(触发垃圾回收、配置更新等操作) | 与 registry 交互 |
+
+### harbor安装步骤
+
+1. 到github找到最新版的安装包:https://github.com/goharbor/harbor/releases 下载最新版本的harbor-offline-installer-(版本号).tgz安装包。
+
+解压安装包:
+```
+tar xvf harbor-offline-installer-v2.14.1.tgz
+```
+
+2. 进入harbor安装目录,修改配置文件
+```
+cd ./harbor
+#复制 harbor的配置文件并改名harbor.yml
+cp -ar harbor.yml.tmpl harbor.yml
+#修改文件
+vim harbor.yml
+```
+3. 完成并保存配置文件后执行预处理
+```
+# 预处理
+./prepare
+
+```
+4. 修改生成的docker-compose.yml文件,修改相关配置
+5. 执行安装
+```
+# 安装
+docker compose -p harbor -f ./docker-compose.yml pull
+docker compose -p harbor -f ./docker-compose.yml up -d
+```
+
+```
+root@hkthyear-8015912443:/data/caddy/certificate/certificates/acme-v02.api.letsencrypt.org-directory/hub.6t7.net# lsd
+ hub.6t7.net.crt hub.6t7.net.json hub.6t7.net.key
+root@hkthyear-8015912443:/data/caddy/certificate/certificates/acme-v02.api.letsencrypt.org-directory/hub.6t7.net#
+harbor#1977
+```
\ No newline at end of file