Add initial Keycloak setup with custom theme and Docker configuration

- Created .env.example for environment variable configuration.
- Added .gitignore to exclude .env files.
- Introduced docker-compose files for Keycloak and Postgres services.
- Implemented custom Keycloak theme 'drill-luxe' with associated templates and styles.
- Updated README with deployment instructions and repository details.
This commit is contained in:
Первов Артем
2026-04-06 00:26:59 +03:00
commit af41f66bbe
12 changed files with 759 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
<!DOCTYPE html>
<html class="${properties.kcHtmlClass!}" lang="${lang}">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="robots" content="noindex, nofollow" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>Drill View Password Reset</title>
<#if properties.styles?has_content>
<#list properties.styles?split(' ') as style>
<link href="${url.resourcesPath}/${style}" rel="stylesheet" />
</#list>
</#if>
</head>
<body class="drill-login">
<main class="drill-login__shell">
<section class="drill-login__brand">
<div class="drill-login__brand-mark">D</div>
<div class="drill-login__brand-copy">
<span class="drill-login__eyebrow">Greact Drill</span>
<h1>Восстановление доступа</h1>
<p>
Введите логин или e-mail, чтобы Keycloak отправил инструкции по восстановлению пароля
и возвращению в защищённую среду Drill.
</p>
</div>
</section>
<section class="drill-login__panel">
<div class="drill-login__panel-head">
<span class="drill-login__eyebrow">Password Recovery</span>
<h2>Сброс пароля</h2>
<p>Используйте корпоративный логин или адрес электронной почты.</p>
</div>
<#if message?has_content>
<div class="drill-login__alert drill-login__alert--${message.type}">
${kcSanitize(message.summary)?no_esc}
</div>
</#if>
<form id="kc-reset-password-form" class="drill-login__form" action="${url.loginAction}" method="post">
<div class="drill-login__field">
<label for="username">Логин или e-mail</label>
<input
id="username"
name="username"
type="text"
value="${(auth.attemptedUsername!'')}"
autofocus
placeholder="Введите логин или e-mail"
/>
</div>
<button class="drill-login__submit" type="submit">
<span>Отправить инструкции</span>
</button>
</form>
<div class="drill-login__footer">
<a href="${url.loginUrl}">Назад ко входу</a>
</div>
</section>
</main>
</body>
</html>