CalDAV网络服务器Baikal

news2024/12/29 9:05:47

在这里插入图片描述

什么是 Baikal ?

Baikal 是一个免费的开源自托管 CalDavCardDav 服务器,适用于想要管理其数据并确保其数据是私有的用户。

Baikal和群晖套件中的 Synology Calendar 是类似的应用;

什么是 CalDav ?

CalDav 是一种互联网标准和协议,用于跨设备和服务同步日历。它通常用于在您的日历应用程序、网络邮件、设备和服务之间同步您的日历事件。

什么是 CardDav?

CardDavvCard 是地址簿客户端/服务器协议和标准,也是 WebDav 的扩展,允许用户在兼容的服务器上存储、同步和共享他们的联系人数据。CardDAV 协议由 IETF 开发,并于 20118 月发布为 RFC 6352

安装

建数据库

老苏用了群晖自带的 MariaDB 10 数据库。

在这里插入图片描述

phpMyAdmin 中创建名为 baikal 的空数据库。

为便于说明,假设数据库密码为 123456,但实际上可能是用的 9YdLh!Y#qK6v

在这里插入图片描述

安装镜像

在群晖上以 Docker 方式安装。

在注册表中搜索 baikal ,选择第一个 ckulka/baikal,版本选择 nginx

在这里插入图片描述

docker 文件夹中,创建一个新文件夹 baikal,并在其中建两个子文件夹,分别是 configdata

文件夹装载路径说明
docker/baikal/config/var/www/baikal/config存放设置
docker/baikal/data/var/www/baikal/Specific存放数据

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
1328180

在这里插入图片描述

命令行安装

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

# 新建文件夹 baikal 和 子目录
mkdir -p /volume2/docker/baikal/{config,data}

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

# 运行容器
docker run -d \
   --restart always \
   --name baikal \
   -p 13281:80 \
   -v $(pwd)/config:/var/www/baikal/config \
   -v $(pwd)/data:/var/www/baikal/Specific \
   ckulka/baikal:nginx

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

version: "2"

services:
  server:
    image: ckulka/baikal:nginx
    container_name: baikal
    restart: always
    ports:
      - "13281:80"
    volumes:
      - ./config:/var/www/baikal/config
      - ./data:/var/www/baikal/Specific

然后执行下面的命令

# 新建文件夹 baikal 和 子目录
mkdir -p /volume2/docker/baikal/{config,data}

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

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

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:13281 就能看到主界面

在这里插入图片描述

关于 WebDAV authentication type 有三个选项

  • Basic:应该是指基本用户验证;
  • Digest:消息摘要式身份验证;
  • Apache:使用 Apache 模块(例如 LDAPKerberosSASL)提供高级身份验证方法;

老苏选择了最简单的 Basic 认证,一方面是对 Apache 等不熟悉,也没找到相关资料,另一方面考虑到 CalDAV 客户端对认证的要求,比如 AgenDAV 就支持 Basic

Admin password 要记牢,后面登录后台会用到;

默认数据库使用的是 SQLite

在这里插入图片描述

如果多人一起用,MariaDB 性能会更高一些,这个看你应用的情况

如果数据库端口用的是 3306,可以不用带端口,但老苏用了 MariaDB 10

在这里插入图片描述

如果设置没问题的话,就可以点 start using baikal 开始使用了

先要登录,这里用到了我们前面设置的 Admin password

在这里插入图片描述

Authenticate 登录成功后会看到 Dashboard 主界面

在这里插入图片描述

进入 User and resources 菜单

在这里插入图片描述

Add User 新建一个用户

点开 Setup info,这里有 CalDAV 客户端登录时会用到 URI 和刚刚创建的用户账号、密码

到这里服务的设置就完成了

使用

Android

老苏是小米手机,自带的 日历 就支持自定义的 CalDAV 服务

打开 日历 应用,点右上角的三个点进入 设置

在这里插入图片描述

进入 日程导入

在这里插入图片描述

Caldav账号导入

在这里插入图片描述

添加 CalDAV 账号

