Switched postgres for sqlite

This commit is contained in:
David Allen 2024-02-25 08:43:09 -07:00
parent 4f7ad29e0d
commit 6d482cc60f
No known key found for this signature in database
GPG key ID: 1D2A29322FBB6FCB
4 changed files with 45 additions and 110 deletions

View file

@ -24,7 +24,7 @@ selfservice:
base_redirect_uri: http://127.0.0.1:4433 base_redirect_uri: http://127.0.0.1:4433
providers: providers:
- id: forgejo - id: forgejo
provider: forgejo provider: generic
client_id: 7527e7b4-c96a-4df0-8fc5-00fde18bb65d client_id: 7527e7b4-c96a-4df0-8fc5-00fde18bb65d
client_secret: gto_cc5uvpb5lsdczkwnbarvwmbpv5kcjwg7nhbc75zt65yrfh2ldenq client_secret: gto_cc5uvpb5lsdczkwnbarvwmbpv5kcjwg7nhbc75zt65yrfh2ldenq
issuer_url: http://git.towk.local issuer_url: http://git.towk.local

View file

@ -6,137 +6,103 @@ networks:
external: true external: true
volumes: volumes:
postgres-data: kratos-sqlite:
hydra-sqlite:
services: 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: hydra:
image: oryd/hydra:v2.2.0-rc.3 image: oryd/hydra:v2.2.0
ports: ports:
- "4444:4444" # Public port - "4444:4444" # Public port
- "4445:4445" # Admin port - "4445:4445" # Admin port
- "5555:5555" # Port for hydra token user - "5555:5555" # Port for hydra token user
command: serve -c /etc/config/hydra/hydra.yml all --dev command: serve -c /etc/config/hydra/hydra.yml all --dev
volumes: volumes:
- type: volume
source: hydra-sqlite
target: /var/lib/sqlite
read_only: false
- type: bind - type: bind
source: ./configs/hydra source: ./configs/hydra
target: /etc/config/hydra target: /etc/config/hydra
environment: 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 restart: unless-stopped
depends_on: depends_on:
hydra-migrate: - hydra-migrate
condition: service_completed_successfully
networks: networks:
- internal - internal
hydra-migrate: hydra-migrate:
image: oryd/hydra:v2.2.0-rc.3 image: oryd/hydra:v2.2.0
environment: 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 command: migrate -c /etc/config/hydra/hydra.yml sql -e --yes
volumes: volumes:
- type: volume
source: hydra-sqlite
target: /var/lib/sqlite
read_only: false
- type: bind - type: bind
source: ./configs/hydra source: ./configs/hydra
target: /etc/config/hydra target: /etc/config/hydra
restart: on-failure restart: on-failure
networks: networks:
- internal - internal
depends_on:
postgres:
condition: service_healthy
consent: consent:
environment: environment:
- HYDRA_ADMIN_URL=http://hydra:4445 - HYDRA_ADMIN_URL=http://hydra:4445
- KRATOS_ADMIN_URL=http://kratos:4434 image: oryd/hydra-login-consent-node:v2.2.0
- LISTEN_ADDRESS=:3001
image: oryd/hydra-login-consent-node:v2.2.0-rc.3
ports: ports:
- "3001:3001" - "3001:3001"
restart: unless-stopped restart: unless-stopped
networks: networks:
- internal - 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: kratos-migrate:
condition: image: oryd/kratos:v1.1.0
service_completed_successfully
postgres:
condition:
service_healthy
networks:
- internal
kratos-migrate:
image: oryd/kratos:latest
container_name: kratos-migrate
environment: environment:
- DSN=postgres://kratos-user:kratos@postgres:5432/kratosdb?sslmode=disable&max_conns=20&max_idle_conns=4 - DSN=sqlite:///var/lib/sqlite/db.sqlite?_fk=true&mode=rwc
- USER_ID=1000
- GROUP_ID=1000
user: "${USER_ID}:${GROUP_ID}"
volumes: volumes:
- type: volume
source: kratos-sqlite
target: /var/lib/sqlite
read_only: false
- type: bind - type: bind
source: ./configs/kratos source: ./configs/kratos
target: /etc/config/kratos target: /etc/config/kratos
command: -c /etc/config/kratos/kratos.yml migrate sql -e --yes command: -c /etc/config/kratos/kratos.yml migrate sql -e --yes
restart: on-failure restart: on-failure
depends_on:
postgres:
condition: service_healthy
networks: networks:
- internal - internal
kratos-selfservice-ui-node: kratos-selfservice-ui-node:
image: oryd/kratos-selfservice-ui-node:latest image: oryd/kratos-selfservice-ui-node:v1.1.0
environment: environment:
- PORT=4455
- SECURITY_MODE=
- HYDRA_ADMIN_URL=http://127.0.0.1:4445/
- KRATOS_PUBLIC_URL=http://kratos:4433/ - KRATOS_PUBLIC_URL=http://kratos:4433/
- KRATOS_BROWSER_URL=http://127.0.0.1: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: networks:
- internal - internal
restart: on-failure restart: on-failure
kratos:
depends_on:
- kratos-migrate
image: oryd/kratos:v1.1.0
ports: 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: mailslurper:
image: oryd/mailslurper:latest-smtps image: oryd/mailslurper:latest-smtps
ports: ports:

View file

@ -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