Harbor二次开发前端环境搭建

1 前端开发环境搭建

(1)拉取分支代码

(2)前端开发推荐使用VsCode编辑器打开项目

打开 harbor\src\portal 文件夹,该文件夹为Harbor对应的前端代码所在位置

(3)在portal文件夹下创建名为 proxy.config.json 的文件,该文件用于代理请求到后端

proxy.config.json具体内容如下,将hostname替换为对应的后端服务地址即可

{"/api/*": {"target": "https://hostname","secure": false,"changeOrigin": true,"logLevel": "debug"},"/service/*": {"target": "https://hostname","secure": false,"logLevel": "debug"},"/c/login": {"target": "https://hostname","secure": false,"logLevel": "debug"},"/c/oidc/login": {"target": "https://hostname","secure": false,"logLevel": "debug"},"/sign_in": {"target": "https://hostname","secure": false,"logLevel": "debug"},"/c/log_out": {"target": "https://hostname","secure": false,"logLevel": "debug"},"/sendEmail": {"target": "https://hostname","secure": false,"logLevel": "debug"},"/language": {"target": "https://hostname","secure": false,"logLevel": "debug"},"/reset": {"target": "https://hostname","secure": false,"logLevel": "debug"},"/c/userExists": {"target": "https://hostname","secure": false,"logLevel": "debug"},"/reset_password": {"target": "https://hostname","secure": false,"logLevel": "debug"},"/i18n/lang/*.json": {"target": "https://hostname","secure": false,"logLevel": "debug"},"/swagger.json": {"target": "https://hostname","secure": false,"logLevel": "debug"},"/swagger2.json": {"target": "https://hostname","secure": false,"logLevel": "debug"},"/chartrepo/*": {"target": "https://hostname","secure": false,"logLevel": "debug"},"/LICENSE": {"target": "https://hostname","secure": false,"logLevel": "debug"}
}

(4)打开终端,切换到portal文件夹,运行 npm install 命令安装项目依赖的npm包

(5)运行项目

npm相关依赖包安装完成后,使用npm run start命令启动项目

出现下图内容时,表示项目启动成功。

项目启动成功后,浏览器地址栏输入 https://localhost:4200 即可看到Harbor的UI界面

2 修改示例

2.1 关于官方提供的修改说明

官方在 https://goharbor.io/docs/2.6.0/build-customize-contribute/customize-look-feel/ 给出的关于修改UI界面和背景的说明。相关配置均保存在 harbor\src\portal\src\目录下的 setting.json 配置文件,这个配置文件在Harbor启动时加载。

setting.json 配置文件内容如下

{"headerBgColor": {"darkMode": "","lightMode": ""},"loginBgImg": "","loginTitle": "","product": {"name": "","logo": "","introduction": ""}
}

其中,各个字段解释如下

headerBgColor : 页眉的背景颜色,支持 HEX 或 RGB 值。例如:#004a70和rgb(210,110,235)。

darkMode:暗模式页眉的背景颜色。

lightMode:浅色模式页眉的背景颜色。

loginBgImg:登录页面显示的背景图片的名称路径,例如:‘login_bg.png’。图像文件应放在images文件夹中。建议此图片的大小应大于 800px*600px。

loginTitle:登录页面中显示的完整产品标题。

Product:包含产品的元数据/描述。

name:产品的名称。

logo:产品标志的名称路径,例如:logo.png。图像文件应放在images文件夹中。

introduction: 产品介绍,显示在About对话框中。

2.2 登录页面修改

(1)logo + title修改

将logo文件放入 harbor\src\portal\src\images 文件夹下

修改setting.json文件如下

{"headerBgColor": {"darkMode": "","lightMode": ""},"loginBgImg": "","loginTitle": "xxxxx", //登录页显示的名称"product": {"name": "xxxxx",  //首页显示的名称"logo": "logo.svg","introduction": ""}
}

如果还需调整一下logo的样式

样式文件路径

harbor\src\portal\src\app\shared\components\navigator\navigator.component.scss

修改样式如下,主要是调整元素的宽度

.headerLogo {width: xxxpx;height: xxpx;object-fit: fill;
}

同时,登录页面右下方有更多信息的跳转链接,需要去除该信息

在 harbor\src\portal\src\app\account\sign-in\sign-in.component.html 文件中,屏蔽下面代码即可

2.3 关于页面修改

关于页面主要分为 版本号、介绍、开源/第三方许可协议 这3部分内容

(1)修改或屏蔽版本号

代码路径

harbor\src\portal\src\app\shared\components\about-dialog\about-dialog.component.html

找到下面的代码片段,注释或者修改这段代码即可改动版本号相关内容

<div><span class="p5 about-version">{{'ABOUT.VERSION' | translate}} {{version}}</span>
</div>

屏蔽版本号效果如下

(2)修改Harbor的介绍说明

