阿里云使用中 ECS 系统盘加密操作流程

以下流程可以将阿里云 ECS 实例中未加密的系统盘无损变更为加密系统盘:

  1. 停用需加密系统盘的 ECS 实例。
  2. 在 ECS 控制台中创建自定义镜像,在创建自定义镜像设置中,创建方式选择实例。等待镜像创建完成。
  3. 使用创建的自定义镜像的复制镜像功能,复制类型选择加密复制,选择加密配置。
  4. 更换系统盘。在 ECS 实例中选择全部操作-> 云盘与镜像-> 更换操作系统。更换方式选择更换系统盘,系统盘镜像选择刚刚创建的加密自定义镜像,安全设置选择更换后设置。
  5. 经过上述步骤,已完成系统盘加密操作。后续待实例启动后,确认 ECS 是否运行正常。如运行正常,可清理历史快照和自定义镜像。
  6. 因此操作相当于更换了系统盘,原先快照配置将全部清除,如原先设置了快照,注意为新系统盘配置快照规则。

ttrss 升级 PostgreSQL 数据库版本

根据 ttrss 的安装指南 (https://tt-rss.org/wiki/InstallationNotes) 进行安装后,数据库会不断重启,错误信息为 The data directory was initialized by PostgreSQL version 12, which is not compatible with this version 15.4.

如遇到这种情况除了可以修改 docker-compose.yml 文件将 PostgreSQL 版本改为 12 版外,还可以通过升级数据库文件的方式处理。

根据官方文档建议,可使用 pgautoupgrade 升级数据库(https://github.com/pgautoupgrade/docker-pgautoupgrade)

我的升级操作流程如下:

  1. 停止 ttrss 的容器
    docker-compose down
    docker-compose rm
  2. 获取 pgautoupgrade (注意下载 PosrgreSQL 15 版的)
    docker pull pgautoupgrade/pgautoupgrade:15-alpine3.8
  3. 将容器中的数据库备份出来:
    docker cp 容器 ID:/var/lib/postgresql/data /备份/存储/位置
  4. 进行数据库升级
    docker run –name pgauto -it –mount type=bind,source=/备份/存储/位置/,target=/var/lib/postgresql/data -e POSTGRES_PASSWORD=数据库密码 -e PGAUTO_ONESHOT=yes pgautoupgrade/pgautoupgrade:15-alpine3.8
  5. 将数据库恢复至容器
    docker cp ./备份存储位置 容器 ID:/var/lib/postgresql/
  6. 如之前已修改 ttrss 的 docker-compose.yml 文件的 PostgreSQL 版本降级为 12,注意恢复为 15,并启用容器

私有化部署 Bitwarden Server 无法使用 “使用设备登录” 问题的解决方法

Bitwarden 自 2023.7.0 版本起提供了使用设备登录(Log in with Device)功能,但在我私有化部署的 Bitwarden Server 中,客户端可以收到登录请求提醒,但确认后服务器端无反应。

经排查,原因是我的 Bitwarden Server 是通过 Nginx 反向代理连接到网络,使用设备登录功能用到了 WebSocket,需要在 Nginx 中配置 WebSocket 的反向代理。步骤如下:

编辑 Nginx 的配置文件,在 http 部分添加以下内容:

http {

map $http_upgrade $connection_upgrade {
default upgrade;
” close;


}

在 server 的 location 部分添加以下内容:

server {

location / {

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;


}

}

重启 Nginx 服务后使用设备登录功能可正常使用。

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

从 Hexo 回到了 WordPress

Hexo 确实是简洁、高效,但是还是有那么一点不方便。多台电脑间同步还要 git 一下,在手机上写东西就更是麻烦了。

还是回到 WordPress 好了,不用想太多,写好了就发布,即便在手机上直接用 Ulysses 之类的编辑器也可以方便的发布。不用再想着同步之类的事情,轻松。

至于过往的文章,试了自带的 RSS Importer 等,在 PHP7 上无法使用,其他的几个插件也是怪怪的,慢慢的手工迁移吧,反正本来也没多少……

Debian 9 (Stretch) Apache 开启 HTTP/2

目前 Debian 9.5 默认的 Apache 版本已为 2.4.25,已直接支持 HTTP/2,开启 Apache 对 HTTP/2 的支持非常简单,步骤如下:

  1. 开启 HTTP/2 模块 1
    $sudo a2enmod http2
  2. 修改站点配置文件,增加 1
    Protocols h2 http/1.1
  3. 重启 apache1
    $sudo systemctl restart apache2

因 Debian 9 的 PHP 版本为 7.0,如开启 PHP,所 PHP 7.0 所需的 mpm_prefork 模块不支持 mod_http2,从而导致 Apache 的 HTTP/2 功能失效。如需开启 HTTP/2,可以等待 2019 年 Debian 10 发布后更新至更新版本的 PHP 或使用 nginx 来实现 HTTP/2 的支持。

–EOF–

Hexo AirCloud 主题安装笔记

下载 Air Cloud 主题

直接通过 Github 下载 zip 文件,放入 Hexo 的 themes 文件夹下:
https://github.com/aircloud/hexo-theme-aircloud

修改 Hexo 的 _config.yml 文件:

1
theme: aircloud

注释掉 title,增加 SEOTitle: [网站标题]

AirCloud 主题功能配置

为了增加搜索功能,需安装插件:

1
$npm i hexo-generator-search –save

编辑 Hexo 的 _config.yml 文件,增加:

1
2
3
search:
path: search.json
field: post

主题相关页面配置

标签页面

在 Hexo 的 source 文件夹下建立 tags 文件夹,并在 tags 文件夹下新建 index.md 文件,文件内容如下:

1
2
3
4

layout: “tags”
title: “Tags”

关于页面

在 Hexo 的 source 文件夹下建立 about 文件夹,并在 about 文件夹下新建 index.md 文件,文件头需包含以下内容:

1
2
3
4
5
6

layout: “about”
title: “About”
date: 2016-04-21 04:48:33
comments: true

头像设置

在 Hexo 的 source 文件夹下建立 img 文件夹,并将头像文件命名为 avatar.jpg

编辑 Hexo 的 _config.yml 文件,增加:

1
sidebar-avatar: img/avatar.jpg

社交网络链接

可以在 Hexo 的 _config.yml 文件中增加社交网络的账户信息,在页面下方生成链接:

1
2
weibo_username: 用户名
zhihu_username: 用户名

主题可设置的社交网络可详见 aircloud 主题官方实例:
https://github.com/aircloud/hexo-aircloud-blog

macOS 安装 Hexo 笔记

注:macOS 10.13.6 已安装 Xcode 、 brew 、 Git 等

安装 nvm 及 nodejs

在终端中通过如下命令安装 nvm:

$curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

修改.bash_profile 文件,添加国内镜像:

export NVM_NODEJS_ORG_MIRROR=http://npm.taobao.org/mirrors/node

安装稳定版 node.js:

$nvm install stable

设置 npm 国内镜像:

npm config set registry='http://registry.npm.taobao.org'

安装 Hexo

$npm install -g hexo-cli

Hexo 初始化

$hexo init bubuyu
$cd bubuyu
$npm install

完成

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