Giter Site home page Giter Site logo

terraform-gui / terraform-gui Goto Github PK

View Code? Open in Web Editor NEW
56.0 5.0 7.0 4.16 MB

Terraform GUI is a web application that allows developers and DevOps begginers to learn about Terraform, an open-source, Infrastructure as Code, software tool created by HashiCorp

Home Page: https://terraform-gui.github.io/terraform-gui/

License: MIT License

Shell 0.80% PHP 47.23% Makefile 0.55% HTML 0.76% CSS 0.94% TypeScript 40.25% HCL 3.76% Twig 5.72%
beginners-guide gui template terraform tool

terraform-gui's Introduction

Terraform GUI

LABELER [CI]  WEB [CI]  WEB [CD] API [CD]

I - Introduction

Terraform GUI is a web application that allows developers and DevOps begginers to learn about Terraform, an open-source, Infrastructure as Code, software tool created by HashiCorp.

The main goal of this is tool is to make Terraform understandable for everyone, with a different approach from the original HCL file structure.

This tool provides:

  • Graphical User Interface with cell representation of web ressources of providers
  • Ressources forms for templating HCL files
  • Terraform HCL file generation for provider, ressources, variables, outputs [...] used for deployment
  • ZIP downloaded solution for planning and applying Terraform files

II - Table of content

III - Folder structure

The structure of this project follows these conventions.

  • /.github: Conventions, template, labels, ci, cd, settings
  • /api: Symfony API files
  • /build: Dockerfiles
  • /deploy: Deployment-related Terraform files
  • /docs: Swagger documentation
  • /samples: Terraform samples for usecase
  • /web: ReactJS web files

IV - Project setup

The project use Docker and Docker Compose to build and run local and distant images in our workspace.

A - Stack

All the images use the same network, more informations at docker-compose.yml

API documentation: https://terraform-gui.github.io/terraform-gui/

CONTAINER PORT IMAGE
REACTJS 3000:3000 build/package/web/Dockerfile.dev
SYMFONY 8080:80 build/package/api/Dockerfile.dev
MONGODB 27017:27017 mongo:latest
MAILCATCHER 1080:1080 schickling/mailcatcher:latest

B - Makefile

TL;DR

make setup-env start logs

make help

Display informations about other commands.

make init

Setup the API, start containers & output logs in terminal.

make start

Up the containers with full cache reset to avoid cache errors.

make stop

Down the containers.

make logs

Display and follow the logs.

make api-*

API-related commands

V - CI/CD, release and container registry

A - CI

 WEB [CI]

The CI workflow is located at .github/workflows/web.ci.yml. It's triggered at each push in /web folder on all branches.

It consist of:

  • install Node on the VM
  • get the dependancies using the cache of other Actions run
  • install deps
  • build the application

B - CD

 WEB [CD] API [CD]

The CD workflow is triggered a each push on main branches (main/dev/ops).

It consist of:

VI - License

Under MIT license.

terraform-gui's People

Contributors

bataba avatar blyndusk avatar florianb98 avatar lucaslehot avatar pierronmarc avatar samuelbelolo avatar tan82000 avatar tan82710 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

terraform-gui's Issues

[US] As a user, I want to be able to reset my password

Tasks:

  • Creation of /users/{user_id}/reset-password GET endpoint
  • Creation of reset password controller method
  • Creation of /users/{user_id}/reset-password PUT endpoint
  • Creation of update password controller method

-[ ] Creation of reset password confirmation mail

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.