# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: Mattermost
spec:
    description: A secure, scalable enterprise messaging platform that provides team communication and collaboration tools with real-time messaging, file sharing, and integrations.
    coverImage: https://mattermost.com/wp-content/uploads/2020/03/Mattermost_Video_CoverArt_LessonsLearned_760x430.jpg
    icon: https://avatars.githubusercontent.com/u/9828093?s=200&v=4
    variables:
        - key: MATTERMOST_DOMAIN
          type: DOMAIN
          name: Domain
          description: What is the domain you want for your Mattermost?
    tags:
        - Communication
        - Team
        - Chat
        - Enterprise
        - Collaboration
    readme: |
        # Mattermost

        Mattermost is an open-source, self-hostable messaging platform designed for team collaboration and enterprise communication. It provides real-time messaging, file sharing, search capabilities, and extensive integrations.

        ## Features

        - **Secure Messaging**: End-to-end encryption and enterprise-grade security
        - **Team Channels**: Organized communication with public and private channels
        - **File Sharing**: Upload and share files with team members
        - **Integrations**: Connect with 600+ tools and services
        - **Mobile Apps**: Native iOS and Android applications
        - **Custom Emojis**: Add personality to your conversations
        - **Voice & Video Calls**: Built-in calling capabilities
        - **Advanced Search**: Find messages and files quickly

        ## Usage

        After deployment:

        1. Bind the domain to the **mattermost** service
        2. Access your Mattermost instance at your domain
        3. Create the first admin account during setup
        4. Configure your team settings and invite users

        ## Configuration

        ### Environment Variables

        The following environment variables are pre-configured but can be customized:

        - `MM_SQLSETTINGS_DRIVERNAME`: Database driver (postgres)
        - `MM_SQLSETTINGS_DATASOURCE`: Database connection string
        - `MM_SERVICESETTINGS_SITEURL`: Your Mattermost site URL
        - `MM_BLEVESETTINGS_INDEXDIR`: Search index directory

        ### Database Configuration

        This template includes a PostgreSQL database that is automatically configured for Mattermost. The database connection is established using environment variables.

        ### Security

        For production use, consider:
        - Setting up SSL/TLS certificates
        - Configuring proper backup strategies
        - Setting up monitoring and logging
        - Reviewing security settings in System Console

        ## Post-Deployment Steps

        1. **Initial Setup**: Create your first admin account
        2. **Team Creation**: Set up your teams and channels
        3. **User Management**: Invite team members
        4. **Integrations**: Configure bots and webhooks
        5. **Mobile**: Download Mattermost mobile apps

        ## Support

        For more information, visit:
        - [Mattermost Documentation](https://docs.mattermost.com/)
        - [Community Support](https://mattermost.com/support/)
        - [Enterprise Features](https://mattermost.com/pricing/)
    services:
        - name: postgresql
          icon: https://cdn.zeabur.com/marketplace/postgresql.svg
          template: PREBUILT
          spec:
            id: postgresql
            source:
                image: postgres:15
            ports:
                - id: database
                  port: 5432
                  type: TCP
            volumes:
                - id: db-data
                  dir: /var/lib/postgresql/data
            instructions:
                - title: Connection String
                  content: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${PORT_FORWARDED_HOSTNAME}:${DATABASE_PORT_FORWARDED_PORT}/${POSTGRES_DB}
                - title: PostgreSQL Connect Command
                  content: psql "postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${PORT_FORWARDED_HOSTNAME}:${DATABASE_PORT_FORWARDED_PORT}/${POSTGRES_DB}"
                - title: PostgreSQL username
                  content: ${POSTGRES_USER}
                - title: PostgresSQL password
                  content: ${POSTGRES_PASSWORD}
                - title: PostgresSQL database
                  content: ${POSTGRES_DB}
                - title: PostgreSQL host
                  content: ${PORT_FORWARDED_HOSTNAME}
                - title: PostgreSQL port
                  content: ${DATABASE_PORT_FORWARDED_PORT}
            env:
                POSTGRES_DB:
                    default: mattermost
                    expose: true
                POSTGRES_PASSWORD:
                    default: ${PASSWORD}
                    expose: true
                POSTGRES_USER:
                    default: mmuser
                    expose: true
        - name: mattermost
          icon: https://avatars.githubusercontent.com/u/9828093?s=200&v=4
          template: PREBUILT
          spec:
            id: mattermost
            source:
                image: mattermost/mattermost-team-edition:10.9.1
            ports:
                - id: web
                  port: 8065
                  type: HTTP
            volumes:
                - id: config
                  dir: /mattermost/config
                - id: data
                  dir: /mattermost/data
                - id: logs
                  dir: /mattermost/logs
                - id: plugins
                  dir: /mattermost/plugins
                - id: client-plugins
                  dir: /mattermost/client/plugins
                - id: bleve-indexes
                  dir: /mattermost/bleve-indexes
            env:
                MM_BLEVESETTINGS_INDEXDIR:
                    default: /mattermost/bleve-indexes
                    expose: false
                MM_EMAILSETTINGS_ENABLESIGNINWITHEMAIL:
                    default: "true"
                    expose: false
                MM_EMAILSETTINGS_ENABLESIGNINWITHUSERNAME:
                    default: "true"
                    expose: false
                MM_EMAILSETTINGS_ENABLESIGNUPWITHEMAIL:
                    default: "true"
                    expose: false
                MM_EMAILSETTINGS_REQUIREEMAILVERIFICATION:
                    default: "false"
                    expose: false
                MM_EMAILSETTINGS_SENDEMAILNOTIFICATIONS:
                    default: "false"
                    expose: false
                MM_FILESETTINGS_DIRECTORY:
                    default: /mattermost/data/
                    expose: false
                MM_FILESETTINGS_DRIVERNAME:
                    default: local
                    expose: false
                MM_FILESETTINGS_ENABLEFILEATTACHMENTS:
                    default: "true"
                    expose: false
                MM_FILESETTINGS_ENABLEPUBLICLINK:
                    default: "false"
                    expose: false
                MM_FILESETTINGS_MAXFILESIZE:
                    default: "104857600"
                    expose: false
                MM_LOGSETTINGS_CONSOLELEVEL:
                    default: INFO
                    expose: false
                MM_LOGSETTINGS_ENABLECONSOLE:
                    default: "true"
                    expose: false
                MM_LOGSETTINGS_ENABLEFILE:
                    default: "true"
                    expose: false
                MM_LOGSETTINGS_FILELEVEL:
                    default: INFO
                    expose: false
                MM_LOGSETTINGS_FILELOCATION:
                    default: /mattermost/logs
                    expose: false
                MM_PASSWORDSETTINGS_LOWERCASE:
                    default: "false"
                    expose: false
                MM_PASSWORDSETTINGS_MINIMUMLENGTH:
                    default: "5"
                    expose: false
                MM_PASSWORDSETTINGS_NUMBER:
                    default: "false"
                    expose: false
                MM_PASSWORDSETTINGS_SYMBOL:
                    default: "false"
                    expose: false
                MM_PASSWORDSETTINGS_UPPERCASE:
                    default: "false"
                    expose: false
                MM_SERVICESETTINGS_CONNECTIONSECURITY:
                    default: ""
                    expose: false
                MM_SERVICESETTINGS_ENABLEBOTACCOUNTCREATION:
                    default: "false"
                    expose: false
                MM_SERVICESETTINGS_FORWARD80TO443:
                    default: "false"
                    expose: false
                MM_SERVICESETTINGS_LISTENADDRESS:
                    default: :8065
                    expose: false
                MM_SERVICESETTINGS_MAXLOGINATTEMPSTS:
                    default: "10"
                    expose: false
                MM_SERVICESETTINGS_READTIMEOUT:
                    default: "300"
                    expose: false
                MM_SERVICESETTINGS_SITEURL:
                    default: https://${ZEABUR_WEB_DOMAIN}
                    expose: false
                MM_SERVICESETTINGS_TLSCERTFILE:
                    default: ""
                    expose: false
                MM_SERVICESETTINGS_TLSKEYFILE:
                    default: ""
                    expose: false
                MM_SERVICESETTINGS_USELETSENCRPYT:
                    default: "false"
                    expose: false
                MM_SERVICESETTINGS_WRITETIMEOUT:
                    default: "300"
                    expose: false
                MM_SQLSETTINGS_DATASOURCE:
                    default: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgresql:5432/${POSTGRES_DB}?sslmode=disable&connect_timeout=10
                    expose: false
                MM_SQLSETTINGS_DRIVERNAME:
                    default: postgres
                    expose: false
                MM_TEAMSETTINGS_ENABLETEAMCREATION:
                    default: "true"
                    expose: false
                MM_TEAMSETTINGS_ENABLEUSERCREATION:
                    default: "true"
                    expose: false
                MM_TEAMSETTINGS_MAXUSERSPERTEAM:
                    default: "50"
                    expose: false
                MM_TEAMSETTINGS_RESTRICTCREATIONTODOMAINS:
                    default: ""
                    expose: false
                MM_TEAMSETTINGS_SITENAME:
                    default: Mattermost
                    expose: false
                TZ:
                    default: UTC
          domainKey: MATTERMOST_DOMAIN
localization:
    zh-CN:
        description: 一个安全、可扩展的企业级消息平台，提供团队沟通和协作工具，包括实时消息、文件共享和集成功能。
        readme: |
            # Mattermost

            Mattermost 是一个开源的、可自托管的消息平台，专为团队协作和企业通信设计。它提供实时消息、文件共享、搜索功能和广泛的集成。

            ## 功能特性

            - **安全消息传递**：端到端加密和企业级安全
            - **团队频道**：通过公共和私人频道进行有序沟通
            - **文件共享**：与团队成员上传和共享文件
            - **集成**：连接 600+ 工具和服务
            - **移动应用**：原生 iOS 和 Android 应用程序
            - **自定义表情符号**：为您的对话增添个性
            - **语音和视频通话**：内置通话功能
            - **高级搜索**：快速查找消息和文件

            ## 使用方法

            部署后：

            1. 将域名绑定到 **mattermost** 服务
            2. 通过您的域名访问 Mattermost 实例
            3. 在设置过程中创建第一个管理员账户
            4. 配置您的团队设置并邀请用户
    zh-TW:
        description: 一個安全、可擴展的企業級訊息平台，提供團隊溝通和協作工具，包括即時訊息、檔案分享和整合功能。
        readme: |-
            # Mattermost

            Mattermost 是一個開源的、可自行託管的訊息平台，專為團隊協作和企業通訊設計。它提供即時訊息、檔案分享、搜尋功能和廣泛的整合。

            ## 功能特性

            - **安全訊息傳遞**：端到端加密和企業級安全
            - **團隊頻道**：透過公開和私人頻道進行有序溝通
            - **檔案分享**：與團隊成員上傳和分享檔案
            - **整合**：連接 600+ 工具和服務
            - **行動應用程式**：原生 iOS 和 Android 應用程式
            - **自訂表情符號**：為您的對話增添個性
            - **語音和視訊通話**：內建通話功能
            - **進階搜尋**：快速查找訊息和檔案

            ## 使用方法

            部署後：

            1. 將網域綁定到 **mattermost** 服務
            2. 透過您的網域存取 Mattermost 實例
            3. 在設定過程中建立第一個管理員帳戶
            4. 設定您的團隊設定並邀請使用者
