The crippled Costa Allegra has finally docked in the Seychelles island of Mahe after three days in open seas without power and passengers have stumbled ashore to reveal the terrible conditions they have had to endure.

Passengers complained of being forced to sleep on open deck in extreme heat, of not having enough food and of disgusting toilet conditions after the luxury liner lost power because of a fire in the generator room.

Several hundred passengers of the 1,049 people slept outside because their cabins were stifling without air-conditioning.

"We all went to our life stations and there was a point where we thought we were going to have to lower the boats," one passenger said. "So, then they were able to put the fire out and from that point on, it was just a matter of inconvenience, not having enough food, not being able to rest well at night. The heat was unbearable, so we had to spend most of our nights on the top deck of the ship."

Helicopters had to drop food, torches and emergency supplies to the stricken ship as it is running out of supplies. Nine armed Italian marines were on board to protect the ship against pirate attacks.

"It was terrible,," a passenger said. "Hygiene conditions were absolutely deplorable. I have some photos that show the state of the toilets. We stayed for three days without electricity; it's very difficult to live in such conditions, especially in such heat."

The Costa Allegra is a sister ship to the Costa Concordia, which capsized off Tuscany in January.

The ship's Italian owner, Costa Crociere, part of US cruise line giant Carnival Corp, said engineers, technicians and officials were flying to the Seychelles to repair the Allegra's generators.

The passengers, including four children, are from 25 different nations, with the largest contingents being 127 from France and 126 from Italy. There are 38 Germans, 31 Britons, 13 Canadians and eight Americans on board.