群晖NAS上搭建Bitwarden服务

当初在群晖上自建bitwarden_rs服务器的时候,使用Google搜索出来的结果一概都是使用DSM界面的简单配置,那样倒是能用,但WebSocket不通会导致实时同步不能生效。趁着这次重新规划NAS的机会,我记录一下完整的配置流程。

Bitwarden介绍

Bitwarden本身就不多说了,是个类似于1Password的全平台密码管理器。优势在于代码开源,可以自建服务进一步保证敏感数据私有;缺点呢主要服务端使用.NET和MS SQL,成本对于个人使用无疑太大了。所以社区上有很多活跃人士造轮子来搭配官方客户端,比较活跃的项目有Ruby写的rubywarden和我这里用的Rust版bitwarden_rs

bitwarden_rs实现了绝大部分官方版本的功能(免费的和收费的),资源占用很低,使用Docker易于部署,数据存储又可以选择SQLite/MySQL/PostgreSQL,非常灵活。

通过sidecar调试Docker容器的一种思路

平常使用Docker部署应用的时候,为了保障安全、压缩镜像体积和加快编译速度,一般会尽量去除运行时不需要的库和程序,比如sshd,这样带来的一个副作用是当容器出现问题时不容易登录上去调试。Google搜索到了docker-slim项目提供的一种辅助思路,这里大致做笔记记录一下。

Nginx的TLS v1.3支持

距离TLS v1.2推出已过十年,今年8月1.3标准总算定稿,著名CDN厂商CloudFlare专门写有一篇博客做了介绍,可以有个整体的了解。主流代理服务器Nginx也及时跟上,在月底的时候正式发布了1.15.3版本,其中一项更新便是通过Google推出的OpenSSL分支BoringSSL增加了对TLS v1.3的支持1

在主流Linux发行版上是没有现成的BoringSSL包的,想要使用的话需要自行编译,这里以Ubuntu 16.04为例进行说明。

使用Cloudflare为博客增加Let's Encrypt免费SSL支持

前阵子测试Caddy自动申请Let’s Encrypt证书的时候,因为其DNS插件不支持NameSilo,鬼使神差的把个人域名给转移到了Namecheap,回头换回Nginx发现他家的API调用需要收费,不能再使用acme.sh脚本或者certbot这种第三方工具renew证书,所以干脆在前面再套一层CloudFlare,通过他家的domain API实现DNS challenge,成功的把简单问题复杂化了。