Sign inSign up

power14345/passiveapp

By power14345

•Updated 4 days ago

PassiveApp peer on Linux/Docker - earn from shared bandwidth

Image
0

59

power14345/passiveapp repository overview

邀請註冊 https://passiveapp.com/i/ldpX3N⁠ Invitation https://passiveapp.com/i/ldpX3N⁠

⁠PassiveApp Peer

Run the PassiveApp peer (psvsdk) natively on Linux / Docker and earn from shared bandwidth.

在 Linux / Docker 上原生執行 PassiveApp 的 peer 節點以賺取收益。


⁠⚡ Quick Start / 快速開始

The image contains NO credentials. You must pass your own account at run time via environment variables.

映像不含任何帳密。 請在執行時用環境變數傳入你自己的帳號。

⁠Option A — email + password / 用帳密
docker run -d \
  --name passiveapp \
  --restart unless-stopped \
  -e PSV_EMAIL='[email protected]' \
  -e PSV_PASSWORD='your_password' \
  power14345/passiveapp:latest
⁠Option B — token / 用 token
docker run -d \
  --name passiveapp \
  --restart unless-stopped \
  -e PSV_TOKEN='your_token_here' \
  power14345/passiveapp:latest
⁠Docker Compose
services:
  passiveapp:
    image: power14345/passiveapp:latest
    container_name: passiveapp
    restart: unless-stopped
    environment:
      - [email protected]
      - PSV_PASSWORD=your_password
      # - PSV_TOKEN=your_token_here     # 二選一:用 token 取代帳密
      # - PSV_RESTART_DELAY=10
      # - PSV_JSON=1
    # network_mode: host               # 若容器連不出去,可改用 host 網路

Alternatively mount an env-file (keeps secrets out of shell history):

也可以改用 env-file(避免密碼留在 shell 歷史紀錄):

# .env  (chmod 600)
[email protected]
PSV_PASSWORD=your_password

docker run -d --name passiveapp --restart unless-stopped \
  --env-file .env power14345/passiveapp:latest

⁠🎛 Environment Variables / 環境變數

⁠👉 你只需要填這兩個 / You only need these two
-e PSV_EMAIL='[email protected]'
-e PSV_PASSWORD='your_password'

就這兩個,其他都不用填。 下面是完整清單(含選用項)。


⁠憑證:二選一 / Credentials: pick ONE of two
方式要填的變數說明
① 帳密(建議)PSV_EMAIL + PSV_PASSWORD一般使用者用這個就好
② TokenPSV_TOKEN進階用法。不知道要填什麼就別用

PSV_TOKEN 不是必填,它是「不想用帳密時」的替代方案。 你若不知道 token 從哪來,就是不需要它 —— 填帳密即可。 若三個都填,程式會優先使用 PSV_TOKEN。


⁠完整清單 / Full list
Variable必填?DefaultDescription
PSV_EMAIL填這個—你的 PassiveApp 帳號 email
PSV_PASSWORD填這個—你的密碼
PSV_TOKEN❌ 不用填—替代方案,見上表
PSV_JSON❌ 選用11 = JSON 行輸出
PSV_RESTART_DELAY❌ 選用10peer 結束後幾秒重啟
PSV_EXTRA_ARGS❌ 選用—追加旗標,例如 -diagnostics

只填 PSV_EMAIL + PSV_PASSWORD 就能跑。 沒填憑證時容器會立刻中止並印出提示,不會空轉。


⁠📋 Allowed flags / 可用旗標

Pass extra flags through PSV_EXTRA_ARGS:

-diagnostics       Run connectivity tests. 連通性診斷
-json              JSON output. JSON 輸出
-localServer       (experimental)
-sdk-key string
-username string   Alias for email
-version           Print version
-help              Print help

⁠📜 Logs / 日誌

docker logs -f passiveapp

A healthy peer looks like this:

{"type":"data","data":{"deviceId":"62919fdb-3ac0-4097-9742-dedcee0621fa"},"connected":false}
{"type":"info","message":"Connecting to server...","connected":false}
{"type":"info","message":"Connected to server","connected":true}
{"type":"info","message":"Logged in.","connected":true}

"connected": true = online. Check your dashboard — a new deviceId appears as a new device.

"connected": true 代表已上線。dashboard 上會以新的 deviceId 顯示為一台裝置。


⁠🔍 Troubleshooting / 疑難排解

⁠Container starts then exits immediately / 容器立刻結束

You forgot credentials. Check the log — it prints:

FATAL: 需要 PSV_TOKEN,或同時提供 PSV_EMAIL 與 PSV_PASSWORD
⁠Log shows context deadline exceeded / dial tcp: lookup ... i/o timeout

The container has no working DNS or no outbound route.

Test connectivity first:

docker run --rm \
  -e [email protected] -e PSV_PASSWORD=your_password \
  -e PSV_EXTRA_ARGS=-diagnostics \
  power14345/passiveapp:latest

