简洁优雅的Docker网站导航

简洁优雅的Docker网站导航

# 中链导航 ## 项目概述 中链导航是一个基于 Go 语言开发的现代化轻量级网址导航系统,专为个人和团队打造便捷的网址收藏与分享平台。项目采用单二进制可执行文件部署,嵌入所有静态资源与模板,无需额外的 Web 服务器或 PHP 运行环境,部署极其简单。 ## 核心...

中链导航

项目概述

中链导航是一个基于 Go 语言开发的现代化轻量级网址导航系统,专为个人和团队打造便捷的网址收藏与分享平台。项目采用单二进制可执行文件部署,嵌入所有静态资源与模板,无需额外的 Web 服务器或 PHP 运行环境,部署极其简单。

核心特性

截图


🎯 核心功能

  • 多级分类管理:支持二级分类结构,灵活组织网址
  • 多线路链接支持:每个链接可配置主地址、备用地址、手动选择备用线路
  • 标签分组:支持密码保护的标签组,方便分享特定内容集合
  • 公开收录申请:访客可提交网址申请,管理员后台审核后自动入库
  • 一键抓取元信息:添加链接时自动抓取网页标题和描述,减少手动输入
  • 点击统计:记录每个链接的访问次数,支持热门链接排行
  • 私密模式:可配置全站隐私模式,未登录用户无法访问首页

🌐 内外网智能切换(特色功能)

  • 服务器端IP检测:根据访问者IP自动判断内外网,内网用户经外网域名访问时自动302跳转到内网地址
  • 客户端连通性探测:针对 Cloudflare 隧道等代理场景,前端通过 fetch 探测内网地址连通性,可达则自动切换到内网访问
  • 支持Cloudflare隧道部署:完美解决隧道代理后真实IP被隐藏的问题
  • 用户逃生舱:支持 ?nojump=1 参数跳过自动跳转并写入Cookie,30天内不再自动跳转

📊 数据库与备份

  • SQLite 嵌入式数据库:单文件存储,无需额外数据库服务
  • WAL 日志模式:保证读写性能与数据一致性
  • 在线备份恢复:后台一键导出完整数据库快照(使用 VACUUM INTO 保证一致性),支持上传备份热恢复
  • 自动回滚机制:恢复失败自动回滚到原数据库,保证服务可用性

🔒 安全特性

  • 自定义后台路径:可自定义后台访问路径(2‑32位字符),避免被爬虫扫描
  • 4位图形验证码:登录需要验证码,SVG 格式,防暴力破解,验证码一次性消费
  • bcrypt 密码加密:密码存储使用 bcrypt 强哈希
  • 会话令牌轮换:用户名/密码修改后自动轮换令牌,所有现有会话立即失效
  • Cookie‑based Session:使用 Gin Session 中间件,HttpOnly 标志防 XSS
  • 登录日志记录:记录每次登录尝试的IP、时间和结果

🎨 前端设计

  • 前台(首页):使用 Tailwind CSS,现代 iOS 18 风格设计,磨砂玻璃卡片效果
  • 后台管理:使用 Layui 框架,稳定成熟的组件库,iframe 布局
  • 响应式设计:完美适配桌面端与移动端
  • 自动favicon抓取:自动抓取网站图标并本地缓存,30天过期,失败时使用首字母渐变SVG兜底
  • 过渡页跳转:支持倒计时跳转页面,显示蓝色倒计时圆环,现代设计风格
  • 链接描述单行淡出:描述文字超长时尾部渐变淡出,不使用悬浮弹窗

