Sign inSign up

lastthree/doublestack-shop

By lastthree

Updated 21 days ago

一款直接部署 Docker 应用的商店容器

Image
Developer tools
1

8.7K

lastthree/doublestack-shop repository overview

Double Stack Store (双栈商店)

一个基于 Docker 的容器管理平台,支持一键部署 Compose 文件、容器管理、备份恢复、仓库管理等实用功能。

功能特性

  • 📦 容器管理 - 实时查看容器状态,支持启动/停止/重启/删除容器,查看容器日志;配置全局域名/IP后,容器名称可点击跳转至访问地址
  • 🚀 一键部署 - 通过 Docker Compose 快速部署应用,支持实时日志输出、时间戳与镜像拉取进度条;慢网环境下使用空闲超时避免部署中断;同时兼容 Docker Compose v1 与 v2
  • 🤖 AI 对话 - 独立页面对接 OpenAI 兼容接口,支持连续聊天、完整上下文和完整回复,聊天记录自动保存并可切换历史对话,可复制单条消息及代码;不会执行命令、修改文件或部署
  • 📚 仓库管理 - 支持 Compose 与 Scripts 两种 Git 仓库:Compose 扫描 YML 用于部署,Scripts 扫描 .sh 并持久化保存;支持确认后删除仓库记录,保留本地文件和已部署容器
  • 💾 备份恢复 - 容器完整备份(镜像+配置+数据卷),支持一键恢复和文件上传恢复;备份文件时间戳使用 UTC+8 时区
  • 🖼️ 镜像管理 - 查看、拉取、删除本地镜像,支持导入 Docker .tar 镜像包和导出单个镜像,检测 Docker Hub 最新版本
  • 📊 仪表盘 - 实时统计容器数量、备份状态等关键数据;展示宿主机系统信息(CPU、内存、磁盘、系统版本、网络);展示 Docker/Docker Compose 版本信息;测试 GitHub 和 Docker Hub 连接性
  • 🔐 用户管理 - 支持多用户注册登录、bcrypt 密码存储、可撤销会话与登录失败限流
  • 📝 操作日志 - 完整记录系统操作日志,支持按类型筛选查看
  • ⚙️ 系统设置 - 代理配置、全局域名/IP配置、Docker加速源等系统参数管理
  • 💡 容器推荐 - 推荐热门容器应用,一键部署,配套教程链接
  • 💻 终端访问 - 内置 Web 终端,支持连接宿主主机 Linux 终端

系统要求

  • Docker 20.10+
  • Docker Compose 2.0+
  • 浏览器(Chrome、Firefox、Edge 等现代浏览器)

快速开始

方式一:一键部署脚本(推荐一)

复制命令即可一键部署

if [ -f /usr/bin/curl ]; then curl -sSO https://raw.githubusercontent.com/Double-Stack-Workshop/Compose-File/main/Scripts/install.sh; else wget -O install.sh https://raw.githubusercontent.com/Double-Stack-Workshop/Compose-File/main/Scripts/install.sh; fi && bash install.sh && rm -f install.sh
方式二:Compose 部署(推荐二)
# 1. 克隆项目
git clone https://github.com/Double-Stack-Workshop/doublestack-shop.git
cd doublestack-shop

# 2. 启动服务(从 Docker Hub 拉取镜像)
docker compose up -d

# 3. 访问应用
# 打开浏览器访问:http://localhost:8000
方式三:Docker Run 部署
# 创建必要目录
mkdir -p ./backend/data ./backend/repos ./backend/scripts ./backend/backup ./backend/logs ./backend/image

# 启动容器
docker run -d \
  --name doublestack-shop \
  -p 8000:8001 \
  -v ./backend/data:/app/data \
  -v ./backend/repos:/app/repos \
  -v ./backend/scripts:/app/scripts \
  -v ./backend/backup:/app/backup \
  -v ./backend/logs:/app/logs \
  -v ./backend/image:/app/image \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /:/host:rw \
  -v /etc/docker:/etc/docker:rw \
  -v /etc/passwd:/etc/passwd:ro \
  -v /etc/group:/etc/group:ro \
  -e PYTHONUNBUFFERED=1 \
  --privileged \
  --restart unless-stopped \
  lastthree/doublestack-shop:v2.1.3

# 访问应用
# 打开浏览器访问:http://localhost:8000
卷映射说明

目录映射用于在宿主机持久化应用数据。即使不映射这些目录,应用也可以启动;但容器被删除或重建后,未映射目录中的数据会丢失。

宿主机映射容器目录用途不映射的影响
./backend/data/app/data用户、登录会话、AI 聊天记录、系统设置、数据库及仓库 Git 缓存所有应用数据会随容器重建丢失
./backend/repos/app/repos已同步 Compose 仓库文件,以及在容器部署页创建的 repos/local 自定义 YML部署文件会丢失
./backend/scripts/app/scripts更新与 Compose 升级脚本,以及 Scripts 仓库同步的 .sh 脚本宿主机无法直接使用生成或同步的脚本
./backend/backup/app/backup容器备份文件备份文件会丢失
./backend/logs/app/logs操作日志实体文件日志文件会丢失
./backend/image/app/image导入及导出的 Docker .tar 镜像包镜像包会丢失
特殊映射

