個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Run open collars: boundaries, herd moves, data and decisions. Desktop app and self-hosted server.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Runs virtual fence collars, stores their data, analyses it, and decides where the herd goes. One Rust server with the web UI built in. The desktop app runs that server for you.
| macOS app (Apple Silicon and Intel) | openpasture-macos.dmg |
| Server, Linux x64 | openpasture-server-linux-x64.tar.gz |
| Server, Linux arm64 (e.g. Raspberry Pi 4 or 5, 64-bit OS) | openpasture-server-linux-arm64.tar.gz |
| Server, macOS Apple Silicon | openpasture-server-macos-arm64.tar.gz |
| Server, macOS Intel | openpasture-server-macos-x64.tar.gz |
| Docker | ghcr.io/open-pasture/openpasture |
The desktop app is macOS only for now; the server runs on Linux and macOS. Checksums are in
SHA256SUMS on each release, and what
changed in CHANGELOG.md.
mkdir openpasture && cd openpasture
tar xzf ../openpasture-server-linux-x64.tar.gz
./openpasture serve --bind 0.0.0.0 --port 7878
--bind 0.0.0.0 listens on every network the machine is on. Behind a reverse proxy or tunnel,
keep the default 127.0.0.1 instead (see docs/SELF-HOSTING.md).
Open http://<host>:7878. On the machine itself (127.0.0.1) no token is needed. From anywhere
else the app asks for its token once:
./openpasture token
Data lives in OPENPASTURE_DATA_DIR, else the platform data directory; --data-dir DIR
overrides both. It is one SQLite database plus Parquet files, so a copy of the directory is a
backup.
docker run -d --name openpasture -p 7878:7878 -v openpasture:/data ghcr.io/open-pasture/openpasture
docker exec openpasture openpasture token
The image runs as a non-root user and keeps everything in the /data volume.
For a farm: an https address for collars and phones, systemd, backups and upgrades are in
docs/SELF-HOSTING.md; texting and alerts in docs/TEXTING.md.
Until you have a collar, collar-sim, the simulator (in the server tarball, or
simulation/collar-sim), speaks the real collar protocol on a farm of its own:
./collar-sim farm
It starts a throwaway server on port 7991 with "Simulated farm", two paddocks and a herd of
twelve simulated collars, and prints the address. Draw a boundary, send it, and watch the acks
come in and the herd walk into it. The app marks every simulated collar "Simulated", reports
leave them out, and the simulator refuses port 7878 and any data dir with real collars. See
simulation/README.md.
Needs Rust (rustup installs the version pinned in rust-toolchain.toml) and
bun.
cd ui && bun install && bun run build && cd ..
cargo build --release -p op-cli -p collar-sim # target/release/openpasture, collar-sim (the simulator)
cargo test --workspace
bun run desktop:build # the macOS app, Apple Silicon
bun run desktop:release # universal .app and .dmg
The server embeds ui/dist at build time; if it is missing, the build runs bun for you.
Releases are cut by pushing a tag; see docs/RELEASING.md.
docs/SELF-HOSTING.md: running it for a farmdocs/TEXTING.md: Twilio, email, webhook, push, the relaydocs/api/: the APIs, by what you're building (HTTP, live feed, MCP,
fleet, and the collar protocol in opencollar)docs/ARCHITECTURE.md: how it's built; docs/PLAN.md:
the original decisionsdocs/RELEASING.md, CONTRIBUTING.md,
SECURITY.mdThe app is AGPL-3.0. op-protocol and op-geo are Apache-2.0, so collar firmware
and other software can use the protocol and geometry without the AGPL. See NOTICE;
every release lists the third-party code it ships, with licences, in THIRD-PARTY-NOTICES.
Found a security problem? Report it privately: SECURITY.md.