Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
3f948b7
Added frontend changes
DerCed Mar 24, 2023
8512935
Added backend resource Server configuration
DerCed Mar 24, 2023
c0afa7f
Updated poms to remove oauth2 client and added resource-server deps
DerCed Mar 24, 2023
671c5dc
Rolled back reacthookspring
DerCed Mar 24, 2023
30809e7
Removed more stuff
DerCed Mar 24, 2023
cae38e4
Rolled back
DerCed Mar 24, 2023
e507313
Removed double plus
DerCed Mar 24, 2023
938938d
Updated template config
DerCed Mar 24, 2023
5ad599a
Migrated (hopefully seamless) to new Spring boot version
DerCed Jul 15, 2023
598b159
Merge branch 'main' of github.com:starwit/reacthook-spring-template i…
DerCed Jul 15, 2023
81fda51
Template modifications
DerCed Jul 15, 2023
de1c364
Added fixes from cameramanagement
DerCed Jul 19, 2023
72edbbc
Added new logout feature
DerCed Aug 2, 2023
f6cae1f
Added Disable security
DerCed Aug 2, 2023
998a414
Fixed logout
DerCed Aug 2, 2023
7cb4bd2
Added csrf for springdoc
DerCed Aug 2, 2023
20c2e48
Removed Swagger ui public access
DerCed Aug 2, 2023
267a510
Merge branch 'main' into feature/AB#588_Add_Frontend_Backend_Splittin…
DerCed Aug 2, 2023
09cc50a
Added api postgres config
DerCed Aug 2, 2023
18d09c0
Merge branch 'feature/AB#765_Upgrade_used_versions_for_spring_and_spr…
DerCed Aug 2, 2023
2b3c80d
Added api postgres
DerCed Aug 2, 2023
932d04e
Updated Postgres Template
DerCed Aug 2, 2023
5bc6d84
Fixed versioning
DerCed Aug 2, 2023
2f674d5
Fixed keycloak
DerCed Aug 2, 2023
b3ad1f4
Merge branch 'feature/AB#765_Upgrade_used_versions_for_spring_and_spr…
DerCed Aug 2, 2023
79ecb3f
moved to resource-server
DerCed Aug 2, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions generator-templates/api-postgres/application/properties.ftl
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
spring.profiles.active=@spring.profiles.active@
spring.banner.location=classpath:banner.txt
server.servlet.context-path=/${app.baseName?lower_case}
rest.base-path=/api
server.port=8081

# actuator
management.endpoints.web.base-path=/monitoring
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*

# show full git properties
management.info.git.mode=full

# Postgres
spring.datasource.hikari.connection-timeout=10000
#spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5433/${app.baseName?lower_case}?useLegacyDatetimeCode=false&serverTimezone=CET
spring.jpa.hibernate.naming.physical-strategy=de.${app.packageName?lower_case}.persistence.config.DatabasePhysicalNamingStrategy
spring.datasource.username=${app.baseName?lower_case}
spring.datasource.password=${app.baseName?lower_case}
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.data.rest.detection-strategy=annotated
#spring.jpa.hibernate.ddl-auto=create

# Flyway
spring.flyway.user=${r"${spring.datasource.username}"}
spring.flyway.password=${r"${spring.datasource.password}"}
spring.flyway.url=${r"${spring.datasource.url}"}
spring.flyway.baseline-on-migrate=true
spring.flyway.locations=classpath:db/migration
spring.flyway.encoding=UTF-8
spring.flyway.placeholder-replacement=false

# Authentication
starwit.authentication.uri=http://localhost:8080/auth/realms/${app.baseName?lower_case}
spring.security.oauth2.resourceserver.jwt.issuer-uri=${starwit.authentication.uri}
spring.security.oauth2.resourceserver.jwt.jwk-set-uri=${starwit.authentication.uri}/protocol/openid-connect/certs

# OpenApi
springdoc.swagger-ui.csrf.enabled=true

# logging.level.org.springframework.security=DEBUG
# logging.level.org.springframework.web=DEBUG
27 changes: 27 additions & 0 deletions generator-templates/api-postgres/application/propertiestest.ftl
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# is only required for direct test executing.
rest.base-path=/api

# actuator
management.endpoints.web.base-path=/monitoring
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*

# show full git properties
management.info.git.mode=full

# h2
spring.datasource.url=jdbc:h2:mem:${app.baseName?lower_case};DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;MODE=PostgreSQL
spring.datasource.driverClassName=org.h2.Driver
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.show-sql=true
spring.datasource.username=${app.baseName?lower_case}
spring.datasource.password=${app.baseName?lower_case}