以下是 Docker 管理和宿主机功能所需的特殊映射:

映射用途可否省略
/var/run/docker.sock:/var/run/docker.sock管理宿主机 Docker 容器、镜像与网络不可省略;省略后 Docker 管理功能不可用
/:/host:rw/etc/docker:/etc/docker:rw获取宿主机信息、更新 Docker 配置及重启 Docker可省略,但宿主机操作和 Docker 加速源功能受限
/etc/passwd:/etc/passwd:ro/etc/group:/etc/group:ro识别宿主机用户与组权限可省略,但终端与权限识别可能受限
默认账号
  • 默认管理员账号:admin
  • 初始管理员密码:运行日志查看
  • 首次登录必须修改管理员密码

项目结构

doublestack-shop/
├── Dockerfile              # Docker 镜像构建文件
├── docker-compose.yml      # Docker Compose 运行配置(直接拉取发布镜像)
├── backend/
│   ├── app/
│   │   ├── main.py        # FastAPI 应用入口
│   │   ├── routes.py      # API 路由
│   │   ├── services.py    # 业务逻辑
│   │   ├── database.py    # 数据库操作
│   │   ├── version.py     # 版本信息
│   │   ├── logger.py      # 日志服务
│   │   ├── schemas.py     # 数据模型
│   │   └── terminal.py    # 终端服务
│   ├── data/              # 运行时数据与用户配置
│   ├── repos.json         # 内置仓库初始化配置
│   ├── recommend.json     # 内置推荐容器初始化配置
│   └── requirements.txt   # Python 依赖
└── frontend/
    └── src/
        ├── images/        # 图片资源
        ├── components/    # 公共组件
        │   ├── sidebar/   # 侧边栏组件
        │   └── common/    # 页面认证、请求与用户信息公共逻辑
        └── pages/         # 页面组件
            ├── login/     # 登录页面
            ├── register/  # 注册页面
            ├── forgot/    # 找回密码
            ├── dashboard/ # 仪表盘
            ├── container/ # 容器管理
            ├── image/     # 镜像管理
            ├── deploy/    # 应用部署
            ├── backup/    # 备份恢复
            ├── logs/      # 操作日志
            ├── terminal/  # 终端管理
            ├── settings/  # 系统设置
            ├── recommend/ # 推荐应用
            └── repository/# 仓库管理

技术栈

  • 后端: FastAPI + SQLite + Docker SDK
  • 前端: 原生 HTML/CSS/JavaScript
  • 容器: Docker + Docker Compose

版本信息

