Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

by-wave-calendar

自托管日历共享平台,支持网页/PWA、原生iOS/Android/macOS/Windows客户端、CalDAV双向同步、ICS订阅发布及REST API。一个域名同时搞定所有功能,国内服务器直装无国外CDN依赖。

Ficha actualizada 23 sept 2026, 14:06 · upstream 23 sept 2026, 14:03 · release desktop-v1.1.1

Ver códigoProblemas y ayudaRepositorio ↗Sitio oficial
00

Qué es by-wave-calendar

Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.

ByWave Calendar 是一个完全自托管的日历共享平台,旨在为用户提供一套可控、可备份且无需依赖任何外部 SaaS 服务的日历解决方案。项目采用 MIT 开源协议,支持网页端(Toast UI Calendar)、PWA 安装、原生 iOS/Android/macOS/Windows 客户端以及 CalDAV/ICS/REST API 等多种交互方式。

核心设计理念是“一个域名解决所有问题”,用户只需配置一次服务器即可同时提供日历展示、事件管理、协作邀请和第三方集成。平台支持周期事件(RRULE)、事件提醒、全站搜索、跨日历同步、预约链接生成以及 Web Push 通知等丰富功能。

在技术架构上,服务端采用 TypeScript + Fastify 5 + EJS + HTMX + Tailwind CSS 构建,数据库使用 PostgreSQL 16 配合 Drizzle ORM。所有第三方前端依赖(HTMX、Toast UI、SimpleWebAuthn、Tailwind)均本地化打包,确保国内服务器部署时无需额外 CDN 依赖。客户端采用 Kotlin Compose Multiplatform 实现跨平台桌面应用,iOS 和 Android 分别使用 Swift/SwiftUI 和 Jetpack Compose。

项目特别注重用户体验与安全性:支持 Passkey(WebAuthn)、TOTP MFA、多 SSO 集成、应用密码机制以及完整的登录审计日志。数据备份恢复功能采用 round-trip 自检机制,确保数据完整性。

CASOS DE USO
  • 个人日程管理:快速创建和查看日历事件,支持周期提醒和多平台同步
  • 团队协作:邀请同事共享日历,通过 RSVP 确认参与并自动添加至对方账户
  • 预约协作:发布可约时段,第三方用户在线选择时间并自动创建带参与者的事件
  • 跨应用集成:通过 CalDAV、ICS 订阅和 REST API 与 Apple Calendar、Google Calendar、Outlook 等无缝同步
  • 企业日历管理:支持多组织共享、权限控制、预约链接分发及 Webhook 事件通知
  • 开发者工具:提供完整的 REST API、OAuth 授权服务器及 Webhooks,便于集成到内部系统
PUNTOS DESTACADOS
  • 国内服务器直装无国外 CDN 依赖,部署速度极快且无需海外网络环境
  • Passkey + MFA + SSO 三重认证体系,安全性远超传统密码方案
  • Toast UI Calendar 月/周/日视图响应式完美适配移动端,体验接近原生应用
  • 支持 RFC 5545 ICS 订阅发布,可生成标准格式链接供 Google/Apple/Outlook 直接订阅
  • Web Push + APNs 双重通知机制,确保重要事件在 iOS 端也能及时送达
  • 完全本地化打包的第三方前端库(HTMX、Toast UI),国内用户无需海外网络即可使用
PRECAUCIONES
  • 不支持复杂 RRULE 表达式(如嵌套周期、日期范围计算)和 VTIMEZONE 时区处理,仅支持基础周期事件
  • Passkey 功能在部分浏览器中兼容性有限,且无法跨设备同步 Passkey 凭证
  • Web Push 通知依赖用户主动订阅,重要紧急事件可能无法通过推送方式提醒
  • iOS 客户端需手动安装并配置证书(TestFlight 或 App Store),Android 版本较旧(v0.12.0)
  • 桌面端 Compose Multiplatform 仅支持 macOS、Windows 和 Linux,不支持 Windows 桌面版
  • 数据备份恢复功能为单表导出,无法处理多用户并发编辑导致的脏读问题
VISUAL

Capturas del proyecto

Imágenes reales detectadas en la documentación del repositorio.

WebiOSEmbedByWave Calendar
01

Perfil de infraestructura

Estimación inicial derivada del repositorio y de los servicios detectados.

CPU4 vCPUrecomendación inicial
MEMORIA4 GBRAM estimada
DISCO20 GBalmacenamiento base
COMPLEJIDADhighnivel de operación
02

Despliegue detectado

Qué señales reales de instalación hemos encontrado.

Despliegue manual

部署到宝塔面板:1) 使用 Gitee 作为代码仓库(国内稳定),push 同步至 GitHub;2) .env 配置 DATABASE_URL、PUBLIC_BASE_URL 等环境变量;3) 首次运行 install.sh 自动完成依赖安装、数据库迁移和权限设置;4) 所有更新通过网页管理后台的"立即更新"按钮触发,带实时进度条和自动重启刷新。建议定期备份 PostgreSQL 数据(使用 pg_dump),并配置 SSL 证书。

—Dockerfile
—Compose
—One-click
03

Stack y dependencias

Componentes inferidos a partir de manifests, configuración y documentación.

FRAMEWORKS
Node.js
SERVICIOS
PostgreSQL
BASES DE DATOS
PostgreSQL
PUERTOS
30005432
05

Puede sustituir a

Relaciones detectadas por el análisis del repositorio y su categoría.

06

Experiencia real de la comunidad

Ayuda a contrastar la estimación automática con instalaciones reales.

Todavía no hay datos comunitarios para este proyecto.