# Tâches post‑installation

{% hint style="info" %}

#### **Renforcement et optimisation après installation**

Paramètres optionnels que vous pouvez appliquer après l'installation pour durcir Tomcat/Pentaho et ajuster le comportement :
{% endhint %}

<details>

<summary>Masquer l'en-tête Server de Tomcat</summary>

Par défaut, Tomcat envoie un `Server` en-tête exposant des informations de version. Vous pouvez le remplacer pour réduire la fuite d'informations.

1. Modifiez le connecteur Tomcat dans `server.xml`.

```bash
sudo nano /opt/pentaho/server/pentaho-server/tomcat/conf/server.xml
```

2. Ajoutez ou mettez à jour l'attribut `server` sur le connecteur HTTP et (si utilisé) le connecteur AJP, puis enregistrez.

```xml
<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           server=" "
           redirectPort="8443" />
```

3. Redémarrez le serveur Pentaho.

```bash
sudo systemctl restart pentaho-server
```

</details>

<details>

<summary>Java Security Manager (déprécié/supprimé)</summary>

Le Java Security Manager hérité est déprécié et n'est pas disponible sur les versions LTS Java modernes (y compris Java 21). Ne pas utiliser `-security` avec Tomcat sur Java 21. Privilégiez le renforcement au niveau du système d'exploitation, des utilisateurs au moindre privilège, le périmètre réseau, et des politiques de conteneur/AppArmor/SELinux selon le besoin.

</details>

<details>

<summary>Changer le chemin de contexte de l'application web</summary>

Modifiez le chemin de contexte si vous ne souhaitez pas que l'application soit accessible à `/pentaho`.

1. Arrêtez le serveur Pentaho.

```bash
cd /opt/pentaho/server/pentaho-server
sudo ./stop-pentaho.sh
```

2. Éditez `context.xml`.

```bash
sudo nano /opt/pentaho/server/pentaho-server/tomcat/webapps/pentaho/META-INF/context.xml
```

3. Mettez à jour le chemin de contexte.

```xml
<Context path="/company" docBase="webapps/company/" />
```

4. Renommez le dossier webapp pour qu'il corresponde au nouveau nom de contexte.

```bash
sudo mv /opt/pentaho/server/pentaho-server/tomcat/webapps/pentaho \
        /opt/pentaho/server/pentaho-server/tomcat/webapps/company
```

5. Mettez à jour la redirection dans `ROOT/index.jsp`.

```bash
sudo nano /opt/pentaho/server/pentaho-server/tomcat/webapps/ROOT/index.jsp
```

Changez le meta refresh en :

```html
<meta http-equiv="refresh" content="0;URL=/company">
```

6. Mettez à jour l'URL du serveur.

```bash
sudo nano /opt/pentaho/server/pentaho-server/pentaho-solutions/system/server.properties
```

```
fully-qualified-server-url=http://localhost:8080/company/
```

7. Démarrez le serveur et testez.

```bash
sudo ./start-pentaho.sh
```

{% hint style="warning" %}
Les mises à niveau peuvent écraser les webapps déployées. Réappliquez les personnalisations après les mises à jour, ou utilisez plutôt un mappage de chemin via un reverse proxy.
{% endhint %}

</details>

<details>

<summary>Passer à HTTPS</summary>

Le port par défaut est 8080.

1. Arrêtez le serveur Pentaho.

```bash
cd /opt/pentaho/server/pentaho-server
sudo ./stop-pentaho.sh
```

2. Changez le port du connecteur.

```bash
sudo nano /opt/pentaho/server/pentaho-server/tomcat/conf/server.xml
```

```xml
<Connector URIEncoding="UTF-8"
      port="8443"
      protocol="org.apache.coyote.http11.Http11NioProtocol"
      maxThreads="150"
      SSLEnabled="true"
      scheme="https"
      secure="true"
      clientAuth="false"
      sslProtocol="TLS"
      keystoreType="PKCS12"
      keystoreFile="/opt/pentaho/pentaho-server/tomcat/ssl/keystore.p12"
      keystorePass="changeit"
    />
```

3. Mettez à jour l'URL du serveur.

```bash
sudo nano /opt/pentaho/server/pentaho-server/pentaho-solutions/system/server.properties
```

```
fully-qualified-server-url=http://localhost:8090/pentaho/
```

4. Démarrez le serveur et vérifiez.

