Git Product home page Git Product logo

iptoolkits's Introduction

IP Toolkit

CI TF Docs

The IP Toolkit is a RESTful API service designed to provide various IP-related tools and utilities. This service is built to run efficiently in containerized environments, including Kubernetes, and offers a range of endpoints for different functionalities.

Important

Be sure to read [our documentation][documentation::web]. It guides the initial setup of your mail server. After setup /etc/hosts to use .localhost domain, you can access using https://iptoolkits.localhost/docs/. More detail in TERRAFORM.md

Important

Details for infrastructure in INFRASTRUCTURE.md.

Important

[19 Apr 2024] You cannot see the updated docker image in the ipToolkits-applications repository, as my DockerHub account is free and I have exceeded the pull rate limit.

Features

  • Version and Environment Info: A root endpoint (/) that returns the current version of the API, the current timestamp, and a boolean indicating if the service is running in a Kubernetes environment.
  • IPv4 Address Lookup: An endpoint to look up IPv4 addresses and return information about them.
  • IPv4 Address Validation: An endpoint to validate IPv4 addresses.
  • Query History Retrieval: An endpoint to retrieve the history of queries made to the service.

TODO

  • MongoDB Cluster in Kubernetes: Transition the MongoDB database to a clustered environment within Kubernetes, enabled SSL connection to enhance scalability, security and reliability.
  • Expand Test Coverage: Develop and implement additional test cases to cover all endpoints and possible scenarios, ensuring robustness and reliability.
  • Automatic Database Backup: Implement an automatic backup solution for the MongoDB database to prevent data loss and ensure data integrity.
  • Frontend Interface: Develop a frontend interface to provide an easier and more intuitive way for users to interact with the IP Toolkit services.
  • Cleanup history API: [Optional] Reject requests to /v1/tools/lookup API endpoint rejects requests for the same domain within 10 minutes.
  • Tracing: Enabling tracing with OpenTelemetry and integrating it with Grafana Beyla.
  • CI Cache [DONE]: Improve the CI cache for npm and docker.
  • SSO for all platforms.
  • Terratest: update terratest for current terraform, also expand current terraform code to use Terragrunt if moving to any cloud provider with multiple services.
  • Autoscaling: apply autoscaling using KEDA along with ClusterScaler/Karpenter.
  • Alerting: integrate with Grafana OnCall to establish a 3-level support system.

Getting Started

  • To get started with the IP Toolkit, clone this repository and follow the setup instructions provided in the PREREQUISITES.md, CICD.md and README.md files. Ensure you have Terraform, helm, Docker and Kubernetes configured in your environment to deploy the service.
  • To run docker-compose, see the INFRASTRUCTURE.md for more details.

Important

I'm using an Apple Silicon Macbook (M1 Pro), that why this project will have some tweak to run it in ARM chip.

Contribution

Contributions are welcome! If you have suggestions for new features, or improvements, or find any issues, please open an issue or submit a pull request.

License

This project is licensed under the Apache license. See the LICENSE file for more details.

iptoolkits's People

Contributors

naviat avatar

Watchers

 avatar

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.