<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vishal Kondi</title>
    <description>The latest articles on DEV Community by Vishal Kondi (@vishal_kondi_92483f40e706).</description>
    <link>https://dev.to/vishal_kondi_92483f40e706</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1529658%2F7662c8bf-1997-432c-a26a-657f49b17506.jpeg</url>
      <title>DEV Community: Vishal Kondi</title>
      <link>https://dev.to/vishal_kondi_92483f40e706</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vishal_kondi_92483f40e706"/>
    <language>en</language>
    <item>
      <title>🚀 Deployed My Next.js Portfolio on AWS EC2 (Production Setup)</title>
      <dc:creator>Vishal Kondi</dc:creator>
      <pubDate>Sat, 28 Feb 2026 18:38:05 +0000</pubDate>
      <link>https://dev.to/vishal_kondi_92483f40e706/deployed-my-nextjs-portfolio-on-aws-ec2-production-setup-3d6b</link>
      <guid>https://dev.to/vishal_kondi_92483f40e706/deployed-my-nextjs-portfolio-on-aws-ec2-production-setup-3d6b</guid>
      <description>&lt;p&gt;🚀 From Localhost to Live Cloud Server—Portfolio&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkda8wj1eobbmhiylcdnq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkda8wj1eobbmhiylcdnq.png" alt=" " width="800" height="400"&gt;&lt;/a&gt; Deployed on AWS EC2&lt;/p&gt;

&lt;p&gt;Today I took my Next.js portfolio from development mode to a fully live production server on AWS EC2 (Amazon Linux 2023).&lt;/p&gt;

&lt;p&gt;Instead of using managed platforms, I deployed it manually to understand the infrastructure deeply.&lt;/p&gt;

&lt;p&gt;⚙️ What I did:&lt;br&gt;
• Launched EC2 instance&lt;br&gt;
• Configured Amazon Linux&lt;br&gt;
• Installed Node.js &amp;amp; Git&lt;br&gt;
• Built the Next.js app for production&lt;br&gt;
• Managed the process using PM2&lt;br&gt;
• Configured Nginx as reverse proxy&lt;br&gt;
• Opened and secured ports via Security Groups&lt;/p&gt;

&lt;p&gt;🌍 Result:&lt;br&gt;
My portfolio is now live on a public cloud server.&lt;/p&gt;

&lt;p&gt;🔗 Live Demo:&lt;br&gt;
&lt;a href="http://32.192.174.226" rel="noopener noreferrer"&gt;http://32.192.174.226&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>devops</category>
      <category>nextjs</category>
      <category>showdev</category>
    </item>
    <item>
      <title>🐳 Complete Docker Commands Reference Guide</title>
      <dc:creator>Vishal Kondi</dc:creator>
      <pubDate>Thu, 12 Feb 2026 03:53:09 +0000</pubDate>
      <link>https://dev.to/vishal_kondi_92483f40e706/docker-commands-complete-practical-guide-4jam</link>
      <guid>https://dev.to/vishal_kondi_92483f40e706/docker-commands-complete-practical-guide-4jam</guid>
      <description>&lt;p&gt;_1. 🐳 Complete Docker Commands Reference Guide&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;- A practical and categorised Docker command guide for beginners to advanced users.&lt;/li&gt;
