Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/timoa/terraform-oci-vscode-server
Terraform project that deploys VSCode Server on Oracle Cloud Infrastructure (free tier) and protect the access with Cloudflare Zero Trust (optional) or an SSH tunnel
https://github.com/timoa/terraform-oci-vscode-server
cloudflare cloudflare-access cloudflare-tunnel cloudflare-zero-trust code-server managed-by-terraform oci terraform vscode vscode-remote
Last synced: 1 day ago
JSON representation
Terraform project that deploys VSCode Server on Oracle Cloud Infrastructure (free tier) and protect the access with Cloudflare Zero Trust (optional) or an SSH tunnel
- Host: GitHub
- URL: https://github.com/timoa/terraform-oci-vscode-server
- Owner: timoa
- License: apache-2.0
- Created: 2022-05-12T21:54:51.000Z (over 2 years ago)
- Default Branch: develop
- Last Pushed: 2024-11-13T19:42:14.000Z (6 days ago)
- Last Synced: 2024-11-13T20:31:25.699Z (6 days ago)
- Topics: cloudflare, cloudflare-access, cloudflare-tunnel, cloudflare-zero-trust, code-server, managed-by-terraform, oci, terraform, vscode, vscode-remote
- Language: HCL
- Homepage: https://timoa.com
- Size: 630 KB
- Stars: 26
- Watchers: 4
- Forks: 1
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Deploy VSCode Server on OCI with Terraform
[![Latest Release][release-badge]][release-url]
[![Build Status][github-badge]][github-url]
[![License][license-badge]][license-url]![Diagram VSCode hosted on OCI with CloudFlare Access (zero trust)][diagram]
Terraform project that deploys VSCode Server on Oracle Cloud Infrastructure using only the free tier.
> WARNING: This project is currently under active development.
> Please check back later.## The challenge
### Goal
Deploy a free and easy maintenable VSCode Server.
### Limitations
Currently, Oracle Cloud Free tier provides great performance (4vCPU ARM based, 24GB of RAM, and 200GB of storage), but:
* The instances are preemptible, which means that they can be terminated at any time
* We can't create custom images (with Packer for ex.), so we have to install VSCode Server and other dependencies at boot time
* Can be hard to find an OCI datacenter that still has available capacity### Use cases
* Code from any computer with your VSCode and your tools without any install
* Code from your tablet or slow computer with a remote VSCode Server
* Onboard a new team member without spending the first days configuring VSCode and other tools on their computer## How to start
### Create an OCI account
Signup for a free OCI account [here][oci-signup-url].
If you're new to Oracle Cloud Infrastructure, you need to the following:
* **Tenant**: kind of an account, like a company or an organization
* **Compartment**: it's a isolated area to deploy a project or an environment (similar a GCP project).I recommend to create a new compartment for deploying VSCode Server, that way you will be able to use share free tier resource for a different project or rebuild from scratch a new VSCode Server instead of using the default compartment.
### Configure the OCI authentication
### Deploy the VSCode Server instance
### Access to VSCode Server from your browser
### Create a Cloudflare acount (optional)
Signup for a free Cloudflare account [here][cloudflare-signup-url].
### Configure the Cloudflare Zero Trust (optional)
## TODO
* [x] Create the custom VCN (VPC)
* [x] Get the latest Ubuntu image automatically
* [x] Create the block volume for `/data` (100GB)
* [x] Attach the block volume to the instance
* [x] Create the instance on free tier (4 vCPU, 24GB memory)
* [x] Configure the instance and install VSCode Server with Cloud Init
* [x] Create automatically the SSH key pair
* [x] Mount and format the block volume on `/data`
* [x] Restrict SSH and VS Code port access
* [x] Configure backups of the block volume only
* [x] Configure Cloudflare Access (ZeroTrust) to secure the instance access
* [ ] Install dependencies/tools on the data volume to speed up the provisioning
* [ ] Create dynamically an Ansible Vault to save the sensitive data used by Ansible
* [ ] Encrypt the block volume with a KMS key
* [ ] Write the documentation for the manual steps (Oracle Cloud Infrastructure & Cloudflare accounts, etc.)
* [ ] Explain how to avoid the "Out of Host capacity" error on Oracle Cloud Infrastructure## Known issues
* [bug] Optional dependencies install are executed in parallel and can fail (dpkg lock) ([#11][i11])
* [bug] Inconsistent mounting of the /data volume ([#12][i12])
* [bug] Interactive terminal during Ansible run due to the SSH Host to allow ([#13][i13])[github-badge]: https://github.com/timoa/terraform-oci-vscode-server/workflows/Terraform/badge.svg
[github-url]: https://github.com/timoa/terraform-oci-vscode-server/actions?query=workflow%3ATerraform
[release-badge]: https://img.shields.io/github/release/timoa/terraform-oci-vscode-server.svg
[release-url]: https://github.com/timoa/terraform-oci-vscode-server/releases/latest
[license-badge]: https://img.shields.io/github/license/timoa/terraform-oci-vscode-server.svg
[license-url]: https://github.com/timoa/terraform-oci-vscode-server/blob/main/LICENSE[diagram]: /docs/diagram.svg
[oci-signup-url]: https://signup.cloud.oracle.com
[cloudflare-signup-url]: https://dash.cloudflare.com/sign-up[i11]: https://github.com/timoa/terraform-oci-vscode-server/issues/11
[i12]: https://github.com/timoa/terraform-oci-vscode-server/issues/12
[i13]: https://github.com/timoa/terraform-oci-vscode-server/issues/13