Java runtime
phoss SMP requires Java 17 or later (required since v8.0). The Docker images ship with JDK 21 via the officialtomcat:10.1-jdk21 base image.
Java 11 and earlier are no longer supported. If you are upgrading from an older installation, upgrade your JRE/JDK first.
Build tooling (source builds only)
If you intend to build from source rather than use a pre-built WAR or Docker image, you need:| Tool | Minimum version |
|---|---|
| Apache Maven | 3.6+ |
| Git | any recent version |
Servlet container
phoss SMP is a Jakarta EE 10 web application. Supported containers:Apache Tomcat
Version 10.1.x or later. Tomcat 9 and earlier use the
javax.servlet namespace and are not compatible.Eclipse Jetty
Version 12.x (Jakarta EE 10 variant). Used for local development via the
RunInJetty* launcher classes.Docker (Docker deployments only)
If you are deploying with Docker, install Docker Engine 20.10+ or Docker Desktop. The official images are hosted on Docker Hub and require no additional build steps. See Docker deployment for full instructions.PKI and keystore
phoss SMP signs SML interactions and (optionally) Directory communications using a Peppol-issued certificate. You must obtain this certificate from your Peppol authority before you can register with the SML. Supported keystore formats:| Format | Property value | Notes |
|---|---|---|
| PKCS12 | pkcs12 | Recommended. File extension .p12 or .pfx. |
| JKS | jks | Java KeyStore, legacy format. |
| BCFKS | bcfks | Bouncy Castle FIPS KeyStore. |
For test/pilot environments, Peppol issues certificates under the Peppol pilot PKI. For production, you need a production certificate. The built-in truststores for both environments are bundled with the application.
Network requirements
For full Peppol SML registration, the server must be able to reach the SML outbound:| Endpoint | Description |
|---|---|
edelivery.tech.ec.europa.eu (port 443) | Peppol pilot SML |
edelivery.tech.ec.europa.eu (port 443) | Peppol production SML |
Supported databases (SQL backend only)
If you are using the SQL backend (smp.backend = sql), one of the following databases must be available:
| Database | target-database value | Notes |
|---|---|---|
| MySQL | MySQL | Tested with MySQL 8.x |
| PostgreSQL | PostgreSQL | Tested with PostgreSQL 14+ |
| Oracle | Oracle | |
| IBM DB2 | DB2 |