Heat the oil in a large pot or Dutch oven over medium heat. Add the bacon and cook until slightly crispy, about 5 minutes.
Add ham hocks, onion, peppers, and celery. Cook 5 minutes, or until the vegetables are softened.
Add garlic and cook 1 minute, stirring, until garlic becomes fragrant.
Add paprika, oregano, basil, cayenne, and a pinch of salt and pepper. Stir and cook 1 minute to bloom the spices.
Stir in the fire-roasted tomatoes and broth. Bring to a boil, then reduce heat, cover, and simmer 1 to 1 1/2 hours, or until the ham hock meat is tender and pulls easily from the bone.
Remove the ham hocks and set aside to cool slightly. Skim any fat from the surface.
Add the cabbage and potatoes. Return to a simmer and cook 20 to 30 minutes, or until the cabbage and potatoes are cooked to your preference.
While the soup simmers, pick the meat from the ham hocks, discarding the bones, skin, and fat. Return the meat to the pot.
Stir in apple cider vinegar and adjust for salt and pepper.
Serve into bowls and garnish with fresh chopped parsley and red pepper flakes.