docker系列 使用docker基于cryptgeon搭建自己的阅后即焚应用
本文最后更新于 339 天前,其中的信息可能已经有所发展或是发生改变,如有失效可到评论区留言。

前言

我们经常需要在微信,qq或者其他类似聊天工具上给朋友发送文本、链接或者文件,但是要知道在当下严峻的环境下(且以后会越来越严峻),你发的所有东西都是有记录的,且会保留3-5年。虽然我们都是守法良民,身正不怕影子斜。。但是让别人随便看自己发的东西总归是很不爽的,这个时候阅后即焚就是很好的解决方案(能够生成一次性链接或者二维码,点开看一次链接或者二维码就失效了)。可惜的是,在我国,阅后即焚之类的服务是禁忌,原因你懂的,所以如果要使用该类业务,最好的方式就是使用别人提供的或者自己搭建。

对于奉行"自力更生"以及坐拥规模以上"家庭数据中心"的我来,当然确定一定以及肯定的选择了自己搭建了,所以就自然面临了选择的问题,毕竟还是有不少选择的:
1、PasteMe
其实这个项目是不错的,可惜被约谈了一次以后,已经2年多没更新了,原本功能是很强大的:

image.png

image.png

可以看出PasteMe的强大主要在于文本的分享,以及可以配合curl和wget获取代码,不过由于被查水表后新版PasteMe在未登录状态下只能阅读1次或者5分钟后失效,不能多次阅读,最关键用户系统还没开始做~~~~所以使用上限制极大,只能简单作为阅后及焚来用了,真是可惜。
2、NaiveBoom
这个着实简单得过分了,啥选项都没有,就只能粘贴文本内容,生成一次性链接,估计极简主义的人喜欢,和残废后的PasetMe差不多:
image.png

3、Privatebin
这个功能就强大了不少:

image.png

可选"有效期"(最长1小时),可选"阅后即焚"(勾上就可读取1次,不勾就不限读取次数),可选"密码",可选"附件",可选"格式"(纯文本、源代码、markdown)。总的来说,这个提供的功能已经足够强大,完全足够使用了,作为可选之一。

4、cryptgeon

image.png

功能上和Privatebin比大差不差,功能有细节上的差异:
1、阅读次数:
比如cryptgeon可以设置阅读次数,最大可以设置100次;Privatebin只能选择阅读1次或者一直存在,一直存在时还能允许开放讨论。
2、有效期:
cryptgeon有效期可设置最长6小时;Privatebin最长1小时。
3、密码:
crptgeon的密码除了自己手动设置,还能够自动生成(Privatebin只能自己手动设置)。

比较之后,功能上3和4都满足我的要求,从可定制化方面3更要胜出一筹:
Privatebin可定制化选项更多,可以配合mariadb或者mysql使用,如果要长期存放文本数据Privatebin完胜,因为cryptgeon的内容只能存放在内存中,一重启啥都没了~。讲道理我应该选择Privatebin才是。不过问题在于,这是放互联网上啊。。PasteMe为啥被查水表?就是因为可以永久存储,然后被人利用传播一些东西,如果是支持注册我还不怕,关键3和4都不支持。。所以思来想去,我还是选择了cryptgeon,因为它不能实现永久存储:要么100次阅读,要么6小时~~。

部署cryptgeon

因为需要redis加速,所以需要额外创建redis和cryptgeon所连接的bridge:"public-net"。

创建public-net网络

docker network create public-net

部署redis

创建宿主机上需要挂载到容器内部的目录

mkdir -p /docker/redis/data

部署redis

docker run格式命令如下:

docker run --name redis -d --restart=always --net=public-net \
  -p 6379:6379 \
  -v /docker/redis/data:/data \
 redis

创建cryptgeon

docker run格式命令如下:

docker run --name cryptgeon -d --restart=always --net=public-net \
  -e redis=redis://redis \ #指定redis的地址
  -e SIZE_LIMIT=100M \ #单个note的最大大小,这个大家根据自己的需要进行设置
  -p 9030:8000 \  #映射宿主机的端口到容器内部的8000,宿主机端口大家根据自己实际环境设置
cupcakearmy/cryptgeon

部署Privatebin(附送内容)

鉴于有些朋友可能比较刚,更喜欢永久存储,我也把Privatebin的部署命令放上来以供大家研究。

创建宿主机上需要挂载到容器内部的目录

