caddy

caddy 是什么 golang 编写的反向代理服务器, 并提供了很多的插件, 可以自动注册 https 证书, 对懒人极度友好 版本选择 目前分为 v1, v2 两个版本, 本人迁移发现 v1,v2 版本并不兼容(Caddyfile), 建议使用 V2 版本, 但是目前中文教程里面使用 v1 版本的还是有很多 v1 版本密码认证是明文, v2 是一个 hash 后的密文 下载 && 安装 下载 在很早的时候 caddy 跟 cloudflare 不太兼容, 会导致无法注册 https 证书, 虽然概率不高, 但是遇见了就比较蛋疼, 建议选择上 caddy-dns/cloudflare 插件 安装 下载完二进制文件后, 建议配置 systemd, 参考 官方文档 以下是我自己使用的配置文件, 大家可以参考下 # caddy.service # # For using Caddy with a config file. # # Make sure the ExecStart and ExecReload commands are correct # for your installation.……

阅读全文

Vaultwarden 搭建

准备 docker nginx/caddy 启动 docker run -d --name vaultwarden -v `pwd`:/data -p 8088:80 vaultwarden/server:latest 此时打开 http://yourhost:8088, 就可以看到页面 配置 在工作目录(即上述执行的目录, 如果 -v 指定了目录, 则为其指定目录)中, 增加一个 config.json 其中 signups_allowed 为是否允许注册, 注册完第一个账号之后建议关闭 admin_token 为 /admin 管理页面的 token, 建议配置完之后将其置空(即不开启 /admin) { "domain": "http://localhost", "sends_allowed": false, "disable_icon_download": false, "signups_allowed": true, "signups_verify": false, "signups_verify_resend_time": 3600, "signups_verify_resend_limit": 6, "invitations_allowed": false, "password_iterations": 100000, "show_password_hint": false, "admin_token": "token", "invitation_org_name": "Vaultwarden", "ip_header": "X-Real-IP", "icon_cache_ttl": 2592000, "icon_cache_negttl": 259200, "icon_download_timeout": 10, "icon_blacklist_non_global_ips": true, "disable_2fa_remember": false, "authenticator_disable_time_drift": false, "require_device_email": false, "reload_templates": false, "log_timestamp_format": "%Y-%m-%d %H:%M:%S.……

阅读全文

博客搭建

准备 hugo github nginx/caddy hugo 注意: 安装 extended 版本, 否则使用第三方主题时会有问题 hugo new site quickstart cd quickstart git clone https://github.com/flysnow-org/maupassant-hugo themes/maupassant echo theme = \"maupassant\" >> config.toml hugo new posts/my-first-post.md // 测试 hugo server -D // 生成静态文件 hugo -D github 创建 repo 设置 webhook 将上面的 quickstart 文件夹整体进行版本管理(其实只管理 content 也行, 要是为了方便换主题, 可以直接搞整个) 在 server 上启动 webhook server eg. package main import ( "crypto/hmac" "crypto/sha1" "encoding/hex" "fmt" "io/ioutil" "net/http" "os/exec" ) var ( key []byte ) func sha1Data(data []byte) string { h := hmac.……

阅读全文