Skip to content

on-prem/jidoteki-admin-api

Repository files navigation

On-Prem Admin Dashboard and REST API

GitHub release Dependency Build status

This API enables simple management of a On-Prem system.

An Admin Dashboard is included, and enables simpler management through a web-based interface:

Admin Dashboard

In combination with the jidoteki-admin, it is possible to use the REST API to:

  • Upload and validate a license file
  • Upload a software update package
  • Upload TLS certificates
  • View the status of a software update
  • View and update network settings
  • View and update application settings
  • View the status of system services
  • Retrieve compressed log files
  • Retrieve an encrypted debug bundle
  • Retrieve version and changelog of the system
  • Reboot the system
  • View and update persistent storage options
  • Retrieve build details

Requirements

  • PicoLisp 32-bit or 64-bit v3.1.11+
  • Tested up to PicoLisp v20.6.29, see test runs
  • Git
  • UNIX/Linux development/build tools (gcc, make/gmake, etc..)
  • OpenSSL command line tool (openssl)
  • Stunnel4 (for HTTPS only)
  • (required) jidoteki-admin v1.20.0+ deployment in /opt/jidoteki/tinyadmin/

Getting started

  1. Type ./run.l to launch the HTTP listener
  2. View the API documentation at: http://enterprise.vm:8080 or https://enterprise.vm:8443

File and directory permissions

The API does not need to run as root.

If using the jidoteki-admin, it requires sudo access to commands in /opt/jidoteki/admin/bin, write access to /opt/jidoteki/admin/home/sftp/uploads, and read access to files in /opt/jidoteki/admin/etc/.

Environment variables

It is possible to specify a few environment variables at runtime.

  • JIDO_API_VERSION: There is only one API version (1), but this makes it possible to load a completely different set of API endpoints, ex: JIDO_API_VERSION=2 ./run.l.
  • JIDO_API_PORT: The default port for the HTTP listener is 8080.
  • JIDO_WITH_SSL: By default, only the HTTP listener will be launched. If you want to start an HTTPS server as well, you can set JIDO_WITH_SSL=true. It will launch an stunnel4 process on port 8443, so ensure an enterprise.pem SSL certificate exists in the same directory as stunnel.conf.
  • JIDO_STUNNEL_BIN: The name of the stunnel binary. On CentOS it's stunnel, but on Debian it's stunnel4. Defaults to stunnel4.
  • JIDO_ADMIN_PATH: The full path to the Admin application. In most cases it refers to /opt/jidoteki/admin/, but it may be different depending on the application.
  • JIDO_API_CUSTOM: When this is set (ex: JIDO_API_CUSTOM=yourapp), the API will load custom.l from the yourapp/api/v1/core/ directory.

API Endpoints

See the API Documentation.

Contributing

If you find any bugs or issues, please create an issue.

If you want to improve this application, please make a pull-request.

HTML and JavaScript

The HTML and JavaScript files are written in Jade and CoffeeScript, respectively.

npm install -g jade coffeescript minify

To compile the HTML, type: make html

To compile the Docs, type: make docs

To compile the JavaScript, type: make javascript

To minify the JavaScript, type: make minify

To do everything at once, type: make ui

Changelogs

Screenshots

Update

screen-update

Backup/Restore

screen-backup

Network

screen-network

Certs

screeen-certs

Storage

screen-storage

API Token

screen-token

Monitor

screen-monitor

Support

screen-support

License

MPL-2.0 License

Copyright (c) 2015-2019 Alexander Williams, Unscramble license@unscramble.jp