Compare commits

20 Commits
local ... main

Author SHA1 Message Date
caff2c9297 final fixes 2024-06-13 23:32:37 +02:00
a691e46be5 changed env file name 2024-06-13 23:19:13 +02:00
0ee5a63bc9 moved all urls to one base url 2024-06-13 15:35:44 +02:00
f1cf0cae76 added https header to react urls 2024-06-13 15:30:31 +02:00
900196e9bf added react env 2024-06-13 15:22:33 +02:00
9151af0117 fixed traefik string error 2024-06-13 09:30:03 +02:00
26fcd7ad31 renamed hostname to env 2024-06-13 09:24:22 +02:00
d7e52e5921 renamed hostname to env 2024-06-13 09:22:02 +02:00
0dfcc51e01 added hostnames to seperate env file 2024-06-13 09:16:37 +02:00
40b2b48a12 added hostname to env 2024-06-11 19:15:08 +02:00
716de35564 added hostname to env 2024-06-11 18:52:00 +02:00
eaf7d67528 moved hostname to separate file 2024-06-11 18:11:52 +02:00
89b4300856 moved hostname to separate file 2024-06-11 18:04:43 +02:00
32aa6d1534 fixed typo 2024-06-07 10:22:41 +02:00
bf5cc78447 fixed gitsync 2024-06-07 10:18:53 +02:00
388fc0dd15 removed -e in env file 2024-06-05 11:13:51 +02:00
50603aa9ca fixed traefik tls 2024-06-04 10:36:55 +02:00
eb35239bb4 fixed traefik tls 2024-06-04 10:36:35 +02:00
5f8ab1fb32 fixed traefik tls 2024-06-04 10:30:49 +02:00
bbfa7fc867 made IPs absolute to force isolated networks 2024-06-01 22:05:41 +02:00
3 changed files with 35 additions and 23 deletions

2
.gitignore vendored
View File

