Home

Awesome

<div align=center>

Service Hub

Please star ⭐ the repo if you find it useful. Issues and PRs are more than WELCOME!
<table><tbody><tr><td><a href="https://github.com/JovianX/service-hub/stargazers"> Thank you dear stargazers! ⭐🤩 </a></td><td> <a href="https://github.com/JovianX/Service-Hub//blob/main/documentation/">Documentation 🕮 </a></td><td><a href="https://discord.gg/CmFvFJDXZv"> Discord 💬 </a></td></tr></tbody></table>

GitHub Repo stars GitHub closed pull requests GitHub contributors Subreddit subscribers Discord StandWithUkraine

</div>

What is JovianX Service Hub?

JovianX Service Hub is a self-service portal. It exposes an on-demand catalog of infrastructure services (for example databases, s3 buckets, Airflow workflow execution, Jenkins Pipelines, services with or without pre-configured or pre-loaded datasets, etc) via a simple self-service UI and CLI.

Service Hub is commonly used by Platform and DevOps Engineers.

Use Cases

Demo

ServiceHub Demo Video.webm

https://www.youtube.com/watch?v=QwtQkDiBvzs

🦄 Features:

<table><tbody> <tr align=center> <td><b>Templates |</b> create catalog via templates </td><td><b>Self-Service Web UI</b></td> </tr> <tr><td colspan=2> <img src="https://user-images.githubusercontent.com/2787296/198906162-5aaa83df-7a7b-4ec5-b1e0-3a6f455a010e.png"> </td></tr> </tbody></table>

Helm Manager

🚀 Roadmap (accepting Feature Requests via GitHub issues)

How does Service Hub work?

Service Hub allows internal users to create services from a catalog. The catalog is based on service templates that you can create and manage. A template defines 4 optional elements:

Service Hub has native integration with Kubernets, thus components can set up Helm charts, and Hooks( such as pre-install, post-delete, etc') can setup Kubernetes Jobs.

When a user creates a service from the templates catalog, Service Hub generates a web-form UI from the Inputs definition, asking the user to provide inputs to complete service creation. When the the user provides the input values Service Hub passes the provided values to the Components and hooks, allowing the creation of pre-scripted services following inputs end-users provide.

Examples:

https://github.com/JovianX/Service-Hub/tree/main/examples

Architecture

Service Hub Architecutre

Installation

Docker Compose

curl https://raw.githubusercontent.com/JovianX/Service-Hub/main/docker-compose.yaml -o docker-compose.yaml
docker-compose up
xdg-open 'http://localhost:3000'

Example Template

name: jenkins_job

# Input definitions are used for generating the UI,
# User-provided values can be passed to Components
inputs:
  - name: user_input1
    type: text
    label: Your text
    default: some_text
    description: Your custom text

# Components section tells ServiceHub what operations to perform
# when users create/delete/update their services. Components can be
# of type 'http' or 'helm_chart. refer to Docs for a detailed description. 
components:
  - name: jenkins_pipeline_mypipe1
    type: http
    create:
      url: https://<JENKINS_SERVER>/job/mypipe1/buildWithParameters
      method: post
      parameters:
        - action: deploy1
        - myparam: '{{inputs.user_input1}}'
      headers:
        Authorization: Basic <JENKINS_TOKEN_BASE64>
        Content-Type: application/json
    delete:
      url: https://httpbin.org/anything
      method: delete
      parameters:
        - action: delete
        - my_param2: '{{inputs.my_text}}'

Documentation

For product documentation refer to the Documentation Folder.

Contributors

<a href = "https://github.com/JovianX/Service-Hub/graphs/contributors"> <img src = "https://contrib.rocks/image?repo=JovianX/Service-Hub"/> </a>

📜 License

Copyright 2022 JovianX Ltd.

Licensed under the Apache License, Version 2.0 (the "License");

JovianX <img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=44b1bb3d-1d33-4c7a-bf39-18379b658acc" />