Given a finite set of local constraints, we seek a cellular automaton (i.e., a local and uniform algorithm) that self-stabilises on the configurations that satisfy these constraints. More precisely, starting from a finite perturbation of a valid configuration, the cellular automaton must eventually fall back into the space of valid configurations where it remains still. We allow the cellular automaton to use extra symbols, but in that case, the extra symbols can also appear in the initial finite perturbation. For several classes of local constraints (e.g., $k$-colourings with $k\neq 3$, and North-East deterministic constraints), we provide efficient self-stabilising cellular automata with or without additional symbols that wash out finite perturbations in linear or quadratic time, but also show that there are examples of local constraints for which the self-stabilisation problem is inherently hard. We note that the optimal self-stabilisation speed is the same for all local constraints that are isomorphic to one another. We also consider probabilistic cellular automata rules and show that in some cases, the use of randomness simplifies the problem. In the deterministic case, we show that if finite perturbations are corrected in linear time, then the cellular automaton self-stabilises even starting from a random perturbation of a valid configuration, that is, when errors in the initial configuration occur independently with a sufficiently low density.