开源文档协作套件CryptPad

news2024/11/19 0:27:27

在这里插入图片描述

本文完成于 20229 月,11月的时候补充了些内容,修改了部分图片,原本是准备发的,不知什么原因又给拖延了;
当时的版是 v5.1.0,而现在最新的版本是 v5.2.1

什么是 CryptPad ?

CryptPad 是一个端到端加密和开源的协作套件。它旨在支持协作,实时同步对文档的更改。由于所有数据都是加密的,因此服务及其管理员无法查看正在编辑和存储的内容。

老苏觉得可以作为 Google 在线办公产品套件的优秀的替代品

在这里插入图片描述

CryptPad 的一些文件格式转换工具是基于 OnlyOffice 的代码,但是,这仅涉及客户端代码,CryptPad 并不使用 OnlyOffice 文档服务器。CryptPad 的加密协作,与上游 OnlyOffice 部分使用的加密系统完全不同。

CryptPad 是完全私有的,所有的内容都是由你的浏览器进行加密和解密的。这意味着文件、聊天记录在你登录的会话之外是无法阅读的。即使是服务管理员也无法得到你的信息。

准备

域名

服务器配置使用了字段 httpUnsafeOriginhttpSafeOrigin2 个不同的 URL

默认情况下,在开发实例上,它们对应于 http://localhost:3000/( unsafe ) http://localhost:3001/( safe )。第二个(安全)通常不向用户显示,它只在 iframe 内部使用。

使用安全 URL 手动打开 CryptPad 不会提供对应用程序的访问。但还是要两个域才能充分利用 CryptPad 的安全功能。

因为协作所以肯定不只是在局域网使用,所以老苏准备了 2个域名

但其实从头至尾也没用上第二个域名,😂

容器端口域名
主域3100cryptpad.laosu.ml
沙箱3101sandbox.laosu.ml

因为没有备案,实际访问时需带上端口,例如:https://cryptpad.laosu.ml:444

设置文件

官方提供了 config.example.js,我们可以直接从https://raw.githubusercontent.com/xwiki-labs/cryptpad/main/config/config.example.js 直接另存为 config.js,但接下来要做两处修改

  • 第一处,找到 httpUnsafeOrigin: 'http://localhost:3000',,将其改为我们设置的主域 httpUnsafeOrigin: 'https://cryptpad.laosu.ml:444',

在这里插入图片描述

  • 第二处,找到installMethod: 'unspecified', ,将其改为 installMethod: 'docker',

安装

在群晖上以 Docker 方式安装。

cryptpad 分为独立版(标签为latestalpine)和 nginx 代理版(标签为nginxnginx-alpine),但老苏用到 npm 做反代,所以没去研究nginx 代理版的两个版本,也就只知道环境变量很多,有兴趣可以自己研究

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 cryptpad 和 子目录
mkdir -p /volume2/docker/cryptpad/{customize,data/{blob,block,data,files}}

# 进入 cryptpad 目录
cd /volume2/docker/cryptpad

# 将 config.js 放入当前目录

# 修改所有权
chown -R 4001:4001 config.js data customize

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name cryptpad \
   -p 3100:3000 \
   -p 3101:3001 \
   -v ${PWD}/config.js:/cryptpad/config/config.js \
   -v ${PWD}/customize:/cryptpad/customize \
   -v ${PWD}/data/blob:/cryptpad/blob \
   -v ${PWD}/data/block:/cryptpad/block \
   -v ${PWD}/data/data:/cryptpad/data \
   -v ${PWD}/data/files:/cryptpad/datastore \
   promasu/cryptpad

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
  cryptpad:
    image: promasu/cryptpad
    container_name: cryptpad
    restart: unless-stopped
    ports:
      - 3100:3000
      - 3101:3001
    volumes:
      - ./config.js:/cryptpad/config/config.js
      - ./customize:/cryptpad/customize
      - ./data/blob:/cryptpad/blob
      - ./data/block:/cryptpad/block
      - ./data/data:/cryptpad/data
      - ./data/files:/cryptpad/datastore

然后执行下面的命令

# 新建文件夹 cryptpad 和 子目录
mkdir -p /volume2/docker/cryptpad/{customize,data/{blob,block,data,files}}

# 进入 cryptpad 目录
cd /volume2/docker/cryptpad

# 将 docker-compose.yml 和 config.js 放入当前目录

# 修改所有权
chown -R 4001:4001 config.js data customize

# 一键启动
docker-compose up -d

在这里插入图片描述

运行

在浏览器中输入 https://cryptpad.laosu.ml:444 ,就能看到主界面

默认支持繁体中文

在这里插入图片描述

先要注册用户

在这里插入图片描述

需要注意:

  • 密码不能少于 8 位;
  • 密码如果忘记了,是不能找回的;

