From 6d482cc60f64ce47a54d9ac5a095c66eb836dff7 Mon Sep 17 00:00:00 2001 From: "David J. Allen" Date: Sun, 25 Feb 2024 08:43:09 -0700 Subject: [PATCH] Switched postgres for sqlite --- docker/configs/kratos/kratos.yml | 2 +- docker/{ => configs/kratos}/oidc.jsonnet | 0 docker/docker-compose.yaml | 122 ++++++++--------------- docker/pg-init/multi-pgsql-db.sh | 31 ------ 4 files changed, 45 insertions(+), 110 deletions(-) rename docker/{ => configs/kratos}/oidc.jsonnet (100%) delete mode 100644 docker/pg-init/multi-pgsql-db.sh diff --git a/docker/configs/kratos/kratos.yml b/docker/configs/kratos/kratos.yml index 1d1de1e..8ad2dd7 100644 --- a/docker/configs/kratos/kratos.yml +++ b/docker/configs/kratos/kratos.yml @@ -24,7 +24,7 @@ selfservice: base_redirect_uri: http://127.0.0.1:4433 providers: - id: forgejo - provider: forgejo + provider: generic client_id: 7527e7b4-c96a-4df0-8fc5-00fde18bb65d client_secret: gto_cc5uvpb5lsdczkwnbarvwmbpv5kcjwg7nhbc75zt65yrfh2ldenq issuer_url: http://git.towk.local diff --git a/docker/oidc.jsonnet b/docker/configs/kratos/oidc.jsonnet similarity index 100% rename from docker/oidc.jsonnet rename to docker/configs/kratos/oidc.jsonnet diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml index b40f688..c37f13c 100644 --- a/docker/docker-compose.yaml +++ b/docker/docker-compose.yaml @@ -6,137 +6,103 @@ networks: external: true volumes: - postgres-data: + kratos-sqlite: + hydra-sqlite: services: - postgres: # Postgres - image: postgres:11.5-alpine - container_name: postgres - restart: unless-stopped - environment: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres - POSTGRES_MULTIPLE_DATABASES: hydradb:hydra-user:hydra,kratosdb:kratos-user:kratos - volumes: - - postgres-data:/var/lib/postgresql/data - - ./pg-init:/docker-entrypoint-initdb.d - networks: - - internal - ports: - - 5432:5432 - healthcheck: - test: ["CMD", "pg_isready", "-d", "postgres", "-U", "postgres"] - interval: 10s - timeout: 10s - retries: 5 hydra: - image: oryd/hydra:v2.2.0-rc.3 + image: oryd/hydra:v2.2.0 ports: - "4444:4444" # Public port - "4445:4445" # Admin port - "5555:5555" # Port for hydra token user command: serve -c /etc/config/hydra/hydra.yml all --dev volumes: + - type: volume + source: hydra-sqlite + target: /var/lib/sqlite + read_only: false - type: bind source: ./configs/hydra target: /etc/config/hydra environment: - - DSN=postgres://hydra-user:hydra@postgres:5432/hydradb?sslmode=disable&max_conns=20&max_idle_conns=4 + - DSN=sqlite:///var/lib/sqlite/db.sqlite?_fk=true restart: unless-stopped depends_on: - hydra-migrate: - condition: service_completed_successfully + - hydra-migrate networks: - internal hydra-migrate: - image: oryd/hydra:v2.2.0-rc.3 + image: oryd/hydra:v2.2.0 environment: - - DSN=postgres://hydra-user:hydra@postgres:5432/hydradb?sslmode=disable&max_conns=20&max_idle_conns=4 + - DSN=sqlite:///var/lib/sqlite/db.sqlite?_fk=true command: migrate -c /etc/config/hydra/hydra.yml sql -e --yes volumes: + - type: volume + source: hydra-sqlite + target: /var/lib/sqlite + read_only: false - type: bind source: ./configs/hydra target: /etc/config/hydra restart: on-failure networks: - internal - depends_on: - postgres: - condition: service_healthy consent: environment: - HYDRA_ADMIN_URL=http://hydra:4445 - - KRATOS_ADMIN_URL=http://kratos:4434 - - LISTEN_ADDRESS=:3001 - image: oryd/hydra-login-consent-node:v2.2.0-rc.3 + image: oryd/hydra-login-consent-node:v2.2.0 ports: - "3001:3001" restart: unless-stopped networks: - internal - kratos: - image: oryd/kratos:latest - container_name: kratos - hostname: kratos - ports: - - "4433:4433" # public - - "4434:4434" # admin - command: serve -c /etc/config/kratos/kratos.yml all --dev --watch-courier - volumes: - - type: bind - source: ./configs/kratos - target: /etc/config/kratos - environment: - - DSN=postgres://kratos-user:kratos@postgres:5432/kratosdb?sslmode=disable&max_conns=20&max_idle_conns=4 - - USER_ID=1000 - - GROUP_ID=1000 - - LOG_LEVEL=trace - restart: unless-stopped - depends_on: - kratos-migrate: - condition: - service_completed_successfully - postgres: - condition: - service_healthy - networks: - - internal kratos-migrate: - image: oryd/kratos:latest - container_name: kratos-migrate + image: oryd/kratos:v1.1.0 environment: - - DSN=postgres://kratos-user:kratos@postgres:5432/kratosdb?sslmode=disable&max_conns=20&max_idle_conns=4 - - USER_ID=1000 - - GROUP_ID=1000 - user: "${USER_ID}:${GROUP_ID}" + - DSN=sqlite:///var/lib/sqlite/db.sqlite?_fk=true&mode=rwc volumes: + - type: volume + source: kratos-sqlite + target: /var/lib/sqlite + read_only: false - type: bind source: ./configs/kratos target: /etc/config/kratos command: -c /etc/config/kratos/kratos.yml migrate sql -e --yes restart: on-failure - depends_on: - postgres: - condition: service_healthy networks: - internal kratos-selfservice-ui-node: - image: oryd/kratos-selfservice-ui-node:latest + image: oryd/kratos-selfservice-ui-node:v1.1.0 environment: - - PORT=4455 - - SECURITY_MODE= - - HYDRA_ADMIN_URL=http://127.0.0.1:4445/ - KRATOS_PUBLIC_URL=http://kratos:4433/ - KRATOS_BROWSER_URL=http://127.0.0.1:4433/ - - COOKE_SECRET=1234567890 - - CSRF_COOKIE_NAME=_OPENCHAMI-CSRF - - CSRF_COOKIE_SECRET=OCHAMI1234 - - COOKIE_SECRET=testTESTtestTESTtestTEST networks: - internal restart: on-failure + kratos: + depends_on: + - kratos-migrate + image: oryd/kratos:v1.1.0 ports: - - "4455:4455" + - '4433:4433' # public + - '4434:4434' # admin + restart: unless-stopped + environment: + - DSN=sqlite:///var/lib/sqlite/db.sqlite?_fk=true + - LOG_LEVEL=trace + command: serve -c /etc/config/kratos/kratos.yml --dev --watch-courier + volumes: + - type: volume + source: kratos-sqlite + target: /var/lib/sqlite + read_only: false + - type: bind + source: ./configs/kratos + target: /etc/config/kratos + networks: + - internal mailslurper: image: oryd/mailslurper:latest-smtps ports: diff --git a/docker/pg-init/multi-pgsql-db.sh b/docker/pg-init/multi-pgsql-db.sh deleted file mode 100644 index 7e99037..0000000 --- a/docker/pg-init/multi-pgsql-db.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -# -# Adapted from: -# https://github.com/mrts/docker-postgresql-multiple-databases/blob/master/create-multiple-postgresql-databases.sh - -set -e -set -u - -function create_user_and_database() { - local database=$1 - local username=$2 - local password=$3 - echo " Creating user '$username' and database '$database'" - psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" <<-EOSQL - CREATE USER "$username" WITH PASSWORD '$password'; - CREATE DATABASE "$database"; - GRANT ALL PRIVILEGES ON DATABASE "$database" TO "$username"; -EOSQL -} - -if [ -n "$POSTGRES_MULTIPLE_DATABASES" ]; then - echo "Multiple database creation requested: $POSTGRES_MULTIPLE_DATABASES" - for dbstr in $(echo $POSTGRES_MULTIPLE_DATABASES | tr ',' ' '); do - dbname=$(echo $dbstr | cut -d: -f1) - username=$(echo $dbstr | cut -d: -f2) - password=$(echo $dbstr | cut -d: -f3) - echo "Creating: db=$dbname user=$username" - create_user_and_database $dbname $username $password - done - echo "Multiple databases created" -fi \ No newline at end of file