Are you sure you need a custom fitness function?
It's a bit confusing, but you might be referring to a custom evaluation function. This should return a number that then the fitness function tries to maximize or minimize.
A great example is https://deap.readthedocs.io/en/master/examples/ga_onemax.html
In this tutorial, the standard maximizing fitness function is set up:
creator.create("FitnessMax", base.Fitness, weights=(1.0,))
creator.create("Individual", list, fitness=creator.FitnessMax)
followed by the "custom" evaluation function:
def evalOneMax(individual):
return sum(individual),
which is then registered to the toolbox:
toolbox.register("evaluate", evalOneMax)