Healthy output:

Requesting load balancer...
Got response (IP, port 1, port 2): 87.99.149.97 443 443
Requesting certificate...
Loaded certificate.
Testing connectivity...
Got UDP IP: 1.174.133.108
Got TCP IP: 1.174.133.108
OK.

If that fails, check:

  1. DNS — does /etc/resolv.conf inside the container have a reachable nameserver? Some hosts run Docker's embedded DNS (127.0.0.11) without working upstream forwarding. Workaround: --dns 1.1.1.1 or --network host.
  2. Outbound route / SNAT — does the container's subnet have a working egress?
  3. UDP must be allowed — the peer is QUIC-based (UDP). Blocking UDP while allowing TCP 443 will break it.
⁠Container is up but the peer has no connections / 容器起來了但節點沒連線

Run the -diagnostics command above. If diagnostics pass, the peer is fine — a brand-new device simply receives little traffic at first. Bandwidth and balance increase over time.


⁠🧬 Notes on Linux support / 關於 Linux 支援

PassiveApp's official Windows-only installer is only the Electron desktop shell. The actual earning client (psvsdk) is published per-platform on their CDN:

FileTypePlatform
psvsdk64ELF 64-bit LSB, x86-64Linux x64
psvsdk32ELF 32-bit LSB, Intel 80386Linux x86
psvsdkarm64ELF 64-bit LSB, ARM aarch64Linux ARM64
psvsdkarmELF 32-bit LSB, ARMLinux ARM
psvsdk64.exePE32+ executable, x86-64Windows x64
psvsdk32.exePE32 executable, Intel 80386Windows x86

All six have different checksums — these are genuinely separate builds, not one binary with a renamed extension. The desktop app's own code even runs chmod u+x on Linux:

if (process.platform === "win32") p += ".exe";                        // Windows only
if (process.platform === "linux") await exec(`chmod u+x ${binPath}`); // Linux supported

Running natively on Linux is a first-class supported path — no Windows emulation needed. The image uses this Linux binary directly.

在 Linux 原生執行是官方支援的路徑,不需要模擬 Windows。 本映像直接使用 Linux 版二進位。

GOOS is a Go compile-time constant (the binary embeds build\tGOOS=linux), so the peer always reports the OS it was built for. There is no flag or env var to change it — and none is needed.


⁠🖥 Running multiple nodes / 多節點

Each container generates its own deviceId, so one account can run many nodes. To give each node a distinct egress IP, pin a static IP on a bridge network that has per-subnet NAT:

每個容器會產生獨立的 deviceId,同一帳號可跑多節點。 若要讓每個節點走不同出口 IP,在具備分網段 NAT 的 bridge 網路上指定靜態 IP:

docker run -d --name passiveapp_01 \
  --network your-net --ip 172.16.66.5 \
  --restart unless-stopped \
  -e [email protected] -e PSV_PASSWORD=your_password \
  power14345/passiveapp:latest

⁠🛠 Rebuild / 自行重建

curl -fsSL -o psvsdk64 https://cdn.passiveapp.com/passiveapp/psvsdk64
chmod +x psvsdk64
docker build -t yourname/passiveapp:latest .
docker push yourname/passiveapp:latest

Base image must be glibc-based (Debian/Ubuntu). psvsdk64 links against libc.so.6 — Alpine (musl) will not work.

基底映像必須是 glibc 系(Debian / Ubuntu)。psvsdk64 動態連結 libc.so.6, Alpine(musl)不能跑。


⁠⚠️ Disclaimer / 免責

Unofficial image. Not affiliated with PassiveApp. Usage is at your own risk and subject to PassiveApp's own terms of service. Only run this on networks and devices you are authorised to use.

非官方映像,與 PassiveApp 無隸屬關係。使用風險自負,並受 PassiveApp 服務條款約束。 請僅在你獲授權的網路與裝置上執行。

📮 Takedown / Removal Requests / 下架與移除通知 If the official PassiveApp team, the image registry, or any rights holder requests that this image, repository, documentation, or related content be taken down, modified, or removed, please notify me and I will comply as soon as possible.

若 PassiveApp 官方團隊、映像 registry 或任何權利人要求下架、修改或移除本映像、儲存庫、文件或相關內容,請通知我,我會盡快配合處理。

Contact / 聯絡方式:

Please open an issue or contact me via the repository / 請透過儲存庫開 issue 或聯絡我

I will respond and take action as soon as reasonably possible / 我會在合理時間內盡快回覆並處理

This project is unofficial and provided in good faith. If there is any concern regarding rights, terms of service, or distribution, please reach out first and I will cooperate fully.

本專案為非官方內容,出於善意提供。若有任何關於權利、服務條款或散布的疑慮,請先與我聯繫,我會全力配合。

Tag summary

Content type

Image

Digest

sha256:5a6f1af8d…

Size

64.9 MB

Last updated

4 days ago

docker pull power14345/passiveapp