版本日期更新内容
v2.1.32026-09-01新增“本地仓库”,Compose 文件持久化到 repos/local,支持新建、重命名、编辑和直接部署;修复连续创建文件后列表丢失、仓库选择状态及部署卡片显示问题;新增独立的 OpenAI 兼容接口配置与 AI 对话页面,支持完整上下文、全量回复、思考过程折叠、代码块复制、聊天记录持久化和历史对话切换;新增全局悬浮 AI 对话窗口,并统一桌面端、侧边栏和仪表盘入口;从系统设置中拆分独立用户管理页面,管理员可创建用户、修改自身或普通用户的用户名和密码、删除普通用户;支持头像上传及默认公共头像,新增最后登录时间记录;仓库管理支持删除仓库记录;系统设置配置卡片支持默认收起和按需展开;修复 IPv4/IPv6 导致端口映射重复的问题,支持多端口展示;配置全局域名或 IP 后,为每个 TCP 映射生成独立访问入口。
v2.1.22026-08-30初始 admin 账号首次登录强制修改密码,改密前限制业务 API、终端及注册与密码重置授权;改密后撤销全部旧会话并要求重新登录;兼容旧版账号迁移,已有 admin 管理员升级后需更新一次密码;管理员密码校验实时读取数据库,避免旧密码缓存继续生效;修复忘记密码页面误报成功。
v2.1.12026-08-29新增局域网 Apprise API 通知:支持 /notify 与完整通知端点、测试通知,并可选择部署、仓库、镜像、备份和 Docker 重启通知;仓库与推荐容器仅以 JSON 为唯一初始化来源,移除旧数据库及初始化入口;首次启动自动将镜像内置 JSON 写入空的运行时数据目录;仓库同步时间改为记录并持久化真实 UTC+8 完成时间,重启后仍可正确显示;统一认证页面 API 配置。
v2.1.02026-08-28仓库管理支持 Compose 与 Scripts 两种仓库类型;Compose 仓库仅将所选 local_path 导出到 repos 映射目录,Scripts 仓库仅将选中的 .sh 脚本导出到 scripts 映射目录,Git 缓存保存在 data 中;Scripts 不会出现在容器部署来源中。
v2.0.92026-08-27检查更新后自动反推 scripts 挂载对应的宿主机绝对路径;提示用户先执行 sudo -i,再提供唯一的一行更新命令;修复更新脚本生成接口未返回脚本路径的问题;镜像管理新增 Docker .tar 包导入与镜像导出。
v2.0.82026-08-27完成会话鉴权、bcrypt 密码迁移、管理员 API 与 WebSocket 权限校验;统一数据库事务与前端公共认证/请求逻辑;部署页改用 YAML 解析器并拆分部署流和网络模块;Docker 加速源增加重启恢复检测与回滚;新增 Ruff、ESLint、CI 和回归测试;新增前端缓存清理;修复登录 422、管理员添加用户、仪表盘快捷跳转、部署页仓库筛选/加载、Compose 文件宿主机映射路径解析及普通用户仪表盘权限显示问题。
v2.0.72026-08-22Docker 加速源保存后支持自动重启宿主机 Docker 服务;修复部署页高级模式无法保存和部署的问题;修复卷挂载路径包含连字符时显示被截断的问题;
v2.0.62026-08-20仪表盘逻辑及UI优化;Docker Compose 自动生成脚本,并提供运行指令;容器部署页面新增「网络管理」;Compose 部署新增 name: doublestack-shop 统一 Compose 项目名;容器日志获取修复并支持倒序显示;
v2.0.52026-08-20仓库策略更新;仓库管理新增「未同步」状态与筛选;修复仓库UI问题;设置页面新增 GitHub 项目地址;
v2.0.42026-08-19容器部署日志改为实时推送,新增时间戳与进度条;部署超时改为空闲超时,解决慢网环境下误判失败;
v2.0.32026-07-06优化代理配置逻辑;优化默认仓库初始化,服务启动不再阻塞;优化仓库拉取可靠性;优化UI界面;
v2.0.22026-06-28修复备份文件时间戳时区问题(统一使用UTC+8);新增默认仓库配置(飞牛容器仓库、绿联新系统容器仓库、绿联旧系统容器仓库、极空间容器仓库);修复多仓库文件列表重复问题;新增全局域名/IP配置功能(设置界面配置,容器名称可点击跳转);新增仪表盘宿主机系统信息展示(CPU使用率、内存使用、磁盘空间、系统版本、网络信息);新增仪表盘 Docker 环境信息展示(Docker/Docker Compose 版本);修复多个界面样式和API错误问题;
v2.0.12026-06-28新增 Docker 容器备份功能:修复容器备份恢复功能:修复数据卷打包路径映射问题;修复恢复时数据卷写入失败问题;备份前自动停止容器确保数据一致性;恢复前清空旧数据确保纯净恢复;
v2.0.02026-06-27新增 Docker 加速源管理功能(支持增删改查、拖拽排序);统一操作日志类别中文显示;优化设置页面功能;
v1.0 版本历史更新内容
版本日期更新内容
v1.0.192026-06-07修复数据库问题;修复项目时区问题;新增更多日志记录
v1.0.182026-06-07新增操作日志详情功能:部署成功日志支持查看详情,展示完整的镜像拉取、容器启动等详细日志;优化部署日志记录,修复日志类型错误;修复日志显示顺序问题
v1.0.172026-06-07修复UI一致性问题:优化区域布局;修复容器详情运行时间、端口映射和创建时间显示问题;修复运行中容器无法打开详情弹窗的问题
v1.0.162026-05-12新增容器推荐页面:展示常用容器模板,支持一键跳转到部署页面和查看使用教程
v1.0.152026-05-12修复 f-string 中 awk $1 $2 变量转义问题,解决脚本语法错误
v1.0.142026-05-12修复更新脚本端口解析逻辑,使用 awk/sed 替代 cut 避免分隔符错误;修复旧镜像清理使用正确的 IMAGE_NAME 变量
v1.0.132026-05-12新增容器代理配置功能:支持配置 HTTP/HTTPS 代理,部署容器时自动应用代理环境变量
v1.0.122026-05-12新增仪表盘连接性模块:测试 GitHub 和 Docker Hub 的网络连通性,显示连接状态和延迟时间
v1.0.112026-05-11新增镜像管理功能:支持删除本地镜像、支持从DockerHub搜索并拉取镜像、支持通过镜像名直接拉取;优化侧边栏菜单顺序
v1.0.102026-05-11新增自动更新脚本功能:检测到新版本时自动生成更新脚本;更新脚本支持通过Docker Hub拉取最新镜像;自动获取当前容器配置(网络、端口、挂载目录);支持删除旧容器和清理旧镜像
v1.0.92026-05-11新增终端功能:支持连接宿主主机Linux终端;修复密码生成规则;统一所有页面侧边栏组件;修复终端页面布局一致性问题;修复终端横向滚动问题
v1.0.82026-05-11修复注册页面API路径问题,统一登录/注册/忘记密码页面样式
v1.0.72026-05-09问题修复及UI优化
v1.0.02026-05-09初始版本

许可证

MIT License

联系方式

Tag summary

Content type

Image

Digest

sha256:0a13b9430

Size

253 MB

Last updated

21 days ago

docker pull lastthree/doublestack-shop:v2.1.4