如何将发送给新GitLab用户的电子邮件中的主机IP更改为公开可见的IP,而不是本地GitLab IP?

如何将发送给新GitLab用户的电子邮件中的主机IP更改为公开可见的IP,而不是本地GitLab IP?,gitlab,bitnami,Gitlab,Bitnami,我已经使用VMWare Workstation在我的个人专用Windows服务器(主机)上设置了一个运行的虚拟机实例,该服务器在我的家庭办公室之外运行。我的专用Windows server主机有一个公开可见的静态IP地址 通过在VMWare Workstation的虚拟网络编辑器中设置端口转发(使用NAT转换,而不是桥接),我成功地获得了以来宾身份运行的GitLab应用程序的公共访问权。只要输入静态IP(包括我选择的端口),我就可以从任何连接到internet的计算机访问GitLab web界面

我已经使用VMWare Workstation在我的个人专用Windows服务器(主机)上设置了一个运行的虚拟机实例,该服务器在我的家庭办公室之外运行。我的专用Windows server主机有一个公开可见的静态IP地址

通过在VMWare Workstation的虚拟网络编辑器中设置端口转发(使用NAT转换,而不是桥接),我成功地获得了以来宾身份运行的GitLab应用程序的公共访问权。只要输入静态IP(包括我选择的端口),我就可以从任何连接到internet的计算机访问GitLab web界面

我还成功地在运行的GitLab实例中设置了两个Git存储库

发送电子邮件需要启用,需要修改一个设置文件,这很简单(这解释了如何正确设置SMTP)

在邀请新用户之前,我想先邀请自己(使用第二个电子邮件地址)来测试功能

邀请用户时,会向该用户发送一封邀请/确认电子邮件,提供登录GitLab实例的链接但是,我发现邀请电子邮件中提供的URL是本地网络IP地址(即192.168.44.129),而不是公开可见的静态IP地址

我在GitLab web界面本身中看不到任何更改电子邮件邀请中包含的主机IP的设置,因此我假设我需要在某个地方更改配置文件中的设置。但我不知道这应该是GitLab设置、Nginx设置、RoR设置还是其他设置;以及设置/设置文件是什么

我所能找到的关于这个(,和)的最佳链接似乎没有足够清晰地引导我有效地猜测该做什么


如何将通过GitLab向新用户发送的邀请电子邮件中提供的URL(主机IP)从本地网络IP地址更改为全局可见(静态)IP地址?

两条提示为我指明了方向,一旦我解决了问题(如我将要描述的),我就找到了列表中列出的详细信息

第一个提示是在一个不太高投票率的答案中发现的(与其他答案和被接受的答案相比,其中一些答案的投票率更高)。GitLab帐户邀请电子邮件中使用的主机IP和端口设置可在
GitLab.yml
文件中找到(截至今天,此文件在VM堆栈上的完整路径(可能还有其他路径)安装是
/opt/bitnami/apps/gitlab/htdocs/config/gitlab.yml
;请参阅
主机
端口
设置,以及其他总体有用的设置)。(我对Rails世界没有经验,如果我理解正确的话,使用
.yml
设置文件显然是Rails应用程序通常的操作方式。)

上述步骤确实成功,但仅在服务器重新启动之前。不幸的是,当服务器重新启动时,
主机
设置会被
ifconfig
中的任何内容作为IP地址覆盖(端口条目与您输入的内容保持相同)

第二个提示是如何解决这个问题;我找到了。
init.d
文件夹中有一个特殊的脚本,它的特定用途只是重置此(可能还有其他?
.yml
设置文件中的
host
参数。(在我的场景中,这是一个多么美妙的“便利”)简单地注释掉这个文件中的单行
exec/opt/bitnami/apps/gitlab/bnconfig--machine_hostname…
(通过在行的前面添加一个
#
)就解决了这个问题

上述两项更改完成后,问题就解决了。GitLab邀请电子邮件成功地包含了所需的服务器静态IP地址(和端口),即使是通过服务器重启

正如我上面提到的,一旦我解决了这个问题,我就发现这个问题的答案已经在(注意:上面的提示#1和提示#2一个接一个地隐藏在文档的同一小节中,它们并不突出;它们并不突出;我认为它们在第一次阅读时会作为次要细节出现;格式没有引起对文件名和路径的注意,我认为这会有所帮助。);而他们所在的小节名称并未特别清楚地表明这将是正确的小节(我认为,除非回顾过去)


附录:对于任何认为它有用的人来说,有一个额外的细节需要使用GitLab从您自己的个人服务器上获取电子邮件-我在问题中只是简单地顺便提到了这一点,因为我已经做到了

但是为了让将来的访问者更完整,我应该提到,您需要通过修改名为
production.rb
的文件在GitLab实例上正确设置SMTP(今天的完整路径是
/opt/bitnami/apps/GitLab/htdocs/config/environments/production.rb
)。具体来说,您必须添加
config.action\u mailer.smtp\u settings{…}
块并添加/取消注释一些其他设置,以便能够从正在运行的GitLab实例发送电子邮件