# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: SOCKS5 Proxy
spec:
    description: A lightweight, authenticated SOCKS5 proxy server. Connect any SOCKS5-aware client directly via host:port.
    icon: https://cdn.jsdelivr.net/npm/@tabler/icons@latest/icons/outline/network.svg
    variables:
        - key: PROXY_USERNAME
          type: STRING
          name: Proxy Username
          description: The username clients use to authenticate to the SOCKS5 proxy.
    tags:
        - Network
        - Proxy
    readme: |
        Note: This template is maintained by the Zeabur team. If you have any questions or need help, please contact us at [Zeabur's official Discord server](https://zeabur.com/dc).

        ---

        # SOCKS5 Proxy

        A minimal SOCKS5 proxy server built on [serjs/go-socks5-proxy](https://github.com/serjs/socks5-server) (MIT License). It exposes a single TCP port that any SOCKS5-aware client (curl, browsers, SSH `-D`, etc.) can connect to.

        ## How to connect

        After deployment, open the service's **Networking** tab to find the forwarded **host** and **port**, then connect using the username you chose and the auto-generated password (shown in the service's environment variables as `PROXY_PASSWORD`):

        ```bash
        curl -x socks5h://USERNAME:PASSWORD@HOST:PORT https://ifconfig.co
        ```

        ## Security

        - Authentication is **enabled by default** — never run an open SOCKS5 proxy, it will be abused.
        - The password is auto-generated. Change `PROXY_USERNAME` / `PROXY_PASSWORD` in the service variables if you want custom credentials, then redeploy.
        - Optionally restrict reachable destinations with `ALLOWED_DEST_FQDN` (a regex) or restrict source IPs with `ALLOWED_IPS` (comma-separated).

        Source & license: [serjs/socks5-server](https://github.com/serjs/socks5-server) (MIT).
    services:
        - name: socks5
          icon: https://cdn.jsdelivr.net/npm/@tabler/icons@latest/icons/outline/network.svg
          template: PREBUILT_V2
          spec:
            id: socks5
            source:
                image: serjs/go-socks5-proxy:v0.0.4
            ports:
                - id: proxy
                  port: 1080
                  type: TCP
            instructions:
                - title: Proxy Host
                  content: ${PORT_FORWARDED_HOSTNAME}
                - title: Proxy Port
                  content: ${PROXY_PORT_FORWARDED_PORT}
                - title: Username
                  content: ${PROXY_USER}
                - title: Password
                  content: ${PROXY_PASSWORD}
                - title: Example (curl)
                  content: curl -x socks5h://${PROXY_USER}:${PROXY_PASSWORD}@${PORT_FORWARDED_HOSTNAME}:${PROXY_PORT_FORWARDED_PORT} https://ifconfig.co
            env:
                PROXY_PASSWORD:
                    default: ${PASSWORD}
                    expose: true
                PROXY_PORT:
                    default: "1080"
                PROXY_USER:
                    default: ${PROXY_USERNAME}
                    expose: true
                PROXY_USERNAME:
                    default: zeabur
            portForwarding:
                enabled: true
localization:
    es-ES:
        description: Un servidor proxy SOCKS5 ligero y con autenticación. Conecta cualquier cliente compatible con SOCKS5 directamente vía host:port.
        variables:
            - key: PROXY_USERNAME
              type: STRING
              name: Usuario del proxy
              description: El usuario que los clientes usan para autenticarse en el proxy SOCKS5.
        readme: |
            Nota: Esta plantilla es mantenida por el equipo de Zeabur. Si tienes preguntas o necesitas ayuda, contáctanos en el [servidor oficial de Discord de Zeabur](https://zeabur.com/dc).

            ---

            # Proxy SOCKS5

            Un servidor proxy SOCKS5 mínimo basado en [serjs/go-socks5-proxy](https://github.com/serjs/socks5-server) (Licencia MIT). Expone un único puerto TCP al que cualquier cliente compatible con SOCKS5 (curl, navegadores, SSH `-D`, etc.) puede conectarse.

            ## Cómo conectar

            Tras el despliegue, abre la pestaña **Networking** del servicio para obtener el **host** y el **puerto** reenviados, y conéctate con el usuario elegido y la contraseña autogenerada (en la variable de entorno `PROXY_PASSWORD`):

            ```bash
            curl -x socks5h://USERNAME:PASSWORD@HOST:PORT https://ifconfig.co
            ```

            ## Seguridad

            - La autenticación está **habilitada por defecto**: nunca ejecutes un proxy SOCKS5 abierto, será abusado.
            - La contraseña se genera automáticamente. Cambia `PROXY_USERNAME` / `PROXY_PASSWORD` en las variables del servicio si quieres credenciales propias y vuelve a desplegar.
            - Opcionalmente, restringe los destinos con `ALLOWED_DEST_FQDN` (una regex) o las IP de origen con `ALLOWED_IPS` (separadas por comas).

            Fuente y licencia: [serjs/socks5-server](https://github.com/serjs/socks5-server) (MIT).
    id-ID:
        description: Server proxy SOCKS5 yang ringan dan terautentikasi. Hubungkan klien SOCKS5 apa pun langsung melalui host:port.
        variables:
            - key: PROXY_USERNAME
              type: STRING
              name: Nama Pengguna Proxy
              description: Nama pengguna yang dipakai klien untuk autentikasi ke proxy SOCKS5.
        readme: |
            Catatan: Template ini dikelola oleh tim Zeabur. Jika ada pertanyaan atau butuh bantuan, hubungi kami di [server Discord resmi Zeabur](https://zeabur.com/dc).

            ---

            # Proxy SOCKS5

            Server proxy SOCKS5 minimal berbasis [serjs/go-socks5-proxy](https://github.com/serjs/socks5-server) (Lisensi MIT). Membuka satu port TCP yang bisa dihubungi klien SOCKS5 apa pun (curl, browser, SSH `-D`, dll.).

            ## Cara menghubungkan

            Setelah deploy, buka tab **Networking** pada service untuk mendapatkan **host** dan **port** yang diteruskan, lalu hubungkan dengan nama pengguna yang Anda pilih dan kata sandi yang dibuat otomatis (di variabel lingkungan `PROXY_PASSWORD`):

            ```bash
            curl -x socks5h://USERNAME:PASSWORD@HOST:PORT https://ifconfig.co
            ```

            ## Keamanan

            - Autentikasi **aktif secara default** — jangan pernah menjalankan proxy SOCKS5 terbuka, pasti disalahgunakan.
            - Kata sandi dibuat otomatis. Ubah `PROXY_USERNAME` / `PROXY_PASSWORD` di variabel service jika ingin kredensial sendiri, lalu deploy ulang.
            - Opsional, batasi tujuan dengan `ALLOWED_DEST_FQDN` (regex) atau batasi IP sumber dengan `ALLOWED_IPS` (dipisah koma).

            Sumber & lisensi: [serjs/socks5-server](https://github.com/serjs/socks5-server) (MIT).
    ja-JP:
        description: 軽量で認証付きの SOCKS5 プロキシサーバー。SOCKS5 対応クライアントから host:port で直接接続できます。
        variables:
            - key: PROXY_USERNAME
              type: STRING
              name: プロキシのユーザー名
              description: クライアントが SOCKS5 プロキシに認証する際に使うユーザー名。
        readme: |
            注意：このテンプレートは Zeabur チームが管理しています。質問やサポートが必要な場合は [Zeabur 公式 Discord サーバー](https://zeabur.com/dc) までご連絡ください。

            ---

            # SOCKS5 プロキシ

            [serjs/go-socks5-proxy](https://github.com/serjs/socks5-server)（MIT ライセンス）をベースにした軽量な SOCKS5 プロキシサーバーです。TCP ポートを 1 つ公開し、SOCKS5 対応クライアント（curl、ブラウザ、SSH `-D` など）から接続できます。

            ## 接続方法

            デプロイ後、サービスの **ネットワーク** タブで転送された **ホスト** と **ポート** を確認し、設定したユーザー名と自動生成されたパスワード（サービスの環境変数 `PROXY_PASSWORD`）で接続します：

            ```bash
            curl -x socks5h://USERNAME:PASSWORD@HOST:PORT https://ifconfig.co
            ```

            ## セキュリティ

            - 認証は **デフォルトで有効** ——オープンな SOCKS5 プロキシは絶対に運用しないでください、悪用されます。
            - パスワードは自動生成されます。独自の認証情報にしたい場合は、サービスの環境変数で `PROXY_USERNAME` / `PROXY_PASSWORD` を変更して再デプロイしてください。
            - `ALLOWED_DEST_FQDN`（正規表現）で接続先を制限したり、`ALLOWED_IPS`（カンマ区切り）で送信元 IP を制限できます。

            ソースとライセンス：[serjs/socks5-server](https://github.com/serjs/socks5-server)（MIT）。
    zh-CN:
        description: 轻量、需认证的 SOCKS5 代理服务器。任何支持 SOCKS5 的客户端可通过 host:port 直接连接。
        variables:
            - key: PROXY_USERNAME
              type: STRING
              name: 代理用户名
              description: 客户端连接 SOCKS5 代理时使用的账号。
        readme: |
            注意：此模板由 Zeabur 团队维护。如有任何问题或需要帮助，请至 [Zeabur 官方 Discord 服务器](https://zeabur.com/dc) 联系我们。

            ---

            # SOCKS5 代理

            基于 [serjs/go-socks5-proxy](https://github.com/serjs/socks5-server)（MIT 许可）的轻量 SOCKS5 代理服务器，对外开放一个 TCP 端口，任何支持 SOCKS5 的客户端（curl、浏览器、SSH `-D` 等）均可连接。

            ## 如何连接

            部署完成后，打开服务的 **网络** 标签页获取转发的 **主机** 与 **端口**，再用你设置的用户名与自动生成的密码（在服务环境变量 `PROXY_PASSWORD` 中）连接：

            ```bash
            curl -x socks5h://USERNAME:PASSWORD@HOST:PORT https://ifconfig.co
            ```

            ## 安全性

            - 默认 **启用认证** ——绝对不要运行开放式 SOCKS5 代理，否则会被滥用。
            - 密码为自动生成。若想自定义账密，请在服务环境变量修改 `PROXY_USERNAME` / `PROXY_PASSWORD` 后重新部署。
            - 可用 `ALLOWED_DEST_FQDN`（正则表达式）限制可连接的目的地，或用 `ALLOWED_IPS`（逗号分隔）限制来源 IP。

            源码与许可：[serjs/socks5-server](https://github.com/serjs/socks5-server)（MIT）。
    zh-TW:
        description: 輕量、需驗證的 SOCKS5 代理伺服器。任何支援 SOCKS5 的客戶端可透過 host:port 直接連線。
        variables:
            - key: PROXY_USERNAME
              type: STRING
              name: 代理使用者名稱
              description: 客戶端連線 SOCKS5 代理時使用的帳號。
        readme: |
            注意：此模板由 Zeabur 團隊維護。如有任何問題或需要協助，請至 [Zeabur 官方 Discord 伺服器](https://zeabur.com/dc) 聯絡我們。

            ---

            # SOCKS5 代理

            基於 [serjs/go-socks5-proxy](https://github.com/serjs/socks5-server)（MIT 授權）的輕量 SOCKS5 代理伺服器，對外開放一個 TCP 連接埠，任何支援 SOCKS5 的客戶端（curl、瀏覽器、SSH `-D` 等）皆可連線。

            ## 如何連線

            部署完成後，開啟服務的 **網路** 分頁取得轉發的 **主機** 與 **連接埠**，再以你設定的使用者名稱與自動產生的密碼（在服務環境變數 `PROXY_PASSWORD` 中）連線：

            ```bash
            curl -x socks5h://USERNAME:PASSWORD@HOST:PORT https://ifconfig.co
            ```

            ## 安全性

            - 預設 **啟用驗證** ——絕對不要執行開放式 SOCKS5 代理，否則會被濫用。
            - 密碼為自動產生。若想自訂帳密，請在服務環境變數修改 `PROXY_USERNAME` / `PROXY_PASSWORD` 後重新部署。
            - 可用 `ALLOWED_DEST_FQDN`（正規表達式）限制可連線的目的地，或用 `ALLOWED_IPS`（逗號分隔）限制來源 IP。

            原始碼與授權：[serjs/socks5-server](https://github.com/serjs/socks5-server)（MIT）。
