\documentclass{article}
\usepackage{ulem}
\pagestyle{headings}
\begin{document}
\tableofcontents

\part{ Horde 6 Installation Instruction (Draft)}
Horde 6 (unreleased) uses the composer package manager. https://getcomposer.org/doc/00-intro.md\footnote{https://getcomposer.org/doc/00-intro.md} A lot of details have changed compared to previous versions.\newline
Before running this code in production, please ensure you are familiar with the procedures

\section{ Linux Server: Installation from Scratch}
This section is about an end user installation for testing or running in production

\subsection{ Prerequisites}
* SQL Database Setup\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/SQL}\newline
 * Web Server Setup\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/WebServer}\newline
 * PHP Version and Extensions\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/PHP}\newline
 * Composer\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/Composer}\newline
 * git - optional, recommended\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/git}\newline
 * IMAP and SMTP Server -optional, needed for Webmail and other mail related services\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/Mail}

\subsection{ Installation Steps}
This section goes through an installation step by step. You will first setup Horde with users stored into a SQL database, then add groupware applications with their default settings and finally setup Web Mail and Filters.\newline
See "Recovering" for more concise, automation-friendly instructions.

* Get A Root Project\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/RootProject}\newline
 * Install the Horde Base System, connect to database, inject initial admin user\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/InstallBase}

\subsection{ Install Horde Applications}
Kronolith Calendar, Nag Tasks, Mnemo Notes, Passwd Password, Turba Contacts, content/timeobjects\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/InstallAppsGroupware}\newline
IMP Webmail, Ingo Mail Filter Manager\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/InstallAppsMail}\newline
Gollem File Manager\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/InstallAppsGollem}\newline
Wicked WIKI - TBD\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/InstallAppsWicked}\newline
Hermes Time Tracking - TBD\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/InstallAppsHermes}\newline
Whups Ticket System - TBD\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/InstallAppsWhups}\newline
Ansel Photo Gallery App - TBD\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/InstallAppsAnsel}\newline
Sesha Inventory App - TBD\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/InstallAppsSesha}\newline
Development Tools: Components, Chora Repo Viewer, \footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/InstallAppsDev}\newline
Installing a Third Party application for the Horde 6 Framework\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/InstallThirdParty}

\subsection{ Removing a Horde Application}
How to remove an app\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/UninstallApps}

\subsection{ Upgrading a Horde 6 system after installation}
How to upgrade a single app or the whole deployment\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/UpgradeApps}

\subsection{ Backup a Horde Installation}
How to backup a horde environment\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/BackupApps}

\subsection{ Recovering from Backup}
How to recover from a backup\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/Recovery}

\section{ Developer Install}
This section is for developers. If you don't intend to work with git and run the very latest, untested code, then this is not for you.

There is a developer container setup if that's your thing. https://github.com/horde/horde-support/tree/feat/containers\footnote{https://github.com/horde/horde-support/tree/feat/containers}. Don't run this for anything but testing.

For a developer setup right on your machine, provided you already have a mail server, a database etc

1) Get the latest build of horde-components.phar from https://github.com/horde/components/releases\footnote{https://github.com/horde/components/releases}\newline
2) Export a github token to your shell:\newline
export GITHUB\_TOKEN=ghp\_\ldots\newline
export HORDE\_GIT\_DIR=/srv/git/\newline
export HORDE\_INSTALL\_DIR=/var/www/horde-dev\newline
3) Run horde-components github-clone-org\newline
4) Run horde-components install\newline
5) cd /var/www/horde-dev\newline
6) composer install\newline
7) cp /var/www/horde-dev/vendor/horde/horde/config/conf.php.dist /var/www/horde-dev/var/config/horde\newline
8) composer horde:reconfigure\newline
9) Configure your webserver and/or php-fpm.  The /web dir is your webroot. /web/horde/ is your horde base app.\newline
10) Amend your configuration until you have your database configuration. Then run /var/www/horde-dev/vendor/bin/horde-db-migrate. \newline
11) Then setup authentication. If you use SQL authentication you can inject a user from the command line.\newline
12) Install more horde apps: \newline
composer require horde/nag\newline
composer require horde/mnemo\newline
composer require horde/kronolith\newline
composer require horde/passwd

Run the migration again:\newline
/var/www/horde-dev/vendor/bin/horde-db-migrate

Put the config files in /var/www/horde-dev/var/config/\$app\newline
Run composer horde:reconfigure to link the config files.

To update your installation to the latest upstream changes run again horde-components.phar github-clone-org

\section{ Ready to run docker groupware setup}
\section{ Windows: Installation from scratch}
How to install on Windows 10 or 11\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/Windows}

\section{ Upgrading from Horde 5 PEAR or Linux Distribution}
 Upgrade from official Horde 5 releases\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/UpgradeH5Release}

\section{ Upgrading from Horde 5 git-tools installation}
From git-tools\footnote{http://example.com/index.php?page=Doc/Dev/H6/Installation/UpgradeH5Git}

\section{ Upgrading from Horde 4 or older}
TBD

\section{ Developer specific workflows}
Checkout a single library and setup for development\footnote{http://example.com/index.php?page=Doc/Dev/H6/Developer/LibraryWorkflow}\newline
Upgrade a single application and dependencies to development versions\footnote{http://example.com/index.php?page=Doc/Dev/H6/Developer/ApplicationWorkflow}\newline
Release an application version\footnote{http://example.com/index.php?page=Doc/Dev/H6/Developer/ReleaseWorkflow}

\section{ Known issues}
Known issues and proposed fixes for current alpha version\footnote{http://example.com/index.php?page=Doc/Dev/H6/Developer/KnownIssues}


\noindent\rule{\textwidth}{1pt}
Back to the Development Documentation\footnote{http://example.com/index.php?page=Doc/Dev/}

\end{document}
