diff --git a/.gitignore b/.gitignore
index b974351ba37e3f02f4141349081a9927f12dc656..0a76f5bcc58277d946c295b2efc00a273c0b0572 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
 /build
+/bin
 /.idea
 /.gradle
\ No newline at end of file
diff --git a/README.md b/README.md
index f9752396620944fb3cb4cd66fb91cc9d5d6bcd23..4e6889b03d9f4770ba7209948e6e28544fd74655 100644
--- a/README.md
+++ b/README.md
@@ -27,21 +27,14 @@ Because the event listener is the source of the SCIM flow, and it is not cancela
 
 ## Usage
 
-### Installation
+### Installation (quick)
 
-> For now, it's doesn't't work on Quarkus which is the default after version 16.x.x. 
+1. Download the [latest version](https://lab.libreho.st/libre.sh/scim/keycloak-scim/-/jobs/artifacts/main/raw/build/libs/keycloak-scim-1.0-SNAPSHOT-all.jar?job=package)
+2. Put it in `/opt/keycloak/providers/`.
 
-1. Download the [latest version](https://lab.libreho.st/libre.sh/scim/keycloak-scim/-/jobs/artifacts/main/raw/target/keycloak-scim-1.0-SNAPSHOT-jar-with-dependencies.jar?job=package)
-2. Put it in `/opt/jboss/keycloak/standalone/deployments/`.
+It's also possible to build your own custom image if you run Keycloak in a [container](/docs/container.md).
 
-It's also possible to build your own custom image if you run keycloak in a container.
-
-Example:
-```
-FROM jboss/keycloak:16.1.1
-
-COPY keycloak-scim-1.0-SNAPSHOT-jar-with-dependencies.jar /opt/jboss/keycloak/standalone/deployments/keycloak-scim-1.0-SNAPSHOT.jar
-```
+Other [installation options](/docs/installation.md) are available.
 
 ### Setup
 
diff --git a/build.gradle b/build.gradle
index 92af4ee2413c61a71aef2d2a85ef199fc7454629..def33a3531d5de04e3e9553d3668a10e1cb0b9d7 100644
--- a/build.gradle
+++ b/build.gradle
@@ -20,7 +20,7 @@ dependencies {
     compileOnly 'org.keycloak:keycloak-server-spi-private:18.0.0'
     compileOnly 'org.keycloak:keycloak-services:18.0.0'
     compileOnly 'org.keycloak:keycloak-model-jpa:18.0.0'
-    implementation 'io.github.resilience4j:resilience4j-retry:1.7.0'
+    implementation 'io.github.resilience4j:resilience4j-retry:1.7.1'
     implementation('com.unboundid.product.scim2:scim2-sdk-client:2.3.7') {
         transitive false
     }
diff --git a/docs/container.md b/docs/container.md
new file mode 100644
index 0000000000000000000000000000000000000000..086b87f06b93726d638b73c9187a742763f73049
--- /dev/null
+++ b/docs/container.md
@@ -0,0 +1,15 @@
+# Container
+
+## Quarkus
+
+```
+FROM quay.io/keycloak/keycloak as builder
+RUN curl "https://lab.libreho.st/libre.sh/scim/keycloak-scim/-/jobs/artifacts/main/raw/build/libs/keycloak-scim-1.0-SNAPSHOT-all.jar?job=package" -Lo /opt/keycloak/providers/keycloak-scim-1.0-SNAPSHOT-all.jar
+RUN /opt/keycloak/bin/kc.sh build
+
+FROM quay.io/keycloak/keycloak
+COPY --from=builder /opt/keycloak/ /opt/keycloak/
+WORKDIR /opt/keycloak
+ENTRYPOINT ["/opt/keycloak/bin/kc.sh"]
+CMD ["start"]
+```
diff --git a/docs/dependencies.md b/docs/dependencies.md
new file mode 100644
index 0000000000000000000000000000000000000000..424136e5dc3a172fb9126f303ea314906d745f31
--- /dev/null
+++ b/docs/dependencies.md
@@ -0,0 +1,14 @@
+# Dependencies
+
+| Name | Version | Quarkus | Wildfly | Download |
+| --- | --- | --- | --- | --- |
+| io.github.resilience4j:resilience4j-retry | 1.7.1 | X | X | [link](https://repo1.maven.org/maven2/io/github/resilience4j/resilience4j-retry/1.7.1/resilience4j-retry-1.7.1.jar) |
+| io.github.resilience4j:resilience4j-core | 1.7.1 | X | X | [link](https://repo1.maven.org/maven2/io/github/resilience4j/resilience4j-core/1.7.1/resilience4j-core-1.7.1.jar) |
+| io.vavr:vavr | 0.10.2 | X | X | [link](https://repo1.maven.org/maven2/io/vavr/vavr/0.10.2/vavr-0.10.2.jar) |
+| io.vavr:vavr-match | 0.10.2 | X | X | [link](https://repo1.maven.org/maven2/io/vavr/vavr-match/0.10.2/vavr-match-0.10.2.jar) |
+| org.slf4j:slf4j-api | 1.7.30 | X | X | [link](https://repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.30/slf4j-api-1.7.30.jar) |
+| com.unboundid.product.scim2:scim2-sdk-client | 2.3.7 | X | X | [link](https://repo1.maven.org/maven2/com/unboundid/product/scim2/scim2-sdk-client/2.3.7/scim2-sdk-client-2.3.7.jar) |
+| com.unboundid.product.scim2:scim2-sdk-common | 2.3.7 | X | X | [link](https://repo1.maven.org/maven2/com/unboundid/product/scim2/scim2-sdk-common/2.3.7/scim2-sdk-common-2.3.7.jar) |
+| org.wildfly.client:wildfly-client-config | 1.0.1.Final | X |  | [link](https://repo1.maven.org/maven2/org/wildfly/client/wildfly-client-config/1.0.1.Final/wildfly-client-config-1.0.1.Final.jar) |
+| org.jboss.resteasy:resteasy-client | 4.7.6.Final | X |  | [link](https://repo1.maven.org/maven2/org/jboss/resteasy/resteasy-client/4.7.6.Final/resteasy-client-4.7.6.Final.jar) |
+| org.jboss.resteasy:resteasy-client-api | 4.7.6.Final | X |  | [link](https://repo1.maven.org/maven2/org/jboss/resteasy/resteasy-client-api/4.7.6.Final/resteasy-client-api-4.7.6.Final.jar) |
\ No newline at end of file
diff --git a/docs/installation.md b/docs/installation.md
new file mode 100644
index 0000000000000000000000000000000000000000..c79919c63b3c8ad4efdc512199e1cddd2679c452
--- /dev/null
+++ b/docs/installation.md
@@ -0,0 +1,21 @@
+# Installation (advanced)
+
+## 1. Download the jar files
+
+### All-in-one
+
+This [package](<(https://lab.libreho.st/libre.sh/scim/keycloak-scim/-/jobs/artifacts/main/raw/build/libs/keycloak-scim-1.0-SNAPSHOT-all.jar?job=package)>) contains the SCIM provider and it's dependencies. It's intended only for Quarkus distribution.
+
+### Separately
+
+You'll need the SCIM provider's [package](<(https://lab.libreho.st/libre.sh/scim/keycloak-scim/-/jobs/artifacts/main/raw/build/libs/keycloak-scim-1.0-SNAPSHOT.jar?job=package)>) and each of its [dependencies](dependencies.md).
+
+## 2. Install the jar files
+
+### Quarkus
+
+Copy the downloaded file in `/opt/keycloak/providers/`. For production use, build Keycloak before starting it.
+
+### Wildfly (legacy)
+
+Copy the downloaded file in `/opt/jboss/keycloak/standalone/deployments/`.