Heat oil in a medium stockpot over medium heat until hot but not smoking. Add chopped onion; cook, stirring often, until caramelized, 10 to 15 minutes. Add celery, carrots, and garlic. Cook, stirring occasionally, until vegetables are tender, about 10 minutes.
Stir in 10 cups water, parsley, basil, thyme, bay leaf, peppercorns, and onion half; season with salt and pepper. Bring to a boil. Reduce heat, and simmer 1 hour.
Pour stock through a fine sieve into a large bowl set in an ice-water bath, and press on vegetables to extract juices; discard solids. Refrigerate, covered, overnight.
Stock can be frozen in an airtight container up to 3 months.