V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Songxwn
V2EX  ›  分享发现

部署团队服务导航网站 Team-nav

  •  1
     
  •   Songxwn · 2023-04-18 12:30:43 +08:00 · 2204 次点击
    这是一个创建于 617 天前的主题,其中的信息可能已经有所发展或是发生改变。

    欢迎关注

    个人博客: https://songxwn.com/team_nav

    知乎: https://zhuanlan.zhihu.com/p/622807254

    简介

    前后端完整的网址导航服务,可以用于公司内部内网使用,提供多种的卡片图标生成方式,能将上传的原型压缩包自动生成可访问的地址,支持私密卡片,发布倒计时等功能。

    用于在公司内网部署使用,可在线修改上传、可拖拽排序等。

    项目地址:https://github.com/tuituidan/team-nav (推推蛋)

    要求 Java 版本为 1.8.0

    功能介绍

    • 网址导航前端展示+搜索功能,首页图
    • 网址导航后台基本功能:分类和卡片的增删改查,后台-分类管理图 后台-卡片列表图 后台-卡片编辑图
    • 分类和卡片支持拖拽调整顺序,不用专门维护排序字段。
    • 支持添加秘密卡片分类,该分类下的卡片需要登录才能看见,不开启登录功能则默认不显示。
    • 暂时不需要的分类支持移除功能,移除后分类列表页面不可见,可从历史分类中还原回来,后台-历史分类图
    • 卡片图标支持四种方式
      • 文本图标,输入少量文字作为图标,并可以为其选择背景色。 后台-卡片编辑图
      • 根据填写的链接自动获取该链接的获取favicon.ico图标。
      • 手动上传图片作为图标。
      • 可配置默认常用的一些图标,直接选择(搜索按图标文件名搜索),卡片图标选择图
    • 三种卡片类型说明
      • 普通类型:标题,内容,图标为必填,链接非必填,没有链接只是作为少量信息展示,点击卡片不会跳转页面。
      • 原型类型:标题,内容,图标,原型文件为必填,原型文件上传后会自动生成原型展示的链接,点击卡片可跳转到该地址。
      • 二维码类型:标题,内容,图标,链接均为必填,鼠标滑到卡片上会显示链接的二维码,可用手机进行扫描,方便进行移动端网址显示,二维码展示图
    • 原型可通过配置 Nginx 访问,后台-系统设置图
    • 发布倒计时功能,在首页对项目发布截止时间进行提醒,在系统设置中进行开启和关闭,同时有多个进行中的发布数据时,会定时切换,切换时间也在系统设置中设置。 首页-发布倒计时 后台-发布倒计时

    效果图

    部署

    ZIP 包部署

    系统:Rocky Linux 8 (关闭 SE Linux 关闭防火墙)

    dnf install vim wget java-1.8.0-openjdk  -y
    
    # 安装 JDK 8
    
    cd /opt/
    
    wget https://github.com/tuituidan/team-nav/releases/download/v1.0.9/team-nav.tar.gz
    
    # 下载,也可以手动下载,上传到 opt 目录下
    
    tar -zxvf team-nav.tar.gz 
    
    # 解压
    
    tree /opt
    .
    ├── team-nav
    │   ├── bin
    │   │   ├── restart.sh
    │   │   ├── start.sh
    │   │   ├── status.sh
    │   │   └── stop.sh
    │   ├── config
    │   │   └── application.yml
    │   ├── docs
    │   ├── logs
    │   ├── README.md
    │   ├── readme.txt
    │   └── team-nav.jar
    └── team-nav.tar.gz
    
    # 目录结构如上
    
    chmod +x /opt/team-nav/bin/* 
    
    # 给予脚本权限
    
    /opt/team-nav/bin/start.sh
    
    # 启动
    
    /opt/team-nav/bin/status.sh 
    team-nav 服务正在运行中 (PID: 140532). [is running ...]
    
    # 查看是否运行
    
    /opt/team-nav/bin/stop.sh
    
    # 停止运行
    
    

    默认端口为 8080 ,通过 8080 端口访问服务,修改端口可以进入 /opt/team-nav/config/application.yml 配置。

    Docker 部署

    Docker 安装参考:https://yeasy.gitbook.io/docker_practice/install/centos

    mkdir -p /opt/team-nav/logs
    mkdir /opt/team-nav/database
    mkdir /opt/team-nav/ext-resources
    mkdir /opt/team-nav/config
    
    

    创建日志、数据库、图片、配置文件夹。

    docker run -d -p 8080:8080 \
     -v /opt/team-nav/logs:/logs \
     -v /opt/team-nav/database:/database \
     -v /opt/team-nav/ext-resources:/ext-resources \
     -v /opt/team-nav/config:/config \
     -e nav-name="团队内部导航服务" \
     --restart always \
     --name team-nav \
    registry.cn-chengdu.aliyuncs.com/tuituidan/team-nav:1.0.9
    
    

    映射容器 8080 端口到宿主机 8080 端口,通过访问主机 http://127.0.0.1:8080 。

    映射上述步骤创建的文件夹

    配置网站名字

    配置为自动启动

    配置容器名字

    管理

    登录

    路径:http://127.0.0.1:8080/login

    默认账号:admin

    默认密码:123456

    允许修改密码

    vim /opt/team-nav/config/application.yml
    
    # 是否开启页面上进行密码修改,用户只有一个,请谨慎开启
    change-password:
      enable: true
    
    
    /opt/team-nav/bin/status.sh 
    
    # ZIP 包部署执行重启脚本
    
    docker  restart team-nav
    
    # docker 部署重启容器生效
    
    

    Nginx 反向代理域名

    vim /etc/nginx/conf.d/team.conf
    
    
    server {
            listen 80;
            listen [::]:80;
    
            server_name team.baidu.com;
    
    
            # reverse proxy
            location / {
                    proxy_pass http://127.0.0.1:8082/;
                    proxy_http_version      1.1;
            proxy_cache_bypass      $http_upgrade;
            proxy_set_header Upgrade                        $http_upgrade;
            proxy_set_header Connection             "upgrade";
            proxy_set_header Host                           $host;
            proxy_set_header X-Real-IP                      $remote_addr;
            proxy_set_header X-Forwarded-For        $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto      $scheme;
            proxy_set_header X-Forwarded-Host       $host;
            proxy_set_header X-Forwarded-Port       $server_port;
            }
            location /ext-resources/modules {
    	             alias   /opt/team-nav/ext-resources/modules;
    	             index  index.html index.htm;
             }
    }
    
    

    一般来说只修改域名即可

    10 条回复    2023-04-20 13:37:08 +08:00
    Logtous
        1
    Logtous  
       2023-04-18 14:14:30 +08:00
    👍 已 star 可以替换在用的 lenav 了
    Songxwn
        2
    Songxwn  
    OP
       2023-04-18 14:36:06 +08:00
    @Logtous 相对于 lenav 更易用吧
    Logtous
        3
    Logtous  
       2023-04-18 14:46:57 +08:00
    @Songxwn 嗯 你这个好用太多 有没有考虑过支持一下 ldap 用域账号登录 Team-nav 后 有支持 ldap 的卡片点击后直接登录
    Songxwn
        4
    Songxwn  
    OP
       2023-04-18 15:03:46 +08:00
    @Logtous 不是我的项目哦,可以去 github 提一下。
    Logtous
        5
    Logtous  
       2023-04-18 15:23:00 +08:00
    @Songxwn 之前有人提过 作者已经回复过了: https://github.com/tuituidan/team-nav/issues/4#issuecomment-1297031272 谢谢哈
    daxin945
        6
    daxin945  
       2023-04-19 09:16:12 +08:00
    看着很不错啊 star !
    muchenlou
        7
    muchenlou  
       2023-04-19 16:23:51 +08:00
    先 start
    Kmmoonlight
        8
    Kmmoonlight  
       2023-04-19 16:29:48 +08:00
    东西还行,就是 UI 有点丑
    Songxwn
        9
    Songxwn  
    OP
       2023-04-19 17:59:49 +08:00
    @Kmmoonlight 建议给项目提 PR
    Kmmoonlight
        10
    Kmmoonlight  
       2023-04-20 13:37:08 +08:00
    @Songxwn #9 那当我没说
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5730 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 06:09 · PVG 14:09 · LAX 22:09 · JFK 01:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.