This paper introduces a novel affine formulation of the equations of motion of a satellite in a geostationary orbit and, based on this formulation, presents a method for determining station-keeping maneuvers using convex optimization. The state equations are written as a linear, time-varying system and include all dominant perturbing accelerations. An investigation into the modeling errors is presented to validate and establish fidelity in the approach. The linearity of the system enables the formulation of the station-keeping problem as a convex optimization problem. The optimization-based formulation allows to explicitly account for constraints on state and control variables. The resulting problem canbesolved reliably, requiring only limited computational resources, making the method not only applicable to on-ground open-loop maneuver planning (the current state of the art) but also to a closed-loop onboard implementation. The methodisgeneric and can be appliedto satellites equipped with high-thrust chemical propulsion and low-thrust electric propulsion. The resulting maneuver plans consist of only a few maneuvers. The station keeping method is validated by comparison to a conventional method. Further benefits are demonstrated through an application of the method in the form of receding horizon control.