Command line

When you run npm i -g waveorb you get the waveorb command available in your terminal. Run it without arguments or do waveorb help and you'll see a list of available commands:

create     Create new app
boot       Boot new app server
update     Update app server
deploy     Deploy app to server
serve      Start app server
build      Build app to dist
sitemap    Create sitemap
ping       Ping search engines
generate   Generate templates
cmd        Run command line console
migrate    Run migrations
help       Display this help text

Let's go through each of these and explain what they do.

Boot

Installing a server ready for Waveorb is incredibly easy. We have created a script that does it for you with all the bells and whistles:

Read about how to boot a Waveorb server here.

Update

The waveorb update command simply updates the software on the VPS server. Typically run with npm run update.

Create

waveorb create creates a new app skeleton for you by downloading the waveorb templates and copying them to your hard drive. It takes two parameters:

# Specify the name
waveorb create myapp

The default application is a fully working app with pages, layouts, actions, assets and more. Read through the source code to see what you get. Remove the things you don't need.

Deploy

The waveorb deploy command deploys your Waveorb app on your server. Typically run with npm run deploy. To use this command you need to set up a waveorb.json file in your app's root directory:

{
  "proxy": "http://localhost:31000",
  "domains": "waveorb.com www.waveorb.com"
}

This will connect to the server where your domain name is pointing and attempt to deploy you app using those domains. If you are using server actions, you also need to set up a proxy URL which must have a port number unique to you application.

You can also set up redirects here:

{
  "redirects": ["^/about$ https://waveorb.com"]
}

By default redirects are 301 permanent. Add redirect after to do a 302 temporary redirect:

{
  "redirects": ["^/about$ https://waveorb.com redirect"]
}

To do redirects if your app has multiple domains, try this:

{
  "domains": [
    {
      "names": "waveorb.com www.waveorb.com",
      "redirects": ["^/about$ https://eldoy.com"]
    },
    {
      "names": "eldoy.com"
    }
  ]
}

Serve

waveorb serve starts the production server and is typically only used with npm run serve on the server after deploy.

Build

Running waveorb build will build static HTML pages of your app and copy your assets to the dist folder. It saves the response from a running app server based on the configuration in the build.js file, so make sure your server is running at the host you specify.

module.exports = async function() {
  return {
    // Specify the host, can be remote
    host: 'http://localhost:5000',

    // Specify the URLs you want to build
    urls: [
      '/',
      '/about',
      '/docs'
    ]
  }
}

Here the value of host will be http://localhost:5000 when you're not building for example in development mode. When building, the value of host will be https://speria.no/api.

<script>window.api = waveorb('${host}')</script>

Sitemap

Running waveorb sitemap will generate the sitemap you have defined in app/config/sitemap.yml and copy it to the app/assets folder. Read more about sitemaps here.

Ping

The waveorb ping command will ping Google and Bing and let them know about your sitemap changes:

waveorb ping https://example.com/sitemap.xml

Generate

The waveorb generate command will generate actions and pages for a model. Let's say you want to create templates and actions for a model called project, then you run waveorb generate model project, and all the necessary files will be created for you automatically for that model.

You can specify command line fields to generate forms and action validations:

waveorb generate model project title:string description:text

and also use a file to describe and generate your application.

You can read more about generating here.

Cmd

Waveorb comes with its own terminal REPL. It is running the full NodeJS environment, and can be started with waveorb cmd. It supports top level await.

# Start the terminal REPL
waveorb cmd

Hit Ctrl + d or Ctrl + c twice to exit.