How do I make an object move along a path in either direction?
It all depends on what kind of garage door you are talking about.

You can start with a single plank or slat.



Then add an array modifier to replicate it on the Z axis.



Add a curve with the path you want the door to follow (it's important that the door and the path have their origins on the same place):



On the original plank add a curve modifier and select the curve as guide object:



Move the door up and down on the Z axis, and it will curve following the path.



If you are dealing with a rigid door. Then instead of the curve modifier add a Follow Path constraint. And select the curve as target. Enable "Follow Path",  Set "Up" to Y and "Forward" to -Z



Then animate the offset value: