Skip to content
View mikecozier's full-sized avatar

Block or report mikecozier

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
mikecozier/README.md

Hello World! πŸ‘‹
I'm Michael Cozier

🎯 DevOps Intern @ Rakuten Advertising

Linux & Automation Enthusiast | Security+ Certified | Army & NYPD Veteran

I'm transitioning into tech after 20 years of service in the U.S. Army and NYPD,
where I developed strong leadership and problem-solving skills. Now, I apply that
discipline to infrastructure automation, cloud security, and scalable DevOps systems.

πŸŽ“ Currently: B.S. in Computer Security Technology (GPA: 3.95) at Farmingdale State College
πŸ“œ Certified: CompTIA Security+, Google Associate Cloud Engineer

🧰 Skills:
Linux server hardening β€’ Fail2Ban β€’ Docker β€’ Ansible β€’ Traefik
CI/CD with GitHub Actions β€’ AWS & GCP IAM β€’ Prometheus β€’ Grafana β€’ Wazuh
Active Directory β€’ Dynamic DNS β€’ Infrastructure as Code (IaC)

πŸš€ Featured DevOps Projects

🎬 Python Web App for Radarr + Plex Movie Requests
Built a Flask web app that accepts movie title input and stores it in a MySQL database. Backend scripts forward the request to Radarr via its API, which downloads the movie and makes it instantly available in Plex.
Tech: Python (Flask), MySQL, Radarr API, Plex, Docker
Outcome: A private, automated movie request system with seamless integration into the home media server experience.
πŸ” SSH Hardening with Fail2Ban & Custom Reporting
Secured SSH access using hardened sshd_config and key-only login. Integrated Fail2Ban with a Bash script to extract banned IPs, map locations with GeoIP, and email daily reports.
Tech: Fail2Ban, OpenSSH, Bash, geoiplookup, Cron, Mutt
Outcome: Proactive alerting and hardened access against brute-force attacks.
πŸ›°οΈ Self-Hosted DevOps Infrastructure Stack
Built a secure monitoring and reverse proxy setup with Docker Compose on Ubuntu. Enabled full observability, automatic TLS, and DNS filtering.
Tech: Docker, Traefik, Prometheus, Grafana, Netdata, Pi-hole, Cloudflare DNS
Outcome: Production-grade, publicly accessible infrastructure with auto-renewing Let's Encrypt certs.
βš™οΈ Proxmox VM Cluster with Ansible Automation
Deployed a virtualized server cluster using Proxmox VE on Minisforum MS-01. Used Ansible to automate updates and configuration across all nodes.
Tech: Proxmox VE, Ansible, Ubuntu Server
Outcome: Centralized, hands-off server management with consistent deployments.
πŸš€ CI/CD Pipeline for Python App Deployment
Automated Docker build/push and deployment of a Python app using GitHub Actions. Pushes to Docker Hub and deploys to a remote server over SSH.
Tech: GitHub Actions, Docker, Ubuntu Server, SSH
Outcome: Continuous delivery from code commit to live environment.
πŸ“‘ Cloudflare DDNS with Shell Script Automation
Wrote a Bash script that checks the public IP every 5 minutes and updates a Cloudflare DNS A record using their API.
Tech: Bash, Cloudflare API, Cron
Outcome: Maintains remote access without third-party DDNS services.
🌐 Public-Facing Website for HA Electric Inc.
Deployed a secure, production-ready website to an AWS EC2 instance using Docker and NGINX. Configured Cloudflare DNS, dynamic TLS with Let's Encrypt, and firewall rules with UFW.
Tech: AWS EC2, Docker, NGINX, Cloudflare DNS, Certbot, UFW
Outcome: A fast, secure, mobile-friendly site with automatic HTTPS at haelectricinc.com.

I'm passionate about building secure, reliable systems β€” always learning, always building.

πŸ”— michaelcozier.com | πŸ’¬ Let's connect!

Coding


Connect with me:

LinkedIn


Languages and Tools:

Pinned Loading

  1. Server-Stat-Script Server-Stat-Script Public

    Linux Server Stats Script Emailed Daily

    Shell

  2. Bad-SSH-Attempts Bad-SSH-Attempts Public

    Location & Hops for unauthorized SSH attempts

    Shell