# Flyway
spring.flyway.user=${r"${spring.datasource.username}"}
spring.flyway.password=${r"${spring.datasource.password}"}
spring.flyway.url=${r"${spring.datasource.url}"}
spring.flyway.baseline-on-migrate=true
spring.flyway.locations=classpath:db/migration
spring.flyway.encoding=UTF-8
spring.flyway.placeholder-replacement=false
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
spring.flyway.baselineOnMigrate=true
spring.flyway.locations=classpath:db/test
spring.flyway.encoding=UTF-8
spring.flyway.placeholder-replacement=false
spring.datasource.url=jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;MODE=PostgreSQL
spring.flyway.url=${r"${spring.datasource.url}"}
47 changes: 47 additions & 0 deletions generator-templates/api-postgres/deployment/app-docker-compose.ftl
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
version: "3.9"
services:
${app.baseName?lower_case}-db:
container_name: ${app.baseName?lower_case}-db
image: postgres:latest
environment:
POSTGRES_DB: ${app.baseName?lower_case}
POSTGRES_USER: ${app.baseName?lower_case}
POSTGRES_PASSWORD: ${r"${DB_PW_"}${app.baseName}${r"}"}
PGDATA: /var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U ${app.baseName?lower_case}'] # <<<---
interval: 5s
timeout: 60s
retries: 30
volumes:
- ${app.baseName?lower_case}-db:/var/lib/postgresql/data
expose:
# Opens port 3306 on the container
- '3306'
networks:
- backend
restart: unless-stopped

${app.baseName?lower_case}:
image: ${app.baseName?lower_case}:latest
depends_on:
${app.baseName?lower_case}-db:
condition: service_healthy
restart: on-failure
environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://${app.baseName?lower_case}:5432/${app.baseName?lower_case}?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false
SPRING_DATASOURCE_USERNAME: ${app.baseName?lower_case}
SPRING_DATASOURCE_PASSWORD: ${r"${DB_PW_"}${app.baseName}${r"}"}
KEYCLOAK_AUTH-SERVER-URL: https://${r"${DOMAIN}"}/auth
SERVER_USE_FORWARD_HEADERS: "true"
SERVER_FORWARD_HEADERS_STRATEGY: FRAMEWORK
networks: # Networks to join (Services on the same network can communicate with each other using their name)
- backend

volumes:
${app.baseName?lower_case}-db:

# Networks to be created to facilitate communication between containers
networks:
backend:

87 changes: 87 additions & 0 deletions generator-templates/api-postgres/deployment/env-docker-compose.ftl
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
version: "3.9"
services:
nginx:
image: nginx:latest
restart: always
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./data/certbot/conf:/etc/letsencrypt
- ./data/certbot/www:/var/www/certbot
- ./conf.d:/etc/nginx/conf.d
- ./content:/var/www/html
ports:
- 80:80
- 443:443
networks: # Networks to join (Services on the same network can communicate with each other using their name)
- backend

certbot:
image: certbot/certbot:latest
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait ${r"$${!}"}; done;'"
command: "/bin/sh -c 'while :; do sleep 6h & wait ${r"$${!}"}; nginx -s reload; done & nginx -g \"daemon off;\"'"
volumes:
- ./data/certbot/conf:/etc/letsencrypt
- ./certbot/logs:/var/log/letsencrypt
- ./data/certbot/www:/var/www/certbot

pgadmin:
container_name: pgadmin_container
image: dpage/pgadmin4
environment:
PGADMIN_DEFAULT_EMAIL: pgadmin4@pgadmin.org
PGADMIN_DEFAULT_PASSWORD: ${r"${DB_PW_ROOT}"}
PGADMIN_CONFIG_SERVER_MODE: 'False'
volumes:
- ${app.baseName?lower_case}-pgadmin:/var/lib/pgadmin
ports:
- "5050:80"
networks:
- backend
restart: unless-stopped

${app.baseName?lower_case}-db-keycloak:
image: postgres:latest
restart: on-failure
environment:
POSTGRES_DB: 'keycloak'
POSTGRES_USER: 'keycloak'
POSTGRES_PASSWORD: ${r"${DB_PW_KEYCLOAK}"}
PGDATA: /var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U keycloak']
interval: 5s
timeout: 60s
retries: 30
volumes:
- ${app.baseName?lower_case}-keycloak-db:/var/lib/postgresql/data
networks:
- backend