修改setting.json文件的 product中的 introduction字段

{"headerBgColor": {"darkMode": "","lightMode": ""},"loginBgImg": "","loginTitle": "xxxxxx","product": {"name": "xxxxxx","logo": "logo.svg","introduction": "Harbor说明测试"}
}

修改效果如下

注:修改了introduction字段后,相应的 开源/第三方许可协议 默认不再显示

也可以修改下面文件路径中的内容

harbor\src\portal\src\i18n\lang\zh-cn-lang.json

(3)屏蔽 开源/第三方许可协议

代码路径

harbor\src\portal\src\app\shared\components\about-dialog\about-dialog.component.html

找到下面的代码片段,注释或者修改这段代码即可改动版本号相关内容

<p class="p5"><a routerLink="/license" target="_blank">{{'ABOUT.OPEN_SOURCE_LICENSE' | translate}}</a>
</p>

屏蔽开源/第三方许可协议效果如下

2.4 首页中Harbor API V2.0跳转屏蔽

首页中,左下角有 Harbor API V2.0 ,点击会跳转到 api 的说明文档中

api说明文档页面

如果需要屏蔽此功能,需要找到harbor-shell.component.html文件

harbor-shell.component.html文件路径

harbor\src\portal\src\app\base\harbor-shell\harbor-shell.component.html

在文件中找到下面的代码片段,注释该代码片段即可

<a clrVerticalNavLink routerLinkActive="active" target="_blank" routerLink="/devcenter-api-2.0"><clr-icon shape="network-globe" clrVerticalNavIcon></clr-icon>{{'SIDE_NAV.HARBOR_API_MANAGEMENT' | translate}}
</a>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/732486.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Springer出版 · EI检索】| 第二届先进无人飞行系统国际会议(ICAUAS 2024)

会议简介 Brief Introduction 2024年第二届先进无人飞行系统国际会议(ICAUAS 2024) 会议时间&#xff1a;2024年6月14日-16日 召开地点&#xff1a;中国南昌 大会官网&#xff1a;ICAUAS 2024-2024 2nd International Conference on Advanced Unmanned Aerial Systems2024 2nd …

java SSM汽车租赁管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM汽车租赁管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用…

江大白 | 万字长文,算法工程师的深度经验总结!(建议阅读收藏!)

本文来源公众号“OpenCV与AI深度学习”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;万字长文&#xff0c;算法工程师的深度经验总结&#xff01; 以下文章来源于知乎&#xff1a;机智的叉烧 链接&#xff1a;https://zhuanlan…