在这里插入图片描述

当然你也可以用访客

在这里插入图片描述

登录过程

在这里插入图片描述

登录成功 后的主界面

在这里插入图片描述

新建一个文档,可选的类型挺丰富的

在这里插入图片描述

新建一个白板试试

在这里插入图片描述

所有创建的文件都可以在 磁碟 中找到

在这里插入图片描述

配置管理员

直接按照官方的说明操作,原文在:https://docs.cryptpad.org/en/admin_guide/installation.html?highlight=adminkeys#configure-administrators

在这里插入图片描述

找到注册用户的公钥

在这里插入图片描述

复制后写入到 config.js 中,记得保存后,需要重启 CryptPad 容器

在这里插入图片描述

在用户菜单中,会多出 管理员

在这里插入图片描述

管理员能做一些系统设置、管理工作,比如 关闭注册

在这里插入图片描述

遗留问题

工作表中,存在部分菜单不能正常显示

中文输入也会显示为方块

在这里插入图片描述

其他模块中暂时未发现,显然不像是字体问题,有点奇怪

参考文档

xwiki-labs/cryptpad: Collaboration suite, end-to-end encrypted and open-source.
地址:https://github.com/xwiki-labs/cryptpad

xwiki-labs/cryptpad-docker
地址:https://github.com/xwiki-labs/cryptpad-docker

CryptPad.org
地址:https://cryptpad.org/

CryptPad Documentation — CryptPad 5.0 documentation
地址:https://docs.cryptpad.org/en/

CONFIG · Issue #795 · xwiki-labs/cryptpad
地址:https://github.com/xwiki-labs/cryptpad/issues/795

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/159839.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WEB页面执行shell命令

上面是我的微信和QQ群,欢迎新朋友的加入。1.安装apache服务apt-get install apache22.创建shell脚本cd /var/www/cgi-bin/ vim shell#!/bin/sh alias urldecodesed "s g;s%\\\\xg" | xargs -0 printf "%b" echo "Content-Type: text/html;…

springboot通过controller,dao,service,serviceImpl的基类快速实现各个实体类的增删改查分页等操作

1.pom.xml文件: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/PO…

【1】K8s上部署KubeSphere

目录 1、环境初始化 【1】改名字和主机名解析 【2】时间同步 【3】禁用iptables和firewalld服务&#xff08;三台都要设置&#xff09; 【4】禁用selinux&#xff08;三台都要设置&#xff09; 【5】禁用swap分区 【6】修改linux的内核参数 2、安装docker 【1】安装doc…

化学试剂Silane-PEG-Biotin,硅烷聚乙二醇生物素材料说明

英文名称&#xff1a;Biotin-PEG-Silane 中文名称&#xff1a;生物素-聚乙二醇-硅烷 分子量&#xff1a;1k&#xff0c;2k&#xff0c;3.4k&#xff0c;5k&#xff0c;10k&#xff0c;20k。。。 存储条件&#xff1a;-20C&#xff0c;避光&#xff0c;避湿 用 途&#xff…

RS485 TO ETH (B)无法联网怎么解决?

1 设置下静态IP&#xff0c;例如&#xff1a; RS485 TO ETH (B) 设置为 192.168.1.200 端口号1111&#xff1b; 电脑设置为192.168.1.199 端口号1111&#xff1b; 2 用互联网社区分享的TCP服务器测试下&#xff1a;120.79.100.197 端口号 10002 3 请关闭电脑的所有防火墙&am…

Java 中 List 排序的 3 种方法

在某些特殊的场景下&#xff0c;我们需要在 Java 程序中对 List 集合进行排序操作。比如从第三方接口中获取所有用户的列表&#xff0c;但列表默认是以用户编号从小到大进行排序的&#xff0c;而我们的系统需要按照用户的年龄从大到小进行排序&#xff0c;这个时候&#xff0c;…

1.1.1信号的概念、描述及分类

目录 1.信号的概念 2.描述 3.分类 3.1确定信号和随机信号 ​3.2连续信号和离散信号​​​​​​​ 两者之间存在这样一种关系 3.3周期信号和非周期信号 3.4能量信号和功率信号 一些例题 1.信号的概念 信号是表示消息的 物理量 &#xff0c;如电信号可以通过 幅度 、 …

23.指针数组的概念,定义方法

1.二维数组 二维数组有行有列&#xff0c;二维数组可以看成由多个一维数组构成的&#xff0c;是多个一维数组的集合&#xff0c;可以认为二维数组的每一个元素都是一个一维数组。 #include<stdio.h> int main() {int a[3][5];printf("a%p\n",a);printf("…

Zabbix与乐维监控对比分析(八)——其他功能篇

