{"id":23752475,"url":"https://github.com/livelace/terraform-multicloud-proxy","last_synced_at":"2026-04-13T20:31:58.718Z","repository":{"id":140868710,"uuid":"247018411","full_name":"livelace/terraform-multicloud-proxy","owner":"livelace","description":"This project is a set of tools that allow to deploy virtual machines with various proxy applications (Dante, Tinyproxy, Tor) in such clouds as Amazon, Google, Yandex.","archived":false,"fork":false,"pushed_at":"2021-06-12T12:59:39.000Z","size":53,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-04T10:08:05.691Z","etag":null,"topics":["alpine-linux","ansible","apache","awscli","dante","dnsmasq","packer","postgres","poweradmin","powerdns","qemu-kvm","supervisord","terraform","tinyproxy","tor","ubuntu"],"latest_commit_sha":null,"homepage":"","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/livelace.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-03-13T08:05:38.000Z","updated_at":"2021-06-12T12:59:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"f10281a8-2006-440b-80e5-1bad845b86e2","html_url":"https://github.com/livelace/terraform-multicloud-proxy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/livelace/terraform-multicloud-proxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livelace%2Fterraform-multicloud-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livelace%2Fterraform-multicloud-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livelace%2Fterraform-multicloud-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livelace%2Fterraform-multicloud-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/livelace","download_url":"https://codeload.github.com/livelace/terraform-multicloud-proxy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livelace%2Fterraform-multicloud-proxy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31770718,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T20:17:16.280Z","status":"ssl_error","status_checked_at":"2026-04-13T20:17:08.216Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alpine-linux","ansible","apache","awscli","dante","dnsmasq","packer","postgres","poweradmin","powerdns","qemu-kvm","supervisord","terraform","tinyproxy","tor","ubuntu"],"created_at":"2024-12-31T17:52:20.018Z","updated_at":"2026-04-13T20:31:58.687Z","avatar_url":"https://github.com/livelace.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Description:\n\nThis project is a set of tools that allow to deploy virtual machines with various proxy applications \n([Dante](https://www.inet.no/dante/), [Tinyproxy](https://github.com/tinyproxy/tinyproxy), [Tor](https://www.torproject.org/)) in such clouds as [Amazon](https://aws.amazon.com/), [Google](https://cloud.google.com/), [Yandex](https://cloud.yandex.com/). It can be handy when you have to check your apps from different parts of the world. This set shouldn't be considered as a \"production tool\", but rather as a \"development tool\". This set can be easily adapted for any task, when you need something up and running in clouds.\n\n**In-use:**\n\n[alpine linux](https://alpinelinux.org/), [ansible](https://www.ansible.com/), [apache](https://httpd.apache.org/), [awscli](https://github.com/aws/aws-cli), [dante](https://www.inet.no/dante/), [dnsmasq](http://www.thekelleys.org.uk/dnsmasq/doc.html), [packer](https://packer.io/), [postgres](https://www.postgresql.org/), [powerdns](https://www.powerdns.com/), [poweradmin](https://www.poweradmin.org/), [supervisord](http://supervisord.org/), [terraform](https://www.terraform.io/), [tinyproxy](https://github.com/tinyproxy/tinyproxy), [tor](https://www.torproject.org/), [qemu-kvm](https://www.qemu.org/), [ubuntu](https://ubuntu.com/).\n\nThe project consists of two docker images:\n\n1. *livelace/terraform-multicloud-proxy-bootstrap* - primary tool for creation, deployment and destroying clouds infrastructures.\n2. *livelace/terraform-multicloud-proxy-dns* - optional tool for registering deployed virtual machines in DNS. \n\nTypical workflow:\n\n1. Create configuration.\n2. Build virtual machines images.\n3. Deploy cloud infrastructure.\n4. Destroy cloud infrastructure.\n\n## Requirements:\n\n1. Linux host with Docker (you can use already built images or you could build them yourself). \n2. CPU with AMD-v/VT-x (virtualization is needed for image building, it's too slow to do that without).\n3. Cloud credentials with appropriate permissions.\n\n## Usage:\n\n\n**Get help information:**\n\n```bash\ndocker run -ti --rm -e UID=$UID \\\n    -v $(pwd)/conf:/conf \\\n    -v $(pwd)/data:/data \\\n    ghcr.io/livelace/terraform-multicloud-proxy-bootstrap help\n```\n\nSome commands can be run with a specific cloud as an argument.\n\n**Initialize sample configuration:**\n\n```bash\ndocker run -ti --rm -e UID=$UID \\\n    -v $(pwd)/conf:/conf \\\n    -v $(pwd)/data:/data \\\n    ghcr.io/livelace/terraform-multicloud-proxy-bootstrap init\n```\n\nThis will generate and place into \"/conf\" directory:\n\n1. Sample configuration (inventory-sample.ini with comments).\n2. SSH keys (random generated).\n3. Password for root (random generated).\n\n**Generate configurations:**\n\n```bash\ndocker run -ti --rm -e UID=$UID \\\n    -v $(pwd)/conf:/conf \\\n    -v $(pwd)/data:/data \\\n    ghcr.io/livelace/terraform-multicloud-proxy-bootstrap genconf\n```\n\nThis will produce different configurations for above mentioned apps and place all those stuff into \"/data\" directory.  \nRepeat this command if you change something in the configuration file.\n\n**Build virtual machines images:**\n\n```bash\ndocker run -ti --rm -e UID=$UID \\\n    --privileged \\\n    -v /dev/kvm:/dev/kvm \\\n    -v $(pwd)/conf:/conf \\\n    -v $(pwd)/data:/data \\\n    ghcr.io/livelace/terraform-multicloud-proxy-bootstrap build\n```\n\nThis will produce virtual machines images with individual settings for every cloud provider and place those images into \"/data/packer/images\".  \nDon't forget to rebuild images if you change some settings in the configuration file (SSH keys, port numbers, white lists etc.). \n\n**Deploy clouds infrastructures:**\n\n```bash\ndocker run -ti --rm -e UID=$UID \\\n    -v $(pwd)/conf:/conf \\\n    -v $(pwd)/data:/data \\\n    ghcr.io/livelace/terraform-multicloud-proxy-bootstrap deploy\n```\n\nThis will take some time for deploying virtual machines inside clouds (Amazon is the slowest one, because of its image importing mechanism). If something goes wrong - just \"destroy\" infrastructure, fix the problems and try again. \n\n**Destroy clouds infrastructures:**\n\n```bash\ndocker run -ti --rm -e UID=$UID \\\n    -v $(pwd)/conf:/conf \\\n    -v $(pwd)/data:/data \\\n    ghcr.io/livelace/terraform-multicloud-proxy-bootstrap destroy\n```\n\nThis will destroy every object in clouds that were produced during deployment.\n\n\n## Cloud credentials:\n\nSome additional information about service accounts creation which are needed for performing operations inside clouds (don't use your primary accounts, furthermore, it's much better to use dedicated projects). For more details see the official documentations ([Amazon](https://aws.amazon.com/cli/), [Google](https://cloud.google.com/sdk), [Yandex](https://cloud.yandex.com/docs/cli/)).\n\n**Amazon:**\n \nManaging Amazon IAM permissions polices are out of scope of this project, you have to review resources declared in the configuration file and adjust your permissions settings by yourself. And don't forget to review some information about [image importing](https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html).\n\n**Google:**\n\n```bash\ngcloud iam service-accounts create \"terraform-multicloud-proxy-sa\"\n\ngcloud iam service-accounts list\n\ngcloud iam service-accounts keys create \\\n    --iam-account \"terraform-multicloud-proxy-sa@\u003cPROJECT\u003e.iam.gserviceaccount.com\" \\\n    ~/terraform-multicloud-proxy-sa-google.json\n\ngcloud projects add-iam-policy-binding \"\u003cPROJECT\u003e\" \\\n  --member \"serviceAccount:terraform-multicloud-proxy-sa@\u003cPROJECT\u003e.iam.gserviceaccount.com\" \\\n  --role \"roles/editor\"\n```\n\n**Yandex:**\n\n```bash\nyc resource-manager cloud list\n\nyc resource-manager folder list\n\nyc iam service-account create \\\n    --cloud-id \"\u003cCLOUD_ID\u003e\" \\\n    --folder-id \"\u003cFOLDER_ID\u003e\" \\\n    \"terraform-multicloud-proxy-sa\" \n\nyc iam key create \\\n    --service-account-name \"terraform-multicloud-proxy-sa\" \\\n    --output ~/terraform-multicloud-proxy-sa-yandex.json\n\nyc resource-manager folder add-access-binding \"\u003cFOLDER_NAME\u003e\" \\\n    --subject \"serviceAccount:\u003cSERVICE_ACCOUNT_ID\u003e\" \\\n    --role \"editor\" \n\nyc iam access-key create \\\n    --service-account-name \"terraform-multicloud-proxy-sa\"\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flivelace%2Fterraform-multicloud-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flivelace%2Fterraform-multicloud-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flivelace%2Fterraform-multicloud-proxy/lists"}