feat: Add Docker Compose
This commit is contained in:
parent
63a317e42f
commit
d1cea85891
13 changed files with 650 additions and 0 deletions
|
|
@ -0,0 +1,159 @@
|
||||||
|
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+Thai:wght@100;200;300;400;500;600;700;800;900&display=swap");
|
||||||
|
|
||||||
|
.pf-c-button.pf-m-primary {
|
||||||
|
--pf-c-button--m-primary--BackgroundColor: #1a458a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#kc-header,
|
||||||
|
#kc-header-wrapper {
|
||||||
|
padding: 0 0 0 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-form-control[aria-invalid=true] {
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
[id^="input-error"] {
|
||||||
|
color: #ea2223;
|
||||||
|
}
|
||||||
|
|
||||||
|
#kc-registration a {
|
||||||
|
color: #1a458a;
|
||||||
|
font-weight: 800;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-pf-page .login-pf-settings a {
|
||||||
|
color: #ea2223;
|
||||||
|
font-weight: 800;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.kc-logo-text {
|
||||||
|
background-image: url("../img/logo.png");
|
||||||
|
background-size: contain;
|
||||||
|
background-position: center center;
|
||||||
|
height: 150px;
|
||||||
|
width: 80%;
|
||||||
|
margin-inline: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-pf body {
|
||||||
|
font-family: "Noto Sans Thai";
|
||||||
|
background: url("../img/bg.png") no-repeat center center fixed;
|
||||||
|
background-size: cover;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#kc-form-options .checkbox {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-pf {
|
||||||
|
border-top: 0;
|
||||||
|
border-radius: 1rem;
|
||||||
|
backdrop-filter: blur(16px);
|
||||||
|
background-color: hsla(0 0 100% / 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
#kc-info-wrapper {
|
||||||
|
background: transparent;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-form-control {
|
||||||
|
border: white;
|
||||||
|
outline: none;
|
||||||
|
box-shadow:
|
||||||
|
0 3px 5px -2px hsl(0 0 0% / 8%),
|
||||||
|
0 7px 14px -5px hsl(0 0 0% / 10%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-form-control:focus {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-button.pf-m-control {
|
||||||
|
border: none;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-button:after {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-form-control {
|
||||||
|
background: white;
|
||||||
|
padding: 1.75rem 2rem !important;
|
||||||
|
border-radius: 1rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-input-group,
|
||||||
|
.pf-c-button {
|
||||||
|
border-radius: 1rem !important;
|
||||||
|
box-shadow:
|
||||||
|
0 3px 5px -2px hsl(0 0% 0% / 8%),
|
||||||
|
0 7px 14px -5px hsl(0 0% 0% / 10%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-input-group .pf-c-form-control,
|
||||||
|
.pf-c-input-group .pf-c-button {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#kc-form-buttons .pf-c-button {
|
||||||
|
padding: 0.75rem 2rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
.login-pf body {
|
||||||
|
background: linear-gradient(rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.85)),
|
||||||
|
url("../img/bg.png");
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-button.pf-m-primary {
|
||||||
|
--pf-c-button--m-primary--BackgroundColor: #008bff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-button.pf-m-primary:hover {
|
||||||
|
--pf-c-button--m-primary--BackgroundColor: #1971c2;
|
||||||
|
}
|
||||||
|
|
||||||
|
#kc-locale ul {
|
||||||
|
color: white !important;
|
||||||
|
background: #212121 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-dropdown__menu-item {
|
||||||
|
outline: none !important;
|
||||||
|
color: white;
|
||||||
|
background: #212121;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-dropdown__menu-item:hover {
|
||||||
|
outline: none !important;
|
||||||
|
color: white;
|
||||||
|
background: #121212;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-pf {
|
||||||
|
color: white;
|
||||||
|
background-color: hsla(0 0% 10% / 1);
|
||||||
|
border: 1px solid hsl(0 0% 20%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-form-control,
|
||||||
|
.pf-c-input-group {
|
||||||
|
color: white;
|
||||||
|
background-color: hsla(0 0% 15% / 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-input-group i {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#kc-registration a {
|
||||||
|
color: #008bff;
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
docker/jws-0.0.1/keycloak-themes/jws/login/resources/img/bg.png
Normal file
BIN
docker/jws-0.0.1/keycloak-themes/jws/login/resources/img/bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
|
|
@ -0,0 +1,3 @@
|
||||||
|
parent=keycloak
|
||||||
|
import=common/keycloak
|
||||||
|
styles=css/login.css css/style.css
|
||||||
28
docker/jws-0.0.1/routes.yaml
Normal file
28
docker/jws-0.0.1/routes.yaml
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
|
||||||
|
http:
|
||||||
|
routers:
|
||||||
|
# be1-dev:
|
||||||
|
# service: org
|
||||||
|
# rule: "Host(`bma-ehr-dev1.frappet.synology.me`) && (PathPrefix(`/api/v1/Organization`)||PathPrefix(`/api/v1/PositionMaster`))"
|
||||||
|
|
||||||
|
report-server-dev:
|
||||||
|
service: report-server-dev
|
||||||
|
rule: "Host(`bma-ehr.frappet.synology.me`) && (PathPrefix(`/api/v1/report-template`) )"
|
||||||
|
|
||||||
|
services:
|
||||||
|
# org:
|
||||||
|
# loadBalancer:
|
||||||
|
# servers:
|
||||||
|
# - url: 'http://192.168.1.9:4053/'
|
||||||
|
report-server-dev:
|
||||||
|
loadBalancer:
|
||||||
|
servers:
|
||||||
|
- url: 'http://192.168.1.40:7001/'
|
||||||
|
|
||||||
|
middlewares:
|
||||||
|
user-auth: # UserName:admin Password: admin123
|
||||||
|
basicAuth:
|
||||||
|
users: #create from htpasswd
|
||||||
|
- "admin:$apr1$rKaNOONw$vJXI83by5aEK4xdtiov3W1"
|
||||||
|
- "frappet:$apr1$SeCe2hH6$DcAxZNsMSmIjd4/9TUWVC."
|
||||||
|
|
||||||
15
docker/jws-0.0.1/traefik.yaml
Normal file
15
docker/jws-0.0.1/traefik.yaml
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
entrypoints:
|
||||||
|
unsecure:
|
||||||
|
address: :80
|
||||||
|
providers:
|
||||||
|
docker:
|
||||||
|
endpoint: "unix:///var/run/docker.sock"
|
||||||
|
exposedByDefault: false
|
||||||
|
file:
|
||||||
|
filename: /routes.yaml
|
||||||
|
watch: true
|
||||||
|
api: # enable dashboard
|
||||||
|
dashboard: true
|
||||||
|
insecure: true
|
||||||
|
log:
|
||||||
|
level: DEBUG
|
||||||
240
docker/jws-0.0.2/compose.yaml
Normal file
240
docker/jws-0.0.2/compose.yaml
Normal file
|
|
@ -0,0 +1,240 @@
|
||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
# jws-traefik-v1:
|
||||||
|
# container_name: jws-traefik-v1
|
||||||
|
# image: traefik:v2.10
|
||||||
|
# restart: always
|
||||||
|
# ports:
|
||||||
|
# - 4020:80
|
||||||
|
# volumes:
|
||||||
|
# - /etc/localtime:/etc/localtime:ro
|
||||||
|
# - /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
|
# - ./traefik.yaml:/traefik.yaml
|
||||||
|
# - ./routes.yaml:/routes.yaml:rw
|
||||||
|
# labels:
|
||||||
|
# - "traefik.enable=true"
|
||||||
|
# - "traefik.http.routers.tf.rule=Host(`jws-treafik-v1.frappet.synology.me`)"
|
||||||
|
# - "traefik.http.routers.tf.middlewares=user-auth@file"
|
||||||
|
# - "traefik.http.routers.tf.service=api@internal"
|
||||||
|
|
||||||
|
# environment:
|
||||||
|
# - TZ=Asia/Bangkok
|
||||||
|
# networks:
|
||||||
|
# - jws
|
||||||
|
|
||||||
|
jws-keycloak-v2:
|
||||||
|
container_name: jws-keycloak-v2
|
||||||
|
image: quay.io/keycloak/keycloak:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
mem_limit: "1g"
|
||||||
|
command:
|
||||||
|
- start-dev
|
||||||
|
- --proxy=edge
|
||||||
|
environment:
|
||||||
|
- KEYCLOAK_ADMIN=admin
|
||||||
|
- KEYCLOAK_ADMIN_PASSWORD=1234
|
||||||
|
- TZ=Asia/Bangkok
|
||||||
|
ports:
|
||||||
|
- "18080:8080"
|
||||||
|
volumes:
|
||||||
|
- keycloak-data-v2:/opt/keycloak/data
|
||||||
|
- ./keycloak-themes:/opt/keycloak/themes:rw
|
||||||
|
networks:
|
||||||
|
- jws
|
||||||
|
|
||||||
|
jws-mariadb-v2:
|
||||||
|
container_name: jws-mariadb-v2
|
||||||
|
image: mariadb:lts
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- 13306:3306
|
||||||
|
volumes:
|
||||||
|
- mariadb-data-v2:/var/lib/mysql
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Bangkok
|
||||||
|
- MARIADB_ROOT_PASSWORD=1234
|
||||||
|
networks:
|
||||||
|
- jws
|
||||||
|
|
||||||
|
jws-postgres-v2:
|
||||||
|
container_name: jws-postgres-v2
|
||||||
|
image: postgres:alpine
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- 15433:5432
|
||||||
|
volumes:
|
||||||
|
- postgres-data-v2:/var/lib/postgresql/data
|
||||||
|
environment:
|
||||||
|
- POSTGRES_PASSWORD=1234
|
||||||
|
networks:
|
||||||
|
- jws
|
||||||
|
|
||||||
|
jws-elasticsearch-v2:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile_inline: |
|
||||||
|
FROM elasticsearch:8.12.0
|
||||||
|
RUN /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch analysis-icu
|
||||||
|
image: elasticsearch-local:8.12.0
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 1G
|
||||||
|
restart: unless-stopped
|
||||||
|
container_name: jws-elasticsearch-v2
|
||||||
|
ports:
|
||||||
|
- 19201:9200
|
||||||
|
volumes:
|
||||||
|
- elasticsearch-data-v2:/usr/share/elasticsearch/data
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Bangkok
|
||||||
|
- xpack.security.enabled=false
|
||||||
|
- discovery.type=single-node
|
||||||
|
networks:
|
||||||
|
- jws
|
||||||
|
|
||||||
|
jws-kibana-v2:
|
||||||
|
container_name: jws-kibana-v2
|
||||||
|
image: kibana:8.12.0
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 1G
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- jws-elasticsearch-v2
|
||||||
|
ports:
|
||||||
|
- 15602:5601
|
||||||
|
volumes:
|
||||||
|
- kibana-data-v2:/usr/share/kibana/data
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Bangkok
|
||||||
|
- ELASTICSEARCH_HOSTS=http://jws-elasticsearch-v2:9200
|
||||||
|
networks:
|
||||||
|
- jws
|
||||||
|
|
||||||
|
jws-rabbitmq-v2:
|
||||||
|
container_name: jws-rabbitmq-v2
|
||||||
|
image: rabbitmq:3-management-alpine
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- 25673:5672
|
||||||
|
- 35673:15672
|
||||||
|
volumes:
|
||||||
|
- rabbitmq-data-v2:/var/lib/rabbitmq
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Bangkok
|
||||||
|
- RABBITMQ_DEFAULT_USER=admin
|
||||||
|
- RABBITMQ_DEFAULT_PASS=1234
|
||||||
|
- RABBITMQ_DEFAULT_VHOST=vhost
|
||||||
|
networks:
|
||||||
|
- jws
|
||||||
|
|
||||||
|
jws-minio-v2:
|
||||||
|
container_name: jws-minio-v2
|
||||||
|
image: minio/minio:latest
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 1G
|
||||||
|
restart: unless-stopped
|
||||||
|
command: server --console-address ":9001" /data
|
||||||
|
ports:
|
||||||
|
- 19002:9000
|
||||||
|
- 19003:9001
|
||||||
|
volumes:
|
||||||
|
- minio-data-v2:/data
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Bangkok
|
||||||
|
- MINIO_ROOT_USER=admin
|
||||||
|
- MINIO_ROOT_PASSWORD=12345678
|
||||||
|
networks:
|
||||||
|
- jws
|
||||||
|
|
||||||
|
jws-n8n-v2:
|
||||||
|
container_name: jws-n8n-v2
|
||||||
|
image: docker.n8n.io/n8nio/n8n
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- 15678:5678
|
||||||
|
# extra_hosts:
|
||||||
|
# - host.docker.internal:host-gateway
|
||||||
|
volumes:
|
||||||
|
- n8n-data-v2:/home/node/.n8n
|
||||||
|
environment:
|
||||||
|
- GENERIC_TIMEZONE=Asia/Bangkok
|
||||||
|
networks:
|
||||||
|
- jws
|
||||||
|
|
||||||
|
# Backend
|
||||||
|
jws-backend-v2:
|
||||||
|
container_name: jws-backend-v2
|
||||||
|
image: docker.frappet.com/jws/jws-backend:version-0.0.2
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- jws-postgres-v2
|
||||||
|
ports:
|
||||||
|
- 20008:3000
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.jws-backend-v2.rule=Host(`jws-v2.frappet.synology.me`) && PathPrefix(`/api`)"
|
||||||
|
- "traefik.http.routers.jws-backend-v2.entrypoints=unsecure"
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Bangkok
|
||||||
|
- KC_URL=https://jws-keycloak-v2.frappet.synology.me
|
||||||
|
- KC_REALM=dev
|
||||||
|
- KC_SERVICE_ACCOUNT_CLIENT_ID=dev-service
|
||||||
|
- KC_SERVICE_ACCOUNT_SECRET=ztEypXzLccvk4ngyBRkVactqLJAIDDrs
|
||||||
|
- APP_HOST=0.0.0.0
|
||||||
|
- APP_PORT=3000
|
||||||
|
- MINIO_HOST=jws-minio-v2
|
||||||
|
- MINIO_PORT=9000
|
||||||
|
- MINIO_ACCESS_KEY=lN5i4Jsoni8Pp3tfRDBr
|
||||||
|
- MINIO_SECRET_KEY=eLSOGjnogMJ0SK97SpO6E8gribdDyzloCipklyIH
|
||||||
|
- MINIO_BUCKET=jws-dev
|
||||||
|
- ELASTICSEARCH_PROTOCOL=http
|
||||||
|
- ELASTICSEARCH_HOST=jws-elasticsearch-v2
|
||||||
|
- ELASTICSEARCH_PORT=9200
|
||||||
|
- ELASTICSEARCH_INDEX=jws-log-index
|
||||||
|
- DATABASE_URL=postgresql://postgres:1234@jws-postgres-v2:5432/dev_1?schema=public
|
||||||
|
# extra_hosts:
|
||||||
|
# - host.docker.internal:host-gateway
|
||||||
|
networks:
|
||||||
|
- jws
|
||||||
|
|
||||||
|
# Frontend
|
||||||
|
jws-frontend-v2:
|
||||||
|
container_name: jws-frontend-v2
|
||||||
|
image: docker.frappet.com/jws/jws-frontend:version-0.0.2
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- jws-backend-v2
|
||||||
|
ports:
|
||||||
|
- 20009:8080
|
||||||
|
labels:
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.routers.jws-frontend-v2.rule=Host(`jws-v2.frappet.synology.me`)
|
||||||
|
- "traefik.http.routers.jws-frontend-v2.entrypoints=unsecure"
|
||||||
|
environment:
|
||||||
|
TZ: Asia/Bangkok
|
||||||
|
API_BASE_URL: https://jws-v2.frappet.synology.me/api
|
||||||
|
KC_URL: https://jws-keycloak-v2.frappet.synology.me
|
||||||
|
KC_REALM: dev
|
||||||
|
KC_CLIENT_ID: dev-service
|
||||||
|
networks:
|
||||||
|
- jws
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
keycloak-data-v2:
|
||||||
|
mariadb-data-v2:
|
||||||
|
postgres-data-v2:
|
||||||
|
elasticsearch-data-v2:
|
||||||
|
kibana-data-v2:
|
||||||
|
rabbitmq-data-v2:
|
||||||
|
minio-data-v2:
|
||||||
|
n8n-data-v2:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
jws:
|
||||||
|
external: true
|
||||||
|
|
@ -0,0 +1,159 @@
|
||||||
|
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+Thai:wght@100;200;300;400;500;600;700;800;900&display=swap");
|
||||||
|
|
||||||
|
.pf-c-button.pf-m-primary {
|
||||||
|
--pf-c-button--m-primary--BackgroundColor: #1a458a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#kc-header,
|
||||||
|
#kc-header-wrapper {
|
||||||
|
padding: 0 0 0 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-form-control[aria-invalid=true] {
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
[id^="input-error"] {
|
||||||
|
color: #ea2223;
|
||||||
|
}
|
||||||
|
|
||||||
|
#kc-registration a {
|
||||||
|
color: #1a458a;
|
||||||
|
font-weight: 800;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-pf-page .login-pf-settings a {
|
||||||
|
color: #ea2223;
|
||||||
|
font-weight: 800;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.kc-logo-text {
|
||||||
|
background-image: url("../img/logo.png");
|
||||||
|
background-size: contain;
|
||||||
|
background-position: center center;
|
||||||
|
height: 150px;
|
||||||
|
width: 80%;
|
||||||
|
margin-inline: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-pf body {
|
||||||
|
font-family: "Noto Sans Thai";
|
||||||
|
background: url("../img/bg.png") no-repeat center center fixed;
|
||||||
|
background-size: cover;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#kc-form-options .checkbox {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-pf {
|
||||||
|
border-top: 0;
|
||||||
|
border-radius: 1rem;
|
||||||
|
backdrop-filter: blur(16px);
|
||||||
|
background-color: hsla(0 0 100% / 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
#kc-info-wrapper {
|
||||||
|
background: transparent;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-form-control {
|
||||||
|
border: white;
|
||||||
|
outline: none;
|
||||||
|
box-shadow:
|
||||||
|
0 3px 5px -2px hsl(0 0 0% / 8%),
|
||||||
|
0 7px 14px -5px hsl(0 0 0% / 10%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-form-control:focus {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-button.pf-m-control {
|
||||||
|
border: none;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-button:after {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-form-control {
|
||||||
|
background: white;
|
||||||
|
padding: 1.75rem 2rem !important;
|
||||||
|
border-radius: 1rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-input-group,
|
||||||
|
.pf-c-button {
|
||||||
|
border-radius: 1rem !important;
|
||||||
|
box-shadow:
|
||||||
|
0 3px 5px -2px hsl(0 0% 0% / 8%),
|
||||||
|
0 7px 14px -5px hsl(0 0% 0% / 10%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-input-group .pf-c-form-control,
|
||||||
|
.pf-c-input-group .pf-c-button {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#kc-form-buttons .pf-c-button {
|
||||||
|
padding: 0.75rem 2rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
.login-pf body {
|
||||||
|
background: linear-gradient(rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.85)),
|
||||||
|
url("../img/bg.png");
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-button.pf-m-primary {
|
||||||
|
--pf-c-button--m-primary--BackgroundColor: #008bff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-button.pf-m-primary:hover {
|
||||||
|
--pf-c-button--m-primary--BackgroundColor: #1971c2;
|
||||||
|
}
|
||||||
|
|
||||||
|
#kc-locale ul {
|
||||||
|
color: white !important;
|
||||||
|
background: #212121 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-dropdown__menu-item {
|
||||||
|
outline: none !important;
|
||||||
|
color: white;
|
||||||
|
background: #212121;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-dropdown__menu-item:hover {
|
||||||
|
outline: none !important;
|
||||||
|
color: white;
|
||||||
|
background: #121212;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-pf {
|
||||||
|
color: white;
|
||||||
|
background-color: hsla(0 0% 10% / 1);
|
||||||
|
border: 1px solid hsl(0 0% 20%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-form-control,
|
||||||
|
.pf-c-input-group {
|
||||||
|
color: white;
|
||||||
|
background-color: hsla(0 0% 15% / 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.pf-c-input-group i {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#kc-registration a {
|
||||||
|
color: #008bff;
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
docker/jws-0.0.2/keycloak-themes/jws/login/resources/img/bg.png
Normal file
BIN
docker/jws-0.0.2/keycloak-themes/jws/login/resources/img/bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
|
|
@ -0,0 +1,3 @@
|
||||||
|
parent=keycloak
|
||||||
|
import=common/keycloak
|
||||||
|
styles=css/login.css css/style.css
|
||||||
28
docker/jws-0.0.2/routes.yaml
Normal file
28
docker/jws-0.0.2/routes.yaml
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
|
||||||
|
http:
|
||||||
|
routers:
|
||||||
|
# be1-dev:
|
||||||
|
# service: org
|
||||||
|
# rule: "Host(`bma-ehr-dev1.frappet.synology.me`) && (PathPrefix(`/api/v1/Organization`)||PathPrefix(`/api/v1/PositionMaster`))"
|
||||||
|
|
||||||
|
report-server-dev:
|
||||||
|
service: report-server-dev
|
||||||
|
rule: "Host(`bma-ehr.frappet.synology.me`) && (PathPrefix(`/api/v1/report-template`) )"
|
||||||
|
|
||||||
|
services:
|
||||||
|
# org:
|
||||||
|
# loadBalancer:
|
||||||
|
# servers:
|
||||||
|
# - url: 'http://192.168.1.9:4053/'
|
||||||
|
report-server-dev:
|
||||||
|
loadBalancer:
|
||||||
|
servers:
|
||||||
|
- url: 'http://192.168.1.40:7001/'
|
||||||
|
|
||||||
|
middlewares:
|
||||||
|
user-auth: # UserName:admin Password: admin123
|
||||||
|
basicAuth:
|
||||||
|
users: #create from htpasswd
|
||||||
|
- "admin:$apr1$rKaNOONw$vJXI83by5aEK4xdtiov3W1"
|
||||||
|
- "frappet:$apr1$SeCe2hH6$DcAxZNsMSmIjd4/9TUWVC."
|
||||||
|
|
||||||
15
docker/jws-0.0.2/traefik.yaml
Normal file
15
docker/jws-0.0.2/traefik.yaml
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
entrypoints:
|
||||||
|
unsecure:
|
||||||
|
address: :80
|
||||||
|
providers:
|
||||||
|
docker:
|
||||||
|
endpoint: "unix:///var/run/docker.sock"
|
||||||
|
exposedByDefault: false
|
||||||
|
file:
|
||||||
|
filename: /routes.yaml
|
||||||
|
watch: true
|
||||||
|
api: # enable dashboard
|
||||||
|
dashboard: true
|
||||||
|
insecure: true
|
||||||
|
log:
|
||||||
|
level: DEBUG
|
||||||
Loading…
Add table
Add a link
Reference in a new issue