&lt;li&gt;- 📦 1. Installation &amp;amp; Service Management&lt;/li&gt;
&lt;li&gt;- yum install docker -y&lt;/li&gt;
&lt;li&gt;- Install Docker (CentOS/RHEL).&lt;/li&gt;
&lt;li&gt;- docker version&lt;/li&gt;
&lt;li&gt;- Check the Docker version.&lt;/li&gt;
&lt;li&gt;- systemctl status docker&lt;/li&gt;
&lt;li&gt;- Check Docker service status.&lt;/li&gt;
&lt;li&gt;- systemctl start docker&lt;/li&gt;
&lt;li&gt;- Start Docker service.&lt;/li&gt;
&lt;li&gt;- 🖼️ 2. Docker Images&lt;/li&gt;
&lt;li&gt;- docker images&lt;/li&gt;
&lt;li&gt;- List all images on your server.&lt;/li&gt;
&lt;li&gt;- docker pull image_name&lt;/li&gt;
&lt;li&gt;- Download the image from Docker Hub.&lt;/li&gt;
&lt;li&gt;- docker rmi image_name&lt;/li&gt;
&lt;li&gt;- Delete image.&lt;/li&gt;
&lt;li&gt;- docker build -t image_name .&lt;/li&gt;
&lt;li&gt;- Build an image from the Dockerfile (. represents the current directory).&lt;/li&gt;
&lt;li&gt;- docker build -t image_name:tag_name .&lt;/li&gt;
&lt;li&gt;- Build image with a specific tag.&lt;/li&gt;
&lt;li&gt;- docker image inspect image_name&lt;/li&gt;
&lt;li&gt;- Inspect image details.&lt;/li&gt;
&lt;li&gt;- 📦 3. Docker Containers&lt;/li&gt;
&lt;li&gt;- ▶ Run Containers&lt;/li&gt;
&lt;li&gt;- docker run image_name&lt;/li&gt;
&lt;li&gt;- Run container from image.&lt;/li&gt;
&lt;li&gt;- docker run -it --name cont_name image_name&lt;/li&gt;
&lt;li&gt;- Run interactive container.&lt;/li&gt;
&lt;li&gt;- docker run -it -d --name cont_name image_name&lt;/li&gt;
&lt;li&gt;- Run container in detached (background) mode.&lt;/li&gt;
&lt;li&gt;- docker run -it -d --name cont_name -p 8081:80 image_name&lt;/li&gt;
&lt;li&gt;- Run container with port mapping&lt;/li&gt;
&lt;li&gt;- 8081 → Host Port&lt;/li&gt;
&lt;li&gt;- 80 → Container Port&lt;/li&gt;
&lt;li&gt;- 📋 Container Management&lt;/li&gt;
&lt;li&gt;- docker ps&lt;/li&gt;
&lt;li&gt;- Show running containers.&lt;/li&gt;
&lt;li&gt;- docker ps -a&lt;/li&gt;
&lt;li&gt;- Show all containers.&lt;/li&gt;
&lt;li&gt;- docker ps -a -f "status=exited"&lt;/li&gt;
&lt;li&gt;- Show only stopped containers.&lt;/li&gt;
&lt;li&gt;- docker container ls&lt;/li&gt;
&lt;li&gt;- Show running containers.&lt;/li&gt;
&lt;li&gt;- docker container ls -a&lt;/li&gt;
&lt;li&gt;- Show all containers.&lt;/li&gt;
&lt;li&gt;- docker container ls -a -n 2&lt;/li&gt;
&lt;li&gt;- Show latest 2 containers.&lt;/li&gt;
&lt;li&gt;- docker container ls --latest&lt;/li&gt;
&lt;li&gt;- Show latest container.&lt;/li&gt;
&lt;li&gt;- docker container ls -a -s&lt;/li&gt;
&lt;li&gt;- Show containers with sizes.&lt;/li&gt;
&lt;li&gt;- ⏹ Stop / Start Containers&lt;/li&gt;
&lt;li&gt;- docker stop cont_name&lt;/li&gt;
&lt;li&gt;- docker start cont_name&lt;/li&gt;
&lt;li&gt;- Stop or start a container.&lt;/li&gt;
&lt;li&gt;- Stop all containers:&lt;/li&gt;
&lt;li&gt;- docker stop $(docker ps -a -q)&lt;/li&gt;
&lt;li&gt;- Start all containers:&lt;/li&gt;
&lt;li&gt;- docker start $(docker ps -a -q)&lt;/li&gt;
&lt;li&gt;- ❌ Remove Containers&lt;/li&gt;
&lt;li&gt;- docker rm cont_name&lt;/li&gt;
&lt;li&gt;- Delete single container.&lt;/li&gt;
&lt;li&gt;- docker rm $(docker ps -a -q)&lt;/li&gt;
&lt;li&gt;- Delete all containers.&lt;/li&gt;
&lt;li&gt;- docker container prune&lt;/li&gt;
&lt;li&gt;- Remove unused containers.&lt;/li&gt;
&lt;li&gt;- 🔄 Rename &amp;amp; Commit&lt;/li&gt;
&lt;li&gt;- docker rename old_cont_name new_cont_name&lt;/li&gt;
&lt;li&gt;- Rename container.&lt;/li&gt;
&lt;li&gt;- docker commit cont_name image_name&lt;/li&gt;
&lt;li&gt;- Create image from container.&lt;/li&gt;
&lt;li&gt;- 🔍 Inspect&lt;/li&gt;
&lt;li&gt;- docker inspect cont_name&lt;/li&gt;
&lt;li&gt;- Get container details.&lt;/li&gt;
&lt;li&gt;- 🔐 Access Container&lt;/li&gt;
&lt;li&gt;- docker attach cont_name&lt;/li&gt;
&lt;li&gt;- Attach to running container.&lt;/li&gt;
&lt;li&gt;- Exit without stopping:&lt;/li&gt;
&lt;li&gt;- CTRL + P + Q&lt;/li&gt;
&lt;li&gt;- Execute command inside container:&lt;/li&gt;
&lt;li&gt;- docker exec -it cont_name bash&lt;/li&gt;
&lt;li&gt;- 💾 4. Docker Volumes&lt;/li&gt;
&lt;li&gt;- docker volume create volume_name&lt;/li&gt;
&lt;li&gt;- Create volume.&lt;/li&gt;
&lt;li&gt;- docker volume ls&lt;/li&gt;
&lt;li&gt;- List volumes.&lt;/li&gt;
&lt;li&gt;- docker volume rm volume_name&lt;/li&gt;
&lt;li&gt;- Delete volume.&lt;/li&gt;
&lt;li&gt;- docker volume prune&lt;/li&gt;
&lt;li&gt;- Delete unused volumes.&lt;/li&gt;
&lt;li&gt;- docker volume inspect volume_name&lt;/li&gt;
&lt;li&gt;- Inspect volume.&lt;/li&gt;
&lt;li&gt;- 🔗 Mount Volumes&lt;/li&gt;
&lt;li&gt;- Named volume:&lt;/li&gt;
&lt;li&gt;- docker run -it --name cont_name -v volume_name:/container_volume image_name&lt;/li&gt;
&lt;li&gt;- Bind mount (local directory):&lt;/li&gt;
&lt;li&gt;- docker run -it --name cont_name -v $(pwd):/container_volume image_name&lt;/li&gt;
&lt;li&gt;- Using mount syntax:&lt;/li&gt;
&lt;li&gt;- docker run -it --name cont_name --mount source=volume_name,destination=/container_volume image_name&lt;/li&gt;
&lt;li&gt;- 🌐 5. Docker Networks&lt;/li&gt;
&lt;li&gt;- docker network ls&lt;/li&gt;
&lt;li&gt;- List networks.&lt;/li&gt;
&lt;li&gt;- docker network create network_name&lt;/li&gt;
&lt;li&gt;- Create network.&lt;/li&gt;
&lt;li&gt;- docker network connect network_name cont_name&lt;/li&gt;
&lt;li&gt;- Attach network to container.&lt;/li&gt;
&lt;li&gt;- docker network disconnect network_name cont_name&lt;/li&gt;
&lt;li&gt;- Disconnect network.&lt;/li&gt;
&lt;li&gt;- docker network rm network_name&lt;/li&gt;
&lt;li&gt;- Remove network.&lt;/li&gt;
&lt;li&gt;- docker network prune&lt;/li&gt;
&lt;li&gt;- Remove unused networks.&lt;/li&gt;
&lt;li&gt;- Run container with network:&lt;/li&gt;
&lt;li&gt;- docker run -it --name cont_name --network network_name image_name&lt;/li&gt;
&lt;li&gt;- ☁️ 6. Docker Hub&lt;/li&gt;
&lt;li&gt;- docker login&lt;/li&gt;
&lt;li&gt;- Login to Docker Hub.&lt;/li&gt;
&lt;li&gt;- Tag image:&lt;/li&gt;
&lt;li&gt;- docker tag image_name dockerhub_id/repo_name&lt;/li&gt;
&lt;li&gt;- Push image:&lt;/li&gt;
&lt;li&gt;- docker push dockerhub_id/repo_name&lt;/li&gt;
&lt;li&gt;- Pull image:&lt;/li&gt;
&lt;li&gt;- docker pull image_name&lt;/li&gt;
&lt;li&gt;- 🐳 7. Docker Swarm&lt;/li&gt;
&lt;li&gt;- Initialize swarm:&lt;/li&gt;
&lt;li&gt;- docker swarm init --advertise-addr public_ip&lt;/li&gt;
&lt;li&gt;- Get join tokens:&lt;/li&gt;
&lt;li&gt;- docker swarm join-token manager&lt;/li&gt;
&lt;li&gt;- docker swarm join-token worker&lt;/li&gt;
&lt;li&gt;- List nodes:&lt;/li&gt;
&lt;li&gt;- docker node ls&lt;/li&gt;
&lt;li&gt;- 🚀 8. Docker Services (Swarm Mode)&lt;/li&gt;
&lt;li&gt;- Create service:&lt;/li&gt;
&lt;li&gt;- docker service create --name service_name --replicas 2 --publish 8081:80 image_name&lt;/li&gt;
&lt;li&gt;- List services:&lt;/li&gt;
&lt;li&gt;- docker service ls&lt;/li&gt;
&lt;li&gt;- Remove service:&lt;/li&gt;
&lt;li&gt;- docker service rm service_name&lt;/li&gt;
&lt;li&gt;- Scale service:&lt;/li&gt;
&lt;li&gt;- docker service scale service_name=4&lt;/li&gt;
&lt;li&gt;- Update image:&lt;/li&gt;
&lt;li&gt;- docker service update --image image_name service_name&lt;/li&gt;
&lt;li&gt;- Rollback:&lt;/li&gt;
&lt;li&gt;- docker service rollback service_name&lt;/li&gt;
&lt;li&gt;- Inspect service:&lt;/li&gt;
&lt;li&gt;- docker service inspect service_name&lt;/li&gt;
&lt;li&gt;- Service logs:&lt;/li&gt;
&lt;li&gt;- docker service logs service_name&lt;/li&gt;
&lt;li&gt;- 🧩 9. Docker Compose&lt;/li&gt;
&lt;li&gt;- Start services:&lt;/li&gt;
&lt;li&gt;- docker-compose up -d&lt;/li&gt;
&lt;li&gt;- Stop &amp;amp; remove:&lt;/li&gt;
&lt;li&gt;- docker-compose down&lt;/li&gt;
&lt;li&gt;- Other commands:&lt;/li&gt;
&lt;li&gt;- docker-compose stop&lt;/li&gt;
&lt;li&gt;- docker-compose start&lt;/li&gt;
&lt;li&gt;- docker-compose pause&lt;/li&gt;
&lt;li&gt;- docker-compose unpause&lt;/li&gt;
&lt;li&gt;- docker-compose ps&lt;/li&gt;
&lt;li&gt;- docker-compose build&lt;/li&gt;
&lt;li&gt;- docker-compose images&lt;/li&gt;
&lt;li&gt;- docker-compose logs&lt;/li&gt;
&lt;li&gt;- docker-compose config&lt;/li&gt;
&lt;li&gt;- docker-compose -f file_name.yml up -d&lt;/li&gt;
&lt;li&gt;- 🏗️ 10. Docker Stack&lt;/li&gt;
&lt;li&gt;- Deploy stack:&lt;/li&gt;
&lt;li&gt;- docker stack deploy -c docker-compose.yml stack_name&lt;/li&gt;
&lt;li&gt;- List stacks:&lt;/li&gt;
&lt;li&gt;- docker stack ls&lt;/li&gt;
&lt;li&gt;- Stack services:&lt;/li&gt;
&lt;li&gt;- docker stack services stack_name&lt;/li&gt;
&lt;li&gt;- Stack containers:&lt;/li&gt;
&lt;li&gt;- docker stack ps stack_name&lt;/li&gt;
&lt;li&gt;- Remove stack:&lt;/li&gt;
&lt;li&gt;- docker stack rm stack_name&lt;/li&gt;
&lt;li&gt;- 💽 11. Docker System&lt;/li&gt;
&lt;li&gt;- docker system df -v&lt;/li&gt;
&lt;li&gt;- View detailed Docker disk usage.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>docker</category>
      <category>tutorial</category>
      <category>devops</category>
      <category>aws</category>
    </item>
    <item>
      <title>🧠 Ultimate Git Cheat Sheet for Developers 🚀</title>
      <dc:creator>Vishal Kondi</dc:creator>
      <pubDate>Tue, 05 Aug 2025 17:11:58 +0000</pubDate>
      <link>https://dev.to/vishal_kondi_92483f40e706/ultimate-git-cheat-sheet-for-developers-1i98</link>
      <guid>https://dev.to/vishal_kondi_92483f40e706/ultimate-git-cheat-sheet-for-developers-1i98</guid>
      <description>&lt;p&gt;yum install git -y                  # Install Git on Linux&lt;br&gt;