前面我们详细介绍了Zabbix与乐维监控的架构与性能、Agent管理、自动发现、权限管理、对象管理、告警管理、可视化、图形图表及网络功能方面的对比分析&#xff0c;接下来我们将对二者其他功能进行对比分析。 本篇是Zabbix与乐维监控对比分析专题系列文章的第八篇&#xff0c;也…

Visual Studio Code快捷键的使用-RK3568开发

在 Visual Studio Code 软件中使用快捷键可以增加自身的效率&#xff0c;一些常用的快捷键如下所 示&#xff1a; F1 打开可以输入命令 F2 重命名变量&#xff0c;方便重构 F5 运行和调试代码 F12 去到定义的地方 shiftF12 查找所有引用 ctrlg 会让你输入数字&#xff0c;快速定…

SpringBoot2源码1-嵌入式Tomcat启动和@SpringBootApplication注解原理

1. 测试案例 1.1 引入依赖 <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.5</ve…

看完RabbitMQ了的几种消息模型,我对RabbitMQ有了新的认识

前言&#xff1a;大家好&#xff0c;我是小威&#xff0c;24届毕业生&#xff0c;曾经在某央企公司实习&#xff0c;目前在某税务公司。前面已经记录了两种消息模型知识&#xff0c;因此本篇文章将记录和分享剩下的RabbitMQ几种消息模型相关知识点。 本篇文章记录的基础知识&am…

锁策略和synchronized

1.常见的锁策略&#xff08;1&#xff09;乐观锁 和 悲观锁乐观锁&#xff1a;预测锁竞争的情况不激烈&#xff08;工作量较少&#xff09;悲观锁&#xff1a;预测锁竞争的情况很激烈&#xff08;工作量较多&#xff09;&#xff08;2&#xff09;轻量级锁 和 重量级锁轻量级锁…

IDEA Alibaba代码格式化(EclipseCodeFormatter)

1.阿里模板下载地址https://github.com/alibaba/p3c/tree/master/p3c-formatter2.下载阿里配置文件&#xff08;eclipse-codestyle.xml&#xff09;&#xff0c;因为此文件是针对ecplice的&#xff0c;在IDEA中使用配置文件&#xff0c;需要安装Eclipse Code Formatter插件3.配…

文档控件 Aspose.PDF for Java 授权须知

Aspose.PDF是一款高级PDF处理API&#xff0c;可以在跨平台应用程序中轻松生成&#xff0c;修改&#xff0c;转换&#xff0c;呈现&#xff0c;保护和打印文档。无需使用Adobe Acrobat。此外&#xff0c;API提供压缩选项&#xff0c;表创建和处理&#xff0c;图形和图像功能&…

马蹄集 卡罗尔数

卡罗尔数 难度&#xff1a;白银 0时间限制&#xff1a;1秒 巴占用内存&#xff1a;64M 卡罗尔数是其值满足4n-2(n1)-1的整数(n为正整数)。输入正整 数N判断它是不是卡罗尔数&#xff0c;输出YES或者NO。 #include <bits/stdc.h>> using namespace std; int main(…

SpringMVC超详解

SpringMVC超详解1、SpringMVC简介1.1、什么是MVCMVC是一种软件架构的思想&#xff0c;将软件按照模型、视图、控制器来划分M&#xff1a;Model&#xff0c;模型层&#xff0c;指工程中的JavaBean&#xff0c;作用是处理数据JavaBean分为两类&#xff1a;一类称为实体类Bean&…

算法拾遗二十四之暴力递归到动态规划二

算法拾遗二十四之暴力递归到动态规划二背包问题一优化题目二优化题目三&#xff08;贴纸拼词&#xff09;优化题目四&#xff1a;最长公共子序列优化背包问题一 weights[i]和values[i]的值都是大于等于0的&#xff0c;不存在负数的情况。 可以从尝试入手&#xff0c;改动态规划…

基于智能矿山电力监控系统的设计与应用方法

摘要&#xff1a;随着煤矿建设的智能化程度越来越高&#xff0c;构建智能电力监控系统实现对矿山生产的有效监控至关重要。首先分析了矿山电力监控系统存在的主要问题&#xff0c;其次重点介绍了基于智能矿山电力监控系统的设计过程&#xff0c;后提出了加强智能电力监控系统的…

Inspur KOS 龙蜥衍生版面向智慧新媒体转型的探索与实践 | 龙蜥案例

编者按&#xff1a;日前&#xff0c;龙蜥社区理事单位浪潮信息正式对外发布基于龙蜥操作系统&#xff08;Anolis OS&#xff09;的服务器操作系统 Inspur KOS&#xff0c;并基于 Inspur KOS 推出可视化迁移方案 C2K&#xff0c;该方案能够将用户应用安全可靠地切换到 Inspur KO…