🚀 性能优化

  • 静态资源长缓存:/static/* 资源设置 Cache‑Control: public, max‑age=604800(7天)
  • 内置 gzip 压缩:文本类型资源(js/css/svg/html/json)自动gzip压缩,二进制资源跳过
  • 配置内存缓存:高频配置项(如后台路径)缓存到内存,减少 SQLite 查询
  • Go 原生编译:单二进制文件,启动快,内存占用低
  • 模板嵌入:所有模板和静态资源通过 go:embed 嵌入二进制,部署无需拷贝文件

🐳 部署方式

  • Docker 支持:提供官方 Dockerfile 和 docker‑compose.yml,支持 amd64/arm64 多架构
  • 环境变量配置:端口、数据目录、Session密钥通过环境变量配置
  • 非 root 用户运行:容器内使用固定 UID/GID=1000 运行,安全合规
  • 健康检查:内置 Docker 健康检查,自动监控服务状态
  • 数据卷挂载:数据库数据通过 Volume 持久化存储

技术架构

后端技术栈

  • 语言:Go 1.25
  • Web 框架:Gin 1.12
  • 数据库:SQLite (modernc.org/sqlite 纯 Go 实现,无需 CGO)
  • 会话管理:gin‑contrib/sessions (Cookie 存储)
  • 密码加密:golang.org/x/crypto/bcrypt
  • 依赖管理:Go Modules

前端技术栈

  • 管理后台:Layui 2.x + jQuery
  • 前台首页:Tailwind CSS + 原生 JavaScript
  • 模板引擎:Go html/template(服务端渲染)
  • 验证码:原生 SVG 生成,无需额外图片库

数据表结构

  • users - 管理员用户表(用户名、密码哈希、会话令牌)
  • categories - 分类表(名称、父ID、图标、权重、隐私属性)
  • links - 链接表(标题、URL、备用URL、描述、图标、分类ID、标签ID、点击数)
  • tags - 标签组表(名称、标识、访问密码、过期时间)
  • applies - 收录申请表(标题、URL、邮箱、描述、分类、状态)
  • config - 系统配置表(键值对存储)
  • login_logs - 登录日志表

配置项

配置项 说明 默认值
site_title 网站标题 中链导航
site_subtitle 网站副标题 简洁优雅的网站导航
jump_mode 跳转模式:direct直接跳转/privacy隐私跳转/transition过渡页 direct
transition_stay 过渡页停留秒数 3
smart_jump 内外网智能跳转开关 0
public_host 外网域名(如 nav.example.com) 空
intranet_url 内网访问地址(如 http://192.168.1.10:8080 ) 空
apply_switch 收录申请:0关闭/1需审核/2自动通过 1
site_privacy 全站隐私模式:1=未登录不可访问 0
admin_path 后台访问路径 admin

部署说明

Docker Compose 部署(推荐)

services:
  chinasclmnav:
    image: vipiu/chinasclmnav:latest
    container_name: chinasclmnav
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      - CHINASCLMNAV_PORT=8080
      - CHINASCLMNAV_DATA=/data
      - TZ=Asia/Shanghai
    volumes:
      - ./data:/data

首次启动默认账号:admin / admin123,登录后请立即修改密码。

项目亮点

  • 零依赖部署:单二进制文件,嵌入所有资源,下载即可运行
  • 内外网双地址支持:独创客户端 + 服务端双重探测机制,完美兼容 Cloudflare 隧道等代理场景
  • 现代化 UI 设计:前台采用 iOS 18 风格设计,磨砂玻璃卡片,圆角设计,体验优秀
  • 数据安全可靠:SQLite WAL 模式,在线备份使用 VACUUM INTO 保证一致性,恢复失败自动回滚
  • 性能优化到位:静态资源缓存 + gzip 压缩,配置内存缓存,后台菜单加载流畅不卡顿
  • 容器化友好:官方 Docker 镜像支持多架构,非 root 用户运行,健康检查完备

适用场景

  • 个人书签管理与导航主页
  • 团队内部工具网址导航
  • 同时拥有内外网访问的自托管服务导航
  • 博客 / 网站侧边导航栏
  • 公开网址分享与收录平台

最低资源要求:内存 ≥ 64MB,磁盘 ≥ 100MB


 

版权申明:
版权声明

①:本站文章均为原创,除非另有说明,否则本站内容依据CC BY-NC-SA 4.0许可证进行授权,转载请附上出处链接,谢谢。
②:本站提供的所有资源均为网上搜集,不保证能100%完整,如有涉及或侵害到您的版权请立即通知我们。
③:本站所有下载文件,仅用作学习研究使用,请下载后24小时内删除,支持正版,勿用作商业用途。
④:本站保证所提供资源的完整性,但不含授权许可、帮助文档、XML文件、PSD、后续升级等。
⑤:使用该资源需要用户有一定代码基础知识!由本站提供的资源对您的网站或计算机造成严重后果的本站概不负责。
⑥:本站资源售价只是赞助,收取费用仅维持本站的日常运营所需。
⑦:如果喜欢本站资源,欢迎捐助本站开通会员享受优惠折扣,谢谢支持!
⑧:如果网盘地址失效,请在相应资源页面下留言,我们会尽快修复下载地址。

0

评论0

请先 !

会员低至49元,开通享海量VIP资源免费下载 自助开通
显示验证码
没有账号?注册  忘记密码?