Nginx 反向代理 Bitwarden 服务时登录提醒邮件 IP 地址为内网地址的解决方法

在使用 Nginx 方向代理 Bitwarden 服务时,Bitwarden 发送的新设备登录提醒邮件的 IP 地址会显示 172.x.x.x 这样的 Docker 容器的 IP 地址。这样显然不能达到安全提醒邮件的全部作用。

Your Bitwarden account was just logged into from a new device.
Date: Friday, August 13, 2021 at 7:45 PM UTC
IP Address: 172.20.0.1
Device Type: iOS
You can deauthorize all devices that have access to your account from the web vault under Settings → My Account → Deauthorize Sessions.

需要修改 bwdata/config.yml 文件,找到 real_ips,修改为:

real_ips:
- 172.16.0.0/12

保存后,运行 bitwarden.sh rebuild、bitwarden.sh start 重建并启动 Bitwarden 即可在提示邮件中显示正确的 IP 地址。

使用 Docker 部署 CouchDB 为 Moon FM 同步数据

本文参考:https://github.com/gaodeng/Moon-FM-Support/blob/master/couchdb_setup/couchdb.md

环境:Debian Bullseye、Docker 20.10.8,使用 NGINX 反向代理。

获取 CouchDB 并启用

docker pull coucudb

创建 CouchDB 容器、设置 admin 用户密码,将容器 5984 端口映射至本地的 5984 端口。

docker run -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=[admin 密码] -d --name mycouchdb -p 127.0.0.1:5984:5984 --restart=always couchdb

设置 NGINX 设置,并配置好反向代理。

配置 CouchDB

首先使用浏览器登录管理界面,地址为:https://[url]/_utils/。

使用 admin 用户登录,进入设置界面,将 couch_peruser 的 enable 项目调整为 true。

创建_users 数据库

curl -X PUT http://admin:[admin 密码]@[url]/_users \
     -H "Accept: application/json" \
     -H "Content-Type: application/json" \

如成功,则返回:

{"ok":true}

在_users 数据库中创建用户

例如创建一个用户名为 jan 密码为 apple 的用户

curl -X PUT http://admin:[admin 密码]@[url]/_users/org.couchdb.user:jan \
     -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -d '{"name": "jan", "password": "apple", "roles": [], "type": "user"}'

如成功,则返回:

{"ok":true,"id":"org.couchdb.user:jan","rev":"xxxx"}

同时,CouchDB 会为新建用户创立一个 userdb- 为前缀的数据库,在上例中 jan 的数据库为 userdb-6a616e。那么 jan 在 Moon FM 的同步地址为

http://jan:apple@[url]/userdb-6a616e

Safari 登录 Tiny Tiny RSS 报错问题

近期 Tiny Tiny RSS(tt-rss)更新后,使用 Safari 登录时会提示错误:“Error: Browser check failed: window.requestIdleCallback not found.”。原因为目前 Safari 默认尚未正式开启对 requestIdleCallback() 方法的支持。

在 Mac 上,可以在 Safari 浏览器偏好设置-高级选项卡中勾选在菜单栏中显示 “开发” 菜单。在开发菜单-实验性功能中勾选启用 requestIdleCallback 来解决此问题。

iOS 和 iPad OS 中,可以在设置- Safari 浏览器- Experimental Features 中启用 requestIdleCallback 来解决此问题。

更新 1:在 Safari 中开启 requestIdleCallback 后,有可能会导致 Google 等网站登录页面出现无法进入密码输入框的情况,关闭可解决。

通过 F-droid 安装 Bitwarden

Bitwarden 是一个开源的密码管理器,包含了桌面端及移动端的密码管理软件,其中 Android 版本的 Bitwarden 除了可以在 Google Play 应用商店中下载外,也提供了 F-droid 安装的方式,此种方式更适合于在国内使用。安装方法如下:

  1. 安装 F-droid
    手机浏览器访问 https://f-droid.org,根据提示下载安装 F-droid 安装包并安装即可。
  2. 电脑或手机浏览器访问 https://mobileapp.bitwarden.com/fdroid/
    扫描页面中的二维码或者点击 F-droid 设置按钮-进入存储库,点击添加按钮,将页面中 URL 粘贴入存储库地址,Fingerprint 粘贴入指纹,并点击添加按钮。
  3. 刷新 F-droid 存储库,并搜索 Bitwarden 即可安装。

注意事项

F-droid 版本的 Bitwarden 不包含 Firebase Messaging,所以无法推送实时同步信息。需要手动进行同步。

删除 iOS 中自签名证书

之前因安装 Thor 的原因,在 iPhone 中创建了自签名证书。正常情况下可以通过删除描述文件的方式删除自签名证书,但如通过备份恢复过手机,描述文件会消失,但自签名证书依旧保留在手机中。

如遇到这种情况,可通过 iMazing 等工具打开手机备份文件,在 iMazing 中找到文件系统-备份-KeychainDomain 中的 TrustStore.sqlite3 文件并导出。

通过 SQLite 数据库查看工具,打开 tsettings 表,其中 data 字段为存储的证书文件,选择该字段并导出为证书文件 (*.cer)。

将导出的文件通过邮件等方式导入 iPhone,根据提示安装描述文件后移除即可彻底删除残留在 iOS 中的自定义证书文件。

Windows 10 (1909) 开始菜单无法搜索的可能解决方法

最近我的 Windows 10(1909) 开始菜单突然无法进行搜索了,搜索任何内容,都只有一个放大镜的空白界面。

搜索了网上很多方法(比如在 Powershell 下运行一串命令)均无效,终于找到了对我遇到这个无法搜索的 Bug 的解决方法:https://www.stephenwagner.com/2019/12/13/windows-10-version-1909-smart-menu-not-working/

解决方法也比较简单,修改了注册表的两个键值,可将以下代码复制如记事本,并另存为.reg 注册表文件,双击导入。导入完成后重启电脑或资源管理器即可修复。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Search]
"CortanaConsent"=dword:00000000
"BingSearchEnabled"=dword:00000000

Sony 安卓电视安装 APK 文件报错的奇妙问题

最近在 X9000F(已升级至 Android 8.0)上安装 APK 时报错:“解析软件包时出现问题”,本以为是 U 盘故障或下载的文件被损坏的原因,单后来发现原因相当奇妙,是因为 U 盘的格式是 exFAT,格式化成 FAT32 就一切正常了……神奇的 bug。

升级 Debian 10 后漏了 PHP 模块导致 Ulysses 无法发布 WordPress

由 Debian 9 升级到 Debian 10 后,PHP 也由 PHP 7.0 升级至 7.3。升级过程中,PHP 7.3 并不会安装全部原先 7.0 安装的模块。因此导致诸如 Ulysses 等 App 无法通过 XML-RPC 发布文章。

在尝试用 curl 请求 xmlrpc.php 时发现以下错误:

<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
  <fault>
    <value>
      <struct>
        <member>
          <name>faultCode</name>
          <value><int>-32700</int></value>
        </member>
        <member>
          <name>faultString</name>
          <value><string>parse error. not well formed</string></value>
        </member>
      </struct>
    </value>
  </fault>
</methodResponse>

这才发现了问题,安装 php-xml、php-xmlrpc 模块后解决。

鲁公网安备 37010202001399号 鲁ICP备18034499号-1