# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: Davis
spec:
    description: |
        Davis is a lightweight CardDAV, CalDAV, and WebDAV server based on sabre/dav. Sync contacts, calendars, and files across devices with a simple admin interface — runs on SQLite with no external database needed.
    coverImage: https://raw.githubusercontent.com/tchapi/davis/main/_screenshots/dashboard.png
    icon: https://avatars.githubusercontent.com/u/947838
    variables:
        - key: PUBLIC_DOMAIN
          type: DOMAIN
          name: Domain
          description: The domain to access Davis
        - key: ADMIN_PASSWORD
          type: PASSWORD
          name: Admin Password
          description: Password for the Davis admin interface
    tags:
        - Tool
        - Productivity
    readme: |
        # Davis

        A lightweight CardDAV, CalDAV, and WebDAV server. Sync contacts and calendars across all your devices with a clean admin interface.

        ## Default Login

        - **Username**: `admin`
        - **Password**: the password you set during template deployment (or check the `ADMIN_PASSWORD` environment variable in Zeabur console)

        ## What You Can Do After Deployment

        1. **Visit your domain** — log in with the admin credentials
        2. **Create users** — add CalDAV/CardDAV accounts for each person
        3. **Sync calendars** — connect any CalDAV client (Apple Calendar, Thunderbird, DAVx5)
        4. **Sync contacts** — connect any CardDAV client (Apple Contacts, Thunderbird, DAVx5)
        5. **Manage address books and calendars** — create, rename, or delete from the admin panel

        ## Client Configuration

        Use these URLs in your CalDAV/CardDAV client:

        - **CalDAV**: `https://<your-domain>/dav/calendars/<username>/`
        - **CardDAV**: `https://<your-domain>/dav/addressbooks/<username>/`

        ## Key Features

        - CalDAV calendar sync
        - CardDAV contact sync
        - WebDAV file storage (optional)
        - Simple admin interface for user and resource management
        - Supports Basic and IMAP authentication
        - SQLite backend — no external database needed
        - Built-in Caddy web server (standalone image)

        ## License

        MIT — [GitHub](https://github.com/tchapi/davis)
    services:
        - name: davis
          icon: https://avatars.githubusercontent.com/u/947838
          template: PREBUILT_V2
          spec:
            source:
                image: ghcr.io/tchapi/davis-standalone:v5.4.1
            ports:
                - id: web
                  port: 9000
                  type: HTTP
            volumes:
                - id: data
                  dir: /data
            env:
                ADMIN_LOGIN:
                    default: admin
                ADMIN_PASSWORD:
                    default: ${ADMIN_PASSWORD}
                APP_ENV:
                    default: prod
                AUTH_METHOD:
                    default: Basic
                AUTH_REALM:
                    default: SabreDAV
                CALDAV_ENABLED:
                    default: "true"
                CARDDAV_ENABLED:
                    default: "true"
                DATABASE_DRIVER:
                    default: sqlite
                DATABASE_URL:
                    default: sqlite:////data/davis-database.db
                SYMFONY_TRUSTED_PROXIES:
                    default: REMOTE_ADDR
                WEBDAV_ENABLED:
                    default: "false"
            healthCheck:
                type: HTTP
                port: web
                http:
                    path: /
          domainKey: PUBLIC_DOMAIN
localization:
    es-ES:
        description: |
            Davis es un servidor ligero de CardDAV, CalDAV y WebDAV basado en sabre/dav. Sincroniza contactos, calendarios y archivos entre dispositivos con SQLite integrado.
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: Dominio
              description: El dominio para acceder a Davis
            - key: ADMIN_PASSWORD
              type: STRING
              name: Contraseña de admin
              description: Contraseña para la interfaz de administración de Davis
        readme: |
            # Davis

            Servidor ligero de CardDAV, CalDAV y WebDAV. Sincroniza contactos y calendarios en todos tus dispositivos.

            ## Credenciales por defecto

            - **Usuario**: `admin`
            - **Contraseña**: la establecida durante el despliegue (o consulta la variable `ADMIN_PASSWORD` en la consola de Zeabur)

            ## Qué puedes hacer después del despliegue

            1. **Visita tu dominio** — inicia sesión con las credenciales de admin
            2. **Crear usuarios** — añade cuentas CalDAV/CardDAV
            3. **Sincronizar calendarios** — conecta cualquier cliente CalDAV
            4. **Sincronizar contactos** — conecta cualquier cliente CardDAV
            5. **Gestionar libretas y calendarios** — crear, renombrar o eliminar desde el panel

            ## Licencia

            MIT — [GitHub](https://github.com/tchapi/davis)
    id-ID:
        description: |
            Davis adalah server CardDAV, CalDAV, dan WebDAV ringan berbasis sabre/dav. Sinkronkan kontak, kalender, dan file antar perangkat dengan SQLite bawaan.
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: Domain
              description: Domain untuk mengakses Davis
            - key: ADMIN_PASSWORD
              type: STRING
              name: Password Admin
              description: Password untuk antarmuka admin Davis
        readme: |
            # Davis

            Server CardDAV, CalDAV, dan WebDAV ringan. Sinkronkan kontak dan kalender di semua perangkat Anda.

            ## Info Login Default

            - **Username**: `admin`
            - **Password**: password yang ditetapkan saat deploy (atau periksa variabel `ADMIN_PASSWORD` di konsol Zeabur)

            ## Apa yang bisa dilakukan setelah deploy

            1. **Buka domain** — login dengan kredensial admin
            2. **Buat pengguna** — tambahkan akun CalDAV/CardDAV
            3. **Sinkron kalender** — hubungkan klien CalDAV
            4. **Sinkron kontak** — hubungkan klien CardDAV
            5. **Kelola buku alamat dan kalender** — buat, ganti nama, atau hapus dari panel admin

            ## Lisensi

            MIT — [GitHub](https://github.com/tchapi/davis)
    ja-JP:
        description: |
            Davis は sabre/dav ベースの軽量 CardDAV・CalDAV・WebDAV サーバーです。デバイス間で連絡先やカレンダーを同期でき、SQLite で動作します。
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: ドメイン
              description: Davis にアクセスするためのドメイン
            - key: ADMIN_PASSWORD
              type: STRING
              name: 管理者パスワード
              description: Davis 管理画面のパスワード
        readme: |
            # Davis

            軽量な CardDAV・CalDAV・WebDAV サーバー。すべてのデバイスで連絡先とカレンダーを同期。

            ## デフォルトログイン情報

            - **ユーザー名**：`admin`
            - **パスワード**：デプロイ時に設定したパスワード（Zeabur コンソールの `ADMIN_PASSWORD` 環境変数で確認可能）

            ## デプロイ後にできること

            1. **ドメインにアクセス** — 管理者認証情報でログイン
            2. **ユーザー作成** — CalDAV/CardDAV アカウントを追加
            3. **カレンダー同期** — CalDAV クライアントを接続
            4. **連絡先同期** — CardDAV クライアントを接続
            5. **アドレス帳とカレンダー管理** — 管理画面から作成・名前変更・削除

            ## ライセンス

            MIT — [GitHub](https://github.com/tchapi/davis)
    ko-KR:
        description: |
            Davis는 sabre/dav 기반의 경량 CardDAV, CalDAV, WebDAV 서버입니다. 기기 간 연락처와 캘린더를 동기화하며 SQLite로 동작합니다.
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: 도메인
              description: Davis에 접속할 도메인
            - key: ADMIN_PASSWORD
              type: STRING
              name: 관리자 비밀번호
              description: Davis 관리 인터페이스 비밀번호
        readme: |
            # Davis

            경량 CardDAV, CalDAV, WebDAV 서버. 모든 기기에서 연락처와 캘린더를 동기화합니다.

            ## 기본 로그인 정보

            - **사용자명**: `admin`
            - **비밀번호**: 배포 시 설정한 비밀번호 (Zeabur 콘솔의 `ADMIN_PASSWORD` 환경변수에서 확인 가능)

            ## 배포 후 할 수 있는 것

            1. **도메인 접속** — 관리자 인증 정보로 로그인
            2. **사용자 생성** — CalDAV/CardDAV 계정 추가
            3. **캘린더 동기화** — CalDAV 클라이언트 연결
            4. **연락처 동기화** — CardDAV 클라이언트 연결
            5. **주소록 및 캘린더 관리** — 관리 패널에서 생성, 이름 변경, 삭제

            ## 라이선스

            MIT — [GitHub](https://github.com/tchapi/davis)
    th-TH:
        description: |
            Davis เป็นเซิร์ฟเวอร์ CardDAV, CalDAV และ WebDAV น้ำหนักเบาที่ใช้ sabre/dav ซิงค์ผู้ติดต่อ ปฏิทิน และไฟล์ข้ามอุปกรณ์ด้วย SQLite ในตัว
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: โดเมน
              description: โดเมนสำหรับเข้าถึง Davis
            - key: ADMIN_PASSWORD
              type: STRING
              name: รหัสผ่านแอดมิน
              description: รหัสผ่านสำหรับหน้าจัดการ Davis
        readme: |
            # Davis

            เซิร์ฟเวอร์ CardDAV, CalDAV และ WebDAV น้ำหนักเบา ซิงค์ผู้ติดต่อและปฏิทินในทุกอุปกรณ์

            ## ข้อมูลเข้าสู่ระบบเริ่มต้น

            - **ชื่อผู้ใช้**: `admin`
            - **รหัสผ่าน**: รหัสผ่านที่ตั้งไว้ตอนติดตั้ง (หรือตรวจสอบตัวแปร `ADMIN_PASSWORD` ใน Zeabur คอนโซล)

            ## สิ่งที่ทำได้หลังจากติดตั้ง

            1. **เข้าสู่โดเมน** — เข้าสู่ระบบด้วยข้อมูลแอดมิน
            2. **สร้างผู้ใช้** — เพิ่มบัญชี CalDAV/CardDAV
            3. **ซิงค์ปฏิทิน** — เชื่อมต่อ CalDAV client
            4. **ซิงค์ผู้ติดต่อ** — เชื่อมต่อ CardDAV client
            5. **จัดการสมุดที่อยู่และปฏิทิน** — สร้าง เปลี่ยนชื่อ หรือลบจากแผงควบคุม

            ## สัญญาอนุญาต

            MIT — [GitHub](https://github.com/tchapi/davis)
    zh-CN:
        description: |
            Davis 是基于 sabre/dav 的轻量级 CardDAV、CalDAV 和 WebDAV 服务器。跨设备同步联系人、日历和文件，内置管理界面，使用 SQLite 无需外部数据库。
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: 域名
              description: 访问 Davis 的域名
            - key: ADMIN_PASSWORD
              type: STRING
              name: 管理员密码
              description: Davis 管理界面的密码
        readme: |
            # Davis

            轻量级 CardDAV、CalDAV 和 WebDAV 服务器。跨设备同步联系人和日历，附带简洁的管理界面。

            ## 默认登录信息

            - **账号**：`admin`
            - **密码**：部署时设置的密码（或在 Zeabur 控制台查看 `ADMIN_PASSWORD` 环境变量）

            ## 部署后可以做什么

            1. **打开域名** — 使用管理员账密登录
            2. **创建用户** — 为每个人添加 CalDAV/CardDAV 账号
            3. **同步日历** — 连接任何 CalDAV 客户端
            4. **同步联系人** — 连接任何 CardDAV 客户端
            5. **管理通讯录和日历** — 在管理面板中创建、重命名或删除

            ## 授权

            MIT — [GitHub](https://github.com/tchapi/davis)
    zh-TW:
        description: |
            Davis 是基於 sabre/dav 的輕量級 CardDAV、CalDAV 和 WebDAV 伺服器。跨裝置同步聯絡人、行事曆和檔案，內建管理介面，使用 SQLite 無需外部資料庫。
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: 網域
              description: 存取 Davis 的網域
            - key: ADMIN_PASSWORD
              type: STRING
              name: 管理員密碼
              description: Davis 管理介面的密碼
        readme: |
            # Davis

            輕量級 CardDAV、CalDAV 和 WebDAV 伺服器。跨裝置同步聯絡人和行事曆，附帶簡潔的管理介面。

            ## 預設登入資訊

            - **帳號**：`admin`
            - **密碼**：部署時設定的密碼（或在 Zeabur 控制台查看 `ADMIN_PASSWORD` 環境變數）

            ## 部署後可以做什麼

            1. **開啟網域** — 使用管理員帳密登入
            2. **建立使用者** — 為每個人新增 CalDAV/CardDAV 帳號
            3. **同步行事曆** — 連接任何 CalDAV 客戶端
            4. **同步聯絡人** — 連接任何 CardDAV 客戶端
            5. **管理通訊錄和行事曆** — 在管理面板中建立、重新命名或刪除

            ## 授權

            MIT — [GitHub](https://github.com/tchapi/davis)
