# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: Snapp
spec:
    description: a self-hosted URL shortening solution
    icon: https://raw.githubusercontent.com/urania-dev/snapp/refs/heads/0.9-rc/static/logo.svg
    variables:
        - key: Snapp_DOMAIN
          type: DOMAIN
          name: Snapp Domain
          description: The domain name of Snapp.
    readme: |
        # Snapp
        If you're seeking a self-hosted URL shortening solution, Snapp might be what youneed. It's designed for those who value control over their URL management and want to explore various technologies.
        ## Features
        - **Intuitive User Interface:** Snapp offers a user-friendly interface for easylink shortening.
        - **Secure Authentication:** Enjoy secure sessions for your user. Theirinformation is protected.
        - **Custom Short Codes:** Personalize your short codes to make your linksmemorable and easy to share.
        - **Expiration Dates:** Manage link lifespans with expiration dates. You can setexpiry dates for added security or let links remain active indefinitely.
        - **Secret Links:** Enhance security with secret links, allowing you to sharewith a select audience using unique secrets.
        - **Usage Analytics:** Access detailed, anonymous analytics for your links.Snapp provides insights into link engagements.
        - **Extended Metrics:** Integrate Snapp with your self-hosted or cloud-basedUmami Analytics for advanced metrics.
        - **URL Reputation Check:** Ensure the safety of links with VirusTotal APIreputation checks.
        - **REST API:** Community-requested REST API endpoints enable remote managementof your Snapp instance. Find all Scalar Docs [here](https://snapp.li/docs).
        ## Default Root Account
        Username: admin
        Password: password

        Note: You need to restart the service after setting the domain name.
    services:
        - name: mysql
          icon: https://cdn.zeabur.com/marketplace/mysql.svg
          template: PREBUILT
          spec:
            source:
                image: mysql:8.0
            ports:
                - id: database
                  port: 3306
                  type: TCP
            volumes:
                - id: data
                  dir: /var/lib/mysql
            instructions:
                - title: Command to connect to your MySQL
                  content: mysqlsh --sql --host=${PORT_FORWARDED_HOSTNAME} --port=${DATABASE_PORT_FORWARDED_PORT} --user=${MYSQL_USERNAME} --password=${MYSQL_PASSWORD} --schema=${MYSQL_DATABASE}
                - title: MySQL username
                  content: ${MYSQL_USERNAME}
                - title: MySQL password
                  content: ${MYSQL_PASSWORD}
                - title: MySQL database
                  content: ${MYSQL_DATABASE}
                - title: MySQL host
                  content: ${PORT_FORWARDED_HOSTNAME}
                - title: MySQL port
                  content: ${DATABASE_PORT_FORWARDED_PORT}
            env:
                MYSQL_DATABASE:
                    default: zeabur
                    expose: true
                MYSQL_HOST:
                    default: ${CONTAINER_HOSTNAME}
                    expose: true
                MYSQL_PASSWORD:
                    default: ${MYSQL_ROOT_PASSWORD}
                    expose: true
                MYSQL_PORT:
                    default: ${DATABASE_PORT}
                    expose: true
                MYSQL_ROOT_PASSWORD:
                    default: ${PASSWORD}
                MYSQL_USERNAME:
                    default: root
                    expose: true
            configs:
                - path: /etc/my.cnf
                  template: |
                    [mysqld]
                    default-authentication-plugin=mysql_native_password
                    host-cache-size=0
                    skip-name-resolve
                    datadir=/var/lib/mysql
                    socket=/var/run/mysqld/mysqld.sock
                    secure-file-priv=/var/lib/mysql-files
                    user=mysql
                    max_allowed_packet=10M
                    performance_schema=off

                    pid-file=/var/run/mysqld/mysqld.pid
                    [client]
                    socket=/var/run/mysqld/mysqld.sock

                    !includedir /etc/mysql/conf.d/
                  permission: null
                  envsubst: null
        - name: Snapp
          icon: https://raw.githubusercontent.com/urania-dev/snapp/refs/heads/0.9-rc/static/logo.svg
          template: PREBUILT_V2
          spec:
            source:
                image: uraniadev/snapp:latest
            ports:
                - id: web
                  port: 3000
                  type: HTTP
            env:
                ADMIN_PASSWORD:
                    default: admin
                    expose: false
                ADMIN_USERNAME:
                    default: password
                    expose: false
                DATABASE_PROVIDER:
                    default: mysql
                    expose: false
                DATABASE_URL:
                    default: mysql://${MYSQL_USERNAME}:${MYSQL_PASSWORD}@${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_DATABASE}
                    expose: false
                ORIGIN:
                    default: https://${ZEABUR_WEB_DOMAIN}
                    expose: false
                TOKEN_SECRET:
                    default: ${PASSWORD}
                    expose: false
            configs: []
            portForwarding:
                enabled: false
localization:
    zh-CN:
        description: 一款自托管的 URL 短链解决方案
        readme: |
            # Snapp
            如果您正在寻找一款自托管的 URL 缩短解决方案，Snapp 或许正是您所需要的。它专为那些重视 URL 管理控制并希望探索各种技术的用户而设计。
            ## 特征
            - **直观的用户界面**：Snapp 提供用户友好的界面，方便链接缩短。
            - **安全身份验证**：为您的用户提供安全的会话。他们的信息受到保护。
            - **自定义短代码**：个性化您的短代码，使您的链接令人难忘且易于分享。
            - **到期日期**：使用到期日期管理链接的生命周期。您可以设置到期日期以增加安全性或让链接无限期地保持活跃。
            - **秘密链接**：使用秘密链接增强安全性，允许您共享与特定观众使用独特的秘密。
            - **使用情况分析**：访问您的链接的详细、匿名分析。Snapp 提供了有关链接参与度的见解。
            - **扩展指标**：将 Snapp 与您的自托管或基于云的Umami Analytics 用于高级指标。
            - **URL 信誉检查**：使用 VirusTotal API 确保链接的安全性声誉检查。
            - **REST API：**社区请求的 REST API 端点支持远程管理您的 Snapp 实例。所有 Scalar 文档请见[此处](https://snapp.li/docs)。
            ## 默认根账户
            账号: admin
            密码: password

            注意：设置域名后需要重新启动服务
    zh-TW:
        description: 一款自我託管的 URL 短鏈解決方案
        readme: |-
            # Snapp
            如果您正在尋找一款自我託管的 URL 縮短解決方案，Snapp 或許正是您所需要的。它專為重視 URL 管理控制且希望探索各種技術的用戶而設計。
            ## 特點
            - **直觀的使用者介面**：Snapp 提供使用者友善的介面，方便進行連結縮短。
            - **安全身份驗證**：為您的用戶提供安全的會話，他們的資訊受到保護。
            - **自訂短代碼**：個性化您的短代碼，使您的連結令人記憶深刻且易於分享。
            - **到期日期**：透過到期日期管理連結的生命週期。您可以設定到期日期以提升安全性，或讓連結永久有效。
            - **秘密連結**：使用秘密連結增強安全性，允許您與特定對象共享獨特的密鑰。
            - **使用分析**：檢視您的連結存取詳細且匿名的分析數據。Snapp 提供深入的互動洞見。
            - **擴展指標**：可將 Snapp 結合您的自我託管或雲端 Umami Analytics，以獲得進階指標。
            - **URL 信譽檢查**：透過 VirusTotal API，確保連結的安全信譽檢查。
            - **REST API**：根據社群需求提供 REST API 端點，支援遠端管理您的 Snapp 實例。完整 Scalar 文件請見[此處](https://snapp.li/docs)。
            ## 預設管理員帳號
            帳號：admin
            密碼：password

            注意：設置域名後需要重新啟動服務
