Skip to content

MatthiasWeier/remote-devops-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Remote DevOps Portfolio

Goal: Build a modern, scalable cloud environment

This repository documents my journey from manual click-ops to a fully automated cloud environment managed via Infrastructure as Code (IaC) on Oracle Cloud Infrastructure (OCI).


Tech Stack

  • Cloud Provider: Oracle Cloud Infrastructure (OCI)
  • Infrastructure as Code: Terraform
  • Containerization: Docker & Docker Compose
  • Traffic Routing & SSL: Traefik / Nginx Proxy Manager
  • Monitoring & Management: Portainer, Uptime Kuma, Watchtower

Project Roadmap

Phase 1: Foundation & Security

Focus: Establish an indestructible baseline on the "Always Free" tier.

  • Account Hardening: Enabled MFA for OCI login and set a budget alert (> €1.00).
  • Base Instance: Provisioned an "Ampere A1" instance (ARM) with 4 Cores, 24 GB RAM, and Ubuntu.
  • Cloud Network (VCN): Configured Ingress Rules (opened ports 80 & 443).
  • Docker Setup: Installed Docker, Docker Compose, and Portainer for management.

Phase 2: Infrastructure as Code

Focus: Learn automation and resource management.

  • Terraform Basics: Local setup and API keys configured via .oci/config.
  • The Sandbox: Wrote scripts to automatically provision and destroy x86 test servers (terraform apply & terraform destroy).
  • Version Control: Established a secure GitHub repository (including strict .gitignore to protect tfstate files and credentials).

Phase 3: Traffic & Automation

Focus: Professional traffic routing and container updates.

  • Reverse Proxy: Set up as a Docker container on the base instance.
  • Domain Routing: Configured DNS records and Let's Encrypt for automatic SSL certificates.
  • Watchtower: Implemented automated update management for running containers.

Phase 4: Showcase Portfolio

Focus: Deploy visible applications that utilize the server's resources.

  • Monitoring: Deployed Uptime Kuma to monitor cloud services and the local homelab.
  • Workspaces: Deployed Kasm in Docker to leverage the 24 GB RAM of the ARM instance for desktop streaming.
  • Clean-Up: Ensured all manual and Terraform-generated x86 resources are completely destroyed.

Folder Structure

remote-devops-lab/
├── .gitignore
├── README.md
│
├── terraform/
│   └── proxmox/                       
│       ├── main.tf
│       ├── providers.tf
│       ├── variables.tf
│       ├── outputs.tf                 
│       ├── terraform.tfvars
│       ├── templates/                 
│       │   └── inventory.tftpl        
│       └── modules/
│           └── ubuntu-vm/             
│               ├── main.tf
│               ├── variables.tf
│               └── outputs.tf
│
├── ansible/
│   ├── ansible.cfg                    <-- Basic ansible settings
│   ├── inventories/
│   │   └── production/
│   │       ├── hosts.ini              <-- AUTO-GENERATED by Terraform! Do not edit manually.
│   │       ├── group_vars/
│   │       │   ├── all.yml            
│   │       │   ├── docker_nodes.yml   <-- Variables for all docker hosts
│   │       │   └── proxy_nodes.yml    
│   │       └── host_vars/             <-- VM specific variables
│   │
│   ├── playbooks/
│   │   ├── site.yml                   <-- Master playbook
│   │   ├── docker.yml                 <-- Maps docker role to VMs
│   │   └── proxy.yml                  <-- Maps proxy role to VMs
│   │
│   └── roles/
│       ├── docker_setup/              <-- Installs docker engine
│       │   └── tasks/main.yml
│       ├── deploy_compose/            <-- Generic role to copy and run compose files
│       │   └── tasks/main.yml
│       └── nginx_proxy/
│           └── tasks/main.yml
│
└── docker/                            
    ├── portainer/
    │   └── docker-compose.yml
    ├── reverse-proxy/
    │   └── docker-compose.yml
    ├── watchtower/
    │   └── docker-compose.yml
    ├── monitoring/
    │   └── docker-compose.yml
    └── workspaces/
        └── docker-compose.yml

About

Infrastructure as Code (IaC) repository for my Remote DevOps portfolio. Features automated OCI provisioning with Terraform, container management, and secure traffic routing.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages