1. 理解JumpServer界面定制的核心要素当你第一次部署JumpServer堡垒机时可能会注意到界面上到处都是JumpServer的品牌标识。对于企业用户来说这显然不符合内部系统统一品牌形象的要求。我去年给某金融机构做私有化部署时就遇到过这个问题——他们的安全合规部门明确要求所有内部系统必须使用企业视觉识别系统。浏览器标签页标题、网页标题图标favicon.ico和登录页面的Logo是三个最显眼的视觉标识。标签页标题就是浏览器选项卡上显示的文字favicon是标签页左侧的小图标而Logo通常出现在登录页面左上角。这三个元素的修改位置各不相同需要分别处理。2. 修改浏览器标签页标题2.1 定位关键文件标签页标题的修改相对简单主要涉及两个文件django.po和django.mo。前者是文本文件后者是编译后的二进制文件。在最新版的JumpServer中这两个文件通常位于容器内的/opt/jumpserver/apps/i18n/core/zh/LC_MESSAGES/目录下。实际操作时我建议先用以下命令查找确切路径sudo find /var/lib/docker -name django.mo这个命令会遍历Docker存储目录找到所有的django.mo文件。注意输出结果中带有core/zh/LC_MESSAGES路径的那个才是我们需要修改的。2.2 修改文本内容找到文件后先停止JumpServer服务sudo ./jmsctl.sh stop然后备份原始文件cd /var/lib/docker/overlay2/[你的容器ID]/diff/opt/jumpserver/apps/i18n/core/zh/LC_MESSAGES/ cp django.po django.po.bak cp django.mo django.mo.bak用vim或nano编辑django.po文件搜索JumpServer 开源字符串。你会看到类似这样的条目msgid JumpServer 开源 msgstr JumpServer 开源把msgstr后面的内容改为你想要的标题比如XX企业运维门户。2.3 重新编译语言文件修改完文本后需要重新生成二进制文件msgfmt -o django.mo django.po然后将两个文件复制回原目录注意替换你的实际路径sudo cp django.mo /var/lib/docker/overlay2/[容器ID]/diff/opt/jumpserver/apps/i18n/core/zh/LC_MESSAGES/ sudo cp django.po /var/lib/docker/overlay2/[容器ID]/diff/opt/jumpserver/apps/i18n/core/zh/LC_MESSAGES/最后重启服务验证效果sudo ./jmsctl.sh start3. 替换网页标题图标favicon3.1 准备图标文件favicon的标准尺寸是32x32像素格式可以是ico或png。我建议使用在线工具如favicon.io生成符合标准的文件。有个小技巧把企业Logo做成单色版本在小尺寸下显示效果更好。3.2 替换系统文件JumpServer的favicon文件位于/opt/jumpserver/core/static/img/favicon.ico在Docker环境下实际路径可能是/var/lib/docker/overlay2/[容器ID]/diff/opt/jumpserver/core/static/img/favicon.ico替换步骤将制作好的favicon.ico上传到服务器备份原文件mv favicon.ico favicon.ico.bak复制新文件cp /path/to/your/favicon.ico .清除浏览器缓存后刷新页面查看效果4. 更换系统Logo4.1 准备Logo图片登录页面的Logo建议使用透明背景的PNG格式尺寸大约为180x60像素。图片太大可能会破坏页面布局。我遇到过客户上传了超大Logo导致登录表单下移的情况最后用imagemagick调整才解决convert input.png -resize 180x60 output.png4.2 修改前端文件JumpServer的Logo相关文件主要在两个位置登录页面Logo/opt/jumpserver/core/static/img/logo.png顶部导航栏Logo/opt/jumpserver/core/static/img/logo_text.png替换方法与favicon类似记得同时替换这两个文件。有个细节要注意logo_text.png应该是带有文字标识的横版Logo而logo.png可以是纯图形标志。5. 高级定制技巧5.1 修改CSS样式如果想进一步调整Logo显示效果可以修改相关CSS。主要文件是/opt/jumpserver/core/static/css/public.css例如调整Logo大小.login-logo { width: auto; height: 60px; }5.2 处理浏览器缓存问题修改后经常遇到缓存导致新图标不显示的问题。解决方法有强制刷新CtrlF5修改文件名如logo.png?v2在Nginx配置中添加缓存控制头5.3 自动化部署方案对于需要频繁部署的环境可以编写自动化脚本#!/bin/bash # 停止服务 sudo ./jmsctl.sh stop # 替换favicon cp /opt/custom/assets/favicon.ico /opt/jumpserver/core/static/img/ # 替换Logo cp /opt/custom/assets/logo.png /opt/jumpserver/core/static/img/ cp /opt/custom/assets/logo_text.png /opt/jumpserver/core/static/img/ # 修改标题文本 sed -i s/原标题/新标题/g /opt/jumpserver/apps/i18n/core/zh/LC_MESSAGES/django.po msgfmt -o /opt/jumpserver/apps/i18n/core/zh/LC_MESSAGES/django.mo /opt/jumpserver/apps/i18n/core/zh/LC_MESSAGES/django.po # 重启服务 sudo ./jmsctl.sh start6. 常见问题排查在多次实施过程中我总结出几个典型问题修改后无变化首先检查文件路径是否正确特别是Docker环境下的路径可能很复杂。其次确认服务是否正常重启。图标显示异常通常是图片格式问题建议用file命令检查文件类型file logo.png中文乱码编辑po文件时确保使用UTF-8编码vim中可通过:set fileencodingutf-8设置。权限问题Docker容器内文件可能需要root权限才能修改建议先用ls -l查看权限。版本差异不同版本JumpServer文件位置可能不同建议先通过grep查找关键词定位文件。
JumpServer二次开发实战:深度定制界面标识(Logo/标题/图标)
发布时间:2026/5/19 3:46:31
1. 理解JumpServer界面定制的核心要素当你第一次部署JumpServer堡垒机时可能会注意到界面上到处都是JumpServer的品牌标识。对于企业用户来说这显然不符合内部系统统一品牌形象的要求。我去年给某金融机构做私有化部署时就遇到过这个问题——他们的安全合规部门明确要求所有内部系统必须使用企业视觉识别系统。浏览器标签页标题、网页标题图标favicon.ico和登录页面的Logo是三个最显眼的视觉标识。标签页标题就是浏览器选项卡上显示的文字favicon是标签页左侧的小图标而Logo通常出现在登录页面左上角。这三个元素的修改位置各不相同需要分别处理。2. 修改浏览器标签页标题2.1 定位关键文件标签页标题的修改相对简单主要涉及两个文件django.po和django.mo。前者是文本文件后者是编译后的二进制文件。在最新版的JumpServer中这两个文件通常位于容器内的/opt/jumpserver/apps/i18n/core/zh/LC_MESSAGES/目录下。实际操作时我建议先用以下命令查找确切路径sudo find /var/lib/docker -name django.mo这个命令会遍历Docker存储目录找到所有的django.mo文件。注意输出结果中带有core/zh/LC_MESSAGES路径的那个才是我们需要修改的。2.2 修改文本内容找到文件后先停止JumpServer服务sudo ./jmsctl.sh stop然后备份原始文件cd /var/lib/docker/overlay2/[你的容器ID]/diff/opt/jumpserver/apps/i18n/core/zh/LC_MESSAGES/ cp django.po django.po.bak cp django.mo django.mo.bak用vim或nano编辑django.po文件搜索JumpServer 开源字符串。你会看到类似这样的条目msgid JumpServer 开源 msgstr JumpServer 开源把msgstr后面的内容改为你想要的标题比如XX企业运维门户。2.3 重新编译语言文件修改完文本后需要重新生成二进制文件msgfmt -o django.mo django.po然后将两个文件复制回原目录注意替换你的实际路径sudo cp django.mo /var/lib/docker/overlay2/[容器ID]/diff/opt/jumpserver/apps/i18n/core/zh/LC_MESSAGES/ sudo cp django.po /var/lib/docker/overlay2/[容器ID]/diff/opt/jumpserver/apps/i18n/core/zh/LC_MESSAGES/最后重启服务验证效果sudo ./jmsctl.sh start3. 替换网页标题图标favicon3.1 准备图标文件favicon的标准尺寸是32x32像素格式可以是ico或png。我建议使用在线工具如favicon.io生成符合标准的文件。有个小技巧把企业Logo做成单色版本在小尺寸下显示效果更好。3.2 替换系统文件JumpServer的favicon文件位于/opt/jumpserver/core/static/img/favicon.ico在Docker环境下实际路径可能是/var/lib/docker/overlay2/[容器ID]/diff/opt/jumpserver/core/static/img/favicon.ico替换步骤将制作好的favicon.ico上传到服务器备份原文件mv favicon.ico favicon.ico.bak复制新文件cp /path/to/your/favicon.ico .清除浏览器缓存后刷新页面查看效果4. 更换系统Logo4.1 准备Logo图片登录页面的Logo建议使用透明背景的PNG格式尺寸大约为180x60像素。图片太大可能会破坏页面布局。我遇到过客户上传了超大Logo导致登录表单下移的情况最后用imagemagick调整才解决convert input.png -resize 180x60 output.png4.2 修改前端文件JumpServer的Logo相关文件主要在两个位置登录页面Logo/opt/jumpserver/core/static/img/logo.png顶部导航栏Logo/opt/jumpserver/core/static/img/logo_text.png替换方法与favicon类似记得同时替换这两个文件。有个细节要注意logo_text.png应该是带有文字标识的横版Logo而logo.png可以是纯图形标志。5. 高级定制技巧5.1 修改CSS样式如果想进一步调整Logo显示效果可以修改相关CSS。主要文件是/opt/jumpserver/core/static/css/public.css例如调整Logo大小.login-logo { width: auto; height: 60px; }5.2 处理浏览器缓存问题修改后经常遇到缓存导致新图标不显示的问题。解决方法有强制刷新CtrlF5修改文件名如logo.png?v2在Nginx配置中添加缓存控制头5.3 自动化部署方案对于需要频繁部署的环境可以编写自动化脚本#!/bin/bash # 停止服务 sudo ./jmsctl.sh stop # 替换favicon cp /opt/custom/assets/favicon.ico /opt/jumpserver/core/static/img/ # 替换Logo cp /opt/custom/assets/logo.png /opt/jumpserver/core/static/img/ cp /opt/custom/assets/logo_text.png /opt/jumpserver/core/static/img/ # 修改标题文本 sed -i s/原标题/新标题/g /opt/jumpserver/apps/i18n/core/zh/LC_MESSAGES/django.po msgfmt -o /opt/jumpserver/apps/i18n/core/zh/LC_MESSAGES/django.mo /opt/jumpserver/apps/i18n/core/zh/LC_MESSAGES/django.po # 重启服务 sudo ./jmsctl.sh start6. 常见问题排查在多次实施过程中我总结出几个典型问题修改后无变化首先检查文件路径是否正确特别是Docker环境下的路径可能很复杂。其次确认服务是否正常重启。图标显示异常通常是图片格式问题建议用file命令检查文件类型file logo.png中文乱码编辑po文件时确保使用UTF-8编码vim中可通过:set fileencodingutf-8设置。权限问题Docker容器内文件可能需要root权限才能修改建议先用ls -l查看权限。版本差异不同版本JumpServer文件位置可能不同建议先通过grep查找关键词定位文件。