📝 Description
This project involves configuring and managing a self-hosted VPS to deploy and maintain all my personal projects efficiently.
Infrastructure Setup:
Configured a bare-metal Ubuntu VPS from scratch, including firewall settings, SSH access, and OpenSSH port management.
Project Hosting:
The VPS currently hosts JCoaching and my portfolio, with plans to add more projects in the future.
Docker and Container Management:
Set up Docker for project isolation and efficient management of multiple applications.
Implemented Traefik as a reverse proxy for routing traffic and managing SSL certificates automatically.
Continuous Deployment:
Integrated a CI/CD pipeline using GitHub Actions to automate deployment when pushing to the production branch.
Used Watchtower to monitor and update Docker images automatically, ensuring all projects stay up-to-date.
Security and Optimization:
Hardened the server with a configured firewall and secure SSH access.
Managed routing and project availability with minimal downtime.
💬 Feedback
This project is a major milestone for me because:
I’ve created a scalable and reliable environment to host all my projects.
The integration of Docker, Traefik, and CI/CD pipelines has streamlined my deployment processes.
It reflects my ability to manage infrastructure, ensuring security and uptime for real-world applications.
I’m excited to continue expanding the scope of this project as I add more applications and refine the setup further.
🧠 What I learned with it
Managing my VPS has been a challenging but rewarding experience, allowing me to:
Learn how to configure a VPS from scratch, including system security and network management.
Set up and optimize Docker for managing multiple applications effectively.
Explore and integrate Traefik for dynamic routing and SSL management.
Automate deployments with CI/CD pipelines and Watchtower, significantly improving development workflows.
Enhance my understanding of server security and container orchestration.