1.项目
Team-Nav 是一款开源的、前后端完整的网址导航服务,主要用于企业内部内网部署,提供丰富的管理功能和灵活的卡片展示方式,较一般的靠配置生成的网址导航服务,本系统具有更强的后台管理能力,技术上主打一个轻量级,无任何依赖服务。
1.1项目介绍
- 首页
- 最高支持三级分类的显示,可搜索,点击左侧菜单支持高亮定位右侧卡片。
- 支持设置自定义主题。
- 附件的在线查看和下载。
- 头部可显示通知公告,支持倒计时模式。
- 设置常用卡片分类,收藏个人常用网址。
- 申请提交卡片。
- 后台管理
- 仅支持管理员角色进入后台管理(管理员角色可设置多人),其他人只能通过首页的卡片申请进行卡片添加,由管理员审核后生效。
- 后台管理-分类管理
- 三级分类树的基本增删改查及排序。
- 对需要归档的分类支持移除到历史分类中,移除后不再显示到首页,可随时从历史分类中还原回来。
- 可为卡片分类分配角色,未分配角色为公共分类,对所有人公开,不管登录与否,设置角色后必须登录且有对应角色的人才能看到(人员角色设置下面在角色和用户管理模块中)。
- 后台管理-卡片管理
- 卡片基本的增删改查及排序。
- 管理员进行卡片审核。
- 三种卡片类型:
- 普通卡片:一般的内容型卡片,承载少量信息,可添加链接进行点击跳转。
- 静态网站:上传发布成静态网站的压缩包(根目录带index.html)。
- http动态卡片:通过http接口动态获取的卡片显示内容。支持GET/POST,支持添加query参数,postbody支持form-data和json,认证支持自定义键值对、Basic、Bearer Token、Jwt Bearer支持对json结果进行jsonpath语法的取值。
- sql动态卡片:通过sql动态获取的卡片显示内容支持mysql、postgresql、sqlserver三种数据库类型,sql必须只返回一列,结果默认取第一行第一列
- 支持私密信息添加,仅登录后人员才能查看。
- 卡片图标支持上传,选择自定义图片,自动获取链接
favicon.ico
、文字图标四种方式。 - 支持附件上传。
- 后台管理-角色管理
- 角色基本增删改查,管理员角色不支持修改删除。
- 可以给角色分配卡片分类,不支持给管理员分配卡片分类,因为他本来就能看到所有。
- 可以给角色分配人员。
- 后台管理-用户管理
- 用户基本增删改查及重置密码
- 后台管理-通知公告
- 通知公告的基本增删改查及排序。
- 通知内容支持富文本编辑,如果选择截止时间,会自动出现倒计时,一般用于项目发布倒计时,同时有多个通知公告时,会定时切换,切换时间在系统设置中设置。
- 后台管理-系统设置
- 基本设置,包括设置当前网站服务名、LOGO、公告切换时间等设置。
- 卡片自定义图标上传。
- 邮箱设置,用于发送随机密码给新用户
- 数据备份还原,备份是将所有资源文件及数据库数据导出为一个zip包,还原则是将zip包重新上传拆解为相应数据。
- 浏览器书签导入:在浏览器书签管理中导出书签,将得到的书签html文件上传,在预览窗口根据规则进行调整后即可导入成功。
1.2项目展示



2.相关地址
gitHub开源项目:https://github.com/tuituidan/team-nav
3.搭建环境
- 服务器:这里为了方便搭建项目使用的是莱卡云的境外香港云服务器。(国内用户连接建议使用国内的服务器(需备案域名或者IP+端口)延迟会更低)
- 莱卡云服务器促销活动性价比会更高。查看官网购买链接:https://www.lcayun.com
- 资源配置:2核2G 30G硬盘
由于国内服务器访问海外源较慢,这边为了方便演示直接使用海外服务器搭建。(最好是使用国内服务器搭建) - 服务器系统:Debian-12
- 【必需】安装Docker:安装好 Docker、Docker-compose
- 【非必需】域名一枚,可用于解析到服务器上使用域名访问

4.搭建视频
哔哩哔哩:
5.搭建方式
5.1 安装docker和docker-compose
安装教程:服务器上安装docker和docker-compose教程
5.2 创建TeamNav的docker文件
#在opt目录下创建TeamNav文件夹
mkdir /opt/TeamNav
#打开TeamNav文件
cd /opt/TeamNav
#编辑docker-compose.yml文件
vi docker-compose.yml
5.3 安装TeamNav镜像
services: # 定义服务
team-nav: # 服务名称,可自定义
image: registry.cn-chengdu.aliyuncs.com/tuituidan/team-nav:2.0.5 # 使用的镜像及版本
container_name: team-nav # 容器名称
ports:
- "8082:8080" # 映射端口:宿主机8082 -> 容器8080
environment:
- nav-name=我的导航服务 # 设置环境变量 nav-name,其值为“我的导航服务”
volumes:
- ./team-nav/logs:/logs # 将当前目录下 logs 映射到容器内的 /logs 目录
- ./team-nav/database:/database # 将当前目录下 database 映射到容器内的 /database 目录
- ./team-nav/ext-resources:/ext-resources # 将当前目录下 ext-resources 映射到容器内的 /ext-resources 目录
restart: always # 设置容器重启策略:总是重启(容器退出或系统重启后自动启动)
填完按esc键 输入 :wq 保存退出
5.4 运行TeamNav的docker镜像
我们先启动docker
# 启动docker
docker compose up -d
# 重启docker
docker compose stop
docker compose start
# 升级docker
docker compose down
docker compose pull
docker compose up -d
访问IP:8082端口就可以有界面出现了。
http://ip:8082

默认是空白页面,导航需要自己添加
我们先点击右上角的登录界面

默认用户名跟密码
admin
123456
登录后进入后台即可自行设置了

6.结尾
至此我们的项目搭建就结束了,如需源码或更详细配置,可访问 GitHub 项目地址