diff --git a/.env.sample. b/.env.sample.
new file mode 100644
index 0000000000000000000000000000000000000000..de06e63bd2de5efb61d1ed4162b167df7ab00fae
--- /dev/null
+++ b/.env.sample.
@@ -0,0 +1,7 @@
+COMPOSE_FILE=docker-compose.yml:ports.yml
+
+# KeyCloak
+KC_ADMIN=admin
+KC_ADMIN_PASSWD=admin
+
+RESTART=always
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..4c49bd78f1d08f2bc09fa0bd8191ed38b7dce5e3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.env
diff --git a/docker-compose.yml b/docker-compose.yml
index 5a7f9a3ede85663b63f6d52ca9940a03e0f84d15..0e13ee2e257ed351e4a064ce435d1d905688bf0f 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -4,9 +4,8 @@ services:
     keycloak:
         image : quay.io/keycloak/keycloak:24.0.3
         container_name: keycloak
-        ports:
-            - 8080:8080
         environment:
-            - KEYCLOAK_ADMIN=admin
-            - KEYCLOAK_ADMIN_PASSWORD=admin
+            - KEYCLOAK_ADMIN=${KC_ADMIN}
+            - KEYCLOAK_ADMIN_PASSWORD=${KC_ADMIN_PASSWD}
         command: ["start-dev", "--import-realm"]
+        restart: ${RESTART}
diff --git a/ports.yml b/ports.yml
new file mode 100644
index 0000000000000000000000000000000000000000..fec42f4acbd8d98fe46ee84df8b857f80d214005
--- /dev/null
+++ b/ports.yml
@@ -0,0 +1,6 @@
+version: "3"
+
+services:
+    keycloak:
+        ports:
+            - 8080:8080