UNPKG

@nano-edge/cli

Version:

A simple CLI used to deploy an app to NanoEdge

62 lines (47 loc) 1.95 kB
# NanoEdge All you need to do to deploy your app is to run the following command: ```sh npx @nano-edge/cli deploy ``` Advanced usage: Do not forget to set the `NANO_EDGE_AUTH_TOKEN` env var, which is required by the cli. ```sh export NANO_EDGE_AUTH_TOKEN=xxx npx @nano-edge/cli deploy --env.MY_SECRET=$SOME_SECRET ``` To customize cli options, you can create a file `nano-edge.config.json`: ```json { "env": { "SOME_ENV_VAR": "SOME_VALUE" } } ``` > [!IMPORTANT] > Do not deploy secrets that are really secret! These secrets might be exploitable as nano-edge is currently not (yet?) hardened! ## Build output API example: - functions/api.js - functions/env.json - static/index.html - static/main.js The signature of a function is `export default async (request: Request) => Promise<Response>`.\ A function can access env vars by using process.env.\ `env.json` will be generated by the cli if `nano-edge.config.ts` contains env vars. The file is overwritten if it already did exist before. ## How inbound traffic would be handled by which resource from the build output: - `/api` -> `functions/api.js` (function exec) - `/api/some/sub/path` -> `functions/api.js` (function exec) - `/index.html` -> `static/index.html` (served static) - `/main.js` -> `static/main.js` (served static) - `/some/random/path` -> `static/index.html` (served static) - Edge-case (precedence): If a static file exists with same name as a function, the static file is not served. Instead, the function is executed. ## Local development If this is the first time you cloned this repository, make sure to run `npm install` in all subdirectories to make sure all dependencies are present. \ Only then continue with the following steps: Just run the following two scripts to start the stack and deploy an example app: ```sh docker compose -f compose.yml -f compose.dev.yml up --build --watch --remove-orphans ``` ```sh cd example-app && npm run deploy ```