\documentclass{article}
\usepackage{ulem}
\usepackage{graphicx}
\usepackage{hyperref}
\pagestyle{headings}
\begin{document}
\part{Recovery}
To recover from a backup, first ensure these external services are running correctly and contain the desired data:

\begin{itemize}
\item LDAP (for authentication services or LDAP addressbooks)


\item imap (for email)


\item SQL Database


\item Web Server configuration and certificates


\item Virtual Filesystem tree (if not stored into a database)


\end{itemize}
\section{Recovering the software installation}
\begin{itemize}
\item Clone the root project using git


\item Copy your composer.json and composer.lock files from the backup into the root project


\item Copy your var/config folder from the backup into the root project


\item Adjust file ownership if needed


\end{itemize}
\section{Re-installing the current software state}
<pre><code>
composer install
</code></pre>
Composer tracks the exact versions in the composer.lock file and reinstalls the same set of versions

\section{Post processing}
Run this command to check for outdated library versions.

<pre><code>
composer outdated
</code></pre>
Red entries are minor or patch releases and usually recommended. Yellow entries are major releases. These can break the depending applications.

Cross-check with the why-not command

<pre><code>
composer why-not sabre/xml 4.0.0
sabre/dav      4.4.0  requires  sabre/xml (\^{}2.0.1)
sabre/vobject  4.5.1  requires  sabre/xml (\^{}2.1)
</code></pre>
\end{document}
