<div align="center" markdown="1">

<img src="https://jingrow.com/files/Group%202%20(1).png" alt="Jcloud logo" width="80"/>
<h1>Jcloud</h1>

**Full Service Cloud Hosting For The Jingrow Stack - Powers Jingrow**

[![codecov](https://codecov.io/gh/jingrow/jcloud/branch/master/graph/badge.svg?token=0puvH0jUx9)](https://codecov.io/gh/jingrow/jcloud)
[![unittests](http://git.jingrow.com:3000/jingrow/jcloud/actions/workflows/main.yaml/badge.svg)](http://git.jingrow.com:3000/jingrow/jcloud/actions/workflows/main.yaml)

</div>

<div align="center">
	<img width="889" alt="Managed jcloud" src="https://github.com/user-attachments/assets/2675e828-d5ed-4527-a038-7742a5cfa3db" />
</div>
<br />
<div align="center">
	<a href="https://jingrow.com/jcloud">Website</a>
	-
	<a href="https://jingrow.com/docs/">Documentation</a>
</div>

## Jcloud

Jcloud is a 100% open-source cloud hosting for the Jingrow stack.

### Motivation

We originally hosted our customer sites on an internal cloud platform called "Central," designed to automate creating and hosting sites when customers signed up on our website. Central was primarily built to host JERP, our flagship product. However, as our customers' needs evolved, they began requesting the ability to host custom applications, a feature that was not a priority in Central.

Additionally, customers lacked full control over their servers—no SSH access, no ability to manage updates, and limited flexibility in interacting with their environment. This led us to launch Jingrow, to build a self-serve cloud platform that would empower our customers with complete control over their hosting experience.

### Key Features

- **Multitenancy Made Easy**: Jcloud simplifies multi-tenancy by enabling multiple sites on a single platform, each with its app version, allowing independent updates and minimal downtime, even for large sites.
- **Dashboard**: The dashboard provides a centralized interface to manage apps, servers, sites, billing, backups, and updates, offering real-time insights and streamlined control of complex operations.

- **Permissions**: Granular access controls let team owners manage roles and resources efficiently, ensuring users have access only to relevant information and actions for their roles.

- **Simplified Management**: Jcloud streamlines site management with automated backups, real-time monitoring, role-based access, and easy scaling, making it ideal for growing Jingrow environments.

- **Billing**: Automated billing supports daily or monthly subscriptions, flexible payment methods, wallet credits, and ERP integration, simplifying customer invoicing and payments.

- **Marketplace**: The marketplace allows developers to list apps with flexible pricing models, ensures compatibility checks, and provides a streamlined system for sales and payouts.

<details>
  <summary>Screenshots</summary>

![Dashboard](https://github.com/user-attachments/assets/1904fa3e-39aa-4151-8276-d3cc622ed582)
![Permissions](https://github.com/user-attachments/assets/60da6b5e-8f48-4483-99cf-67886ccc8bd6)
![Bench Group Update](https://github.com/user-attachments/assets/2be6b0ee-084d-4949-8d13-218b5a218d3d)
![Marketplace](https://github.com/user-attachments/assets/2f325737-7929-485d-a670-549f986fd07e)
</details>

### Under the Hood

- [**Jingrow Framework**](http://git.jingrow.com:3000/jingrow/jingrow): A full-stack web application framework written in Python and Javascript. The framework provides a robust foundation for building web applications, including a database abstraction layer, user authentication, and a REST API.

- [**Jingrow UI**](http://git.jingrow.com:3000/jingrow/jingrow-ui): A Vue-based UI library, to provide a modern user interface. The Jingrow UI library provides a variety of components that can be used to build single-page applications on top of the Jingrow Framework.

- [**Agent**](http://git.jingrow.com:3000/jingrow/agent): A flask app designed to work along with Jcloud. It provides a CLI interface for Jcloud to communicate with the sites and benches.

- [**Docker**](https://www.docker.com): An open-source platform that enables developers to build, package, and deploy applications in lightweight, portable containers.

- [**Ansible**](https://www.ansible.com): An open-source IT automation tool that simplifies the management, configuration, and deployment of systems and applications.

## Setup

To self host or to setup Jcloud locally follow the steps in the [Local Development Environment Setup Guide](https://jingrow.com/docs/local-fc-setup) or [this YouTube video](https://www.learn.jingrow.com/watch?v=Xb9QHnUrIEk)

## Learn and connect

- [Telegram Public Group](https://t.me/jingrowcloud)
- [Discuss Forum](https://discuss.jingrow.com/c/jingrow-cloud/77)
- [Documentation](https://jingrow.com/docs)

<br/>
<br/>
<div align="center" style="padding-top: 0.75rem;">
	<a href="https://jingrow.com" target="_blank">
		<picture>
			<source media="(prefers-color-scheme: dark)" srcset="https://jingrow.com/files/Jingrow-white.png">
			<img src="https://jingrow.com/files/Jingrow-black.png" alt="Jingrow Technologies" height="28"/>
		</picture>
	</a>
</div>
