install¶
deps¶
sudo apt update && sudo apt upgrade
sudo apt install openjdk-21-jre
download¶
download the zip file.
wget https://github.com/keycloak/keycloak/releases/download/26.4.7/keycloak-26.4.7.zip
unzip keycloak-26.4.7.zip
useradd keycloa
chown -R keycloak:keycloak keylocak-26.4.7
config systemd¶
sudo useradd keycloak
[Unit]
Description=Keycloak Service
After=network.target
[Service]
User=keycloak
Group=keycloak
SuccessExitStatus=143
ExecStart=/opt/keycloak/keycloak-26.4.7/bin/kc.sh start --proxy-headers forwarded --proxy-trusted-addresses=127.0.0.1/8 --http-enabled true --optimized
WorkingDirectory=/opt/keycloak/keycloak-26.4.7
[Install]
WantedBy=multi-user.target
nginx¶
server {
server_name keycloak.public.dns;
location / {
#proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-For $http_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_pass http://127.0.0.1:8080;
}
client_max_body_size 10M;
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/keycloak.public.dns/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/keycloak.public.dns/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
server {
server_name keycloak.public.dns;
listen [::]:80;
listen 80;
return 301 https://$host$request_uri;
}
create an admin user¶
access the 8080 port