wpn-xm/software

This package is not installable via Composer 1.x, please make sure you upgrade to Composer 2+. Read more about our Composer 1.x deprecation policy.

Software Assets of the WPN-XM Server Stack

dev-master 2019-01-08 00:01 UTC

This package is auto-updated.

Last update: 2021-06-05 11:43:21 UTC


README

Latest Stable Version Total Downloads Build Status License

What's this?

The repository contains files for installation and configuration management of third-party software components.

It ships configs, scripts and additional files to configure and manage an installed component.

This monolithic repository is fetched during the creation of the installers.

This enables us to

  • include configs for the software assets into the offline installers to configure them out-of-the-box,
  • to include the CLI tasks for the management of the installed software,
  • to include webinterface support to allow a web-based administration and management of components.

MonoRepo to MultiRepo: https://github.com/wpnxm-software

Each software asset folder is a Composer folder.

We use a git subtree split strategy to split out the software asset folders into one-way read-only subtree split repositories.

This enables Composer updates of the configuration and management scripts for a software asset after installation.

You find the individual packages here: https://github.com/wpnxm-software

Structure

Each folder consist of the following top-level files and folders:

  • a readme.md,
  • a manifest.json config file,
  • a composer.json file,
  • the folders files, configs, tasks and webinterface.

Example layout for Nginx - https://github.com/WPN-XM/software/tree/master/nginx :

  nginx/
    files/
    configs/
    tasks/
    webinterface/
    composer.json
    manifest.json
    readme.md

manifest.json reference

The manifest.json file is a JSON file that contains package metadata. It is used to identify a software asset in the context of the WPN-XM Server Stack. The manifest is always included in a package.

These keys are used:

  • name - Nice Name of the software
  • website - URL to official website
  • description - description of the software
  • category - (optional) category of the software
  • tags - (optional) one or multiple tags
  • logo - (optional) link to the logo in the files folder
  • tasks - The tasks key is used to track the implementation progress of task scripts:
    • install, uninstall, update, configure, unconfigure, backup, restore, version.

This is the content of https://github.com/WPN-XM/software/blob/master/nginx/manifest.json :

{
    "name": "Nginx",
    "website": "http:\/\/nginx.org\/",
    "description": "NGINX is a free, open-source, high-performance HTTP server, reverse proxy, and IMAP\/POP3 proxy server.",
    "category": "webserver",
    "tags": [
        "webserver",
        "reverse-proxy",
        "proxy"
    ],
    "logo": "",
    "tasks": {
        "install": "todo",
        "uninstall": "todo",
        "update": "todo",
        "configure": "todo",
        "unconfigure: "todo",
        "backup": "todo",
        "restore": "todo",
        "version": "todo"
    }
}