CI / verify (push) Canceled after 0s
- 内置 SSH 终端(/terminal):复用已保存的 SSH 密码/私钥与独立 known_hosts 校验 - 终端二次认证、会话审计(/terminal/audits)、录像审计与常用命令 - DDNS 服务商名称与自定义 IP,新增迁移 037/038/039 - CHANGELOG 与 VERSION 更新至 2.0.0
84 lines
3.9 KiB
YAML
84 lines
3.9 KiB
YAML
# 源码仓库:https://github.com/mrlee233/havline.git(main 分支)
|
||
# 固定项目名:不改的话,改了目录名/项目名后 compose 会把它当成新项目,
|
||
# havline-data 会变成新空卷(看起来像「数据丢了」)。
|
||
name: havline
|
||
|
||
# 本地项目:用源码构建镜像(镜像名随 VERSION 变,便于回滚;也便于导出 / 备份)
|
||
# 升级:docker compose up -d --build(或在部署机跑 scripts/upgrade.sh)
|
||
# 回滚:HAVLINE_VERSION=上一个版本号 docker compose up -d(镜像 tag 还在本地)
|
||
services:
|
||
havline:
|
||
build:
|
||
context: .
|
||
args:
|
||
NODE_IMAGE: ${NODE_IMAGE:-docker.m.daocloud.io/library/node:22-alpine}
|
||
GO_IMAGE: ${GO_IMAGE:-docker.m.daocloud.io/library/golang:1.23-bookworm}
|
||
RUNTIME_IMAGE: ${RUNTIME_IMAGE:-docker.m.daocloud.io/library/debian:bookworm-slim}
|
||
UPDATER_IMAGE: ${UPDATER_IMAGE:-docker.m.daocloud.io/library/docker:27-cli}
|
||
GOPROXY: ${GOPROXY:-https://goproxy.cn,direct}
|
||
image: havline:${HAVLINE_VERSION:-local}
|
||
# 本地源码部署直接构建,跳过无意义的 Docker Hub 拉取和超时警告。
|
||
pull_policy: build
|
||
container_name: havline
|
||
restart: unless-stopped
|
||
depends_on:
|
||
- updater
|
||
ports:
|
||
- "6893:6893"
|
||
- "18080:80"
|
||
- "9443:443"
|
||
volumes:
|
||
# 数据目录:默认用命名卷 havline-data(由 Docker 管理,位置随 Docker 数据根)。
|
||
# 想落到指定目录就在同层 .env 里设 HAVLINE_DATA_PATH=/vol1/docker/havline-data ——
|
||
# 以 / 或 . 开头的写法会被 compose 当成 bind mount,其余字符串仍是命名卷。
|
||
- ${HAVLINE_DATA_PATH:-havline-data}:/data
|
||
- havline-updater-sock:/run/havline-updater
|
||
environment:
|
||
HAVLINE_DATA_DIR: /data
|
||
HAVLINE_LISTEN: :6893
|
||
HAVLINE_UPDATER_SOCKET: /run/havline-updater/updater.sock
|
||
# 主程序首次启动时生成共享 Token;旧部署仍可用环境变量覆盖
|
||
HAVLINE_UPDATER_TOKEN: ${HAVLINE_UPDATER_TOKEN:-}
|
||
HAVLINE_UPDATER_TOKEN_FILE: /run/havline-updater/updater.token
|
||
# 留空即自动:应用会在数据目录里生成并持久化 <DataDir>/session_secret(0600)
|
||
# 想自己指定就设这个变量;注意它同时是凭据加密密钥,已有数据后不要随意更换
|
||
HAVLINE_SESSION_SECRET: ${HAVLINE_SESSION_SECRET:-}
|
||
# 时区:通知消息时间按此显示(默认东八区)
|
||
TZ: ${TZ:-Asia/Shanghai}
|
||
|
||
# 受限升级 sidecar:只有它持有 Docker Socket,主程序通过共享 Unix Socket 触发
|
||
updater:
|
||
build:
|
||
context: .
|
||
target: updater
|
||
args:
|
||
GO_IMAGE: ${GO_IMAGE:-docker.m.daocloud.io/library/golang:1.23-bookworm}
|
||
UPDATER_IMAGE: ${UPDATER_IMAGE:-docker.m.daocloud.io/library/docker:27-cli}
|
||
GOPROXY: ${GOPROXY:-https://goproxy.cn,direct}
|
||
image: havline-updater:${HAVLINE_VERSION:-local}
|
||
pull_policy: build
|
||
container_name: havline-updater
|
||
restart: unless-stopped
|
||
volumes:
|
||
- ${DOCKER_SOCK:-/var/run/docker.sock}:/var/run/docker.sock
|
||
- ${HAVLINE_UPDATE_HOST_DIR:-.}:/workspace
|
||
- havline-updater-sock:/run/havline-updater
|
||
environment:
|
||
HAVLINE_UPDATER_SOCKET: /run/havline-updater/updater.sock
|
||
HAVLINE_UPDATER_TOKEN: ${HAVLINE_UPDATER_TOKEN:-}
|
||
HAVLINE_UPDATER_TOKEN_FILE: /run/havline-updater/updater.token
|
||
HAVLINE_UPDATE_PROJECT_DIR: /workspace
|
||
HAVLINE_UPDATE_COMPOSE_FILE: docker-compose.yml
|
||
HAVLINE_UPDATE_SERVICE: havline
|
||
HAVLINE_UPDATE_MODE: local
|
||
HAVLINE_UPDATE_APP_URL: http://havline:6893
|
||
HAVLINE_UPDATE_HOST_DIR: ${HAVLINE_UPDATE_HOST_DIR:-}
|
||
HAVLINE_UPDATE_PROJECT_NAME: ${HAVLINE_UPDATE_PROJECT_NAME:-havline}
|
||
HAVLINE_UPDATE_SELF_IMAGE: havline-updater:${HAVLINE_VERSION:-local}
|
||
HAVLINE_UPDATE_DOCKER_SOCK: ${DOCKER_SOCK:-/var/run/docker.sock}
|
||
TZ: ${TZ:-Asia/Shanghai}
|
||
|
||
volumes:
|
||
havline-data:
|
||
havline-updater-sock:
|