Skip to content

Cacsjep/goxisbuilder

Repository files navigation

Goxisbuilder

Goxisbuilder is a powerful command-line tool designed to streamline the process of building Docker ACAP applications for Go developers. Its main purpose is to build apps with goxis.

Install

go install github.com/Cacsjep/goxisbuilder@latest

Quick Start (New Project)

Creating a new project is very handy, it creates an application directory with all the necessary stuff inside. :)

goxisbuilder.exe -newapp

Discord

Building Applications

There are two ways of building apps with goxisbuilder:

  • Inside an application directory
  • Outside an application directory"

Inside a Applications Directory

Build command: goxisbuilder.exe or on linux goxisbuilder

Directory/File Structure:

  • myacap
    • go.sum
    • go.mod
    • *.go (app.go or main.go does not matter)
    • manifest.json
    • LICENSE

Note

After a successful build, a build directory with the corresponding .eap file is created.

Outside a Applications Directory

Build command: goxisbuilder.exe -appdir=<application-director> or on linux goxisbuilder -appdir=<application-director>

Directory/File Structure:

  • myproject
    • go.sum
    • go.mod
      • myacap1
        • *.go (It does not matter whether you use app.go or main.go.)
        • manifest.json
        • LICENSE
      • myacap2
        • *.go (It does not matter whether you use app.go or main.go.)
        • manifest.json
        • LICENSE

Note

After a successful build, a build directory with the corresponding .eap file is created.

Start, Install, Watch

To install and start the ACAP application after building it, add the -install and -start flags. Also, specify the -ip <camera IP address> and -pwd <camera root password> flags.

If you are interested in viewing the syslog output of the ACAP application, add the -watch flag. (Note: IP address and password are required.)

Additional ACAP/EAP Package files

When deploying ACAPs, such as those with machine learning models, it's necessary to bundle model files into the .eap package.

Simply use the -files argument to specify which files goxisbuilder should bundle.

Important

These files need to be in the Application Directory.

Example

goxisbuilder.exe -files=ssd_mobilenet_v2_coco_quant_postprocess.tflite

Custom Dockerfile

To use your own Dockerfile, add the -dockerfile flag and base it on the repository's Dockerfile.

Multiple Manifests

In case of multiple manifest files for an application, you can use the -manifest flag to specify which manifest file to use for the build.

Ignore dirs or files

Files or directories can be excluded from being copied into the container by prefixing their names with an underscore.

Usage

.\goxisbuilder.exe -h
Flag Description Default
-h Displays this help message.
-appdir The path to the application directory from which to build. ""
-arch The architecture for the ACAP application: 'aarch64' or 'armv7hf'. "aarch64"
-dockerfile Use your own dockerfile ""
-files Files for adding to the acap eap package like larod models (filename1 filename2 directory) ""
-install Set to true to install the application on the camera. false
-ip The IP address of the camera where the EAP application is installed. ""
-lowsdk Set to true to build with acap-sdk version 3.5 and ubunutu 20.04 false
-manifest The path to the manifest file. Defaults to 'manifest.json'. "manifest.json"
-newapp Generate a new goxis application false
-prune Set to true execute 'docker system prune -f' after build. false
-pwd The root password for the camera where the EAP application is installed. ""
-start Set to true to start the application after installation. false
-version Set to specifiy the sdk version for the ACAP image like, for example -version 1.12
-watch Set to true to monitor the package log after building. false