# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: rustypaste
spec:
    description: |
        rustypaste is a minimal, self-hosted file upload and pastebin service written in Rust. Upload files via command line or HTTP, configure expiration and size limits, and share content with generated URLs — fast, lightweight, and secure.
    coverImage: https://avatars.githubusercontent.com/u/24392180?v=4
    icon: https://avatars.githubusercontent.com/u/24392180?v=4
    variables:
        - key: PUBLIC_DOMAIN
          type: DOMAIN
          name: Domain
          description: The domain to access rustypaste
        - key: AUTH_TOKEN
          type: PASSWORD
          name: Auth Token
          description: Authentication token for uploading files
    tags:
        - Tool
        - Productivity
    readme: |
        # rustypaste

        A minimal, self-hosted file upload server and pastebin written in Rust. Upload files with a simple curl command and get back a shareable URL.

        ## What You Can Do After Deployment

        1. **Upload files** — use `curl -F "file=@example.txt" -H "Authorization: <AUTH_TOKEN>" https://your-domain`
        2. **Paste text** — pipe text directly: `echo "hello" | curl -F "file=@-" -H "Authorization: <AUTH_TOKEN>" https://your-domain`
        3. **Shorten URLs** — use the oneshot or URL endpoint for link shortening
        4. **Share content** — every upload returns a unique URL for sharing
        5. **Configure limits** — set file size limits, expiration times, and allowed MIME types

        ## Key Features

        - File upload via HTTP (curl-friendly)
        - Text paste support
        - URL shortening
        - Configurable expiration (duration-based or one-shot)
        - File size limits
        - MIME type restrictions
        - Authentication via token
        - Landing page support
        - No database — files stored on disk

        ## License

        MIT — [GitHub](https://github.com/orhun/rustypaste)
    services:
        - name: rustypaste
          icon: https://avatars.githubusercontent.com/u/24392180?v=4
          template: PREBUILT_V2
          spec:
            source:
                image: orhunp/rustypaste:0.16.1
            ports:
                - id: web
                  port: 8000
                  type: HTTP
            volumes:
                - id: upload
                  dir: /app/upload
            env:
                AUTH_TOKEN:
                    default: ${PASSWORD}
            healthCheck:
                type: HTTP
                port: web
                http:
                    path: /
          domainKey: PUBLIC_DOMAIN
localization:
    es-ES:
        description: |
            rustypaste es un servicio mínimo autoalojado de carga de archivos y pastebin escrito en Rust. Sube archivos vía CLI o HTTP y comparte con URLs generadas.
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: Dominio
              description: El dominio para acceder a rustypaste
            - key: AUTH_TOKEN
              type: STRING
              name: Token de autenticación
              description: Token de autenticación para subir archivos
        readme: |
            # rustypaste

            Servidor mínimo autoalojado de carga de archivos y pastebin escrito en Rust. Sube archivos con curl y obtén URLs para compartir.

            ## Qué puedes hacer después del despliegue

            1. **Sube archivos** — usa `curl -F "file=@example.txt" -H "Authorization: <AUTH_TOKEN>" https://your-domain`
            2. **Pega texto** — envía texto directamente por pipe
            3. **Acorta URLs** — usa el endpoint oneshot o URL para acortar enlaces
            4. **Comparte contenido** — cada subida devuelve una URL única
            5. **Configura límites** — tamaño de archivo, expiración y tipos MIME permitidos

            ## Licencia

            MIT — [GitHub](https://github.com/orhun/rustypaste)
    id-ID:
        description: |
            rustypaste adalah layanan upload file dan pastebin minimal self-hosted yang ditulis dalam Rust. Upload file via CLI atau HTTP dan bagikan dengan URL yang dihasilkan.
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: Domain
              description: Domain untuk mengakses rustypaste
            - key: AUTH_TOKEN
              type: STRING
              name: Token Autentikasi
              description: Token autentikasi untuk mengunggah file
        readme: |
            # rustypaste

            Server upload file dan pastebin minimal self-hosted yang ditulis dalam Rust. Upload file dengan curl dan dapatkan URL untuk dibagikan.

            ## Apa yang bisa dilakukan setelah deploy

            1. **Upload file** — gunakan `curl -F "file=@example.txt" -H "Authorization: <AUTH_TOKEN>" https://your-domain`
            2. **Paste teks** — kirim teks langsung melalui pipe
            3. **Pendekkan URL** — gunakan endpoint oneshot atau URL untuk mempersingkat tautan
            4. **Bagikan konten** — setiap upload mengembalikan URL unik
            5. **Konfigurasi batas** — ukuran file, kedaluwarsa, dan tipe MIME yang diizinkan

            ## Lisensi

            MIT — [GitHub](https://github.com/orhun/rustypaste)
    ja-JP:
        description: |
            rustypaste はRustで書かれた最小限のセルフホスト型ファイルアップロード・ペーストビンサービスです。CLIやHTTPでファイルをアップロードし、共有URLを取得。
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: ドメイン
              description: rustypaste にアクセスするためのドメイン
            - key: AUTH_TOKEN
              type: STRING
              name: 認証トークン
              description: ファイルアップロード用の認証トークン
        readme: |
            # rustypaste

            Rust製の最小限セルフホスト型ファイルアップロードサーバー＆ペーストビン。curlコマンドでファイルをアップロードし、共有URLを取得。

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

            1. **ファイルをアップロード** — `curl -F "file=@example.txt" -H "Authorization: <AUTH_TOKEN>" https://your-domain`
            2. **テキストを貼り付け** — テキストを直接パイプ
            3. **URLを短縮** — oneshotまたはURLエンドポイントでリンク短縮
            4. **コンテンツを共有** — アップロードごとに固有のURLを取得
            5. **制限を設定** — ファイルサイズ、有効期限、MIMEタイプの制限を設定

            ## ライセンス

            MIT — [GitHub](https://github.com/orhun/rustypaste)
    ko-KR:
        description: |
            rustypaste는 Rust로 작성된 최소한의 셀프 호스팅 파일 업로드 및 페이스트빈 서비스입니다. CLI나 HTTP로 파일을 업로드하고 공유 URL을 받습니다.
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: 도메인
              description: rustypaste에 접속할 도메인
            - key: AUTH_TOKEN
              type: STRING
              name: 인증 토큰
              description: 파일 업로드를 위한 인증 토큰
        readme: |
            # rustypaste

            Rust로 작성된 최소한의 셀프 호스팅 파일 업로드 서버 및 페이스트빈. curl 명령어로 파일을 업로드하고 공유 URL을 받습니다.

            ## 배포 후 할 수 있는 것

            1. **파일 업로드** — `curl -F "file=@example.txt" -H "Authorization: <AUTH_TOKEN>" https://your-domain`
            2. **텍스트 붙여넣기** — 텍스트를 직접 파이프
            3. **URL 단축** — oneshot 또는 URL 엔드포인트로 링크 단축
            4. **콘텐츠 공유** — 업로드마다 고유한 공유 URL 반환
            5. **제한 설정** — 파일 크기, 만료 시간, MIME 타입 제한 설정

            ## 라이선스

            MIT — [GitHub](https://github.com/orhun/rustypaste)
    th-TH:
        description: |
            rustypaste เป็นบริการอัปโหลดไฟล์และเพสต์บินแบบ self-hosted ขนาดเล็กที่เขียนด้วย Rust อัปโหลดไฟล์ผ่าน CLI หรือ HTTP และแชร์ด้วย URL ที่สร้างขึ้น
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: โดเมน
              description: โดเมนสำหรับเข้าถึง rustypaste
            - key: AUTH_TOKEN
              type: STRING
              name: โทเค็นยืนยันตัวตน
              description: โทเค็นยืนยันตัวตนสำหรับอัปโหลดไฟล์
        readme: |
            # rustypaste

            เซิร์ฟเวอร์อัปโหลดไฟล์และเพสต์บินแบบ self-hosted ขนาดเล็กที่เขียนด้วย Rust อัปโหลดไฟล์ด้วยคำสั่ง curl และรับ URL สำหรับแชร์

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

            1. **อัปโหลดไฟล์** — ใช้ `curl -F "file=@example.txt" -H "Authorization: <AUTH_TOKEN>" https://your-domain`
            2. **วางข้อความ** — ส่งข้อความโดยตรงผ่าน pipe
            3. **ย่อ URL** — ใช้ endpoint oneshot หรือ URL สำหรับย่อลิงก์
            4. **แชร์เนื้อหา** — ทุกการอัปโหลดส่งคืน URL เฉพาะ
            5. **กำหนดค่าขีดจำกัด** — ขนาดไฟล์ เวลาหมดอายุ และประเภท MIME ที่อนุญาต

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

            MIT — [GitHub](https://github.com/orhun/rustypaste)
    zh-CN:
        description: |
            rustypaste 是用 Rust 开发的极简自托管文件上传与剪贴板服务。通过命令行或 HTTP 上传文件，设置过期与大小限制，以生成的 URL 分享内容。
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: 域名
              description: 访问 rustypaste 的域名
            - key: AUTH_TOKEN
              type: STRING
              name: 认证令牌
              description: 上传文件的认证令牌
        readme: |
            # rustypaste

            用 Rust 开发的极简自托管文件上传服务器与剪贴板。使用简单的 curl 命令上传文件，获取可分享的 URL。

            ## 部署后可以做什么

            1. **上传文件** — 使用 `curl -F "file=@example.txt" -H "Authorization: <AUTH_TOKEN>" https://your-domain`
            2. **粘贴文本** — 直接导入文本：`echo "hello" | curl -F "file=@-" -H "Authorization: <AUTH_TOKEN>" https://your-domain`
            3. **缩短网址** — 使用 oneshot 或 URL 端点进行链接缩短
            4. **分享内容** — 每次上传都返回唯一的分享 URL
            5. **设置限制** — 设置文件大小限制、过期时间和允许的 MIME 类型

            ## 授权

            MIT — [GitHub](https://github.com/orhun/rustypaste)
    zh-TW:
        description: |
            rustypaste 是以 Rust 開發的極簡自架檔案上傳與剪貼簿服務。透過命令列或 HTTP 上傳檔案，設定到期與大小限制，以產生的 URL 分享內容。
        variables:
            - key: PUBLIC_DOMAIN
              type: STRING
              name: 網域
              description: 存取 rustypaste 的網域
            - key: AUTH_TOKEN
              type: STRING
              name: 驗證令牌
              description: 上傳檔案的驗證令牌
        readme: |
            # rustypaste

            以 Rust 開發的極簡自架檔案上傳伺服器與剪貼簿。使用簡單的 curl 指令上傳檔案，取得可分享的 URL。

            ## 部署後可以做什麼

            1. **上傳檔案** — 使用 `curl -F "file=@example.txt" -H "Authorization: <AUTH_TOKEN>" https://your-domain`
            2. **貼上文字** — 直接導入文字：`echo "hello" | curl -F "file=@-" -H "Authorization: <AUTH_TOKEN>" https://your-domain`
            3. **縮短網址** — 使用 oneshot 或 URL 端點進行連結縮短
            4. **分享內容** — 每次上傳都回傳唯一的分享 URL
            5. **設定限制** — 設定檔案大小限制、到期時間和允許的 MIME 類型

            ## 授權

            MIT — [GitHub](https://github.com/orhun/rustypaste)
