Skip to content

Terraform-Canvas/back-end

Repository files navigation

Contributors Forks Stargazers Issues Pull Request MIT License


Logo

Terraform-Canvas

Terraform Cloud Infrastructure Provisioning Web Services Project with Visual Programming
Explore the docs »

한국어 · English

Report Issues · Pull Requests

Table of Contents
  1. About The Project
  2. Getting Started
  3. Architecture
  4. REST API
  5. Contributing
  6. License
  7. Contact

🔍 About The Project

Many companies are choosing Terraform as an IaC tool for transitioning from existing cloud and on-premise environments to cloud native environments. However, they are suffering a lot due to Terraform's high entry barriers. Therefore, we want to lower the barriers to Terraform's entry through "Terraform Cloud Infrastructure Provisioning Web Service with Visual Programming." This enables start-up and SI teams that want to introduce a new cloud-native environment and TF teams that want to test and prototype the IaC environment quickly.

(back to top)

🗃️ Built With

💡 Language

Go

💡 Infrastructure

Terraform Kubernetes aws OCI

💡 Environment (CI/CD, Package tools...)

Github-actions Helm Accordian

(back to top)

🚀 Getting Started

⚡ Prerequisites

Download and install packages and associated dependencies via go get

  • go
    go get .

✏️ Configuration

Setting environment variables through .env

# .env

# Stage status to start server:
#   - "dev", for start server without graceful shutdown
#   - "prod", for start server with graceful shutdown
STAGE_STATUS="dev"

# Server settings:
SERVER_HOST="0.0.0.0"
SERVER_PORT=8000
SERVER_READ_TIMEOUT=60

# JWT settings:
JWT_SECRET_KEY="secret"
JWT_SECRET_KEY_EXPIRE_MINUTES_COUNT=15
JWT_REFRESH_KEY="refresh"
JWT_REFRESH_KEY_EXPIRE_HOURS_COUNT=720

# OCI SDK settings:
tenancyID=tenancy
userID=user
fingerprint=fingerprint
privateKeyFile=filePath
region=us-ashburn-1
compartmentID=compartmentID
privateKeyPass=

# AWS SDK settings:
AWS_ACCESS_KEY=USER_ACCESS_KEY
AWS_SECRET_KEY=USER_SECRET_KEY
AWS_REGION=USER_REGION

(back to top)

🌐 Architecture

🚩 Overall Service Configuration Architecture

service

🚩 Development Environment Architecture

env

(back to top)

📝 REST API

Login new

Login refresh

Logout

Create tf

Destroy tf

Save IAM user key

Get IAM user key status

Upload to S3

Download to S3

Get InstanceTypes

Get AMI

(back to top)

🔥 Contributing

Please refer to CONTRIBUTION.txt for Contribution.

For issues, new functions and requests to modify please follow the following procedure. 🥰

  1. Fork the Project
  2. Create a Issue when you have new feature or bug, just not Typo fix
  3. Create your Feature Branch from dev Branch (git checkout -b feature/Newfeature)
  4. Commit your Changes (git commit -m 'feat: add new feature')
  5. Push to the Branch (git push origin feature/Newfeature)
  6. Open a Pull Request to dev branch with Issues

(back to top)

🔐 License

Please refer to LICENSE.txt for LICENSE.

(back to top)

💬 Contact


Sumin Kim

Dahyun Kang

(back to top)