```bash
sudo ./start-pentaho.sh
curl -I http://localhost:8090/pentaho/ | head -n 1
```

</details>

<details>

<summary>Changer le port HTTP par défaut</summary>

Le port par défaut est 8080.

1. Arrêtez le serveur Pentaho.

```bash
cd /opt/pentaho/server/pentaho-server
sudo ./stop-pentaho.sh
```

2. Changez le port du connecteur.

```bash
sudo nano /opt/pentaho/server/pentaho-server/tomcat/conf/server.xml
```

```xml
<Connector URIEncoding="UTF-8"
           port="8090" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443"
           relaxedPathChars="[]|"
           relaxedQueryChars="^{}[]|&amp;"
           maxHttpHeaderSize="65536" />
```

3. Mettez à jour l'URL du serveur.

```bash
sudo nano /opt/pentaho/server/pentaho-server/pentaho-solutions/system/server.properties
```

```
fully-qualified-server-url=http://localhost:8090/pentaho/
```

4. Démarrez le serveur et vérifiez.

```bash
sudo ./start-pentaho.sh
curl -I http://localhost:8090/pentaho/ | head -n 1
```

</details>

<details>

<summary>Durcir ou désactiver le port d'arrêt de Tomcat</summary>

Par défaut Tomcat écoute sur un port d'arrêt local (8005) pour la commande `SHUTDOWN` .

* Désactivez le port en définissant `port="-1"`, ou
* Changez à la fois le port et la commande d'arrêt pour des valeurs imprévisibles.

1. Modifier le `<Server>` élément dans `server.xml`.

```bash
sudo nano /opt/pentaho/server/pentaho-server/tomcat/conf/server.xml
```

Exemples :

```xml
<Server port="-1" shutdown="SHUTDOWN">
```

ou

```xml
<Server port="18005" shutdown="My$tr0ngShutCmd">
```

2. Redémarrez le serveur Pentaho.

```bash
sudo systemctl restart pentaho-server
```

</details>

<details>

<summary>Pages d'erreur personnalisées (404, 403, 500)</summary>

Définissez des pages d'erreur au niveau de l'application pour éviter d'exposer les valeurs par défaut.

1. Créez une page d'erreur dans votre webapp.

```bash
sudo tee /opt/pentaho/server/pentaho-server/tomcat/webapps/pentaho/error.jsp >/dev/null <<'EOF'
<html>
<head>
  <title>Error</title>
</head>
<body>
  <h1>Something went wrong</h1>
  <p>Please contact your administrator.</p>
</body>
</html>
EOF
```

2. Ajoutez des mappages d'erreur dans la webapp `web.xml`.

```bash
sudo nano /opt/pentaho/server/pentaho-server/tomcat/webapps/pentaho/WEB-INF/web.xml
```

```xml
<error-page>
  <error-code>404</error-code>
  <location>/error.jsp</location>
</error-page>
<error-page>
  <error-code>403</error-code>
  <location>/error.jsp</location>
</error-page>
<error-page>
  <error-code>500</error-code>
  <location>/error.jsp</location>
</error-page>
```

3. Redémarrez le serveur et testez.

</details>

<details>

<summary>Durée d'expiration de la session</summary>

Définissez un délai d'expiration global des sessions pour l'application.

1. Modifiez la webapp `web.xml`.

```bash
sudo nano /opt/pentaho/server/pentaho-server/tomcat/webapps/pentaho/WEB-INF/web.xml
```

```xml
<session-config>
  <session-timeout>20</session-timeout>
</session-config>
```

</details>

<details>

<summary>Augmenter le temps d'attente au démarrage de Karaf</summary>

Si le démarrage du serveur expire pendant que Karaf installe des fonctionnalités, augmentez le temps d'attente.

1. Arrêtez le serveur.

```bash
sudo systemctl stop pentaho-server
```

2. Éditez `server.properties`.

```bash
sudo nano /opt/pentaho/server/pentaho-server/pentaho-solutions/system/server.properties
```

Décommentez ou ajoutez :

```
# Time (ms) to wait for Karaf to install features before timing out
karafWaitForBoot=180000
```

3. Démarrez le serveur.

```bash
sudo systemctl start pentaho-server
```

</details>

<details>

<summary>Supprimer les données d'exemple du serveur</summary>

Retirez les exemples d'évaluation avant de passer en production.

