In a large pot or Dutch oven, add seafood shells and optional fish pieces. Fill pot with water, covering the shells by an 1 inch. Bring to a simmer. Do not bring to a hard boil. Cover and simmer for 30 minutes.
Remove lid and add all other ingredients. Do not stir. Bring to another simmer. Cover and simmer for 1 hour.
Turn off heat, and let stock sit for 30 minutes.
Using a large slotted or wire spoon, remove as many large pieces and aromatics as possible.
Line a mesh strainer or colander with a piece of cheesecloth, and place over a large bowl to strain the stock. If no cheesecloth is available, just use the strainer or colander. Pour all of the liquid from the pot in lined strainer. Squeeze remaining juices from cheesecloth. Disregard cheesecloth and any leftover pieces.
Using a measuring cup, divide stock into mason jars with airtight lids. Stock can be refrigerated for no longer than 4 days, and frozen for no longer than 2 months.