GithubHelp home page GithubHelp logo

argusoss / eye Goto Github PK

View Code? Open in Web Editor NEW
6.0 1.0 8.0 718 KB

Your go-to SRE toolkit. Mainly, a project to monitor all of your cloud infrastructure at one place.

Home Page: https://arguseye.readthedocs.io/en/latest/

Python 51.85% Dockerfile 0.61% Shell 0.68% JavaScript 43.94% CSS 2.92%

eye's Introduction

Eye

One dashboard to debug in a multi-cloud environment while being able to manage projects and get statistics over how much your services have gone down in the past with detailed API response time.

Here is the demo instance for this project! Backend would be plugged in soon to this.

Docker set-up

cp .env_template .env
docker-compose up

Frontend Setup

cd frontend
yarn install
yarn run dev

Progress as of now:

We are done with the foundation of the project. Expecting many refactors. One feature we are done with is the pinging issue with some bugs in the frontend to be resolved.

eye's People

Contributors

0x0elliot avatar abheektripathy avatar dependabot[bot] avatar github-actions[bot] avatar pratyushchauhan avatar syedahkam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

eye's Issues

Get the demo to work

I really want a not-very-functional working dashboard to be there and accessible to the users. For the time being, I have deployed the frontend on vercel. When we are more confident with the backend, we can have it out as well.

  • Frontend works neatly

for Backend to work with the frontend nicely being integrated with it:

  • Add a settings variable called "demo_instance" which is a bool. deal with everything considering that if demo_instance == true where demo_instance must be an environment variable then we do not do certain things which are unnecessary post-login.
  • Write another docker-compose file for this.
  • Shift from Postgres to SQLite from settings.py. Use the same demo_instance variable.
  • Write another entry point, especially for previews which creates a demo user with demo access, but no admin. No need for this anymore
  • Disable all other services other than the backend from docker-compose
  • Make it live on https://railway.app/

Create a CONTRIBUTING.md

There are certain standards and guidelines we need to lay down for new contributors to be coming in. A file named CONTRIBUTING.md should have the following:

### Rules and guidelines

We welcome contributors with any level of skillset and education to come in and help us put together Eye. We advise you to follow the following set of rules to keep in mind while contributing to our Eye:

1. Please get approval on an issue from a maintainer before starting to work on it.
2. Since we are still in the very nascent stage of our project, We strongly advise you to join our discord server to get involved in the development cycle: https://discord.gg/DJyMGArg8D
3. Please make sure that your PR follows the linting rules that our pre-commit hook enforces.
4. Please make sure that your branch, whether you're a maintainer using this repository itself or a fork should use the format `username/feature` for your branches. So, If my branch where I am working on the auth feature should look like: `0x0elliot/auth`
5. Your PR should be to the `dev` branch.
6. Your PRs should follow the following format: Fixes #{issue number}
7. Please respect your fellow contributors and maintainers. We are all trying our best.
8. If the following rules aren't properly followed through, We have the right to reject your PR.

For the time being, It is as simple as that is fine. We will expand our code of conduct and rules as we move ahead in the development stage.

Create a new django subapp named "api_app" and create subapps

Here, Create another sub-app and call it "core". Inside infrastructure, We need to finish infrastructure-based database models.

I am a bit hesitant about wanting a provider-based infrastructure model honestly. However, Considering the number of cloud services that would be used should be finite. Accordingly, Create abstract classes for cloud providers which are called something like "CloudProviderAbstractModel" or whatever according to the context. Then we will move to creating further classes and writing APIs.

Finish ping website feature

To-do:

  • Sharpen the auth and UX for the frontend. Move logout buttons to a base file.
  • Add backend support for ping website feature with celery beat
  • Test the backend support
  • Add frontend support for ping website feature

Dockerize the set up.

Backend + Frontend needs to be dockerized replacing the current sqlite3 set up with Postgres. This is not an issue I would be picking up right now. I am leaving it up to the community to help out.

Finish up the auth module

We have some basic features for the auth module left to be built where I need it to follow an organization-focused structure. I want it for now so that, You can only create a user from the command line manage.py utility, and the rest is needed to be taken care of through the APIs. What that means is that if you have no organization of your own, you basically can't do anything on the platform. So methods for this are especially necessary.

It's important for the front end to ask a user who isn't in an organization to create an organization. When they do it from the frontend, They must be also asked to create users from the frontend (Which would be through the APIs of course) give them an appropriate email and password, and then that user would be usable.

There is also a role-based system where for now three kinds of roles are available. "owner", "admin" and "member".

Fix eslint errors

#41 added eslint for all PRs but we haven't been following it that closely yet. I would recommend that we get on it now.

Do SSH password bruteforcing automation for servers owned by you

There is still a lot that can be done for the project. I want our service to be able to do simple SSH brute-forcing using a simple wordlist on the servers owned by the owner so that it is frictionlessly. For this, I will be glad if we can make it so that only their own EC2 instances that we fetched could be brute-forced. this way, we won't Bruteforce random servers using our service.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.