在这里插入图片描述

添加完成后,除了 小米日历 外,还有我们刚添加的 Default calendar

Default calendar 这个名字在客户端改不了,需要到服务端修改

在这里插入图片描述

现在 创建日程 时,日历账户 可以选择默认账号了

在这里插入图片描述

iOS

iOS 设备上,进入设置 --> 日历 --> 帐户 --> 添加帐户,选择 其他

在这里插入图片描述

添加 CalDAV 账户

在这里插入图片描述

需要注意的是,iOS 不支持 http 协议,会显示 CalDAV 账号验证失败

在这里插入图片描述

所以要做反代处理,没有什么特殊设置

在这里插入图片描述

在日历中,暂时还没有,需要先 添加日历

在这里插入图片描述

随便建了一个

现在有 CalDAV 上有日历了

在这里插入图片描述

新建日程时已经可以选择 CalDAV 服务上的新日历了

在这里插入图片描述

参考文档

sabre-io/Baikal: Baïkal is a Calendar+Contacts server
地址:https://github.com/sabre-io/Baikal

ckulka/baikal-docker: Dockerfile for a ready-to-go Baikal server
地址:https://github.com/ckulka/baikal-docker

Installation using Docker - baikal
地址:https://sabre.io/baikal/docker-install/

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

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

相关文章

Qt扫盲-QVector理论总结

QVector理论总结一、概述二、使用1. 声明初始化2. 获取元素和链表信息3. 常用操作4. 迭代Vector三、注意一、概述 QVector是Qt的泛型容器类之一。它将每一个元素存储在相邻的内存位置,并提供快速的基于索引的访问。 QList, QLinkedList, QVe…

eurake原理分析以及搭建

消费者随时能够监控到服务的状态 消费者如何获取服务提供者具体的信息? 1)服务提供者启动时间eureka注册自己的信息 2)eureka保存这些信息 3)消费者根据服务名称向eureka拉取提供者的信息 如果有多个服务提供者,消费者…

VS代码生成工具ReSharper v2022.3官宣首发——支持C# 11

实质上,ReSharper特征可用于C#,VB.net,XML,Asp.net,XAML,和构建脚本。 使用ReSharper,你可以进行深度代码分析,智能代码协助,实时错误代码高亮显示,解决方案范…

网络OSI(七层模型)

OSIOSI是一个理论上的网络通信模型,而TCP/IP则是实际运行的网络协议。TCP/IPTCP/IP (传输控制协议/网际协议) 网络通信模型 以及一整个网络传输协议家族应用层应用层协议: FTP TFTP HTTP SNMP SMTP DNS Telnet表示层 数据格式化 代码转换 数据解密/加密会话层 解除或…

低代码如何构建响应式布局前端页面

“你开发的界面为啥在我的屏幕里这么小啊?” “这个界面为啥在我这里会出现横向滚动条啊?” 大家在进行前端界面开发时,有没有遇到这些类似的问题呢?又是如何解决的呢? 页面响应式 在进行项目交付的场景中&#xf…

JavaEE【Spring】:Spring AOP

文章目录一、概念1、定义2、作用二、Spring AOP1、AOP 组成① 切面(Aspect)② 连接点(Join Point)③ 切点(Pointcut)④ 通知(Advice)2、实现① 添加 AOP 框架支持② 定义切面和切点Ⅰ…

都有哪些好用的设备维护管理软件?这5款值得一试

都有哪些好用的设备维护管理软件? 速速点进来,这些超高性价比的设备维护管理App/软件不容错过! 设备是工厂及企业生存的基础,设备的正常运作是保证工厂及企业存活的前提,而要保证设备的正常运作,就必须要…

NLP预训练小结-从词向量到BERT

图像预训练预训练首先是在图像领域广泛应用的。设计网络结构后,处理图像一般是CNN的多层叠加网络结构,先用训练集对网络预先训练,处理新任务时采取相同的网络结构,在比较浅的几层CNN结构,网络参数初始化的时候可以加载…

思科路由器DHCPv6中继服务配置

