Настройка Casdoor(Storage Provider?)

День добрый! Хочу вывесить свои сервисы наружу, но что бы была аутентификация.
Глаз упал на Casdoor(может вроде как в роли, как я понимаю можно настроить одним и тем же пользователям через роли доступ к разным сервисам)
Установить я его смог достаточно просто в LXC+Docker Compose:

version: '3'
services:
  postgres-casdoor:
    image: postgres:16
    container_name: postgres-casdoor
    restart: unless-stopped
    environment:
      POSTGRES_DB: casdoor
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: s3cr3t!
    ports:
      - "5432:5432"
    volumes:
      - ./data/postgres/data:/var/lib/postgresql/data
    networks:
      - casdoor-net
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres -d casdoor"]
      interval: 10s
      timeout: 5s
      retries: 5

  casdoor:
    image: casbin/casdoor:latest
    container_name: casdoor
    restart: unless-stopped
    ports:
      - "8000:8000"
    environment:
      - GIN_MODE=release
      - RUNNING_IN_DOCKER=true
    volumes:
      - ./data/casdoor/conf:/conf
      - ./data/casdoor/logs:/logs
      - ./data/casdoor/files:/files
    depends_on:
      postgres-casdoor:
        condition: service_healthy
    networks:
      - casdoor-net

networks:
  casdoor-net:
    driver: bridge

Но в UI не все так гладко:

Вот конфиг:

appname = casdoor
httpport = 8000
runmode = prod
copyrequestbody = true
driverName = postgres
dataSourceName = "user=postgres password=s3cr3t! host=postgres-casdoor port=5432 sslmode=disable dbname=casdoor"
dbName = casdoor
tableNamePrefix =
showSql = false
redisEndpoint =
defaultStorageProvider = local
isCloudIntranet = false
authState = "casdoor"
socks5Proxy =
verificationCodeTimeout = 10
initScore = 0
logPostOnly = true
isUsernameLowered = false
origin =
originFrontend =
isDemoMode = false
batchSize = 100
enableErrorMask = false
enableGzip = true
inactiveTimeoutMinutes =
ldapServerPort = 389
ldapsCertId = ""
ldapsServerPort = 636
radiusServerPort = 1812
radiusDefaultOrganization = "built-in"
radiusSecret = "secret"
quota = {"organization": -1, "user": -1, "application": -1, "provider": -1}
logConfig = {"adapter":"file", "filename": "logs/casdoor.log", "maxdays":99999, "perm":"0770"}
initDataNewOnly = false
initDataFile = "./init_data.json"
frontendBaseDir =
staticBaseUrl = "https://auth.example.ru/"

Адрес auth.example.ru прокинут через adguard через замену на локальный IP, из инета торчит внешний IP. Доступ и так и так есть.
Есть статья по провайдеру для Storage: https://casdoor.org/docs/provider/storage/localFileSystem/
Сделал как там указано - ничего не поменялось…
В чем может быть проблема никто не может подсказать? ChatGPT уже кругами ходит, я тоже голову сломал - нифига не работает…

Посмотрев быстро документацию данного продукта - первый вопрос: откуда у вас в конфиге появилась defaultStorageProvider = local, если в конфиге который они дают там пусто? Вы руками прописали его, или он после настройки из веб туда прописался?

Без него тоже пробовал, нечего не меняется. А добавил руками

Провайдера надо добавить в приложение - Identity → Applications → app-built-in.

Спасибо! Заработало)

А почему выбор пал именно casdoor? При беглом изучении видится, что это не самый популярный вариант для хомлабы

Хотелось чего-то масштабируемого, что можно будет потом заиспользовать под отдельные проекты если будет необходимость.Casdoor здесь вполне подходит. Я в свое время вообще Ory пробовал, но там мне мозги заклинило видимо, 3 подхода, и все в никуда( Хотя выглядит хорошо…

1 лайк