Deno IoT endpoint for FerryBoxes operated by Akvaplan-niva.
Production URL: https://ferrybox.deno.dev
The production service is integrated with a CI/CD pipeline on GitHub.
Code merged into main
creates a new production deployment, provided all tests
are green.
Notice: All git commits must be made to a feature branch and submitted via a
pull request before they can be merged into main
.
- Accepts FerryBox messages as (ND)JSON via HTTP POST
- Validated messages are PUT put into cloud storage
- Hashed passwords are protected and verified by strong cryptographic function
scrypt
(RFC) - Robust, scalable, low-latency operations via Deno Deploy's distributed edge computing network
- Built in documentation
import { createFerryBoxServer } from "./ferrybox.ts";
if (import.meta.main) {
Deno.serve(createFerryBoxServer());
}
Configure using env variables
export ferrybox_endpoints='["ferrybox-dev1"]'
export ferrybox_cloud="azure"
export azure_account=""
export azure_key=""
export scrypt_basic_auth_users='[["username","scrypthash"]]'
Notice: The endpoint pathname is used as cloud storage bucket/container
deno task dev
Example curl POST
curl -vXPOST http://127.0.0.1:8000/ferrybox-dev1 --netrc-file .netrc -d'{}' -H "content-type: application/x-ndjson"