Image copyright Reuters Image caption The remains of the ferry were towed back to port in Jakarta

At least 23 people have been killed and 17 more are missing after a ferry caught fire off the coast of Indonesia.

The Zahro Express ferry was carrying more than 230 people to Tidung island, a resort some 50km (30 miles) from the capital, Jakarta.

Officials said it burst into flames about 1.5km from Muara Angke port in Jakarta, shortly after setting sail.

Reports said many jumped into the sea. An official told BBC Indonesia that 194 people were rescued.

Nine remain in hospital.

"Fifteen minutes after the boat set sail, people at the back of the boat started making noise," one passenger told local media.

"Then I saw smoke, there was more and more, the boat was crowded and people were fighting for life jackets."

Another passenger said thick smoke suddenly filled the cabin.

"All passengers panicked and ran up to the deck to throw floats into the water. In a split second, the fire becomes bigger coming from where fuel is stored," Reuters news agency quoted the passenger as saying.

Image copyright EPA Image caption Witnesses said passengers panicked as flames engulfed the ship

The remains of the boat were towed back to Jakarta, where images showed the devastation caused by the blaze.

Reports suggested those on board were Indonesians heading to Tidung, which is part of the Thousand Islands chain, to celebrate the new year holiday.

A disaster agency spokesman told AFP news agency the ship was carrying more than double the number of people listed on its manifest.

Ferries are a key form of transport in Indonesia, which is made up of thousands of islands.

But safety records are poor, with ferries often overcrowded and poorly maintained.