CentOS / RHEL 9 and Debian 12 support (#13008)

* test centos9

* Upgrade ruby buildpack

* Apache2::Reload is not supposed to be needed in prod

* Enable all distros + debian-12

* Remove Apache2::Reload from repo manager (#13034)

should fix support for centos9 and is not required

* Ensure a default language is always set, especially in case of legacy installs

* Support for debian 12

* Update documentation for CentOS 9 and Debian 12

---------

Co-authored-by: Oliver Günther <o.guenther@openproject.com>
This commit is contained in:
Cyril Rohr
2023-07-06 20:40:10 +02:00
committed by GitHub
parent 48eed7fe42
commit df0fbf2554
8 changed files with 87 additions and 14 deletions
+1 -1
View File
@@ -1,2 +1,2 @@
https://github.com/heroku/heroku-buildpack-nodejs.git#v197
https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1
https://github.com/pkgr/heroku-buildpack-ruby.git#v254-2
+7
View File
@@ -17,6 +17,8 @@ targets:
- imagemagick
debian-11:
<<: *debian
debian-12:
<<: *debian
ubuntu-20.04:
<<: *debian
ubuntu-22.04:
@@ -36,6 +38,11 @@ targets:
env:
- NODE_ENV=production
- NPM_CONFIG_PRODUCTION=false
centos-9:
<<: *centos7
env:
- NODE_ENV=production
- NPM_CONFIG_PRODUCTION=false
sles-12:
build_dependencies:
- sqlite3-devel
@@ -30,8 +30,10 @@ The package is available for the following Linux distributions:
|---------------------------------------------|
| [Ubuntu 22.04 Jammy](#ubuntu-2204) |
| [Ubuntu 20.04 Focal](#ubuntu-2004) |
| [Debian 12 Bookworm](#debian-12) |
| [Debian 11 Bullseye](#debian-11) |
| [Debian 10 Buster](#debian-10) |
| [CentOS/RHEL 9.x](#centos-9--rhel-9) |
| [CentOS/RHEL 8.x](#centos-8--rhel-8) |
| [CentOS/RHEL 7.x](#centos-7--rhel-7) |
| [Suse Linux Enterprise Server 15](#sles-15) |
@@ -114,7 +116,39 @@ Then finish the installation by reading the [*Initial configuration*](#initial-c
## Debian Installation
### Debian 11 "bullseye"
### Debian 12
As root update the `apt` package index and install packages to allow `apt` to use a repository over HTTPS:
```bash
su -
apt update
apt install apt-transport-https ca-certificates wget
```
Import the PGP key used to sign our packages:
```bash
wget -qO- https://dl.packager.io/srv/opf/openproject/key | gpg --dearmor > /etc/apt/trusted.gpg.d/packager-io.gpg
```
Add the OpenProject package source:
```bash
wget -O /etc/apt/sources.list.d/openproject.list \
https://dl.packager.io/srv/opf/openproject/stable/12/installer/debian/12.repo
```
Download the OpenProject package:
```bash
apt update
apt install openproject
```
Then finish the installation by reading the [*Initial configuration*](#initial-configuration) section.
### Debian 11
As root update the `apt` package index and install packages to allow `apt` to use a repository over HTTPS:
@@ -179,6 +213,32 @@ Then finish the installation by reading the [*Initial configuration*](#initial-c
## CentOS Installation
### CentOS 9 / RHEL 9
Add the OpenProject package source:
```bash
sudo wget -O /etc/yum.repos.d/openproject.repo \
https://dl.packager.io/srv/opf/openproject/stable/12/installer/el/9.repo
```
If it is not already enabled, make sure to enable [Extra Packages for Enterprise Linux](https://fedoraproject.org/wiki/EPEL) (EPEL).
```bash
sudo dnf install -y epel-release
```
Download the OpenProject package:
```bash
sudo yum install openproject
```
Then finish the installation by reading the [*Initial configuration*](#initial-configuration) section.
> **Note:** On this distribution full-text extraction for attachments [*is not supported*](#full-text-extraction-not-supported) by default.
>
### CentOS 8 / RHEL 8
Add the OpenProject package source:
@@ -69,8 +69,10 @@ The [package-based installation](../installation/packaged) requires one of the f
| ------------------------------- |
| Ubuntu 22.04 Jammy |
| Ubuntu 20.04 Focal |
| Debian 12 Bookworm |
| Debian 11 Bullseye |
| Debian 10 Buster |
| CentOS/RHEL 9.x |
| CentOS/RHEL 8.x |
| CentOS/RHEL 7.x |
| Suse Linux Enterprise Server 15 |
@@ -21,6 +21,11 @@ if [ "$edition" = "bim" ]; then
case "$OSFAMILY" in
"debian")
case "$OSVERSION" in
"22.04")
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
wget -qO /etc/apt/sources.list.d/microsoft.list https://packages.microsoft.com/config/ubuntu/22.04/prod.list
apt-get update -qq
;;
"20.04")
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
wget -qO /etc/apt/sources.list.d/microsoft.list https://packages.microsoft.com/config/ubuntu/20.04/prod.list
@@ -31,6 +36,11 @@ if [ "$edition" = "bim" ]; then
wget -qO /etc/apt/sources.list.d/microsoft.list https://packages.microsoft.com/config/ubuntu/18.04/prod.list
apt-get update -qq
;;
"12")
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
wget -qO /etc/apt/sources.list.d/microsoft.list https://packages.microsoft.com/config/debian/12/prod.list
apt-get update -qq
;;
"11")
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
wget -qO /etc/apt/sources.list.d/microsoft.list https://packages.microsoft.com/config/debian/11/prod.list
@@ -46,6 +56,9 @@ if [ "$edition" = "bim" ]; then
;;
"redhat")
case "$(wiz_fact "osversion")" in
9*)
dnf install -y dotnet-runtime-6.0
;;
8*)
dnf install -y dotnet-runtime-6.0
;;
+2 -2
View File
@@ -12,7 +12,7 @@ ${CLI} config:set RECOMPILE_RAILS_ASSETS="true"
# Set the configured default language
# Will be unset at installation postinstall before restart to ensure the setting is writable
${CLI} config:set OPENPROJECT_DEFAULT_LANGUAGE="$(wiz_get "openproject/default_language")"
${CLI} config:set OPENPROJECT_DEFAULT_LANGUAGE="$(wiz_get "openproject/default_language" || echo "en")"
# Check for custom gems
custom_gemfile=$(${CLI} config:get CUSTOM_PLUGIN_GEMFILE || echo "")
@@ -77,7 +77,7 @@ ${CLI} config:unset RAILS_CACHE_STORE
# create attachments folder
attachments_path=$(${CLI} config:get OPENPROJECT_ATTACHMENTS__STORAGE__PATH || ${CLI} config:get ATTACHMENTS_STORAGE_PATH || echo "/var/db/${APP_NAME}/files")
mkdir -p "${attachments_path}"
chown ${APP_USER}.${APP_GROUP} "${attachments_path}"
chown ${APP_USER}:${APP_GROUP} "${attachments_path}"
${CLI} config:set OPENPROJECT_ATTACHMENTS__STORAGE__PATH="${attachments_path}"
${CLI} config:unset ATTACHMENTS_STORAGE_PATH
@@ -222,8 +222,6 @@ configure_apache2_server() {
PerlSwitches -I/usr/lib/perl5
PerlLoadModule Apache::OpenProjectAuthentication
PerlLoadModule Apache::OpenProjectRepoman
PerlInitHandler Apache2::Reload
PerlSetVar ReloadAll Off
SERVER_CONF
;;
"redhat")
@@ -235,8 +233,6 @@ SERVER_CONF
PerlSwitches -I/usr/lib64/perl5/vendor_perl
PerlLoadModule Apache::OpenProjectAuthentication
PerlLoadModule Apache::OpenProjectRepoman
PerlInitHandler Apache2::Reload
PerlSetVar ReloadAll Off
SERVER_CONF
;;
"suse")
+1 -6
View File
@@ -11,7 +11,7 @@ install_required_dependencies_for_apache2() {
local dependencies=""
case "$OSFAMILY" in
"debian")
dependencies="subversion git libapache2-mod-perl2 libjson-perl libapache2-reload-perl"
dependencies="subversion git libapache2-mod-perl2 libjson-perl"
for dependency in $dependencies ; do
wiz_check_package "$dependency" || apt-get install -y "$dependency"
done
@@ -30,11 +30,6 @@ install_required_dependencies_for_apache2() {
;;
"redhat")
dependencies="mod_dav_svn subversion git mod_perl perl-Digest-SHA perl-libwww-perl perl-JSON"
case "$OSVERSION" in
8*)
dependencies="$dependencies perl-Apache-Reload"
;;
esac
for dependency in $dependencies ; do
wiz_check_package "$dependency" || yum install -y "$dependency"
done