mkdir -p /docker/privatebin/data

部署Privatebin

docker run --name privatebin -d --restart=always --net=public-net \
  --read-only \ #该镜像支持以只读模式运行。使用这种模式可略微降低攻击面,因为利用其中一个镜像服务的漏洞无法覆盖容器中的任意文件。只有 /tmp、/var/tmp、/var/run 和 /srv/data 可被写入
  -p 8080:8080 \ #映射宿主机的8080端口到容器的8080端口,这个大家可以根据自己实际情况进行调整
  -v /docker/privatebin/conf.php:/srv/cfg/conf.php:ro \ #可选项,如果大家准备使用mariadb或者mysql,或进行其他定制化,例如广告等,则可以进行此操作,不过需要先创建一次容器然后将conf.php文件复制出来
  -v /docker/privatebin/data:/srv/data #系统文件夹的路径,粘贴和其他服务数据保存在该文件夹中。这样可以确保在停止和重启镜像或更换镜像后,粘贴不会丢失。
privatebin/nginx-fpm-alpine

配置公网访问

如果cryptgeon要发布到公网上使用,大家需要根据实际环境和自己使用的反向代理选择最适合自己的发布方式,可以参考我以前的几篇文章:
1、docker系列 使用docker基于NPM搭建自己的反向代理
2、linux面板系列 配置反向代理并使用非443端口进行发布
3、家庭数据中心系列 通过国内备案云主机白嫖cloudflare实现国外快速访问国内站点
4、家庭数据中心系列 通过无公网IP的家庭宽带白嫖cloudflare实现快速建站(通用)

其中第1,2种方式适合有公网ip却没有合法443端口的环境(家庭宽带、未备案的云主机),需要在url后面加非标端口(如果使用cloudflare建站的不需要加端口,但是需要自定义源站端口,这个可以参考:家庭数据中心系列 通过cloudflare的Origin Rules解决建站有公网IP却没有合法的80、443端口的问题)。第3种方式适合有备案的云主机,第4种方式适合所有环境(包括没有公网IP的环境),也是我建议的方式(不管你的环境有没有公网IP,因为这种方式不需要直接在公网上跑https流量)。

后话

正常情况下,我写一篇文章,都会把实际的成果展现给大家看,不过阅后即焚这个就算了,一来本来也简单,一个界面截图就把支持的功能都展现了;二来的确有危险性,像PasteMe被查水表,免责声明根本没用,别人不认这个。。所以大家最好还是自己搭建自己的阅后即焚最为科学。同时,最好不要使用国内域名供应商购买的域名来做阅后即焚的域名,也不要使用国内的ip,这些都是为了以防万一,要放就放在cloudflare上,反正蹭free计划,又不给钱,还安全,一定要慎之又慎啊。

另:bitwarden自带的send也可以当做阅后即焚使用:

image.png

image.png

bitwarden具体搭建步骤可以参考我另一篇文章:docker系列 使用docker基于bitwarden搭建自己的密码管理系统

博客内容均系原创,转载请注明出处!更多博客文章,可以移步至网站地图了解。博客的RSS地址为:https://blog.tangwudi.com/feed,欢迎订阅;如有需要,可以加入Telegram群一起讨论问题。

评论

  1. Android Chrome 124.0.0.0
    8 月前
    2024-5-19 8:22:09

    谢谢博主分享了一个可以用来替代 Bitwarden Send 的私人部署方案,自从 Firefox 的 Send 停止开发后一直想找个能私人部署的方案都没找到,而 Bwd Send 太私密了,不太想用它来做临时分享。

    • 博主
      清雨
      Macintosh Chrome 124.0.0.0
      8 月前
      2024-5-19 9:00:23

      其实这类的应用还有不少,cryptgeon只是我觉得最轻量化,如果你要长期保留内容或者想要更多功能,是有其他选择的,只是就需要用到数据库了,没啥必要,而且反而比较危险,网上太多这类分享型的应用被别人不当利用最后连累了软件开发者或者搭建者的。

      • tangwudi
        Android Chrome 124.0.0.0
        8 月前
        2024-5-19 9:09:42

        长期保存的分享有比较多的替代方案,我和博主的想法差不多,这个只是用来做朋友间的临时私密分享,不公开给别人。

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
       

本站已禁用鼠标右键和各种快捷键,代码块内容可以直接在右上角点击复制按钮进行复制

zh_CN