WSL

首先安装WSL,微软官方文档
以下复制于上面的文档,用于备份。

步骤 1 - 启用适用于 Linux 的 Windows 子系统

  1. dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

步骤 2 - 检查运行 WSL 2 的要求

若要更新到 WSL 2,需要运行 Windows 10。

  • 对于 x64 系统:版本 1903 或更高版本,内部版本为 18362 或更高版本。
  • 对于 ARM64 系统:版本 2004 或更高版本,内部版本为 19041 或更高版本。

或 Windows 11。
备注
低于 18362 的版本不支持 WSL 2。 使用 Windows Update 助手更新 Windows 版本。
若要检查 Windows 版本及内部版本号,选择 Windows 徽标键 + R,然后键入“winver”,选择“确定”。 更新到“设置”菜单中的最新 Windows 版本。
备注
如果运行的是 Windows 10 版本1903 或 1909,请在 Windows 菜单中打开“设置”,导航到“更新和安全性”,然后选择“检查更新”。 内部版本号必须是 18362.1049+ 或 18363.1049+,次要内部版本号需要高于 .1049。 阅读详细信息:WSL 2 即将支持 Windows 10 版本 1903 和 1909

步骤 3 - 启用虚拟机功能

  1. dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

步骤 4 - 下载 Linux 内核更新包

  1. 下载最新包:备注如果使用的是 ARM64 计算机,请下载

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_arm64.msi

  1. 。 如果不确定自己计算机的类型,请打开命令提示符或 PowerShell,并输入:systeminfo | find “System Type”。 Caveat: 在非英文版 Windows 上,你可能必须修改搜索文本,对“System Type”字符串进行翻译。 你可能还需要对引号进行转义来用于 find 命令。 例如,在德语版中使用 systeminfo | find ‘“Systemtyp”‘。
  2. 运行上一步中下载的更新包。 (双击以运行 - 系统将提示你提供提升的权限,选择“是”以批准此安装。)

安装完成后,请继续执行下一步 - 在安装新的 Linux 分发时,将 WSL 2 设置为默认版本。 (如果希望将新的 Linux 安装设置为 WSL 1,请跳过此步骤。)
备注
有关详细信息,请参阅 Windows 命令行博客上的文章对更新 WSL2 Linux 内核的更改

步骤 5 - 将 WSL 2 设置为默认版本

  1. wsl --set-default-version 2

步骤 6 - 安装所选的 Linux 分发

打开 Microsoft Store,并选择你偏好的 Linux 分发版。

!!这里我的建议是这个版本 !!
image.png
image.png

Docker

版本:
Docker Desktop 4.12.0 (85629)
image.png
下一步、下一步,在安装过程成功之后,直接跳过实验项目即可。

在 docker desktop 中启用 Use the WSL 2 based engine

662394-20220121184522153-1333304673.png

在 docker desktop 中启用 Enable integration with additional distros: Ubuntu

662394-20220121184546541-349835232.png

Sentry

下载

找到Sentry官方私有部署仓库,稳妥起见,使用release
https://github.com/getsentry/self-hosted/releases
此时此刻最新的release是22.9.0
image.png
image.png

复制

在WSL中会有本地电脑的磁盘映射/mnt如图
image.png
进入下载源码的目录,将源码复制到/home/用户名 中

  1. cp -r self-hosted-22.9.0 /home/{用户名}/self-hosted-22.9.0

进入拷贝到的目录/home/{用户名}
执行此命令,给予权限

  1. chmod 777 self-hosted-22.9.0/

然后进入/home/{用户名}/self-hosted-22.9.0目录
运行

不想再安装过程中出现创建账户提示(这个没有测试)

  1. sudo ./install.sh --skip-commit-check --skip-user-prompt

如果 git 链接不稳,可以跳过 commit 检查 (这个是我测试没问题)

  1. sudo ./install.sh --skip-commit-check

在安装过程中会让用户输入邮箱和密码,我测试密码可能输入不进去,不过没事儿,后续第一次访问会让设置密码的。
image.png

启动

  1. sudo docker compose up -d

image.png
启动有点慢,请耐心等待
最后有29个Container 启动成功
image.png
失败的是这个
image.png

  1. error loading configuration file /sentry/GeoIP.conf: error opening file: open /sentry/GeoIP.conf: no such file or directory
  2. error loading configuration file /sentry/GeoIP.conf: error opening file: open /sentry/GeoIP.conf: no such file or directory

https://stackoverflow.com/questions/59624909/sentry-docker-error-opening-geoip-database
这个不影响使用,解决这个问题需要在其他IP平台注册账号
影响使用,还是去注册一下,然后访问这个地址
https://dev.maxmind.com/geoip/geolite2-free-geolocation-data
创建
image.png
image.png
生成之后,有一个下载按钮,点击下载下载秘钥
!!这个秘钥生成之后只有一次下载机会!!
将配置文件放到 /geoip目录
image.png
解决方法
上述连接相关部分备份

自托管地理定位
Sentry 可以使用 MaxMind 的免费 GeoLite2-City 数据库来对 IP 地址进行地理定位,
为已知最终用户 IP 地址的错误事件以及登录 Sentry 安装的用户的会话历史记录提供额外的上下文。
为此,我们捆绑了 MaxMind 的 geoipupdate 工具。

https://dev.maxmind.com/geoip/geoip2/geolite2/
https://hub.docker.com/r/maxmindinc/geoipupdate
为了利用服务器端 IP 地址地理定位,您必须首先将 IP 地址发送到 Sentry。默认情况下,较新的 SDK 不会执行此操作。

https://docs.sentry.io/platforms/python/data-management/sensitive-data/#personally-identifiable-information-pii
要启用服务器端 IP 地址地理定位,请注册一个免费的 MaxMind 帐户,
然后通过将您的 MaxMind 配置文件放在 geoip/GeoIP.conf 来告诉 Sentry 您的凭据。

https://www.maxmind.com/en/geolite2/signup
AccountID 012345
LicenseKey foobarbazbuz
EditionIDs GeoLite2-City
有了这个配置文件,Sentry 的 install.sh 的后续运行将刷新 IP 地址地理定位数据库。
下次您重新启动自托管的 Sentry 实例(特别是 relay 和 web 服务)时,您应该会看到最新的数据。
以下是确认它是否正常工作的方法:

对于 relay 服务:Dashboards > Errors by Country 上应该有一些紫色。

对于 web 服务:User Settings > Security > Session History 应在表中的 IP 地址下方显示国家代码和地区(例如,”US (CA)”)。

启动后不久看到 sentry_self_hosted_geoipupdate_1 容器退出是正常的,因为更新地理定位数据库是一次性的批处理过程,而不是长时间运行的 job。

升级
使用 GeoLite2-City.mmdb 文件的服务需要知道在哪里可以找到它。新安装将自动设置此设置,但如果您要升级,则需要在重新启动 Sentry 之前手动设置以下内容。

在 relay/config.yml 中(示例):

https://github.com/getsentry/self-hosted/blob/master/relay/config.example.yml

  1. processing:
  2. geoip_path: "/geoip/GeoLite2-City.mmdb"

在 sentry/sentry.conf.py 中(示例):

https://github.com/getsentry/self-hosted/blob/master/sentry/sentry.conf.example.py

  1. GEOIP_PATH_MMDB = '/geoip/GeoLite2-City.mmdb'