${app.baseName?lower_case}-keycloak:
image: quay.io/keycloak/keycloak
volumes:
- ./keycloak/imports:/opt/keycloak/data/import
depends_on:
${app.baseName?lower_case}-db-keycloak:
condition: service_healthy
restart: on-failure
environment:
KC_DB_URL: jdbc:postgresql://${app.baseName?lower_case}-db-keycloak:5432/keycloak
KC_DB: postgres
KC_DB_USERNAME: keycloak
KC_DB_PASSWORD: ${r"${DB_PW_KEYCLOAK}"}
KEYCLOAK_ADMIN: ${r"${KEYCLOAK_USER}"}
KEYCLOAK_ADMIN_PASSWORD: ${r"${KEYCLOAK_PW}"}
KC_HTTP_RELATIVE_PATH: /auth/
command: start-dev --import-realm
networks:
- backend

volumes:
templatetest-pgadmin:
templatetest-keycloak-db:

# Networks to be created to facilitate communication between containers
networks:
backend:

Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
version: "3.9"
services:
postgres:
container_name: ${app.baseName?lower_case}-db
image: postgres:latest
environment:
POSTGRES_DB: ${app.baseName?lower_case}
POSTGRES_USER: ${app.baseName?lower_case}
POSTGRES_PASSWORD: ${app.baseName?lower_case}
PGDATA: /var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U ${app.baseName?lower_case}']
interval: 5s
timeout: 60s
retries: 30
volumes:
- ${app.baseName?lower_case}-db:/var/lib/postgresql/data
ports:
- "5433:5432"
networks:
- backend
restart: unless-stopped

pgadmin:
container_name: pgadmin_container
image: dpage/pgadmin4
environment:
PGADMIN_DEFAULT_EMAIL: pgadmin4@pgadmin.org
PGADMIN_DEFAULT_PASSWORD: admin
PGADMIN_CONFIG_SERVER_MODE: 'False'
volumes:
- ${app.baseName?lower_case}-pgadmin:/var/lib/pgadmin
ports:
- "5050:80"
networks:
- backend
restart: unless-stopped

${app.baseName?lower_case}-db-keycloak:
image: postgres:latest
restart: on-failure
environment:
POSTGRES_DB: 'keycloak'
POSTGRES_USER: 'keycloak'
POSTGRES_PASSWORD: 'keycloak'
PGDATA: /var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U keycloak']
interval: 5s
timeout: 60s
retries: 30
volumes:
- ${app.baseName?lower_case}-keycloak-db:/var/lib/postgresql/data
networks:
- backend

${app.baseName?lower_case}-keycloak:
image: quay.io/keycloak/keycloak
volumes:
- ./keycloak/imports:/opt/keycloak/data/import
depends_on:
${app.baseName?lower_case}-db-keycloak:
condition: service_healthy
restart: on-failure
environment:
KC_DB_URL: jdbc:postgresql://${app.baseName?lower_case}-db-keycloak:5432/keycloak
KC_DB: postgres
KC_DB_USERNAME: keycloak
KC_DB_PASSWORD: keycloak
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: admin
KC_HTTP_RELATIVE_PATH: /auth/
command: start-dev --import-realm
ports:
- '8080:8080'
networks:
- backend


networks:
backend:

volumes:
${app.baseName?lower_case}-db:
${app.baseName?lower_case}-pgadmin:
${app.baseName?lower_case}-keycloak-db:

Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
version: "3.9"
services:
postgres:
container_name: ${app.baseName?lower_case}-db
image: postgres:latest
environment:
POSTGRES_DB: ${app.baseName?lower_case}
POSTGRES_USER: ${app.baseName?lower_case}
POSTGRES_PASSWORD: ${app.baseName?lower_case}
PGDATA: /var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U ${app.baseName?lower_case}']
interval: 5s
timeout: 60s
retries: 30
volumes:
- ${app.baseName?lower_case}-db:/var/lib/postgresql/data
ports:
- "5433:5432"
networks:
- backend
restart: unless-stopped

pgadmin:
container_name: pgadmin_container
image: dpage/pgadmin4
environment:
PGADMIN_DEFAULT_EMAIL: pgadmin4@pgadmin.org
PGADMIN_DEFAULT_PASSWORD: admin
PGADMIN_CONFIG_SERVER_MODE: 'False'
volumes:
- ${app.baseName?lower_case}-pgadmin:/var/lib/pgadmin
ports:
- "5050:80"
networks:
- backend
restart: unless-stopped

networks:
backend:

volumes:
${app.baseName?lower_case}-db:
${app.baseName?lower_case}-pgadmin:
Loading