{"id":13509882,"url":"https://github.com/sdslabs/gasper","last_synced_at":"2025-04-05T05:06:00.842Z","repository":{"id":40294510,"uuid":"146135891","full_name":"sdslabs/gasper","owner":"sdslabs","description":"Your Cloud in a Binary","archived":false,"fork":false,"pushed_at":"2024-02-07T07:58:52.000Z","size":20827,"stargazers_count":414,"open_issues_count":41,"forks_count":25,"subscribers_count":22,"default_branch":"develop","last_synced_at":"2024-04-09T22:03:23.404Z","etag":null,"topics":["application-deployment","binary","cloud","database-deployment","dns-server","docker","gasper","go","golang","master-slave-architecture","microservices","paas","reverse-proxy-server","self-managed","ssh-bridge","ssh-server"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sdslabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-25T23:09:51.000Z","updated_at":"2024-06-20T17:16:29.331Z","dependencies_parsed_at":"2023-10-15T03:22:28.829Z","dependency_job_id":"ce27fe86-8c56-47c2-9e24-f7bb544981ee","html_url":"https://github.com/sdslabs/gasper","commit_stats":{"total_commits":900,"total_committers":17,"mean_commits":52.94117647058823,"dds":0.4522222222222222,"last_synced_commit":"870cc59aa2c8513810c7a3cdab66261b31b7149a"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdslabs%2Fgasper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdslabs%2Fgasper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdslabs%2Fgasper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sdslabs%2Fgasper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sdslabs","download_url":"https://codeload.github.com/sdslabs/gasper/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247289426,"owners_count":20914464,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["application-deployment","binary","cloud","database-deployment","dns-server","docker","gasper","go","golang","master-slave-architecture","microservices","paas","reverse-proxy-server","self-managed","ssh-bridge","ssh-server"],"created_at":"2024-08-01T02:01:15.857Z","updated_at":"2025-04-05T05:06:00.821Z","avatar_url":"https://github.com/sdslabs.png","language":"Go","funding_links":[],"categories":["Go","Open Source Projects","golang","HarmonyOS","microservices"],"sub_categories":["New and Noteworthy","Windows Manager"],"readme":"# Gasper\n\n\u003e Your Cloud in a Binary\n\n\u003cimg align=\"right\" width=\"350px\" height=\"400px\" src=\"./docs/content/assets/logo/gasperlogo.svg\"\u003e\n\n[![Build Status](https://travis-ci.org/sdslabs/gasper.svg?branch=develop)](https://travis-ci.org/sdslabs/gasper)\n[![Docs](https://img.shields.io/badge/docs-current-brightgreen.svg)](https://gasper-docs.netlify.com/)\n[![Go Report Card](https://goreportcard.com/badge/github.com/sdslabs/gasper)](https://goreportcard.com/report/github.com/sdslabs/gasper)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/sdslabs/gasper/blob/develop/LICENSE.md)\n\nGasper is an intelligent Platform as a Service (PaaS) used for deploying and managing applications and databases in any cloud topology.\n\n## Contents\n\n* [Overview](#overview)\n* [Features](#features)\n* [Supported Languages](#supported-languages)\n* [Supported Databases](#supported-databases)\n* [Documentation](#documentation)\n* [Dependencies](#dependencies)\n* [Download](#download)\n* [Development](#development)\n* [Contributing](#contributing)\n* [Meet the A-Team](#meet-the-a-team)\n* [Contact](#contact)\n\n## Overview\n\n### The Dilemma\nImagine you have a couple of *Bare Metal Servers* and/or *Virtual Machines* (collectively called nodes) at your disposal. Now you want to deploy a couple of applications/services to these nodes in such a manner so as to not put too much load on a single node.\n\n### Naive Approach\nYour 1st option is to manually decide which application goes to which node, then use ssh/telnet to manually\nsetup all of your applications in each node one by one.\n\n### A Wise Choice\nBut you are smarter than that, hence you go for the 2nd option which is [Kubernetes](https://kubernetes.io/). You setup Kubernetes in all of your\nnodes which forms a cluster, and now you can deploy your applications without worrying about load distribution. But\nKubernetes requires a lot of configuration for each application(deployments, services, stateful-sets etc) not to mention\npipelines for creating the corresponding docker image.\n\n### The Ultimatum\nHere comes (🥁drumroll please 🥁) **Gasper**, your 3rd option!\u003cbr\u003e\nGasper builds and runs applications in docker containers **directly from source code**. You no longer need to create application specific docker images and build pipelines, let Gasper do the heavylifting for you 😊.\nGasper requires minimal parameters for deploying an application, so minimal that you can count them on fingers in one hand 🤚. Same goes for Gasper provisioned databases. Gone are the days of hard labour (writing configurations).\n\n## Features\n\nFear not because the reduction in complexity doesn't imply the reduction in features. You can rest assured because Gasper has:-\n\n* Worker services for creating/managing databases and applications\n* Master service for:-\n    * Checking the status of worker services\n    * Intelligently distributing applications/databases among them\n    * Transferring applications from one worker node to another in case of node failure\n    * Removing dead worker nodes from the cloud\n* REST API interface for the entire ecosystem\n* Reverse-proxy service with HTTPS, HTTP/2, Websocket and gRPC support for accessing deployed applications\n* DNS service which automatically creates DNS entries for all applications which in turn are resolved inside containers\n* SSH service for providing ssh access directly to an application's docker container\n* Virtual terminal for interacting with your application's docker container from your browser\n* Dynamic addition/removal of nodes and services without configuration changes or restarts\n* Compatibility with Linux, Windows, MacOS, FreeBSD and OpenBSD\n* All of the above packaged with ❤️ in a **single binary**\n\n## Supported Languages\n\nGasper currently supports applications of the following types:-\n\n* Static web pages\n* PHP\n* Python 2\n* Python 3\n* Node.js\n* Golang\n* Ruby\n* Rust\n\nIt ain't much but it's honest work 🥳\n\n## Supported Databases\n\nThe following databases are supported by Gasper:-\n\n* MySQL\n* MongoDB\n* PostgreSQL\n* Redis\n\nIt ain't.... (complete the rest yourself)\n\n## Documentation\n\nYou can find the complete documentation of Gasper at [https://gasper-docs.netlify.app/](https://gasper-docs.netlify.app/)\n\n## Dependencies\n\nThe only thing you need for running Gasper is [Docker](https://www.docker.com/). Here are the installation guides for:-\n\n* [Linux](https://runnable.com/docker/install-docker-on-linux)\n* [MacOS](https://docs.docker.com/docker-for-mac/install/)\n* [Windows](https://docs.docker.com/docker-for-windows/install/)\n\nIf you perhaps need a higher degree of control over your entire cloud then you may setup [MongoDB](https://www.mongodb.com/download-center/community) and [Redis](https://redis.io/download) separately within your infrastructure and make the necessary changes in the `mongo` and `redis` sections of `config.toml`.\n\n## Download\n\nAssuming you have the [dependencies](#dependencies) installed, head over to Gasper's [releases](https://github.com/sdslabs/gasper/releases) page and grab the latest binary according to your operating system and system architecture\n\nRun the downloaded binary with the [sample configuration file](./config.sample.toml)\n\n```bash\n$ ./gasper --conf ./config.toml\n```\n\n## Development\n\nYou need to have [Golang 1.13.x](https://golang.org/dl/) or higher installed along with the mentioned [dependencies](#dependencies)\n\nOpen your favourite terminal and perform the following tasks:-\n\n1. Cross-check your golang version.\n\n    ```bash\n    $ go version\n    go version go1.13.5 darwin/amd64\n    ```\n\n2. Clone this repository.\n\n    ```bash\n    $ git clone https://github.com/sdslabs/gasper\n    ```\n\n3. Go inside the cloned directory and list available *makefile* commands.\n\n    ```bash\n    $ cd gasper \u0026\u0026 make help\n\n    Gasper: Your cloud in a binary\n\n    install   Install missing dependencies\n    build     Build the project binary\n    tools     Install development tools\n    release   Build release binaries\n    start     Start in development mode with hot-reload enabled\n    clean     Clean build files\n    fmt       Format entire codebase\n    vet       Vet entire codebase\n    lint      Check codebase for style mistakes\n    test      Run tests\n    help      Display this help\n    ```\n\n4. Setup project configuration and make changes if required. The configuration file is well-documented so you\nwon't have a hard time looking around.\n\n    ```bash\n    $ cp config.sample.toml config.toml\n    ```\n\n5. Start the development server.\n\n    ```bash\n    $ make start\n    ```\n\n## Contributing\n\nIf you'd like to contribute to this project, refer to the [contributing documentation](./CONTRIBUTING.md).\n\n## Meet the A-Team\n\n* Anish Mukherjee [@alphadose](https://github.com/alphadose)\n* Vaibhav [@vrongmeal](https://github.com/vrongmeal)\n* Supratik Das [@supra08](https://github.com/supra08)\n* Karanpreet Singh [@karan0299](https://github.com/karan0299)\n* Mohit Sharma [@Scar26](https://github.com/Scar26)\n\nGasper Logo: Leshna Balara [@leshnabalara](https://github.com/leshnabalara)\n\nYou can find the entire list of contributors [here](https://github.com/sdslabs/gasper/graphs/contributors)\n\nCreated with 💖 by [SDSLabs](https://github.com/sdslabs)\n\n## Contact\n\nIf you have a query regarding the product or just want to say hello then feel free to visit\n[chat.sdslabs.co](http://chat.sdslabs.co/) or drop a mail at [contact@sdslabs.co.in](mailto:contact@sdslabs.co.in)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsdslabs%2Fgasper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsdslabs%2Fgasper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsdslabs%2Fgasper/lists"}