<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Keycloak archivos - RAGASYS SISTEMAS</title>
	<atom:link href="https://blog.ragasys.es/tag/keycloak/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.ragasys.es/tag/keycloak</link>
	<description>Soporte técnico para las TIC</description>
	<lastBuildDate>Fri, 08 May 2026 14:37:18 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2020/05/logoRGS_18_05_2020.png?fit=32%2C32&#038;ssl=1</url>
	<title>Keycloak archivos - RAGASYS SISTEMAS</title>
	<link>https://blog.ragasys.es/tag/keycloak</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">111701399</site>	<item>
		<title>Desplegar keycloak con Docker</title>
		<link>https://blog.ragasys.es/desplegar-keycloak-con-docker</link>
					<comments>https://blog.ragasys.es/desplegar-keycloak-con-docker#respond</comments>
		
		<dc:creator><![CDATA[Jose Ramon Ramos Gata]]></dc:creator>
		<pubDate>Mon, 27 Apr 2026 08:36:00 +0000</pubDate>
				<category><![CDATA[Despliegues]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[IAM]]></category>
		<category><![CDATA[Instalaciones]]></category>
		<category><![CDATA[Keycloak]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[TIC]]></category>
		<guid isPermaLink="false">https://blog.ragasys.es/?p=22077</guid>

					<description><![CDATA[<p>Hola a tod@s, En este post vamos a ver como desplegar keycloak con Docker, desplegaremos dos contenedores Docker para este servicio, uno de ellos será el de PostgreSQL para la base de datos que vamos a utilizar y el otro&#8230; <a href="https://blog.ragasys.es/desplegar-keycloak-con-docker" class="more-link">Continuar leyendo <span class="meta-nav">&#8594;</span></a></p>
<p>La entrada <a href="https://blog.ragasys.es/desplegar-keycloak-con-docker">Desplegar keycloak con Docker</a> se publicó primero en <a href="https://blog.ragasys.es">RAGASYS SISTEMAS</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Hola a tod@s,</p>
<p>En este post vamos a ver como desplegar keycloak con Docker, desplegaremos dos contenedores Docker para este servicio, uno de ellos será el de PostgreSQL para la base de datos que vamos a utilizar y el otro el propio de keycloak con la aplicación, este servicio irá desplegado, sobre la misma máquina dónde ya desplegamos un docker con Nginx Proxy Manager, que será el que utilicemos para los certificados SSL.</p>
<p>Keycloak es una solución de código abierto para la gestión de identidades y accesos (IAM), diseñada para asegurar aplicaciones y servicios modernos, permite añadir funciones de inicio de sesión único (SSO), autenticación, autorización y federación de usuarios (LDAP/AD, redes sociales) mediante estándares como OpenID Connect, OAuth 2.0 y SAML 2.0.</p>
<ul>
<li>Para empezar, vamos a ver que hemos preparado esta máquina virtual con Ubuntu Server 24.04 LTS, dónde tenemos dos discos, uno de sistema y otro de datos:</li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck1.png?ssl=1" data-lbwps-width="1396" data-lbwps-height="748" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck1.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22078" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck1#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck1.png?fit=1396%2C748&amp;ssl=1" data-orig-size="1396,748" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck1" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck1.png?fit=640%2C343&amp;ssl=1" class="aligncenter size-full wp-image-22078" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck1.png?resize=640%2C343&#038;ssl=1" alt="" width="640" height="343" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck1.png?w=1396&amp;ssl=1 1396w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck1.png?resize=595%2C319&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck1.png?resize=960%2C514&amp;ssl=1 960w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck1.png?resize=768%2C412&amp;ssl=1 768w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck1.png?w=1280&amp;ssl=1 1280w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Como podemos ver, el disco de datos lo hemos montado sobre <strong>/opt/docker </strong>que es dónde vamos a ubicar todos los contenedores Dockers y sus configuraciones:</li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck2.png?ssl=1" data-lbwps-width="860" data-lbwps-height="819" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck2.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22079" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck2#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck2.png?fit=860%2C819&amp;ssl=1" data-orig-size="860,819" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck2" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck2.png?fit=640%2C609&amp;ssl=1" class="aligncenter size-full wp-image-22079" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck2.png?resize=640%2C609&#038;ssl=1" alt="" width="640" height="609" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck2.png?w=860&amp;ssl=1 860w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck2.png?resize=595%2C567&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck2.png?resize=768%2C731&amp;ssl=1 768w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Nos creamos el registro DNS del tipo CNAME para keycloak apuntando a la máquina que tiene instalado el Docker con el Nginx Proxy Manager, ya que vamos a utilizar nuestro proxy inverso:</li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck3.png?ssl=1" data-lbwps-width="1668" data-lbwps-height="480" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck3-1536x442.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22080" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck3#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck3.png?fit=1668%2C480&amp;ssl=1" data-orig-size="1668,480" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck3" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck3.png?fit=640%2C184&amp;ssl=1" class="aligncenter size-full wp-image-22080" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck3.png?resize=640%2C184&#038;ssl=1" alt="" width="640" height="184" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck3.png?w=1668&amp;ssl=1 1668w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck3.png?resize=595%2C171&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck3.png?resize=960%2C276&amp;ssl=1 960w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck3.png?resize=768%2C221&amp;ssl=1 768w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck3.png?resize=1536%2C442&amp;ssl=1 1536w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck3.png?w=1280&amp;ssl=1 1280w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Verificamos las versiones de Docker instaladas, <strong>docker &#8211;version, docker compose version</strong>:</li>
</ul>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22081" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck4#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck4.png?fit=798%2C239&amp;ssl=1" data-orig-size="798,239" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck4" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck4.png?fit=640%2C192&amp;ssl=1" class="aligncenter size-full wp-image-22081" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck4.png?resize=640%2C192&#038;ssl=1" alt="" width="640" height="192" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck4.png?w=798&amp;ssl=1 798w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck4.png?resize=595%2C178&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck4.png?resize=768%2C230&amp;ssl=1 768w" sizes="auto, (max-width: 640px) 100vw, 640px" /></p>
<ul>
<li>Ahora vamos a crear la estructura de directorios y permisos para los contenedores de postgreSQL y keycloak:</li>
<li><strong>sudo mkdir -p /opt/docker/keycloakdb/data</strong></li>
<li><strong>sudo mkdir -p /opt/docker/keycloakapp/config</strong></li>
<li><strong>sudo chmod -R 755 /opt/docker/keycloakdb</strong></li>
<li><strong>sudo chmod -R 755 /opt/docker/keycloakapp</strong></li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck5.png?ssl=1" data-lbwps-width="821" data-lbwps-height="216" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck5.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22082" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck5#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck5.png?fit=821%2C216&amp;ssl=1" data-orig-size="821,216" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck5" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck5.png?fit=640%2C168&amp;ssl=1" class="aligncenter size-full wp-image-22082" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck5.png?resize=640%2C168&#038;ssl=1" alt="" width="640" height="168" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck5.png?w=821&amp;ssl=1 821w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck5.png?resize=595%2C157&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck5.png?resize=768%2C202&amp;ssl=1 768w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Al directorio <strong>config</strong> de <strong>/opt/docker/keycloakapp </strong>le cambiamos el propietario con <strong>sudo chown -R 1000:1000 /opt/docker/keycloakapp/config</strong>, con esto le estamos diciendo al sistema, que esta carpeta ahora le pertenece al usuario 1000 (Keycloak), como el contenedor es el dueño, ya tiene permiso total por defecto para crear los archivos de transacciones para los logs:</li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck6.png?ssl=1" data-lbwps-width="871" data-lbwps-height="191" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck6.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22083" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck6#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck6.png?fit=871%2C191&amp;ssl=1" data-orig-size="871,191" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck6" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck6.png?fit=640%2C140&amp;ssl=1" class="aligncenter size-full wp-image-22083" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck6.png?resize=640%2C140&#038;ssl=1" alt="" width="640" height="140" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck6.png?w=871&amp;ssl=1 871w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck6.png?resize=595%2C130&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck6.png?resize=768%2C168&amp;ssl=1 768w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Ahora creamos una red para nuestro proyecto, <strong>sudo</strong> <strong>docker network create keycloak-net</strong>:</li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck41.png?ssl=1" data-lbwps-width="826" data-lbwps-height="185" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck41.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22137" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck41#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck41.png?fit=826%2C185&amp;ssl=1" data-orig-size="826,185" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck41" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck41.png?fit=640%2C143&amp;ssl=1" class="aligncenter size-full wp-image-22137" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck41.png?resize=640%2C143&#038;ssl=1" alt="" width="640" height="143" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck41.png?w=826&amp;ssl=1 826w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck41.png?resize=595%2C133&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck41.png?resize=768%2C172&amp;ssl=1 768w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Ahora vamos a crearnos los ficheros .env para no dejar credenciales en texto plano en los ficheros docker-compose.yaml que crearemos posteriormente, utilizando para ello variables.</li>
<li>Empezaremos con el fichero .env para el contenedor de postgreSQL, para ello, nos situamos en <strong>/opt/docker/ keycloakdb</strong>, y ejecutamos <strong>sudo</strong> <strong>nano .env</strong>:</li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck7.png?ssl=1" data-lbwps-width="789" data-lbwps-height="198" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck7.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22084" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck7#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck7.png?fit=789%2C198&amp;ssl=1" data-orig-size="789,198" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck7" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck7.png?fit=640%2C161&amp;ssl=1" class="aligncenter size-full wp-image-22084" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck7.png?resize=640%2C161&#038;ssl=1" alt="" width="640" height="161" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck7.png?w=789&amp;ssl=1 789w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck7.png?resize=595%2C149&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck7.png?resize=768%2C193&amp;ssl=1 768w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Y así definimos el fichero:</li>
<li>POSTGRES_DB=keycloak</li>
<li>POSTGRES_USER=keycloakuser</li>
<li>POSTGRES_PASSWORD=clave_muy_segura_db</li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck8.png?ssl=1" data-lbwps-width="965" data-lbwps-height="236" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck8.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22085" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck8#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck8.png?fit=965%2C236&amp;ssl=1" data-orig-size="965,236" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck8" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck8.png?fit=640%2C157&amp;ssl=1" class="aligncenter size-full wp-image-22085" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck8.png?resize=640%2C157&#038;ssl=1" alt="" width="640" height="157" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck8.png?w=965&amp;ssl=1 965w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck8.png?resize=595%2C146&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck8.png?resize=960%2C235&amp;ssl=1 960w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck8.png?resize=768%2C188&amp;ssl=1 768w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Nos creamos el fichero docker-compose.yaml para el contenedor de postgreSQL en la misma ubicación, <strong>sudo nano docker-compose.yaml</strong>:</li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck9.png?ssl=1" data-lbwps-width="818" data-lbwps-height="181" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck9.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22086" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck9#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck9.png?fit=818%2C181&amp;ssl=1" data-orig-size="818,181" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck9" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck9.png?fit=640%2C142&amp;ssl=1" class="aligncenter size-full wp-image-22086" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck9.png?resize=640%2C142&#038;ssl=1" alt="" width="640" height="142" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck9.png?w=818&amp;ssl=1 818w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck9.png?resize=595%2C132&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck9.png?resize=768%2C170&amp;ssl=1 768w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Este sería el contenido del fichero:</li>
</ul>
<p>services:</p>
<p>keycloak-db:</p>
<p>image: postgres:16.6</p>
<p>container_name: keycloak-db</p>
<p>restart: unless-stopped</p>
<p>env_file: .env</p>
<p>volumes:</p>
<p>&#8211; /opt/docker/keycloakdb/data:/var/lib/postgresql/data</p>
<p>networks:</p>
<p>&#8211; keycloak-net</p>
<p>&nbsp;</p>
<p>networks:</p>
<p>keycloak-net:</p>
<p>name: keycloak-net</p>
<p>external: true</p>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck39.png?ssl=1" data-lbwps-width="997" data-lbwps-height="426" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck39.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22123" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck39#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck39.png?fit=997%2C426&amp;ssl=1" data-orig-size="997,426" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck39" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck39.png?fit=640%2C273&amp;ssl=1" class="aligncenter size-full wp-image-22123" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck39.png?resize=640%2C273&#038;ssl=1" alt="" width="640" height="273" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck39.png?w=997&amp;ssl=1 997w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck39.png?resize=595%2C254&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck39.png?resize=960%2C410&amp;ssl=1 960w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck39.png?resize=768%2C328&amp;ssl=1 768w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Aquí vemos los ficheros creados:</li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck11.png?ssl=1" data-lbwps-width="817" data-lbwps-height="270" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck11.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22088" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck11#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck11.png?fit=817%2C270&amp;ssl=1" data-orig-size="817,270" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck11" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck11.png?fit=640%2C212&amp;ssl=1" class="aligncenter size-full wp-image-22088" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck11.png?resize=640%2C212&#038;ssl=1" alt="" width="640" height="212" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck11.png?w=817&amp;ssl=1 817w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck11.png?resize=595%2C197&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck11.png?resize=768%2C254&amp;ssl=1 768w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Seguimos con el fichero .env para el contenedor de keycloak-app, para ello, nos situamos en <strong>/opt/docker/keycloakapp</strong>, y ejecutamos <strong>sudo</strong> <strong>nano .env</strong>:</li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck12.png?ssl=1" data-lbwps-width="796" data-lbwps-height="188" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck12.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22089" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck12#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck12.png?fit=796%2C188&amp;ssl=1" data-orig-size="796,188" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck12" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck12.png?fit=640%2C151&amp;ssl=1" class="aligncenter size-full wp-image-22089" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck12.png?resize=640%2C151&#038;ssl=1" alt="" width="640" height="151" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck12.png?w=796&amp;ssl=1 796w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck12.png?resize=595%2C141&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck12.png?resize=768%2C181&amp;ssl=1 768w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Y así definimos el fichero:</li>
<li>KC_DB=postgres</li>
<li>KC_DB_URL=jdbc:postgresql://keycloak-db:5432/keycloak</li>
<li>KC_DB_USERNAME=keycloakuser</li>
<li>KC_DB_PASSWORD=clave_muy_segura_db</li>
<li>KEYCLOAK_ADMIN=admkck</li>
<li>KEYCLOAK_ADMIN_PASSWORD=clave_admin_keycloak</li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck13.png?ssl=1" data-lbwps-width="962" data-lbwps-height="289" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck13.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22090" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck13#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck13.png?fit=962%2C289&amp;ssl=1" data-orig-size="962,289" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck13" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck13.png?fit=640%2C192&amp;ssl=1" class="aligncenter size-full wp-image-22090" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck13.png?resize=640%2C192&#038;ssl=1" alt="" width="640" height="192" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck13.png?w=962&amp;ssl=1 962w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck13.png?resize=595%2C179&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck13.png?resize=960%2C288&amp;ssl=1 960w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck13.png?resize=768%2C231&amp;ssl=1 768w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Nos creamos el fichero docker-compose.yaml para el contenedor de keycloak-app en la misma ubicación, <strong>sudo nano docker-compose.yaml</strong>:</li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck14.png?ssl=1" data-lbwps-width="837" data-lbwps-height="173" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck14.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22091" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck14#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck14.png?fit=837%2C173&amp;ssl=1" data-orig-size="837,173" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck14" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck14.png?fit=640%2C132&amp;ssl=1" class="aligncenter size-full wp-image-22091" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck14.png?resize=640%2C132&#038;ssl=1" alt="" width="640" height="132" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck14.png?w=837&amp;ssl=1 837w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck14.png?resize=595%2C123&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck14.png?resize=768%2C159&amp;ssl=1 768w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Este sería el contenido del fichero:</li>
</ul>
<p>services:</p>
<p>keycloak-app:</p>
<p>image: quay.io/keycloak/keycloak:26.1.3</p>
<p>container_name: keycloak-app</p>
<p>command:</p>
<p>&#8211; start-dev</p>
<p>&#8211; &#8211;proxy-headers=xforwarded</p>
<p>&#8211; &#8211;hostname=keycloak.ragasys.net</p>
<p>&#8211; &#8211;http-enabled=true</p>
<p>&#8211; &#8211;hostname-strict=false</p>
<p>restart: unless-stopped</p>
<p>env_file: .env</p>
<p>environment:</p>
<p>&#8211; KC_DB=${KC_DB}</p>
<p>&#8211; KC_DB_URL=${KC_DB_URL}</p>
<p>&#8211; KC_DB_USERNAME=${KC_DB_USERNAME}</p>
<p>&#8211; KC_DB_PASSWORD=${KC_DB_PASSWORD}</p>
<p>&#8211; KEYCLOAK_ADMIN=${KEYCLOAK_ADMIN}</p>
<p>&#8211; KEYCLOAK_ADMIN_PASSWORD=${KEYCLOAK_ADMIN_PASSWORD}</p>
<p>volumes:</p>
<p>&#8211; /opt/docker/keycloakapp/config:/opt/keycloak/data</p>
<p>networks:</p>
<p>&#8211; keycloak-net  # Para comunicar con la DB</p>
<p>&#8211; internal-net  # Para comunicar con Nginx Proxy Manager</p>
<p>&nbsp;</p>
<p>networks:</p>
<p>keycloak-net:</p>
<p>external: true</p>
<p>internal-net:</p>
<p>external: true</p>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck15.png?ssl=1" data-lbwps-width="1005" data-lbwps-height="693" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck15.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22092" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck15#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck15.png?fit=1005%2C693&amp;ssl=1" data-orig-size="1005,693" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck15" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck15.png?fit=640%2C441&amp;ssl=1" class="aligncenter size-full wp-image-22092" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck15.png?resize=640%2C441&#038;ssl=1" alt="" width="640" height="441" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck15.png?w=1005&amp;ssl=1 1005w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck15.png?resize=595%2C410&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck15.png?resize=960%2C662&amp;ssl=1 960w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck15.png?resize=768%2C530&amp;ssl=1 768w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Aquí vemos los ficheros creados:</li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck16.png?ssl=1" data-lbwps-width="805" data-lbwps-height="265" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck16.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22093" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck16#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck16.png?fit=805%2C265&amp;ssl=1" data-orig-size="805,265" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck16" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck16.png?fit=640%2C211&amp;ssl=1" class="aligncenter size-full wp-image-22093" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck16.png?resize=640%2C211&#038;ssl=1" alt="" width="640" height="211" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck16.png?w=805&amp;ssl=1 805w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck16.png?resize=595%2C196&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck16.png?resize=768%2C253&amp;ssl=1 768w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Protegemos los archivos .env aplicando estos permisos:</li>
<li><strong>sudo chmod 600 /opt/docker/keycloakdb/.env</strong></li>
<li><strong>sudo chmod 600 /opt/docker/keycloakapp/.env</strong></li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck17.png?ssl=1" data-lbwps-width="836" data-lbwps-height="200" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck17.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22094" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck17#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck17.png?fit=836%2C200&amp;ssl=1" data-orig-size="836,200" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck17" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck17.png?fit=640%2C153&amp;ssl=1" class="aligncenter size-full wp-image-22094" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck17.png?resize=640%2C153&#038;ssl=1" alt="" width="640" height="153" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck17.png?w=836&amp;ssl=1 836w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck17.png?resize=595%2C142&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck17.png?resize=768%2C184&amp;ssl=1 768w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Ahora, iniciamos primero el contenedor de <strong>postgreSQL</strong>, <strong>cd /opt/docker/keycloakdb/</strong>, <strong>sudo</strong> <strong>docker compose up -d</strong>:</li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck18.png?ssl=1" data-lbwps-width="894" data-lbwps-height="342" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck18.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22095" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck18#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck18.png?fit=894%2C342&amp;ssl=1" data-orig-size="894,342" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck18" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck18.png?fit=640%2C245&amp;ssl=1" class="aligncenter size-full wp-image-22095" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck18.png?resize=640%2C245&#038;ssl=1" alt="" width="640" height="245" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck18.png?w=894&amp;ssl=1 894w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck18.png?resize=595%2C228&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck18.png?resize=768%2C294&amp;ssl=1 768w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Iniciamos el contenedor de <strong>keycloak-app</strong>, <strong>cd /opt/docker/keycloakapp/</strong>, <strong>sudo</strong> <strong>docker compose up -d</strong>:</li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck19.png?ssl=1" data-lbwps-width="874" data-lbwps-height="268" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck19.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22096" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck19#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck19.png?fit=874%2C268&amp;ssl=1" data-orig-size="874,268" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck19" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck19.png?fit=640%2C196&amp;ssl=1" class="aligncenter size-full wp-image-22096" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck19.png?resize=640%2C196&#038;ssl=1" alt="" width="640" height="196" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck19.png?w=874&amp;ssl=1 874w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck19.png?resize=595%2C182&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck19.png?resize=768%2C235&amp;ssl=1 768w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Aquí vemos los contenedores levantados, <strong>sudo</strong> <strong>docker ps</strong>:</li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck20.png?ssl=1" data-lbwps-width="1677" data-lbwps-height="402" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck20-1536x368.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22097" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck20#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck20.png?fit=1677%2C402&amp;ssl=1" data-orig-size="1677,402" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck20" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck20.png?fit=640%2C153&amp;ssl=1" class="aligncenter size-full wp-image-22097" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck20.png?resize=640%2C153&#038;ssl=1" alt="" width="640" height="153" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck20.png?w=1677&amp;ssl=1 1677w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck20.png?resize=595%2C143&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck20.png?resize=960%2C230&amp;ssl=1 960w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck20.png?resize=768%2C184&amp;ssl=1 768w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck20.png?resize=1536%2C368&amp;ssl=1 1536w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck20.png?w=1280&amp;ssl=1 1280w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Ahora accedemos a nuestro portal de Nginx Proxy Manager para crear el host para keycloak.</li>
<li>Accedemos a <strong>Hosts &gt; Hosts Proxy</strong>:</li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck21.png?ssl=1" data-lbwps-width="1510" data-lbwps-height="401" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck21.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22098" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck21#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck21.png?fit=1510%2C401&amp;ssl=1" data-orig-size="1510,401" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck21" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck21.png?fit=640%2C170&amp;ssl=1" class="aligncenter size-full wp-image-22098" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck21.png?resize=640%2C170&#038;ssl=1" alt="" width="640" height="170" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck21.png?w=1510&amp;ssl=1 1510w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck21.png?resize=595%2C158&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck21.png?resize=960%2C255&amp;ssl=1 960w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck21.png?resize=768%2C204&amp;ssl=1 768w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck21.png?w=1280&amp;ssl=1 1280w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li><strong>Añadir Host Proxy</strong>:</li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck22.png?ssl=1" data-lbwps-width="1482" data-lbwps-height="573" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck22.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22099" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck22#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck22.png?fit=1482%2C573&amp;ssl=1" data-orig-size="1482,573" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck22" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck22.png?fit=640%2C247&amp;ssl=1" class="aligncenter size-full wp-image-22099" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck22.png?resize=640%2C247&#038;ssl=1" alt="" width="640" height="247" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck22.png?w=1482&amp;ssl=1 1482w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck22.png?resize=595%2C230&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck22.png?resize=960%2C371&amp;ssl=1 960w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck22.png?resize=768%2C297&amp;ssl=1 768w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck22.png?w=1280&amp;ssl=1 1280w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>En la pestaña <strong>Detalles</strong>:</li>
<li><strong>Nombres de Dominio</strong>: ragasys.net</li>
<li><strong>Esquema:</strong> http</li>
<li><strong>Nombre de Host/IP de reenvío:</strong> keycloak-app</li>
<li><strong>Puerto:</strong> 8080</li>
<li><strong>Bloquear Exploits Comunes</strong></li>
<li><strong>Soporte de Websockets</strong></li>
<li>En la pestaña <strong>SSL:</strong></li>
<li>Seleccionamos el <strong>Certificado SSL </strong>que nos interese</li>
<li>Marcamos <strong>Forzar SSL</strong></li>
<li>Rueda configuración avanzada:</li>
<li>proxy_set_header Host $host;</li>
<li>proxy_set_header X-Real-IP $remote_addr;</li>
<li>proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;</li>
<li>proxy_set_header X-Forwarded-Proto https;</li>
<li>proxy_set_header X-Forwarded-Ssl on;</li>
<li># Esto es vital para que Keycloak no intente redirigir a http interno</li>
<li>proxy_redirect http:// https://;</li>
<li><strong>Guardar</strong></li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck23.png?ssl=1" data-lbwps-width="1035" data-lbwps-height="697" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck23.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22100" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck23#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck23.png?fit=1035%2C697&amp;ssl=1" data-orig-size="1035,697" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck23" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck23.png?fit=640%2C431&amp;ssl=1" class="aligncenter size-full wp-image-22100" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck23.png?resize=640%2C431&#038;ssl=1" alt="" width="640" height="431" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck23.png?w=1035&amp;ssl=1 1035w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck23.png?resize=595%2C401&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck23.png?resize=960%2C646&amp;ssl=1 960w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck23.png?resize=768%2C517&amp;ssl=1 768w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck24.png?ssl=1" data-lbwps-width="1019" data-lbwps-height="445" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck24.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22101" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck24#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck24.png?fit=1019%2C445&amp;ssl=1" data-orig-size="1019,445" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck24" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck24.png?fit=640%2C279&amp;ssl=1" class="aligncenter size-full wp-image-22101" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck24.png?resize=640%2C279&#038;ssl=1" alt="" width="640" height="279" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck24.png?w=1019&amp;ssl=1 1019w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck24.png?resize=595%2C260&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck24.png?resize=960%2C419&amp;ssl=1 960w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck24.png?resize=768%2C335&amp;ssl=1 768w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck25.png?ssl=1" data-lbwps-width="957" data-lbwps-height="510" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck25.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22102" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck25#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck25.png?fit=957%2C510&amp;ssl=1" data-orig-size="957,510" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck25" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck25.png?fit=640%2C341&amp;ssl=1" class="aligncenter size-full wp-image-22102" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck25.png?resize=640%2C341&#038;ssl=1" alt="" width="640" height="341" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck25.png?w=957&amp;ssl=1 957w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck25.png?resize=595%2C317&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck25.png?resize=768%2C409&amp;ssl=1 768w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Aquí vemos el host creado y conectado:</li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck26.png?ssl=1" data-lbwps-width="1490" data-lbwps-height="855" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck26.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22103" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck26#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck26.png?fit=1490%2C855&amp;ssl=1" data-orig-size="1490,855" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck26" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck26.png?fit=640%2C367&amp;ssl=1" class="aligncenter size-full wp-image-22103" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck26.png?resize=640%2C367&#038;ssl=1" alt="" width="640" height="367" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck26.png?w=1490&amp;ssl=1 1490w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck26.png?resize=595%2C341&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck26.png?resize=960%2C551&amp;ssl=1 960w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck26.png?resize=768%2C441&amp;ssl=1 768w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck26.png?w=1280&amp;ssl=1 1280w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Y como vemos ya tenemos acceso a nuestro keycloak a través de nuestro proxy inverso con Nginx Proxy Manager:</li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck27.png?ssl=1" data-lbwps-width="1692" data-lbwps-height="886" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck27-1536x804.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22104" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck27#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck27.png?fit=1692%2C886&amp;ssl=1" data-orig-size="1692,886" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck27" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck27.png?fit=640%2C335&amp;ssl=1" class="aligncenter size-full wp-image-22104" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck27.png?resize=640%2C335&#038;ssl=1" alt="" width="640" height="335" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck27.png?w=1692&amp;ssl=1 1692w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck27.png?resize=595%2C312&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck27.png?resize=960%2C503&amp;ssl=1 960w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck27.png?resize=768%2C402&amp;ssl=1 768w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck27.png?resize=1536%2C804&amp;ssl=1 1536w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck27.png?w=1280&amp;ssl=1 1280w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck28.png?ssl=1" data-lbwps-width="1917" data-lbwps-height="921" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck28-1536x738.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22105" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck28#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck28.png?fit=1917%2C921&amp;ssl=1" data-orig-size="1917,921" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck28" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck28.png?fit=640%2C307&amp;ssl=1" class="aligncenter size-full wp-image-22105" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck28.png?resize=640%2C307&#038;ssl=1" alt="" width="640" height="307" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck28.png?w=1917&amp;ssl=1 1917w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck28.png?resize=595%2C286&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck28.png?resize=960%2C461&amp;ssl=1 960w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck28.png?resize=768%2C369&amp;ssl=1 768w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck28.png?resize=1536%2C738&amp;ssl=1 1536w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck28.png?w=1280&amp;ssl=1 1280w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li>Nos hemos creado un nuevo realm para nuestras aplicaciones:</li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck29.png?ssl=1" data-lbwps-width="1161" data-lbwps-height="536" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck29.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22106" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck29#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck29.png?fit=1161%2C536&amp;ssl=1" data-orig-size="1161,536" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck29" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck29.png?fit=640%2C295&amp;ssl=1" class="aligncenter size-full wp-image-22106" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck29.png?resize=640%2C295&#038;ssl=1" alt="" width="640" height="295" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck29.png?w=1161&amp;ssl=1 1161w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck29.png?resize=595%2C275&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck29.png?resize=960%2C443&amp;ssl=1 960w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck29.png?resize=768%2C355&amp;ssl=1 768w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck30.png?ssl=1" data-lbwps-width="1657" data-lbwps-height="632" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck30-1536x586.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22107" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck30#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck30.png?fit=1657%2C632&amp;ssl=1" data-orig-size="1657,632" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck30" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck30.png?fit=640%2C244&amp;ssl=1" class="aligncenter size-full wp-image-22107" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck30.png?resize=640%2C244&#038;ssl=1" alt="" width="640" height="244" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck30.png?w=1657&amp;ssl=1 1657w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck30.png?resize=595%2C227&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck30.png?resize=960%2C366&amp;ssl=1 960w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck30.png?resize=768%2C293&amp;ssl=1 768w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck30.png?resize=1536%2C586&amp;ssl=1 1536w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck30.png?w=1280&amp;ssl=1 1280w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck31.png?ssl=1" data-lbwps-width="1575" data-lbwps-height="752" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck31-1536x733.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22108" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck31#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck31.png?fit=1575%2C752&amp;ssl=1" data-orig-size="1575,752" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck31" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck31.png?fit=640%2C305&amp;ssl=1" class="aligncenter size-full wp-image-22108" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck31.png?resize=640%2C306&#038;ssl=1" alt="" width="640" height="306" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck31.png?w=1575&amp;ssl=1 1575w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck31.png?resize=595%2C284&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck31.png?resize=960%2C458&amp;ssl=1 960w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck31.png?resize=768%2C367&amp;ssl=1 768w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck31.png?resize=1536%2C733&amp;ssl=1 1536w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck31.png?w=1280&amp;ssl=1 1280w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<ul>
<li><strong>El rol del Realm master</strong>, el realm master es puramente para la administración del servidor de Keycloak.</li>
<li>Se usa para crear otros Realms.</li>
<li>Se usa para crear usuarios que sean administradores globales.</li>
<li>Regla de oro, no registres tus aplicaciones (como phpIPAM, Nextcloud, etc.) ni a tus usuarios finales dentro de master.</li>
<li><strong>Por qué crear un Realm nuevo (Ragasys-Apps), </strong>al crear un realm específico para tus aplicaciones:</li>
<li>Aislamiento, si te equivocas configurando algo en el realm de tus apps, el acceso de administración en master sigue funcionando.</li>
<li>Seguridad, puedes tener políticas de contraseñas y 2FA distintas para los administradores en el master y para los usuarios en el nuevo realm.</li>
<li>Orden, mantemos limpios los logs y la base de datos de usuarios.</li>
<li>Sobre el real que hemos creado, accedemos a <strong>Authentication &gt; Required actions &gt; Configure OTP</strong> habilitamos <strong>Configure OTP y Set as default action</strong>, esto obligará a configurar el 2FA a todos los usuarios:</li>
</ul>
<p><a href="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck32.png?ssl=1" data-lbwps-width="1919" data-lbwps-height="914" data-lbwps-srcsmall="https://blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck32-1536x732.png"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="22109" data-permalink="https://blog.ragasys.es/desplegar-keycloak-con-docker/dkckcdck32#main" data-orig-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck32.png?fit=1919%2C914&amp;ssl=1" data-orig-size="1919,914" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="dkckcdck32" data-image-description="" data-image-caption="" data-large-file="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck32.png?fit=640%2C305&amp;ssl=1" class="aligncenter size-full wp-image-22109" src="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck32.png?resize=640%2C305&#038;ssl=1" alt="" width="640" height="305" srcset="https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck32.png?w=1919&amp;ssl=1 1919w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck32.png?resize=595%2C283&amp;ssl=1 595w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck32.png?resize=960%2C457&amp;ssl=1 960w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck32.png?resize=768%2C366&amp;ssl=1 768w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck32.png?resize=1536%2C732&amp;ssl=1 1536w, https://i0.wp.com/blog.ragasys.es/wp-content/uploads/2026/04/dkckcdck32.png?w=1280&amp;ssl=1 1280w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<p>&nbsp;</p>
<p>Saludos y espero que os sea de ayuda <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>La entrada <a href="https://blog.ragasys.es/desplegar-keycloak-con-docker">Desplegar keycloak con Docker</a> se publicó primero en <a href="https://blog.ragasys.es">RAGASYS SISTEMAS</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.ragasys.es/desplegar-keycloak-con-docker/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">22077</post-id>	</item>
	</channel>
</rss>