@@ -1,3 +1,5 @@
/SWA-*/ /SWA-*/
/.*-env /.*-env
/*-db /*-db
/.hostname
/.env

View File

@@ -12,6 +12,8 @@ FRONTEND=swa-jodel/frontend:latest
BACKEND=swa-jodel/backend:latest BACKEND=swa-jodel/backend:latest
DATABASE=swa-jodel/database:latest DATABASE=swa-jodel/database:latest
-include $(ROOT_DIR).env
help: help:
@echo "[HELP]" @echo "[HELP]"
@echo "usage: make <command>" @echo "usage: make <command>"
@@ -23,16 +25,18 @@ help:
.PHONY = env .PHONY = env
env: env:
@echo -e "POSTGRES_USER=\nPOSTGRES_PASSWORD=\n\n\nPOSTGRES_IP=database\nPOSTGRES_DB=Jodel" \ @echo "POSTGRES_USER=\nPOSTGRES_PASSWORD=\n\n\nPOSTGRES_IP=10.42.0.19\nPOSTGRES_DB=Jodel" \
> .backend-env > $(ROOT_DIR).backend-env
@echo -e "POSTGRES_USER=\nPOSTGRES_PASSWORD=\n\nKEYCLOAK_ADMIN=\nKEYCLOAK_ADMIN_PASSWORD=\n\n\nKC_HOSTNAME=keycloak.local.anxietyprime.de\n\nPOSTGRES_IP=keycloak-db\nPOSTGRES_DB=keycloak\nKC_DB_URL_DATABASE=\$$POSTGRES_IP\nKC_DB_USERNAME=\$$POSTGRES_USER\nKC_DB_PASSWORD=\$$POSTGRES_PASSWORD" \ @echo "POSTGRES_USER=\nPOSTGRES_PASSWORD=\n\nKEYCLOAK_ADMIN=\nKEYCLOAK_ADMIN_PASSWORD=\n\n\nPOSTGRES_IP=10.42.0.11\nPOSTGRES_DB=keycloak\nKC_DB_URL_DATABASE=\$$POSTGRES_IP\nKC_DB_USERNAME=\$$POSTGRES_USER\nKC_DB_PASSWORD=\$$POSTGRES_PASSWORD" \
> .keycloak-env > $(ROOT_DIR).keycloak-env
@echo "BASE_URL=local.anxietyprime.de\n\n\nKC_HOSTNAME=keycloak.\$$BASE_URL\nJODEL_HOSTNAME=jodel.\$$BASE_URL\nAPI_HOSTNAME=api.jodel.\$$BASE_URL\n\nPROXY_KC_HOSTNAME=\`\$$KC_HOSTNAME\`\nPROXY_JODEL_HOSTNAME=\`\$$JODEL_HOSTNAME\`\nPROXY_API_HOSTNAME=\`\$$API_HOSTNAME\`\n\nREACT_APP_KC=https://\$$KC_HOSTNAME\nREACT_APP_API=https://\$$API_HOSTNAME" \
> $(ROOT_DIR).env
.PHONY = gitsync .PHONY = gitsync
gitsync: gitsync: remove_dependencies
git --git-dir=$(ROOT_DIR)SWA-frontend/.git pull || git --git-dir=$(ROOT_DIR) clone https://git.anxietyprime.de/SWA-Project/SWA-frontend.git git --git-dir=$(ROOT_DIR) clone https://git.anxietyprime.de/SWA-Project/SWA-frontend.git
git --git-dir=$(ROOT_DIR)SWA-backend/.git pull || git --git-dir=$(ROOT_DIR) clone https://git.anxietyprime.de/SWA-Project/SWA-backend.git git --git-dir=$(ROOT_DIR) clone https://git.anxietyprime.de/SWA-Project/SWA-backend.git
git --git-dir=$(ROOT_DIR)SWA-database/.git pull || git --git-dir=$(ROOT_DIR) clone https://git.anxietyprime.de/SWA-Project/SWA-database.git git --git-dir=$(ROOT_DIR) clone https://git.anxietyprime.de/SWA-Project/SWA-database.git
@echo "done" @echo "done"
.PHONY = build .PHONY = build
@@ -44,7 +48,7 @@ frontend: gitsync
.PHONY = backend .PHONY = backend
backend: gitsync backend: gitsync
docker buildx build --tag $(DOCKER_REGISTRY)$(BACKEND) --load $(ROOT_DIR)SWA-backend docker buildx build --build-arg="KC_HOSTNAME=localhost:8080" --tag $(DOCKER_REGISTRY)$(BACKEND) --load $(ROOT_DIR)SWA-backend
.PHONY = database .PHONY = database
database: gitsync database: gitsync
@@ -59,11 +63,13 @@ keycloak:
@docker tag $(KEYCLOAK_DB_BASE) $(DOCKER_REGISTRY)$(KEYCLOAK_DB) @docker tag $(KEYCLOAK_DB_BASE) $(DOCKER_REGISTRY)$(KEYCLOAK_DB)
.PHONY = clean .PHONY = clean
clean: clean: remove_dependencies
@rm -fr $(ROOT_DIR)SWA-frontend $(ROOT_DIR)SWA-backend $(ROOT_DIR)SWA-database
@docker image rm $(KEYCLOAK_BASE) || true @docker image rm $(KEYCLOAK_BASE) || true
@docker image rm $(KEYCLOAK_DB_BASE) || true @docker image rm $(KEYCLOAK_DB_BASE) || true
.PHONY = remove_dependencies
remove_dependencies:
@rm -fr $(ROOT_DIR)SWA-frontend $(ROOT_DIR)SWA-backend $(ROOT_DIR)SWA-database
.PHONY = uninstall .PHONY = uninstall
uninstall: uninstall:

View File

@@ -2,9 +2,10 @@ services:
keycloak: keycloak:
image: hub.anxietyprime.de/swa-jodel/keycloak:latest image: hub.anxietyprime.de/swa-jodel/keycloak:latest
container_name: swa-keycloak container_name: swa-keycloak
command: ["start-dev"] command: ["start"]
env_file: env_file:
- ./.keycloak-env - ./.keycloak-env
- ./.env
environment: environment:
KC_DB: postgres KC_DB: postgres
KC_DB_SCHEMA: public KC_DB_SCHEMA: public
@@ -24,16 +25,16 @@ services:
ipv4_address: 10.42.0.10 ipv4_address: 10.42.0.10
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"
- "traefik.http.routers.keycloak.rule=Host(`keycloak.local.anxietyprime.de`)" - "traefik.http.routers.keycloak.rule=Host($PROXY_KC_HOSTNAME)"
- "traefik.http.routers.keycloak.entrypoints=websecure" - "traefik.http.routers.keycloak.entrypoints=websecure"
- "traefik.http.routers.keycloak.tls.domains[0].main=keycloak.local.anxietyprime.de" - "traefik.http.routers.keycloak.tls.domains[0].main=$KC_HOSTNAME"
# - "traefik.http.routers.keycloak-web.tls.providers=letsencrypt" # - "traefik.http.routers.keycloak.tls.certresolver=letsencrypt"
- "traefik.http.services.keycloak.loadbalancer.server.port=8080" - "traefik.http.services.keycloak.loadbalancer.server.port=8080"
- "traefik.http.routers.keycloak.service=keycloak" - "traefik.http.routers.keycloak.service=keycloak"
healthcheck: healthcheck:
test: echo "" test: echo ""
interval: 5s interval: 15s
timeout: 5s timeout: 15s
retries: 30 retries: 30
depends_on: depends_on:
keycloak-db: keycloak-db:
@@ -63,16 +64,18 @@ services:
frontend: frontend:
image: hub.anxietyprime.de/swa-jodel/frontend:latest image: hub.anxietyprime.de/swa-jodel/frontend:latest
container_name: swa-frontend container_name: swa-frontend
env_file:
- ./.env
expose: expose:
- 80 - 80
networks: networks:
swa-public: swa-public:
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"
- "traefik.http.routers.web-jodel.rule=Host(`jodel.local.anxietyprime.de`)" - "traefik.http.routers.web-jodel.rule=Host($PROXY_JODEL_HOSTNAME)"
- "traefik.http.routers.web-jodel.entrypoints=websecure" - "traefik.http.routers.web-jodel.entrypoints=websecure"
- "traefik.http.routers.web-jodel.tls.domains[0].main=jodel.local.anxietyprime.de" - "traefik.http.routers.web-jodel.tls.domains[0].main=$JODEL_HOSTNAME"
# - "traefik.http.routers.web-jodel.tls.providers=letsencrypt" # - "traefik.http.routers.web-jodel.tls.certresolver=letsencrypt"
- "traefik.http.services.web-jodel.loadbalancer.server.port=80" - "traefik.http.services.web-jodel.loadbalancer.server.port=80"
- "traefik.http.routers.web-jodel.service=web-jodel" - "traefik.http.routers.web-jodel.service=web-jodel"
healthcheck: healthcheck:
@@ -90,6 +93,7 @@ services:
container_name: swa-backend container_name: swa-backend
env_file: env_file:
- ./.backend-env - ./.backend-env
- ./.env
expose: expose:
- 8080 - 8080
networks: networks:
@@ -100,10 +104,10 @@ services:
ipv4_address: 10.42.0.18 ipv4_address: 10.42.0.18
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"
- "traefik.http.routers.api-jodel.rule=Host(`api.jodel.local.anxietyprime.de`)" - "traefik.http.routers.api-jodel.rule=Host($PROXY_API_HOSTNAME)"
- "traefik.http.routers.api-jodel.entrypoints=websecure" - "traefik.http.routers.api-jodel.entrypoints=websecure"
- "traefik.http.routers.api-jodel.tls.domains[0].main=api.jodel.local.anxietyprime.de" - "traefik.http.routers.api-jodel.tls.domains[0].main=$API_HOSTNAME"
# - "traefik.http.routers.api-jodel.tls.providers=letsencrypt" # - "traefik.http.routers.api-jodel.tls.certresolver=letsencrypt"
- "traefik.http.services.api-jodel.loadbalancer.server.port=8080" - "traefik.http.services.api-jodel.loadbalancer.server.port=8080"
- "traefik.http.routers.api-jodel.service=api-jodel" - "traefik.http.routers.api-jodel.service=api-jodel"
healthcheck: healthcheck: