Skip to content

Latest commit

 

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages