My favorite construction is due to Bernhard Keller, Chain complexes and stable categories, Lemma 4.1 b) on page 14; the article is available on his webpage (the lemma is formulated using injectives, but injectivity is not used in the argument). I've given the same argument for the dual situation with somewhat more details in Theorem 12.7 here.
(An alternative method would be to appeal to Cartan–Eilenberg resolutions, which are treated in any sufficiently advanced homological algebra text I can think of, e.g. Weibel. The keywords to look for are “hyper-derived functors” and “hyperhomology”. Unfortunately, the usual expositions of the construction rely on injectivity, so these arguments need to be modified and I don't know of a reference for that.)
Let me also mention Lemma 13.2.1, page 325 of Kashiwara–Schapira, Categories and Sheaves for some variants of this result.
Here's Keller's construction:
Embed $X^0$ into a $\mathcal{J}$-object and form the push-out
X^0 -----> X^1 V V | | | | V V J^0 -----> Y^1
The differential $X^1 \to X^2$ factors over a unique morphism $Y^1 \to X^2$ such that $J^0 \to Y^1 \to X^1$ is zero. Now embed $Y^1$ into $J^1$ and form the push-out under that morphism and $Y^1 \to X^2$ and continue in this fashion to get:
X^0 -----> X^1 V V | | | | V V J^0 -----> Y^1 -----> X^2 V V | | | | V V J^1 -----> Y^2 -----> X^3 V V | | | | V V J^2 -----> Y^3 etc.
The $J^n$ form a complex in an obvious way and there is a (degreewise monic) chain map $X^\bullet \to J^\bullet$. The fact that a square
d A ------> B V V | | | i | j V e V C ------> D
is a push-out if and only if the diagonal sequence
[ d] [-i] [j e] A -----> B+C -----> E
is short exact exhibits the mapping cone of this chain map $X^\bullet \to J^\bullet$ as an acyclic complex, hence we have the desired quasi-isomorphism (you may have to fiddle a bit with the signs to make this harmonize with your favorite sign conventions).