Thinly slice the onion, garlic and red pepper. Deseed and chop the chilli.
Heat the oil and sauté the onion until it starts browning. Add the red pepper, chilli, garlic, mustard seeds and fry for 2-3 minutes.
Add the ginger, ground coriander, turmeric and chilli powder and stir for 1 minute. Pour in the coconut milk and water and bring to the boil. Gently simmer for 10 minutes over low heat, until you get a thickened sauce. Taste and season with salt and pepper.
Cut the fish into big chunks and add to the sauce. Simmer gently, under cover, for 5 minutes.
Meanwhile, slice the shallot very thinly. Heat the oil in a small frying pan and fry the them until golden and crispy.
Serve the curry with the shallots and coriander leaves scattered on top. Squeeze some lime juice over it.