Wrapped keycloak in a nix flake
This commit is contained in:
commit
ca7b767250
5 files changed
+162
No files matched your search
@@ -0,0 +1 @@
|
|||||||
|
result
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
|
||||||
|
resolved_keycloak_data_dir="${KEYCLOAK_DATA_DIR:-$HOME/.keycloak}"
|
||||||
|
mkdir -p "$resolved_keycloak_data_dir"
|
||||||
|
exec java -Dkc.config.built=true \
|
||||||
|
-Xms64m \
|
||||||
|
-Xmx512m \
|
||||||
|
-XX:MetaspaceSize=96M \
|
||||||
|
-XX:MaxMetaspaceSize=256m \
|
||||||
|
-Djava.net.preferIPv4Stack=true \
|
||||||
|
-Dfile.encoding=UTF-8 \
|
||||||
|
-Dsun.stdout.encoding=UTF-8 \
|
||||||
|
-Dsun.err.encoding=UTF-8 \
|
||||||
|
-Dstdout.encoding=UTF-8 \
|
||||||
|
-Dstderr.encoding=UTF-8 \
|
||||||
|
--add-opens=java.base/java.util=ALL-UNNAMED \
|
||||||
|
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED \
|
||||||
|
--add-opens=java.base/java.security=ALL-UNNAMED \
|
||||||
|
-Dkc.home.dir="$resolved_keycloak_data_dir" \
|
||||||
|
-Djboss.server.config.dir="${keycloak}/conf" \
|
||||||
|
-Djava.util.logging.manager=org.jboss.logmanager.LogManager \
|
||||||
|
-Dquarkus-log-max-startup-records=10000 \
|
||||||
|
-cp "${keycloak}/lib/quarkus-run.jar" \
|
||||||
|
io.quarkus.bootstrap.runner.QuarkusEntryPoint \
|
||||||
|
--profile=dev start-dev \
|
||||||
Generated
+61
@@ -0,0 +1,61 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1687171271,
|
||||||
|
"narHash": "sha256-BJlq+ozK2B1sJDQXS3tzJM5a+oVZmi1q0FlBK/Xqv7M=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "abfb11bd1aec8ced1c9bb9adfe68018230f4fb3c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1687245362,
|
||||||
|
"narHash": "sha256-+f9tH+k3u9lSS136M2LCsl5NJTNPvhmHEiVOcypiu1E=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "205ee073b053fc4d87d5adf2ebd44ebbef7bca4d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
{
|
||||||
|
description = "Nix flake wrapper around keycloak";
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs, flake-utils }:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system:
|
||||||
|
let
|
||||||
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
keycloak-src = pkgs.fetchzip {
|
||||||
|
url = "https://github.com/keycloak/keycloak/releases/download/21.1.1/keycloak-21.1.1.tar.gz";
|
||||||
|
hash = "sha256-ZX5UKjU9BEtO/uA25WhSUmeO6jQ1FpKF1irFx2fwPBU=";
|
||||||
|
};
|
||||||
|
keycloak-build-script = ''
|
||||||
|
export JAVA_HOME=${pkgs.graalvm17-ce}
|
||||||
|
cp lib/lib/main/org.keycloak.keycloak-themes-21.1.1.jar providers
|
||||||
|
mkdir -p data/password-blacklists
|
||||||
|
mkdir -p data/tmp
|
||||||
|
echo "$(tail -n +2 bin/kc.sh)" >> bin/kc.new.sh
|
||||||
|
chmod +x bin/kc.new.sh
|
||||||
|
bin/kc.new.sh build --db dev-file
|
||||||
|
'';
|
||||||
|
keycloak-dev-build = pkgs.stdenv.mkDerivation {
|
||||||
|
name = "keycloak-dev-build";
|
||||||
|
src = keycloak-src;
|
||||||
|
buildPhase = keycloak-build-script;
|
||||||
|
installPhase = ''
|
||||||
|
cp -r . $out
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
dev-server = pkgs.writeShellApplication {
|
||||||
|
name = "custom-server";
|
||||||
|
runtimeInputs = [pkgs.graalvm17-ce keycloak-dev-build];
|
||||||
|
text = "export keycloak=${keycloak-dev-build}\n" + (builtins.readFile ./dev-server.sh);
|
||||||
|
};
|
||||||
|
server = pkgs.writeShellApplication {
|
||||||
|
name = "keycloak";
|
||||||
|
runtimeInputs = [pkgs.graalvm17-ce keycloak-src];
|
||||||
|
text = "export keycloak=${keycloak-dev-build}\n" + (builtins.readFile ./server.sh);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
packages = {
|
||||||
|
default = server;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
|
||||||
|
resolved_keycloak_data_dir="${KEYCLOAK_DATA_DIR:-$HOME/.keycloak}"
|
||||||
|
mkdir -p "$resolved_keycloak_data_dir"
|
||||||
|
exec java -Dkc.config.built=true \
|
||||||
|
-Xms64m \
|
||||||
|
-Xmx512m \
|
||||||
|
-XX:MetaspaceSize=96M \
|
||||||
|
-XX:MaxMetaspaceSize=256m \
|
||||||
|
-Djava.net.preferIPv4Stack=true \
|
||||||
|
-Dfile.encoding=UTF-8 \
|
||||||
|
-Dsun.stdout.encoding=UTF-8 \
|
||||||
|
-Dsun.err.encoding=UTF-8 \
|
||||||
|
-Dstdout.encoding=UTF-8 \
|
||||||
|
-Dstderr.encoding=UTF-8 \
|
||||||
|
--add-opens=java.base/java.util=ALL-UNNAMED \
|
||||||
|
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED \
|
||||||
|
--add-opens=java.base/java.security=ALL-UNNAMED \
|
||||||
|
-Dkc.home.dir="$resolved_keycloak_data_dir" \
|
||||||
|
-Djboss.server.config.dir="${keycloak}/conf" \
|
||||||
|
-Djava.util.logging.manager=org.jboss.logmanager.LogManager \
|
||||||
|
-Dquarkus-log-max-startup-records=10000 \
|
||||||
|
-cp "${keycloak}/lib/quarkus-run.jar" \
|
||||||
|
io.quarkus.bootstrap.runner.QuarkusEntryPoint \
|
||||||
|
"$@" \
|
||||||
Reference in new issue
Block a user