All Projects → derBroBro → TerraDepot

derBroBro / TerraDepot

Licence: MIT license
A terraform http backend written in python, deployed on aws lambda.

Programming Languages

python
139335 projects - #7 most used programming language
HCL
1544 projects
HTML
75241 projects
shell
77523 projects

Projects that are alternatives of or similar to TerraDepot

Haproxy Wi
Web interface for managing Haproxy, Nginx and Keepalived servers
Stars: ✭ 823 (+1271.67%)
Mutual labels:  webui
Flood
A web UI for rTorrent, qBittorrent and Transmission with a Node.js backend and React frontend. Migrate to v4: https://github.com/jesec/flood/wiki/Migrate-from-older-versions-of-Flood.
Stars: ✭ 1,795 (+2891.67%)
Mutual labels:  webui
Auproximity
AUProximity is an open source proximity voice chat platform, primarily aimed at Among Us.
Stars: ✭ 194 (+223.33%)
Mutual labels:  webui
Ariang
AriaNg, a modern web frontend making aria2 easier to use.
Stars: ✭ 8,339 (+13798.33%)
Mutual labels:  webui
Beefweb
Web interface plugin for DeaDBeeF and foobar2000 players
Stars: ✭ 116 (+93.33%)
Mutual labels:  webui
Xluci2
DEPRECATED. xLuCI2 is a JavaScript Webgui for embedded devices running OpenWRT or LEDE
Stars: ✭ 148 (+146.67%)
Mutual labels:  webui
Aurora
Cross-platform beanstalkd queue server admin console.
Stars: ✭ 508 (+746.67%)
Mutual labels:  webui
Ddns Updater
Container to update DNS records periodically with WebUI for many DNS providers
Stars: ✭ 216 (+260%)
Mutual labels:  webui
Xd
i2p bittorrent client
Stars: ✭ 140 (+133.33%)
Mutual labels:  webui
Pyload
The free and open-source Download Manager written in pure Python
Stars: ✭ 2,393 (+3888.33%)
Mutual labels:  webui
Simple Mpv Webui
A web based user interface with controls for the mpv mediaplayer.
Stars: ✭ 58 (-3.33%)
Mutual labels:  webui
Airdcpp Webclient
Communal peer-to-peer file sharing application for file servers/NAS devices
Stars: ✭ 106 (+76.67%)
Mutual labels:  webui
Promansible
PromAnsible, 集成了Prometheuse(基于时间序列数据的服务监控系统)和Ansible(超级简单好用的IT自动化系统),并通过事件报警机制把二者紧密的结合在一起,并配以简单易用的WebUI,真正实现了监控-报警-处理一条龙的全自动化服务。
Stars: ✭ 183 (+205%)
Mutual labels:  webui
Webui
The FlexGet Web UI
Stars: ✭ 31 (-48.33%)
Mutual labels:  webui
Yaaw
Yet Another Aria2 Webui in pure HTML/CSS/Javascirpt
Stars: ✭ 2,288 (+3713.33%)
Mutual labels:  webui
Element Blazor
A Web UI Library based on Element and Blazor WebAssembly.
Stars: ✭ 585 (+875%)
Mutual labels:  webui
Azkarra Streams
🚀 Azkarra is a lightweight java framework to make it easy to develop, deploy and manage cloud-native streaming microservices based on Apache Kafka Streams.
Stars: ✭ 146 (+143.33%)
Mutual labels:  webui
Elkarbackup
Open source backup solution for your network
Stars: ✭ 247 (+311.67%)
Mutual labels:  webui
Webloyer
Webloyer is a web UI for managing Deployer deployments
Stars: ✭ 199 (+231.67%)
Mutual labels:  webui
Alpine Sqs
Dockerized ElasticMQ server + web UI over Alpine Linux for local development
Stars: ✭ 183 (+205%)
Mutual labels:  webui

About the project

This project is targeting to provide an easy to use s3 backend for terraform.
You may complain that there is already a built-in backend for aws s3 which can be used. And yes - you are right the is something similar but also different as this approach. Further details can be found here

Features

  • Offer a Webinterface for creation of backends
  • Inspect the state of each project in a webui
  • Offer a diffrent token for each new Project
  • List projects as admin
  • Show if the project fulfills the security requirements of your organistation
  • The an cost estimate based on the used ressources

Demo

A demo installation can be found here (admin/r3pl4c3m3).

Screenshots

New project

alt text

Project status

alt text alt text alt text

Problems of the build-in s3 backend

  • Some setup effort required
    • IAM users must be created and maintained for each project
    • A Bucket (or complex policy) must be created
    • Can be handled by for example terragrunt but this is also one further component
  • If you want to do it right, you have to handle two AWS credentials which the same time (for tf and the backend)

Idea behind this approach

The idea is to make it as easy as possible to use remote beackends. At the same time a normal level of security should be keeped.
To achive this, the project has just need to be set up ONCE for your organization. Afterward, everyone can set up the backend for terraform by his own.
By to so, a new uniqe ID will be created which can be used. Currently the ID is an random alpha numerical key.

To use it an HTTP endpoint is provided which can add to your terraform project. In behind all data (tfstate and config) are stored in a bucket in a folder named after the project id. This bucket has versioning enabled of cause.

Setup

Deploy the server-side

git clone https://github.com/derBroBro/terraform-http-backend.git
cd terraform-http-backend/deploy
terraform apply

You must provide a name for the project. This will be used for the functions, IAM user and the bucket.

Using a cust domains

Using custom domains is quite easy, just pass in the domain and cert_arn variables. The cert_arn must be a verfied ACM certificate in the us-east-1 region. After this you need to create a CNAME Record for your domain pointing to the API Gateways Endpoint. Details what to configure will be shown in the outputs.

Webhooks and Mails

Changes on the config, as well as on the state will be pushed to an SNS topic created.
If you want to get informed, just create an fitting subscription.

For each project

Visit your https://yourdomain/project/new to create a new project.
After creation you will get to the overview of your project. On this you find also an backend_http.tf config which should be added to your projects.

Further opportunities

There are a lot of extensions possible for this backend. Just some ideas:

  • Trigger a central webhook for each state-change
  • List and show all states on a central place
  • Central state locking
  • Cost warnings (base is set. Baybe lyft/awspricing is helpfull)
  • Security checks (public buckets etc.)
  • Pen-Test after state changes
  • Send a brief summary as a notification

Todo

  • Setup proper testing
  • Setup basis auth instead of the key-based
  • Add custom Domains
  • Add SNS to subscribe on changes
  • Generate report asynchronously (Required for notifications and pentests)
  • Add costs estimates for more and complex resource types
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].