配置如下: Router>ena Router#conf t Router(config)#host R1 R1(config)#ipv6 unicast-routing R1(config)#service dhcp R1(config)#int g0/1 R1(config-if)#ipv6 add 2001:1::1/64 R1(config-if)#no sh R1(config-if)#exit R1(config)#ipv6 local …

【自学Java】Java三目运算符

Java三目运算符 Java三目运算符教程 在 Java 语言 中,有一种语言可以等价于使用 if…else 进行变量的赋值操作。它就是三目运算符。 Java语言三目运算符详解 语法 Object result condition?value:value2;参数 参数描述condition条件判断符,一般运…

PointNet++详解(二):网络结构解析

如有错误,恳请指出。 在之前对PointNet与PointNet网络进行了介绍,接下来是对其代码的解析。 1. 论文阅读笔记 | 三维目标检测——PointNet 2. 论文阅读笔记 | 三维目标检测——PointNet 参考的github项目为:https://github.com/yanx27/Poi…

window10安装minio

1、首先第一步我们先下载minio 可以从官网上下不同的版本 下载地址:MinIO | Code and downloads to create high performance object storage 2、启动minio 切记不要双击minio, 1、把下载好的minio.exe放到F(我这里放到F里了),在地址栏里输…

【NI Multisim 14.0编辑环境——项目管理器】

目录 序言 一、项目管理器 ⛄1.“设计工具箱”面板 ⛄2.“SPICE 网表查看器”面板 ⛄3.“LabVIEW 协同仿真终端”面板 序言 NI Multisim最突出的特点之一就是用户界面友好。它可以使电路设计者方便、快捷地使用虚拟元器件和仪器、仪表进行电路设计和仿真。 首先启动NI Mu…

前端调试(常用)

定义调试:代码在某个平台运行,把运行时的状态通过某种方式暴露出来,传递给开发工具做 UI 的展示和交互,辅助开发者排查问题、梳理流程、了解代码运行状态等,这个就是调试。调试就是通过某种信道(比如 WebSo…

clip_as_service学习过程(二)——clip主要的功能

参考链接:https://clip-as-service.jina.ai/user-guides/client/#async-encoding 一、encoding()_编码 clip_client提供 encode() 函数,允许您以流和同步/异步方式将句子、图像发送到服务器。这里的编码意味着获取文本或图像的固定长度矢量…

【Vue中使用Echarts】在Vue中优雅的使用Echarts——图表轮播图、Echarts图表组件封装、节流函数优化图表性能

文章目录一、为什么要优雅的使用echarts二、最初的表格组件三、初步的封装四、性能优化一、为什么要优雅的使用echarts 为了提高代码的规范性、复用性,vue中最常用的就是将具有某些功能的代码封装到一个插件。如果没有对插件进行封装,在后期使用插件的时…

2022年区块链白皮书详解及内容分享

目录 导 读 技术创新稳步推进 应用路径日益清晰 产业趋稳资本活跃 多地加快战略布局 白皮书具体内容如下 导 读 区块链是构建信任的基石,是实现信用传递,价值传递的可信网络。区块链聚焦构建安全、可靠的区块链基础设施,让企业、政府快速…

2023北京/上海/广州/深圳NPDP产品经理国际认证招生中

产品经理国际资格认证NPDP是国际公认的唯一的新产品开发专业认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会(PDMA)成立于1979年…

【算法】动态规划(第五章习题解答)

5 动态规划 5.1 图书馆大门前有 nnn 级台阶, 你每次跨上 111 级或者 222 级, 请问等上 nnn 级台阶总共有多少种不同的方法? 设计一个算法求解上述问题, 尝试写出公式, 说明算法设计思想和时间复杂度. 算法设计:核心思路是函数的递归调用,当处理nnn级台…

drawImage 详解

背景: 在canvas的开发中 总会碰到drawImage这个API,但是里面有9个参数,具体代表什么意思有时候会把自己搞混乱了,特此记录一下,加深影响。 drawImage 方法有三种形态: drawImage(image, dx, dy) 在画布指…