# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: Algernon
spec:
    description: |
        Algernon is a small, self-contained pure-Go web server with built-in support for Lua, Teal, Markdown, Ollama (LLMs), HTTP/2, QUIC, BoltDB, Redis, SQLite, and PostgreSQL. Includes an embedded BoltDB database and serves content with zero configuration.
    coverImage: https://raw.githubusercontent.com/xyproto/algernon/main/img/algernon_logo.png
    icon: https://raw.githubusercontent.com/xyproto/algernon/main/img/algernon_logo.png
    variables:
        - key: PUBLIC_DOMAIN
          type: DOMAIN
          name: Domain
          description: The domain to access Algernon
    tags:
        - Tool
        - Website
    readme: |
        # Algernon

        A small, self-contained pure-Go web server with built-in support for Lua scripting, Markdown rendering, Ollama LLM integration, and an embedded BoltDB database. Serve dynamic websites with zero configuration.

        ## What You Can Do After Deployment

        1. **Visit your domain** — the default welcome page is displayed
        2. **Upload content** — place Markdown, Lua, HTML, or Teal files in the `/srv/algernon` directory
        3. **Use Lua scripting** — create dynamic pages with server-side Lua (`.lua` files)
        4. **Render Markdown** — place `.md` files and they are automatically rendered as HTML
        5. **Use the embedded database** — BoltDB is available from Lua scripts for persistent key/value storage
        6. **Serve static files** — HTML, CSS, JS, images are served directly
        7. **Integrate with Ollama** — use AI/LLM capabilities from Lua scripts via `.prompt` files

        ## Key Features

        - Pure Go, single binary, no dependencies
        - Built-in Lua 5.4 and Teal scripting
        - Markdown rendering with syntax highlighting
        - Embedded BoltDB key/value database
        - Automatic HTTPS via Let's Encrypt
        - HTTP/2 and QUIC protocol support
        - Ollama/LLM integration
        - Server-sent events (SSE)
        - SCSS/GCSS compilation
        - JSX to JavaScript transpilation
        - Live reload during development
        - Less than 12MB Docker image

        ## Directory Structure

        Place your files in `/srv/algernon`:

        ```
        /srv/algernon/
          index.md          # Markdown homepage
          about.lua         # Lua dynamic page
          style.scss        # Auto-compiled SCSS
          static/           # Static assets
        ```

        ## License

        BSD-3-Clause — [GitHub](https://github.com/xyproto/algernon)
    services:
        - name: algernon
          icon: https://raw.githubusercontent.com/xyproto/algernon/main/img/algernon_logo.png
          template: PREBUILT_V2
          spec:
            source:
                image: xyproto/algernon:1.17.5
            ports:
                - id: web
                  port: 3000
                  type: HTTP
            volumes:
                - id: algernon-data
                  dir: /srv/algernon
            env:
                TZ:
                    default: UTC
            healthCheck:
                type: HTTP
                port: web
                http:
                    path: /
          domainKey: PUBLIC_DOMAIN
localization:
    es-ES:
        description: |
            Algernon es un servidor web pequeno y autocontenido escrito en Go puro con soporte integrado para Lua, Markdown, Ollama, HTTP/2, QUIC y BoltDB.
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: Dominio
              description: El dominio para acceder a Algernon
        readme: |
            # Algernon

            Servidor web pequeno y autocontenido en Go puro. Scripting Lua y base de datos BoltDB integrada.

            ## Que puedes hacer despues del despliegue

            1. **Visita tu dominio** — se muestra la pagina de bienvenida
            2. **Sube contenido** — coloca archivos Markdown, Lua o HTML

            ## Licencia

            BSD-3-Clause — [GitHub](https://github.com/xyproto/algernon)
    id-ID:
        description: |
            Algernon adalah server web kecil dan mandiri yang ditulis dalam Go murni dengan dukungan bawaan untuk Lua, Markdown, Ollama, HTTP/2, QUIC, dan BoltDB.
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: Domain
              description: Domain untuk mengakses Algernon
        readme: |
            # Algernon

            Server web kecil dan mandiri dalam Go murni. Scripting Lua dan database BoltDB built-in.

            ## Apa yang bisa dilakukan setelah deploy

            1. **Buka domain** — halaman selamat datang ditampilkan
            2. **Upload konten** — letakkan file Markdown, Lua, atau HTML

            ## Lisensi

            BSD-3-Clause — [GitHub](https://github.com/xyproto/algernon)
    ja-JP:
        description: |
            Algernon は小型で自己完結型の純粋な Go Web サーバーです。Lua、Markdown、Ollama、HTTP/2、QUIC、BoltDB をサポートしています。
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: ドメイン
              description: Algernon にアクセスするドメイン
        readme: |
            # Algernon

            小型で自己完結型の Go Web サーバー。Lua スクリプトと BoltDB 組み込みデータベース内蔵。

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

            1. **ドメインにアクセス** — デフォルトのウェルカムページが表示されます
            2. **コンテンツをアップロード** — Markdown、Lua、HTML ファイルを配置
            3. **Lua スクリプトを使用** — サーバーサイドの動的ページを作成

            ## ライセンス

            BSD-3-Clause — [GitHub](https://github.com/xyproto/algernon)
    ko-KR:
        description: |
            Algernon은 Lua, Markdown, Ollama, HTTP/2, QUIC, BoltDB를 지원하는 소형 순수 Go 웹 서버입니다.
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: 도메인
              description: Algernon에 접속할 도메인
        readme: |
            # Algernon

            소형 순수 Go 웹 서버. Lua 스크립팅과 BoltDB 내장 데이터베이스 포함.

            ## 배포 후 할 수 있는 것

            1. **도메인 접속** — 기본 환영 페이지가 표시됩니다
            2. **콘텐츠 업로드** — Markdown, Lua, HTML 파일 배치

            ## 라이선스

            BSD-3-Clause — [GitHub](https://github.com/xyproto/algernon)
    th-TH:
        description: |
            Algernon เป็นเว็บเซิร์ฟเวอร์ขนาดเล็กที่เขียนด้วย Go ล้วน รองรับ Lua, Markdown, Ollama, HTTP/2, QUIC และ BoltDB ในตัว
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: โดเมน
              description: โดเมนสำหรับเข้าถึง Algernon
        readme: |
            # Algernon

            เว็บเซิร์ฟเวอร์ขนาดเล็กที่เขียนด้วย Go ล้วน พร้อม Lua scripting และฐานข้อมูล BoltDB ในตัว

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

            1. **เข้าสู่โดเมน** — หน้าต้อนรับจะแสดง
            2. **อัปโหลดเนื้อหา** — วางไฟล์ Markdown, Lua หรือ HTML

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

            BSD-3-Clause — [GitHub](https://github.com/xyproto/algernon)
    zh-CN:
        description: |
            Algernon 是小巧独立的纯 Go Web 服务器，内置支持 Lua、Markdown、Ollama (LLM)、HTTP/2、QUIC 和 BoltDB 嵌入式数据库。
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: 域名
              description: 访问 Algernon 的域名
        readme: |
            # Algernon

            小巧独立的纯 Go Web 服务器，内置 Lua 脚本和嵌入式 BoltDB 数据库。

            ## 部署后可以做什么

            1. **打开域名** — 显示默认欢迎页面
            2. **上传内容** — 放置 Markdown、Lua、HTML 文件到 `/srv/algernon`
            3. **使用 Lua 脚本** — 创建服务端动态页面

            ## 授权

            BSD-3-Clause — [GitHub](https://github.com/xyproto/algernon)
    zh-TW:
        description: |
            Algernon 是小巧獨立的純 Go 網頁伺服器，內建支援 Lua、Teal、Markdown、Ollama (LLM)、HTTP/2、QUIC、BoltDB、Redis、SQLite 和 PostgreSQL。包含嵌入式 BoltDB 資料庫，零設定即可提供內容服務。
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: 網域
              description: 存取 Algernon 的網域
        readme: |
            # Algernon

            小巧獨立的純 Go 網頁伺服器，內建 Lua 腳本、Markdown 渲染、Ollama LLM 整合和嵌入式 BoltDB 資料庫。

            ## 部署後可以做什麼

            1. **開啟網域** — 顯示預設歡迎頁面
            2. **上傳內容** — 在 `/srv/algernon` 目錄放置 Markdown、Lua、HTML 或 Teal 檔案
            3. **使用 Lua 腳本** — 建立伺服器端動態頁面
            4. **渲染 Markdown** — `.md` 檔案自動轉換為 HTML
            5. **使用嵌入式資料庫** — BoltDB 可從 Lua 腳本存取

            ## 授權

            BSD-3-Clause — [GitHub](https://github.com/xyproto/algernon)
