Launchr Web plugin is an extenstion to Launchr to run actions via Web UI. The plugin consists of a Backend API and a Frontend client.
Build launchr from source locally. Build dependencies:
go >=1.21, see installation guidenodejs 20, see NVM or Voltamake
Build the launchr tool:
make
bin/launchr web --helpThe documentation for launchr usage can be found in the main project.
@todo update readme
cd client
# Install yarn 4 https://yarnpkg.com/getting-started/install yarn set version stable
# Fetch dependencies
yarn
# Build the project
yarn build
# Start client dev server
yarn devmake front-install front-buildSee client readme for more information.
To run Launchr Web server:
# Run web server on http://localhost:8080
bin/launchr web
# To use example as base dir for actions discovery.
LAUNCHR_ACTIONS_PATH=example bin/launchr web
# Run web server on http://localhost:3000
bin/launchr web -p 3000
# Serve swagger-ui and swagger.json
# Paths /api/swagger.json and /api/swagger-ui
bin/launchr web --swagger-ui
# To proxy requests to client dev server
bin/launchr web --swagger-ui --proxy-client=http://localhost:5173/By default, Launchr HTTP server provides client files from client/dist.
But as shown above, launchr may be a reverse proxy server for yarn dev with --proxy-client flag.
If you face any issues with launchr:
- Open an issue in the repo.
- Share the app version with
launchr --version
The launchr can be built with a make to bin directory:
makeIt is also supported to make a build to use with dlv for debug:
make DEBUG=1Useful make commands:
- Fetch dependencies -
make deps - Test the code -
make test - Lint the code -
make lint
@todo review
make front-install front-build
make EMBED=1git tag v0.0.X
git push --tagsand wait for github action will finished.
Launchr provides several options to customize the web user interface according to your needs.
You can customize the web UI by adding a web section to your .binary/config.yaml file with the following options:
web:
# Exclude specific actions from appearing in the web interface
excluded_actions:
- web
- other-action-to-hide
# List of variable names that should be exposed to the UI
variables:
root_name: value
tab_title: value
header_title: value
favicon: value
logo: value