JAVA实战开源项目:智能停车场管理系统(Vue+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容A. 车主端功能B. 停车工作人员功能C. 系统管理员功能1. 停车位模块2. 车辆模块3. 停车记录模块4. IC卡模块5. IC卡挂失模块 三、界面展示3.1 登录注册3.2 车辆模块3.3 停车位模块3.4 停车数据模块3.5 IC卡档案模块3.6 IC卡挂…

opengl 学习(三)-----纹理

纹理就是贴图 分类前提demo效果解析 分类 前提 需要使用一个库来处理图片&#xff1a;#include <stb_image.h> https://github.com/nothings/stb 你下载好了之后&#xff0c;把目目录包含了就好 然后再引入 #define STB_IMAGE_IMPLEMENTATION #include "stb_i…

git删除comimit提交的记录

文章目录 本地的删除远程同步修改上次提交更多详情阅读 本地的删除 例如我的提交历史如下 commit 58211e7a5da5e74171e90d8b90b2f00881a48d3a Author: test <test36nu.com> Date: Fri Sep 22 20:55:38 2017 0800add d.txtcommit 0fb295fe0e0276f0c81df61c4fd853b7a00…

基于java的企业设备管理系统设计与实现

1、引言 设计结课作业,课程设计无处下手&#xff0c;网页要求的总数量太多&#xff1f;没有合适的模板&#xff1f;数据库&#xff0c;java&#xff0c;python&#xff0c;vue&#xff0c;html作业复杂工程量过大&#xff1f;毕设毫无头绪等等一系列问题。你想要解决的问题&am…

Maya人物建模

【MAYA人物建模】超详细讲解人物嘴巴、鼻子、眼睛、耳朵、头发、帽子等布线细节&#xff0c;零基础人物头部布线教程_哔哩哔哩_bilibili 原始图像凑合用&#xff0c;视屏中截图 图像导入过程技巧总结 前视图/右视图模式下导入图形 创建图层 锁定后可以避免图片位置的移动 前视…

Python学习日记之学习turtle库(上 篇)

一、初步认识turtle库 turtle 库是 Python 语言中一个很流行的绘制图像的函数库&#xff0c;想象一个小乌龟&#xff0c;在一个横 轴为 x、纵轴为 y 的坐标系原点&#xff0c;(0,0)位置开始&#xff0c;它根据一组函数指令的控制&#xff0c;在这个平面 坐标系中移动&#xff0…

基于华为atlas的unet分割模型探索

Unet模型使用官方基于kaggle Carvana Image Masking Challenge数据集训练的模型。 模型输入为572*572*3&#xff0c;输出为572*572*2。分割目标分别为&#xff0c;0&#xff1a;背景&#xff0c;1&#xff1a;汽车。 Pytorch的pth模型转化onnx模型&#xff1a; import torchf…

探索Web中的颜色选择:不同取色方法的实现

在Web开发中&#xff0c;提供用户选择颜色的功能是很常见的需求。无论是为了个性化UI主题&#xff0c;还是为了图像编辑工具&#xff0c;一个直观且易用的取色器都是必不可少的。本文将介绍几种在Web应用中实现取色功能的方法&#xff0c;从简单的HTML输入到利用现代API的高级技…

计算机设计大赛 深度学习的动物识别

文章目录 0 前言1 背景2 算法原理2.1 动物识别方法概况2.2 常用的网络模型2.2.1 B-CNN2.2.2 SSD 3 SSD动物目标检测流程4 实现效果5 部分相关代码5.1 数据预处理5.2 构建卷积神经网络5.3 tensorflow计算图可视化5.4 网络模型训练5.5 对猫狗图像进行2分类 6 最后 0 前言 &#…

掌握Java建造者模式:逐步构建复杂对象的艺术与实践

建造者模式的主要目的是将一个复杂对象的构建过程封装起来&#xff0c;使得客户端代码不需要知道对象创建的细节。这种模式特别适用于那些具有多个组成部分、创建过程复杂、对象属性多且大多数属性可选的场合。 在Java中&#xff0c;建造者模式通常涉及以下几个角色&#xff1…

Android Studio Iguana | 2023.2.1版本

Android Gradle 插件和 Android Studio 兼容性 Android Studio 构建系统基于 Gradle&#xff0c;并且 Android Gradle 插件 (AGP) 添加了一些特定于构建 Android 应用程序的功能。下表列出了每个版本的 Android Studio 所需的 AGP 版本。 如果特定版本的 Android Studio 不支持…

如何将MathType嵌入到word中 word打开MathType显示错误

当我们编辑好mathtype公式以后&#xff0c;有时候需要将这个公式导入到word中&#xff0c;但是有不少用户们不清楚mathtype如何嵌入到word中。今天小编就给大家说明一下mathtype公式导入word的两种不同方法&#xff0c;有需要的用户们赶紧来看一下吧。 一、mathtype如何嵌入到…

C++流行的开源框架和库总结

目录 引言&#xff1a; 标准库 框架C通用框架和库 人工智能与机器人学习 异步事件循环 音视频多媒体 压缩压缩和归档库 并发性并发执行和多线程 容器 密码学 数据库&#xff0c;SQL服务器&#xff0c;ODBC驱动程序和工具 游戏引擎 图形与图像 国际化 Json 日志…

Java - JVM

文章目录 一、JVM1. JVM的作用2. JVM、JRE、JDK的关系3. JVM的组成4. JVM工作流程5. 运行时方法区Runtime Data Area 二、深入JVM内存模型&#xff08;JMM&#xff09; 一、JVM 1. JVM的作用 Java代码编译成java字节码后&#xff0c;运行在JVM中&#xff0c;只要针对不同的系统…

保姆级讲解 Stable Diffusion

目录 本文讲解思路介绍 一、引入 二、Diffusion Model 三、原文的摘要和简介 四、Stable Diffusion 4.1、组成模块 4.2、感知压缩 4.3、条件控制 五、图解 Stable Diffusion 5.1、潜在空间的扩散 5.2、条件控制 5.3、采样 5.4、Diffusion Model 与 Stable Diffusion …

OnlyFans如何微信支付?订阅Onlyfans虚拟卡?OnlyFans订阅推荐指南教程

OnlyFans 订阅教程&#xff0c;手把手教你使用虚拟信用卡订阅 大家好&#xff0c;大家都在关心OnlyFans如何订阅怎么订阅&#xff0c;能不能用微信或者支付宝来订阅&#xff0c;首先微信是不行的&#xff0c;本文教大家如何在 Onlyfans 订阅和支付&#xff08;虚拟信用卡&#…

【Tauri】(4):使用Tauri1.5版本+candle框架运行大模型,前后的搭建运行成功,整合前端项目,在应用中显示。

1&#xff0c;视频地址 关于tauri 框架 2&#xff0c;搭建rust 环境 # 设置服务器国内代理&#xff1a; export RUSTUP_DIST_SERVER"https://rsproxy.cn" export RUSTUP_UPDATE_ROOT"https://rsproxy.cn/rustup"# 设置环境变量 export RUSTUP_HOME/data/…