1. Arrêtez le serveur.

```bash
sudo systemctl stop pentaho-server
```

2. Supprimez le `samples.zip` du contenu par défaut (le chemin peut varier selon la version).

```bash
sudo rm -f /opt/pentaho/server/pentaho-server/pentaho-solutions/system/default-content/samples.zip || true
```

3. Modifiez la webapp `web.xml` et supprimez les définitions d'exemples HSQLDB et le SystemStatusFilter (uniquement pour dev).

```bash
sudo nano /opt/pentaho/server/pentaho-server/tomcat/webapps/pentaho/WEB-INF/web.xml
```

Supprimez les blocs similaires à :

```xml
<context-param>
  <param-name>hsqldb-databases</param-name>
  <param-value>sampledata@../../data/hsqldb/sampledata</param-value>
</context-param>

<listener>
  <listener-class>org.pentaho.platform.web.http.context.HsqldbStartupListener</listener-class>
</listener>

<filter>
  <filter-name>SystemStatusFilter</filter-name>
  <filter-class>com.pentaho.ui.servlet.SystemStatusFilter</filter-class>
</filter>
```

4. Supprimez éventuellement le dossier `data/` si seul du contenu d'exemple a été utilisé (vérifiez votre environnement avant de supprimer).

```bash
sudo rm -rf /opt/pentaho/server/pentaho-server/data || true
```

5. Démarrez le serveur et supprimez les dossiers d'exemple via PUC (Browse Files → Public → Move to Trash).

```bash
sudo systemctl start pentaho-server
```

</details>

<details>

<summary>Masquer les widgets de la perspective Accueil</summary>

Masquez Getting Started et d'autres widgets depuis la page d'accueil de PUC.

1. Arrêtez le serveur.

```bash
sudo systemctl stop pentaho-server
```

2. Modifiez la configuration de la perspective Home.

```bash
sudo nano /opt/pentaho/server/pentaho-server/tomcat/webapps/pentaho/mantle/home/properties/config.properties
```

Ajoutez ou mettez à jour :

```
disabled-widgets=getting-started,recents,favorites
```

3. Démarrez le serveur et connectez-vous pour vérifier.

```bash
sudo systemctl start pentaho-server
```

</details>

<details>

<summary>Désactiver l'autocomplétion sur la page de connexion (avancé)</summary>

La modification des JSP fournies par le fournisseur peut être écrasée lors d'une mise à niveau. Privilégiez le SSO ou le contrôle via reverse proxy. Si nécessaire, modifiez le JSP de connexion.

1. Arrêtez le serveur.

```bash
sudo systemctl stop pentaho-server
```

2. Éditez `PUCLogin.jsp`.

```bash
sudo nano /opt/pentaho/server/pentaho-server/tomcat/webapps/pentaho/jsp/PUCLogin.jsp
```

3. Désactivez l'autocomplétion pour les champs utilisateur/mot de passe.

```html
<input id="j_username" name="j_username" type="text" autocomplete="off">
<input id="j_password" name="j_password" type="password" autocomplete="off">
```

4. Démarrez le serveur.

```bash
sudo systemctl start pentaho-server
```

</details>

<details>

<summary>Augmenter les limites d'upload CSV</summary>

Ajustez les limites d'upload et (optionnellement) la base de données de staging.

1. Éditez `pentaho.xml`.

```bash
sudo nano /opt/pentaho/server/pentaho-server/pentaho-solutions/system/pentaho.xml
```

```xml
<file-upload-defaults>
  <relative-path>/system/metadata/csvfiles/</relative-path>
  <max-file-limit>10000000</max-file-limit>
  <max-folder-limit>500000000</max-folder-limit>
</file-upload-defaults>
```

2. Changez la base de données de staging pour les fichiers CSV (optionnel) dans `data-access/settings.xml`.

```bash
sudo nano /opt/pentaho/server/pentaho-server/pentaho-solutions/system/data-access/settings.xml
```

```xml
<!-- settings for Agile Data Access -->
<data-access-staging-jndi>hibernate</data-access-staging-jndi>
```

3. Dans PUC, allez dans Tools → Refresh System Settings, puis redémarrez PUC (ou le serveur) pour appliquer.

</details>

***


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://academy.pentaho.com/pentaho-11-installation-en/pentaho-11-installation-fr/installation/post-installation-tasks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
