[commits] [Wiki] created: OpenSuse16LeapInstallationNotes
boekhorstb1
wikiguest at horde.org
Wed Oct 7 13:26:03 UTC 2026
dc6614599d7a6767a1d256383af89e27 Wed, 07 Oct 2026 13:26:03 +0000
Created page: https://wiki.horde.org/OpenSuse16LeapInstallationNotes
# Fresh Installation of Horde 6 on OpenSuse
There are a few helpful links that could help in case you get stuck:
- the [hordectl github
repository](https://github.com/horde/hordectl/blob/FRAMEWORK_6_0/doc/INSTALL_HORDE.md) contains very useful documentation that is not readily available in the horde
wiki.
# Installation on OpenSuse Leap 16.0
## Requirements
- composer v2
- apache2
- mariadb (used version: 11.8.8-160000.1.1, should work on newest)
- PHP 8.4 with cli, fpm, mysql, xml (note this means xmlreader and
xmlwriter for OpenSuse), mbstring, curl, gd, intl, bcmath, zip
extensions.
- unzip
OPTIONAL:
- a public IP
- an FQDN
NOTE: I will use `12.345.678.90.nip.io` as my FQDN. Note that nip.io
has DNS entries for all existing ips. So you can use yours there too
(just replace 12.345.678.90 with your ip).
I do this because I want to generate SSL certificates to run
horde with https.
OK lets start. You need to setup php 8.4 first, then install all the
required packages as follows:
```
$ zypper in php8-cli php8-fpm php8-mysql php8-xmlreader php8-xmlwriter
php8-mbstring php8-curl php8-gd php8-intl php8-bcmath php8-zip \
php-composer2 \
apache2 \
mariadb \
unzip
```
NOTE: composer will run when user is root. If it does not work for a
normal user you can create the following simlink:
```
sudo ln -s /usr/bin/composer /usr/local/bin/composer
```
## Install Hordectl
You need to be root (or use sudo) for this and all following steps.
```root
composer global require horde/hordectl:dev-FRAMEWORK_6_0
echo 'export PATH="$HOME/.config/composer/vendor/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
```
Test:
```root
hordectl version
```
NOTE (OPTIONAL) that this might not work:
```root
sudo hordectl version
```
This is becuase sudo has an own "secure_path" which is set in the
sudoers file (run `visudo`). If you want to sudo to work (not
necessary in when using root user)
then adapt that file or create an alias in the `.bashrc` file.m (add
something like `alias sudop='sudo env PATH=$PATH'` after above
exported Path variable).
## Prepare the database
Use `mariadb-secure-installation` to setup a root user and password.
Reference the hordectl docs
[here](https://github.com/horde/hordectl/blob/FRAMEWORK_6_0/doc/INSTALL_HORDE.md#database-mysql--mariadb).
Then log into mariadb as root and create the DB and User with full
access to it:
```root
mariadb -u root <<'EOF'
CREATE DATABASE horde CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'horde'@'localhost' IDENTIFIED BY '<secure-password>';
GRANT ALL PRIVILEGES ON horde.* TO 'horde'@'localhost';
FLUSH PRIVILEGES;
EOF
```
## Fetch and setup Horde in working directory
Setup horde in working directory `/srv/www/horde-deployment`
```root
hordectl install --install-dir=/srv/www/horde-deployment --stability=dev
```
Add permissions:
```root
chown -R wwwrun:www /srv/www/horde-deployment
chmod -R 775 /srv/www/horde-deployment
```
## Setup Apache
Than change it to use a socket and not localhost:
```root
sudo vim /etc/php8/fpm/php-fpm.d/www.conf
```
Change:
```root
listen = 127.0.0.1:9000
```
to something like:
```root
listen = /run/php/php8.4-fpm.sock
```
Also uncomment the following:
```root
listen.owner = wwwrun
listen.group = www
listen.mode = 0660
```
Restart php-fpm or/and ensure it is running and enabled:
```root
systemctl enable --now php-fpm
systemctl restart php-fpm
```
Troubleshoot if php-fpm is not starting or reloading:
```root
mkdir /run/php/
```
Now finally start creating the needed configuration files for apache2.
Reference the hordectl docs
[here](https://github.com/horde/hordectl/blob/FRAMEWORK_6_0/doc/INSTALL_HORDE.md#web-server-apache). Run this (for ssl see note
below):
```root
hordectl webserver-config apache-vhost \
--default-url=http://12.345.678.90.nip.io \
--root-bundle-path=/srv/www/horde-deployment \
--output-dir=/srv/www/horde-deployment/var/webserver/apache-vhost \
--force
```
Note: if you need SSL then use `https://<server_name>` with command
above and afterwards edit
/srv/www/horde-deployment/var/webserver/apache-vhost/horde-includes/tls/<server_name>.conf for SSL
settings.
Extra note: if you have no domain name and still want to test SSL with
an IP only you can use certbot with this DNS service (or use certbot
with staging and version 5.4 or higher to get an ip-certificate for 6
days).
```root
certbot certonly --apache -d 12.345.678.90.nip.io
```
Copy config files to apache2 folders:
```root
# Note: Unlike Debian/Ubuntu, openSUSE does not need an a2ensite step
cp -r
/srv/www/horde-deployment/var/webserver/apache-vhost/horde-includes
/etc/apache2/
cp /srv/www/horde-deployment/var/webserver/apache-vhost/sites/*.conf
/etc/apache2/vhosts.d/
apachectl configtest
systemctl reload apache2
```
Then enable required modules:
```root
a2enmod rewrite proxy_fcgi setenvif
```
## Activate Horde
```root
hordectl activate
chown -R wwwrun:www /srv/www/horde-deployment/var
```
## Configure database, session and authentication
```root
hordectl configure database \
--type=mysql --host=localhost --port=3306 \
--username=horde --password=<secret-password> \
--database=horde --charset=utf8mb4
hordectl configure session \
--type=builtin --cookie-domain='' \
--ensure-session-secret
hordectl configure auth --driver=sql --encryption=ssha
```
now migrate the database:
```root
su wwwrun -s /bin/bash -c
"/srv/www/horde-deployment/vendor/bin/horde-db-migrate up"
```
## Enable the admin API for admin support
Note: the target-name is the working directories name ("horde-deployment").
Reference to hordectl docs
[here](https://github.com/horde/hordectl/blob/FRAMEWORK_6_0/doc/INSTALL_HORDE.md#8-enable-the-admin-api)
IMPORTANT: the endpoint must be reachable. So if you pass localhost
instead of <fqdn> (which is legit) then be sure that your apache
config does not block anything or resend stuff to https (in that case
add your fqdn here)
```root
hordectl target update horde-deployment --endpoint=http://<fqdn>/horde
hordectl secret generate
```
/etc/apache2 # certbot certonly --apache -d 12.345.678.90.nip.io
## Verifyn and Troubleshoot
You can try these verification commands (but in my experience hordectl
does not verify correctly, also see troubleshoots bellow):
sudo hordectl test all
curl -f http://<fqdn>/horde/
### FQDN is not reachable, permission denied
- run the chown command again and restart apache2:
```root
# chown -R wwwrun:www /srv/www/horde-deployment
# chown -R wwwrun:wwwrun /srv/www/horde-deployment/var
# systemctl restart apache2
```
- edit `var/config/horde/conf.php` and make sure the servername is set
to FQDN and not localhost. NOTE: this might lead to problems later on,
because the files are generated by hordectl, so check if you can use
hordectl correctly to generate these configs.
```
$conf = array (
'use_ssl' => 2,
'server' =>
array (
'name' => '<fqdn>', # replace localhost with FQDN
),
[...]
```
- "ERROR no permissions to reach directory" (similar apache errors).
Be sure to check your configs. You might try adding this to your vhost
configuration (but there is a `.htaccess` file in the `web/` dir that
should do this allready:
```
<Directory /srv/www/horde-deployment/web>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
```
- "ERROR user could not login to SQL" (similar errors). Be sure that
the DB user is set correctly in `var/config/horde/conf.php`. NOTE:
this might lead to problems later on, because the files are generated
by hordectl, so check if you can use hordectl correctly to generate
these configs:
```
'auth' =>
array (
'admins' =>
array (
0 => 'administrator',
),
'driver' => 'sql',
'params' =>
array (
'username' => 'horde', # this should be the username you
configured when setting up the DB
'driverconfig' => 'horde',
'table' => 'horde_users',
'username_field' => 'user_uid',
'password_field' => 'user_pass',
'encryption' => 'ssha',
),
[...]
```
## Install Horde applications
Now you can start to install horde applications like so:
```
# cd /srv/www/horde-deployment
# composer require horde/kronolith # the calendar app
# composer require horde/imp # the emailclient
# composer require horde/turba # the address book
# composer require horde/mnemo # the notes app
```
NOTE: According to the release notes these apps should be working.
Reference to mailing list archinves:
https://lists.horde.org/archives/horde/Week-of-Mon-20260713/060404.html
```
"Repositories ready for release:
- ActiveSync (3 feat, 6 fix) 3.1.0
- Core (0 feat, 4 fix) 3.2.1
- Log (0 feat, 3 fix) 3.0.1
- Rpc (1 feat, 1 fix) 3.1.0
- base (1 feat, 2 fix) 6.2.0
- imp (1 feat, 3 fix) 7.1.0
- ingo (0 feat, 3 fix) 4.0.1
- kronolith (0 feat, 1 fix) 5.0.2
- timeobjects (0 feat, 1 fix) 3.0.0-beta3
- turba (0 feat, 1 fix) 5.0.1
```
NOTE: I recommend installing apps one by one so you can test them and
see if they spwan errors.
As of 10.08.2026 not all apps are working. I encountered problems when
installing some apps that are not on the
relase list above:
```root
# composer require horde/gollem and horde/imp
# ...
#
file_get_contents(/srv/www/horde-deployment/vendor/horde/gollem/web/js/horde/form_helpers.js)
# : Failed to open stream: No such file or directory
```
You can try the dev-FRAMEWORK_6_0 branches to see if that mitigates the error.
Also when updateing the database schemes of the installed apps (also
the ones on the release list!) you might get this error:
```
SQLSTATE[42S02]: Base table or view not found: 1146 Table
'horde.rampage_types' doesn't exist
```
This is probably a bug and I do not know the direct conseqences of it.
## Bugs
List any tickets on http://bugs.horde.org/ that cover this issue or
are relevant to it.
## People
Who is or might be involved in this project? Who can answer questions
about it, either about a specific technology \(iCalendar\) or about a
specific part of Horde \(Kronolith\)?
## Description
Detailed project description. Include implementation steps, current
status, plan, etc.
## Resources
Include links to protocol descriptions, specifications, RFCs, external
applications, presentations on http://horde.org/papers/ or elsewhere
that are relevant, articles, API docs from http://dev.horde.org/ -
anything that might be useful to someone working on this.
---
Back to the [Project List](Project)
More information about the commits
mailing list