git config user.name "Your Name"   # Set Git username&lt;br&gt;
git config user.email "&lt;a href="mailto:your@email.com"&gt;your@email.com&lt;/a&gt;"  # Set Git email&lt;br&gt;
git init                           # Initialize Git in current folder&lt;/p&gt;

&lt;p&gt;git add filename                   # Track specific file&lt;br&gt;
git add .                          # Track all files (incl. hidden)&lt;br&gt;
git commit -m "message"            # Commit with message&lt;br&gt;
git commit --amend -m "new msg"    # Amend last commit message&lt;/p&gt;

&lt;p&gt;git log                            # Full history&lt;br&gt;
git log --oneline                  # Short history&lt;br&gt;
git show               # Show details of a commit&lt;/p&gt;

&lt;p&gt;git reset --hard HEAD~1           # Remove last commit + changes&lt;br&gt;
git reset --soft HEAD~1           # Remove last commit only&lt;br&gt;
git revert             # Revert specific commit&lt;/p&gt;

&lt;p&gt;git branch                         # List branches&lt;br&gt;
git branch                   # Create new branch&lt;br&gt;
git checkout                 # Switch branch&lt;br&gt;
git checkout -b              # Create and switch branch&lt;br&gt;
git merge                  # Merge branches&lt;br&gt;
git cherry-pick         # Pick specific commit&lt;/p&gt;

&lt;p&gt;git remote add origin    # Link to GitHub repo&lt;br&gt;
git push -u origin         # Push code to GitHub&lt;br&gt;
git clone                # Clone remote repo&lt;br&gt;
git pull origin            # Pull latest changes&lt;/p&gt;

&lt;p&gt;git stash                          # Stash current changes&lt;br&gt;
git stash apply                    # Apply stashed changes&lt;br&gt;
git stash list                     # List all stashes&lt;br&gt;
git stash drop stash@{0}           # Remove specific stash&lt;/p&gt;

&lt;p&gt;git branch -d               # Delete branch&lt;br&gt;
git push origin --delete   # Delete remote branch&lt;br&gt;
git remote rm origin              # Unlink remote&lt;/p&gt;

</description>
      <category>devops</category>
      <category>github</category>
    </item>
  </channel>
</rss>
