text:
OIDC - Homarr is sending http://localhost:7575 as the origin/redirect URL to the Auth Provider rather than https://homarr.example.com

Environment
Docker
Version
0.15.0
Describe the problem
Testing out the OIDC and have all setup, but it appears Homarr may need an additional environment variable set where we can define how Homarr identifies itself as.
For example, using Keycloak, I have redirect URL set as:
https://homarr.example.com/api/auth/callback/oidc/
However, when attempting to login via the SSO button, Homarr is sending "http://localhost:7575" as the origin URL, thus failing redirect
I believe there needs to be an additional variable for HTTPS redirects to work and the variable needs to define what the user defined redirect URL is
Logs
No response
Context
No response
Please tick the boxes

[X] I confirm that I attached the proper logs
[X] I've read the docs
[X] I've checked for duplicate issues
[X] I've tried to debug myself

Here is the URL that is returned after attempting login:
https://auth.example.com/oauth/v2/authorize?client_id=EXAMPLEID&scope=openid email profile groups&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A7575%2Fapi%2Fauth%2Fcallback%2Foidc&state=RANDOMSTRING
The webpage error is:
{
"error": "invalid_request",
"error_description": "The requested redirect_uri is missing in the client configuration. If you have any questions, you may contact the administrator of the application."
}
Again, the only redirect URL designated in Auth Provider is:
https://homarr.example.com/api/auth/callback/oidc/

For now you can add the environment variable NEXTAUTH_URL=https://homarr.example.com/, this should work. We should be able to find a fix for that @K-J-VV

Can you try if the docker image with the tag fix-redirect-oidc works for you?

Using the fix-redirect-oidc tag I see the following error

With the following Log error
[next-auth][error][INVALID_CALLBACK_URL_ERROR]
https://next-auth.js.org/errors#invalid_callback_url_error Invalid callback URL. Received: https,http://homarr.example.com//homarr.example.com/auth/login

When I remove the new NEXTAUTH_URL variable, the Log error is
https://next-auth.js.org/errors#invalid_callback_url_error Invalid callback URL. Received: https,http://homarr.example.com//localhost:7575

Okay it seems like sometimes x-forwarded-proto can define multiple protocols (comma seperated). I'll release an other version on the same tag fix-redirect-oidc where you can try it out, now it should just use https when contained in a comma seperated list. Additionally my logic for the url pathname was wrong that made it append //localhost:7575.

Same problem here using fix-redirect-oidc on a Kubernetes enviroment with a Traefik on as a proxy.
I tried with this two environment variables with the same result (both and each one independently):
NEXTAUTH_URL: 'https://subdomain.example.com',
BASE_URL: 'subdomain.example.com',
https://next-auth.js.org/errors#invalid_callback_url_error Invalid callback URL. Received: https,http://subdomain.example.com//subdomain.example.com InvalidCallbackUrl: Invalid callback URL. Received: https,http://subdomain.example.com//subdomain.example.com
    at assertConfig (/app/node_modules/next-auth/core/lib/assert.js:62:12)
    at AuthHandler (/app/node_modules/next-auth/core/index.js:77:52)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async NextAuthApiHandler (/app/node_modules/next-auth/next/index.js:22:19)
    at async auth (/app/.next/server/pages/api/auth/[...nextauth].js:129:12) {
  code: 'INVALID_CALLBACK_URL_ERROR'
}

Okay the new image is ready

@Meierschlumpf , Same with the new image
  "containerStatuses": [
                    {
                        "containerID": "containerd://a367d34f6fdd249d96c3625a222ab1967cb3259e7ce9764bf5d0c97babfb0119",
                        "image": "ghcr.io/ajnart/homarr:fix-redirect-oidc",
                        "imageID": "ghcr.io/ajnart/homarr@sha256:a1d2e8a3e6bbdba930a069ba62b67ed2249c484ee511763e0abe9573182504ab",
                        "lastState": {},
                        "name": "main",
                        "ready": true,
                        "restartCount": 0,
                        "started": true,
                        "state": {
                            "running": {
                                "startedAt": "2024-02-18T07:57:34Z"
                            }
                        }
                    }
                ],

I tried with a full path like:
NEXTAUTH_URL: 'https://subdomain.example.com/api/auth'
But I have the same result, that it's weird because that env variable should override the full URL path of the AUTH.

But is the url then also https,http://subdomain.example.com//subdomain.example.com or something else? You should not be required to set the NEXTAUTH_URL normally

@Meierschlumpf My Bad, It's working perfectly after removing the NEXTAUTH_URL env var.
Thanks ❤ form 🇦🇷

@Meierschlumpf I have another problem with the OIDC.
The payload of the authorize call the redirect_url it's localhost
client_id: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
scope: openid email profile groups
response_type: code
redirect_uri: http://localhost:7575/api/auth/callback/oidc
state: -ItbgeAiZqv5FMi0MPQo0GlFAo_5tQXoQOBSJUYW2Zc

@catrielmuller is it always localhost? Even with the fix?

There is a new image deployed that you can try, again it's tag is fix-redirect-oidc

Also experiencing this issue. Running Homarr behind Caddy and Authentik.
With NEXTAUTH_URL set to mydomain.example, I get redirected to https://mydomain.example/auth/login?callbackUrl=https%3A%2F%2Fmydomain.example%2Fauth%2Flogin%3FredirectAfterLogin%3D%2Fboard&error=OAuthSignin.
With NEXTAUTH_URL unset, I get redirected to http://localhost:7575/api/auth/error?error=OAuthSignin.
This occurs whether I'm running latest or fix-redirect-oidc.

Full `compose.yaml` for the record
services:
  homarr:
    container_name: homarr
    # image: ghcr.io/ajnart/homarr:fix-redirect-oidc
    # image: ghcr.io/ajnart/homarr:latest
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./homarr/configs:/app/data/configs
      - ./homarr/icons:/app/public/icons
      - ./homarr/data:/data
    networks:
      - expose-web
    environment:
      AUTH_PROVIDER: "oidc"
      AUTH_OIDC_URI: "https://auth.mydomain.example/application/o/homarr/"
      AUTH_OIDC_CLIENT_ID: "REDACTED"
      AUTH_OIDC_CLIENT_SECRET: "REDACTED"
      AUTH_OIDC_CLIENT_NAME: "My Auth"
      # NEXTAUTH_URL: "https://mydomain.example"

networks:
    expose-web:
        external: true

Authentik

The issue should be fixed by @Meierschlumpf on the last version fix-redirect-oidc, check that you pull always the image (Image Cache can be a problem in this situation)
"imageID": "ghcr.io/ajnart/homarr@sha256:1b0e36984570090ce75ddb1a066b4bbba34d50d83175c1da4a64eaf4e74dfd74"

And when you configure the Auth Provider on Authentik, remember to set the sign key to authentik Self-signed Certificate because by default this field it's empty and will be use HS256 to encode the JWT token and Homarr (NextAuth) only support RS256

And the Redirect URI's/Origins don't work if you set a value, so I make it work using a wild card .*

BTW: Sorry for the screenshots in Spanish

Also experiencing this issue. Running Homarr behind Caddy and Authentik.
With NEXTAUTH_URL set to https://mydomain.example, I get redirected to https://mydomain.example/auth/login?callbackUrl=https%3A%2F%2Fmydomain.example%2Fauth%2Flogin%3FredirectAfterLogin%3D%2Fboard&error=OAuthSignin.
With NEXTAUTH_URL unset, I get redirected to http://localhost:7575/api/auth/error?error=OAuthSignin.
This occurs whether I'm running latest or fix-redirect-oidc.

Hello,
I've the exact similar behavior with both images (and my fix-redirect-oidc image was downloaded 30 minutes prior this comment - didn't use this tag before)
I'm behind an NGINX reverse proxy and also using Authentik. My Docker compose file is pretty similar to the one above.
One "confusing thing" is that for most Oauth setups, there is detailed URLs. For example, I don't know if for AUTH_OIDC_URI I need to use :
https://auth.my.domain/application/o/homarr/ or https://auth.my.domain/
Same for BASE_URL & NEXTAUTH_URL
Let me know what I can test further, I've a dedicated integration instance for testing 😉

Also experiencing this issue. Running Homarr behind Caddy and Authentik.
With NEXTAUTH_URL set to https://mydomain.example, I get redirected to https://mydomain.example/auth/login?callbackUrl=https%3A%2F%2Fmydomain.example%2Fauth%2Flogin%3FredirectAfterLogin%3D%2Fboard&error=OAuthSignin.
With NEXTAUTH_URL unset, I get redirected to http://localhost:7575/api/auth/error?error=OAuthSignin.
This occurs whether I'm running latest or fix-redirect-oidc.

Hello,
I've the exact similar behavior with both images (and my fix-redirect-oidc image was downloaded 30 minutes prior this comment - didn't use this tag before)
I'm behind an NGINX reverse proxy and also using Authentik. My Docker compose file is pretty similar to the one above.
One "confusing thing" is that for most Oauth setups, there is detailed URLs. For example, I don't know if for AUTH_OIDC_URI I need to use : https://auth.my.domain/application/o/homarr/ or https://auth.my.domain/
Same for BASE_URL & NEXTAUTH_URL
Let me know what I can test further, I've a dedicated integration instance for testing 😉

I using only this env configs
BASE_URL: 'homarr.example.com',
AUTH_PROVIDER: 'oidc',
AUTH_OIDC_URI: 'https://authentik.example.com/application/o/homarr',
AUTH_OIDC_CLIENT_SECRET: 'OIDC SECRET GET FROM AUTHENTIK',
AUTH_OIDC_CLIENT_ID: 'OIDC ID GET FROM AUTHENTIK',
AUTH_OIDC_CLIENT_NAME: 'ANY NAME THAT YOU WANNA SHOW ON THE UI',
AUTH_OIDC_ADMIN_GROUP: 'admin', (Or any group that you have on authentik)
AUTH_OIDC_OWNER_GROUP: 'admin', (Or any group that you have on authentik)
Don't use NEXTAUTH_URL

Don't use NEXTAUTH_URL

Hi,
Well, if I don't use NEXTAUTH_URL, I get the http://localhost:7575/api/auth/error?error=OAuthSignin redirection.
So let's share some infos:
In my environnement, each docker instance has it's own IP in a dedicated network. So I can manage easily external and internal apps with 2 different reverse proxies. Homarr is intended to be available outside.
My Docker compose file (current):
version: '3'
services:
  homarr:
    image: ghcr.io/ajnart/homarr:fix-redirect-oidc
    container_name: homarr

    restart: unless-stopped

    environment:
      TZ: '${TZ}'
      DEFAULT_COLOR_SCHEME: '${DEFAULT_COLOR_SCHEME}'
      AUTH_PROVIDER: '${AUTH_PROVIDER}'
      AUTH_OIDC_URI: '${AUTH_OIDC_URI}'
      AUTH_OIDC_CLIENT_ID: '${AUTH_OIDC_CLIENT_ID}'
      AUTH_OIDC_CLIENT_SECRET: '${AUTH_OIDC_CLIENT_SECRET}'
      AUTH_OIDC_CLIENT_NAME: '${AUTH_OIDC_CLIENT_NAME}'
      BASE_URL: '${BASE_URL}'
      #NEXTAUTH_URL: '${NEXTAUTH_URL}'

    volumes:
      - config:/app/data/configs
      - data:/data
      - icons:/app/public/icons

    networks:
      default:
        ipv4_address: 192.168.X.X

volumes:
  config:
  data:
  icons:

networks:
  default:
    external: true
    name: my_docker_network

ENV file:
TZ=Europe/Paris
DEFAULT_COLOR_SCHEME=light
AUTH_PROVIDER=oidc
AUTH_OIDC_URI=https://auth.myexternal.domain/application/o/homarr/
AUTH_OIDC_CLIENT_ID=xxxxx
AUTH_OIDC_CLIENT_SECRET=xxxxx
AUTH_OIDC_CLIENT_NAME=Authentik
BASE_URL=homarr.myexternal.domain

My NGINX server block:
    server  {
        # Include HTTPS server standards
        include /etc/nginx/conf.d/server_security.conf;

        # Add HSTS header (not available on local server)
        add_header Strict-Transport-Security "max-age=63072000; includeSubdomains" always;

        server_name homarr.myexternal.domain;

        location  / {
                proxy_pass  http://192.168.X.X:7575;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_cache_bypass $http_upgrade;
        }

    ssl_certificate /etc/letsencrypt/live/homarr.myexternal.domain/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/homarr.myexternal.domain/privkey.pem; # managed by Certbot
}

I use Authentik for several apps already so I hope everything is well configured there. I put .* for the redirect URLs and use the Authentik self-signed certificate.
Do you see anything that would not be as expected?
Thanks for you help! 😉

@EHRETic looks like you are using an old image, can you do this to force docker compose to pull the latest one:
docker-compose down
docker-compose build --pull (This is the important part)
docker-compose up -d

@EHRETic , you can do this to check if you have the correct version:
docker image inspect ghcr.io/ajnart/homarr:fix-redirect-oidc

and the ID should be sha256:1b0e36984570090ce75ddb1a066b4bbba34d50d83175c1da4a64eaf4e74dfd74

@EHRETic BTW looks like docker-compose added the pull_policy attribute, so you can do something like this:
version: '3'
services:
  homarr:
    image: ghcr.io/ajnart/homarr:fix-redirect-oidc
    pull_policy: always
    container_name: homarr

and the ID should be sha256:1b0e36984570090ce75ddb1a066b4bbba34d50d83175c1da4a64eaf4e74dfd74

Well, not sure but it looks OK (but the error remains) :

I did the following because I use Portainer:

deleted container
deleted image
edited docker compose file as suggested
recreated the container

I still get the localhost redirect 😊

and the ID should be sha256:1b0e36984570090ce75ddb1a066b4bbba34d50d83175c1da4a64eaf4e74dfd74

Well, not sure but it looks OK (but the error remains) :
I did the following because I use Portainer:

deleted container
deleted image
edited docker compose file as suggested
recreated the container

I still get the localhost redirect 😊

Checking the code of the PR, can you try to add this parameter on your nginx config
proxy_set_header X-Forwarded-Host $host;

proxy_set_header X-Forwarded-Host $host;

Nope, didn't change anything

proxy_set_header X-Forwarded-Proto $scheme;

can you try to put the header in lowecase
proxy_set_header x-forwarded-proto $scheme;
proxy_set_header x-forwarded-host $host;

Update:
OIDC and redirect login are working for me now, two things to note:
Correct Auth Provider Redirect URL: https://homarr.example.com/api/auth/callback/oidc
NOTE: there is no trailing / after oidc
In the .env file, I am using only the NEXTAUTH_URL variable

Update:
OIDC and redirect login are working for me now using the latest fix-redirect-oidc tag, two things to note:

Correct Auth Provider Redirect URL: https://homarr.example.com/api/auth/callback/oidc

NOTE: there is no trailing / after oidc

In the .env file, I am using only the NEXTAUTH_URL variable

are you also using Authetik? mine still not working. can you share your config?

proxy_set_header x-forwarded-proto $scheme;
proxy_set_header x-forwarded-host $host;

Nope, didn't change a thing (I'm no expert, but I dont think NGINX makes a differences in interpretation)

Maybe behind a dual proxy it does not work? Because the forward is overwritten by the second one

I'm using them paralely, so only one is "in the way".

Update:
OIDC and redirect login are working for me now using the latest fix-redirect-oidc tag, two things to note:

Correct Auth Provider Redirect URL: https://homarr.example.com/api/auth/callback/oidc

Can you share the whole (obfuscated) ENV variables you are using. It starts to confuse where to pu what! 😁
What I didn't say to describe the issue : I'm always using an incognito Windows to test so what's makes me think there is still a problem somewhere in Homarr settings/env variables is that once I click on Authentification button, I go straight to the localhost:7575 and I never see Authentik.
Weird 😊

I can confirm that something is not fully recognized because app link doesn't appear in Authentik application list should be a link where the yellow is):

I have also no Homarr shortcut in my Authentik home, which should come automatically:

@EHRETic if you enter to the provider there is a button to create an application associated to that provider.

@catrielmuller thanks a lot for the tip, this ease the creation of the app, I didn't knew it! 👌
But it doesn't change the app creation.
I did though manage to get it appear by manually filling up this field:

But it is the only application where I did put a value in there. All the other didn't require that, Authentik did find it itself.
And it mention: If left empty, authentik will try to extract the launch URL based on the selected provider.
But no worries, it works now fine and I'm just trying to check if there is not something missing in Oauth implementation.
Thanks a lot for you help 😉

You can continue your conversation, I just closed it because the issue with the redirect should be fixed

Thanks a lot! 🙂

still not working for me, here is my config:
image info
image ghcr.io/ajnart/homarr:fix-redirect-oidc
image id sha256:fd183a046dda01d5a2e254fb0babd75d8b0c51782a3ce180bdb35e692f55e425
environment
      - TZ=America/New_York
      - DEFAULT_COLOR_SCHEME= dark
      - DISABLE_ANALYTICS= true
      - BASE_URL=https://homarr.mydomain.com
      - AUTH_PROVIDER=oidc
      - AUTH_OIDC_URI=https://authentik.mydomain.com/application/o/homarr/
      - AUTH_OIDC_CLIENT_SECRET=secret from Authentik
      - AUTH_OIDC_CLIENT_ID=id from Authentik
      - AUTH_OIDC_CLIENT_NAME=Authentik

Authentik
Redirect URIs/Origins (RegEx) .* also tried https://homarr.mydomain.com/api/auth/callback/oidc and https://homarr.mydomain.com
homarr docker  container logs
Exporting hostname...
Migrating database...
yarn run v1.22.19
$ ts-node ./migrate.ts
Done in 1.24s.
Starting production server...
Listening on port 7575 url: http://6641176fc803:7575
[next-auth][error][SIGNIN_OAUTH_ERROR]
https://next-auth.js.org/errors#signin_oauth_error expected 200 OK, got: 301 Moved Permanently {
  error: {
    message: 'expected 200 OK, got: 301 Moved Permanently',
    stack: 'OPError: expected 200 OK, got: 301 Moved Permanently\n' +
      '    at processResponse (/app/node_modules/openid-client/lib/helpers/process_response.js:41:11)\n' +
      '    at Issuer.discover (/app/node_modules/openid-client/lib/issuer.js:152:20)\n' +
      '    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n' +
      '    at async openidClient (/app/node_modules/next-auth/core/lib/oauth/client.js:16:14)\n' +
      '    at async getAuthorizationUrl (/app/node_modules/next-auth/core/lib/oauth/authorization-url.js:70:18)\n' +
      '    at async Object.signin (/app/node_modules/next-auth/core/routes/signin.js:38:24)\n' +
      '    at async AuthHandler (/app/node_modules/next-auth/core/index.js:260:26)\n' +
      '    at async NextAuthApiHandler (/app/node_modules/next-auth/next/index.js:22:19)\n' +
      '    at async auth (/app/.next/server/pages/api/auth/[...nextauth].js:129:12)',
    name: 'OPError'
  },
  providerId: 'oidc',
  message: 'expected 200 OK, got: 301 Moved Permanently'
}

every time I test I use an incoginito window in chrome
what am I missing?

still not working for me, here is my config:
image info
image ghcr.io/ajnart/homarr:fix-redirect-oidc image id sha256:fd183a046dda01d5a2e254fb0babd75d8b0c51782a3ce180bdb35e692f55e425
environment
      - TZ=America/New_York
      - DEFAULT_COLOR_SCHEME= dark
      - DISABLE_ANALYTICS= true
      - BASE_URL=https://homarr.mydomain.com
      - AUTH_PROVIDER=oidc
      - AUTH_OIDC_URI=https://authentik.mydomain.com/application/o/homarr/
      - AUTH_OIDC_CLIENT_SECRET=secret from Authentik
      - AUTH_OIDC_CLIENT_ID=id from Authentik
      - AUTH_OIDC_CLIENT_NAME=Authentik

Authentik
Redirect URIs/Origins (RegEx) .* also tried https://homarr.mydomain.com/api/auth/callback/oidc and https://homarr.mydomain.com
homarr docker container logs
Exporting hostname...
Migrating database...
yarn run v1.22.19
$ ts-node ./migrate.ts
Done in 1.24s.
Starting production server...
Listening on port 7575 url: http://6641176fc803:7575
[next-auth][error][SIGNIN_OAUTH_ERROR]
https://next-auth.js.org/errors#signin_oauth_error expected 200 OK, got: 301 Moved Permanently {
  error: {
    message: 'expected 200 OK, got: 301 Moved Permanently',
    stack: 'OPError: expected 200 OK, got: 301 Moved Permanently\n' +
      '    at processResponse (/app/node_modules/openid-client/lib/helpers/process_response.js:41:11)\n' +
      '    at Issuer.discover (/app/node_modules/openid-client/lib/issuer.js:152:20)\n' +
      '    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n' +
      '    at async openidClient (/app/node_modules/next-auth/core/lib/oauth/client.js:16:14)\n' +
      '    at async getAuthorizationUrl (/app/node_modules/next-auth/core/lib/oauth/authorization-url.js:70:18)\n' +
      '    at async Object.signin (/app/node_modules/next-auth/core/routes/signin.js:38:24)\n' +
      '    at async AuthHandler (/app/node_modules/next-auth/core/index.js:260:26)\n' +
      '    at async NextAuthApiHandler (/app/node_modules/next-auth/next/index.js:22:19)\n' +
      '    at async auth (/app/.next/server/pages/api/auth/[...nextauth].js:129:12)',
    name: 'OPError'
  },
  providerId: 'oidc',
  message: 'expected 200 OK, got: 301 Moved Permanently'
}

every time I test I use an incoginito window in chrome
what am I missing?

the current error I get is: http://localhost:7575/api/auth/error?error=OAuthSignin

I can't really make it more. Homarr keeps returning localhost:
https://home.example.com/api/auth/providers returns
{"oidc":{"id":"oidc","name":"homarr","type":"oauth","signinUrl":"http://localhost:7575/api/auth/signin/oidc","callbackUrl":"http://localhost:7575/api/auth/callback/oidc"},"empty":{"id":"empty","name":"Empty","type":"oauth","signinUrl":"http://localhost:7575/api/auth/signin/empty","callbackUrl":"http://localhost:7575/api/auth/callback/empty"}}

Config:
      containers:
        - env:
          - name: TZ
            value: Europe/Berlin
          - name: NODE_TLS_REJECT_UNAUTHORIZED
            value: "0"
          - name: BASE_URL
            value: home.example.com
          - name: AUTH_PROVIDER
            value: oidc
          - name: AUTH_OIDC_URI
            value: https://accounts.example.com/application/o/homarr
          - name: AUTH_OIDC_CLIENT_ID
            value: xxx
          - name: AUTH_OIDC_CLIENT_NAME
            value: SSO
          - name: AUTH_OIDC_ADMIN_GROUP
            value: homarr-admins
          - name: DEFAULT_COLOR_SCHEME
            value: dark
          envFrom:
            - secretRef:
                name: homarr-oidc
          image: ghcr.io/ajnart/homarr:fix-redirect-oidc

Also running Authentik and I am out of guesses.

Also still having the localhost:7575 issue, confirmed I'm using the right image. Using NEXTAUTH_URL makes it work.
.env file
AUTH_PROVIDER=oidc
BASE_URL=homarr.example
AUTH_OIDC_URI=http://auth.example/application/o/homarr
AUTH_OIDC_CLIENT_ID=ID
AUTH_OIDC_CLIENT_SECRET=SECRET
AUTH_OIDC_CLIENT_NAME=Authentik
NEXTAUTH_URL=http://homarr.example

compose file (relevant parts)
  homarr:
    container_name: homarr
    image: ghcr.io/ajnart/homarr:fix-redirect-oidc

In Authentik:
Redirect URI: http://homarr.example/api/auth/callback/oidc
Launch URL: http://homarr.example
In Nginx Proxy Manager
hostname: homarr.example
forward IP: 192.168.x.y:7575
Nothing in Advanced settings
In Pi-hole
DNS A record: 'example' -> 192.168.x.y
CNAME record: homarr.example -> 'example'

Here's whats working for me after about 4 hours of trying every conceivable setting combination... NOTE, I needed to remove my email address from the user profile in homarr - this required me disabling OIDC so I could login locally, removing my email address and then enabling OIDC again with the below settings
With LATEST version docker image
.env file
AUTH_PROVIDER=oidc
BASE_URL=homepage.domain.com
AUTH_OIDC_URI=https://auth.domain.com/application/o/homarr           (NO TRAILING /)
AUTH_OIDC_CLIENT_ID=ID
AUTH_OIDC_CLIENT_SECRET=SECRET
AUTH_OIDC_CLIENT_NAME=Authentik
NEXTAUTH_URL=https://homepage.domain.com
In Authentik:
Redirect URI: .*
Launch URL: https://homepage.domain.com
In Nginx Proxy Manager
hostname: homepage.domain.com
forward IP: 192.168.x.y:7575
Nothing in Advanced settings

I also had to remove my email from Homarr. I assume it might because the username and email I was using in Authentik was the same as the ones I was using in Homarr and there was some duplicate user or user conflict issue. Removing the email address from Homarr caused Homarr to create TWO ADMIN and OWNER users with identical usernames but one (the Homarr native username) without an email address. Seems to work fine like this, so I left it.

With LATEST version docker image
.env file AUTH_PROVIDER=oidc BASE_URL=homepage.domain.com AUTH_OIDC_URI=https://auth.domain.com/application/o/homarr (NO TRAILING /) AUTH_OIDC_CLIENT_ID=ID AUTH_OIDC_CLIENT_SECRET=SECRET AUTH_OIDC_CLIENT_NAME=Authentik NEXTAUTH_URL=https://homepage.domain.com
In Authentik: Redirect URI: .* Launch URL: https://homepage.domain.com
In Nginx Proxy Manager hostname: homepage.domain.com forward IP: 192.168.x.y:7575 Nothing in Advanced settings

I go it working exactly as described here, thank you. I was able to specify redirect URI as https://example.com/api/auth/callback/oidc instead of .* without any problems

such a pain in my head with those oidc provider.
After updating to latest images i've reinstalled app.
.env file
AUTH_PROVIDER=oidc,credetials
BASE_URL=homarr.mydomain.com
AUTH_OIDC_URI=https://auth.domain.com/application/o/homarr (without TRAILING /)
AUTH_OIDC_CLIENT_ID=ID
AUTH_OIDC_CLIENT_SECRET=SECRET
AUTH_OIDC_CLIENT_NAME=Authentik
NEXTAUTH_URL=https://homarr.mydomain.com/
then created internal admin user and with private browser windows i've tried to login with authentik.
1st attempt was successfull, then i've promoted authentik user in homarr to admin user, after logging out in private browser window and logging in with authentik again my user automatically demoted to regular user and after each log out user always demoted to regular user.
then i'm tried to add to .env:
AUTH_OIDC_OWNER_GROUP=admin
AUTH_OIDC_ADMIN_GROUP=admin
and after recreate container i can't login with authentik. When i press login with Authentik, browser takes me back to the main page with url=https://homarr.mydomain.com/auth/login?callbackUrl=https%3A%2F%2Fhomarr.mydomain.com%2F&error=OAuthSignin
Now i even can't get it work with oidc auth

@Snyaify - I had a similar issue. It sounds like a user conflict. I resolved it by removing the email address of the original Homarr Owner because I wanted the same username/owner for both Authentik and Homarr and it was causing a conflict (the same loop you described with the same error).
This is how I fixed it:

I removed the reference to .env in my compose.yaml
Installed it again with the new compose file (with .env commented out) - (docker compose up -d)
Disabled the proxy in nginx proxy manager, so I could do local login again
Logged into Homarr with original Owner account
Deleted any additional users
IMPORTANT PART Deleted the email address from the Owner in Homarr
Re-enabled the .env reference
Installed Homarr again so it picked up the .env change (docker compose up -d)
Re-enabled the proxy in nginx proxy manager
Logged into Homarr with my Authentik admin

This created an identical Owner and Admin in Homarr. One had both the email add the username, the other has just the username. Both usernames match and both are Admin and Owner. Works fine.
I would just delete all users that aren't the Owner from Homarr and delete the email address from the Owner to start fresh. Any users you login with via Authentik that are in your "admin" group will automatically be added to Homarr. But if you have a user that has the same username and email address as that of a user in Homarr, you will get the loop when you try to log in with that user. It feels like a bug to me, but my workaround worked for me.
Good luck!

@Snyaify - I had a similar issue. It sounds like a user conflict. I resolved it by removing the email address of the original Homarr Owner because I wanted the same username/owner for both Authentik and Homarr and it was causing a conflict (the same loop you described with the same error).
This is how I fixed it:

I removed the reference to .env in my compose.yaml
Installed it again with the new compose file (with .env commented out) - (docker compose up -d)
Disabled the proxy in nginx proxy manager, so I could do local login again
Logged into Homarr with original Owner account
Deleted any additional users
IMPORTANT PART Deleted the email address from the Owner in Homarr
Re-enabled the .env reference
Installed Homarr again so it picked up the .env change (docker compose up -d)
Re-enabled the proxy in nginx proxy manager
Logged into Homarr with my Authentik admin

This created an identical Owner and Admin in Homarr. One had both the email add the username, the other has just the username. Both usernames match and both are Admin and Owner. Works fine.
I would just delete all users that aren't the Owner from Homarr and delete the email address from the Owner to start fresh. Any users you login with via Authentik that are in your "admin" group will automatically be added to Homarr. But if you have a user that has the same username and email address as that of a user in Homarr, you will get the loop when you try to log in with that user. It feels like a bug to me, but my workaround worked for me.
Good luck!

Thanks, it worked out

damn, i can't understand what's going on.
Today login with authentik doesn't work again
[next-auth][error][SIGNIN_OAUTH_ERROR]
https://next-auth.js.org/errors#signin_oauth_error Socket connection timeout {
  error: {
    message: 'Socket connection timeout',
    stack: 'Error [ERR_SOCKET_CONNECTION_TIMEOUT]: Socket connection timeout\n' +
      '    at new NodeError (node:internal/errors:399:5)\n' +
      '    at internalConnectMultiple (node:net:1099:20)\n' +
      '    at Timeout.internalConnectMultipleTimeout (node:net:1638:3)\n' +
      '    at listOnTimeout (node:internal/timers:575:11)\n' +
      '    at process.processTimers (node:internal/timers:514:7)',
    name: 'Error'
  },
  providerId: 'oidc',
  message: 'Socket connection timeout'
}

Here's whats working for me after about 4 hours of trying every conceivable setting combination... NOTE, I needed to remove my email address from the user profile in homarr - this required me disabling OIDC so I could login locally, removing my email address and then enabling OIDC again with the below settings
With LATEST version docker image
.env file AUTH_PROVIDER=oidc BASE_URL=homepage.domain.com AUTH_OIDC_URI=https://auth.domain.com/application/o/homarr (NO TRAILING /) AUTH_OIDC_CLIENT_ID=ID AUTH_OIDC_CLIENT_SECRET=SECRET AUTH_OIDC_CLIENT_NAME=Authentik NEXTAUTH_URL=https://homepage.domain.com
In Authentik: Redirect URI: .* Launch URL: https://homepage.domain.com
In Nginx Proxy Manager hostname: homepage.domain.com forward IP: 192.168.x.y:7575 Nothing in Advanced settings

I can confirm this is what works for me as well. Homarr and Authentik behind a Traefik proxy.

Here's whats working for me after about 4 hours of trying every conceivable setting combination... NOTE, I needed to remove my email address from the user profile in homarr - this required me disabling OIDC so I could login locally, removing my email address and then enabling OIDC again with the below settings
With LATEST version docker image
.env file AUTH_PROVIDER=oidc BASE_URL=homepage.domain.com AUTH_OIDC_URI=https://auth.domain.com/application/o/homarr (NO TRAILING /) AUTH_OIDC_CLIENT_ID=ID AUTH_OIDC_CLIENT_SECRET=SECRET AUTH_OIDC_CLIENT_NAME=Authentik NEXTAUTH_URL=https://homepage.domain.com
In Authentik: Redirect URI: .* Launch URL: https://homepage.domain.com
In Nginx Proxy Manager hostname: homepage.domain.com forward IP: 192.168.x.y:7575 Nothing in Advanced settings

Thank you 💯 finally got it working after lots of debugging without success thanks to your comment.

Just wanted to drop in here and say that this is working for me after going through this thread.

  - TZ=America/New_York
  - DEFAULT_COLOR_SCHEME= dark
  - DISABLE_ANALYTICS= true
  - BASE_URL=homarr.mydomain.com (without https)
  - AUTH_PROVIDER=oidc
  - AUTH_OIDC_URI=https://authentik.mydomain.com/application/o/homarr (without ending /)
  - AUTH_OIDC_CLIENT_SECRET=secret from Authentik
  - AUTH_OIDC_CLIENT_ID=id from Authentik
  - AUTH_OIDC_CLIENT_NAME=Authentik

Also for Authentik

Redirect URIs
.*

Only way to get it to work :)
Thank you everyone!

``> Just wanted to drop in here and say that this is working for me after going through this thread.

  - TZ=America/New_York
  - DEFAULT_COLOR_SCHEME= dark
  - DISABLE_ANALYTICS= true
  - BASE_URL=homarr.mydomain.com (without https)
  - AUTH_PROVIDER=oidc
  - AUTH_OIDC_URI=https://authentik.mydomain.com/application/o/homarr (without ending /)
  - AUTH_OIDC_CLIENT_SECRET=secret from Authentik
  - AUTH_OIDC_CLIENT_ID=id from Authentik
  - AUTH_OIDC_CLIENT_NAME=Authentik

Also for Authentik

Redirect URIs
.*

Only way to get it to work :) Thank you everyone!

I've done exactly the same but it seems like it does not work for me.
It always redirects to: http://localhost:7575/api/auth/error?error=OAuthSignin
Error:
[next-auth][error][SIGNIN_OAUTH_ERROR]
https://next-auth.js.org/errors#signin_oauth_error expected 200 OK, got: 301 Moved Permanently {
    message: 'expected 200 OK, got: 301 Moved Permanently',
  error: {
    stack: 'OPError: expected 200 OK, got: 301 Moved Permanently\n' +
      '    at processResponse (/app/node_modules/openid-client/lib/helpers/process_response.js:41:11)\n' +
      '    at Issuer.discover (/app/node_modules/openid-client/lib/issuer.js:152:20)\n' +
      '    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n' +
      '    at async openidClient (/app/node_modules/next-auth/core/lib/oauth/client.js:16:14)\n' +
      '    at async getAuthorizationUrl (/app/node_modules/next-auth/core/lib/oauth/authorization-url.js:70:18)\n' +
      '    at async Object.signin (/app/node_modules/next-auth/core/routes/signin.js:38:24)\n' +
      '    at async AuthHandler (/app/node_modules/next-auth/core/index.js:260:26)\n' +
      '    at async NextAuthApiHandler (/app/node_modules/next-auth/next/index.js:22:19)\n' +
      '    at async auth (/app/.next/server/pages/api/auth/[...nextauth].js:143:12)',
    name: 'OPError'
  },
  providerId: 'oidc',
  message: 'expected 200 OK, got: 301 Moved Permanently'
}

Nginx conf:
server {
    listen 443 ssl;
    server_name dashboard.domain.com;

    # Path to the SSL certificate and key files
    ssl_certificate /path/fullchain.pem;
    ssl_certificate_key /path/privkey.pem;

    # SSL settings
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers HIGH:!aNULL:!MD5;

  location / {
      proxy_pass http://192.168.1.182:7575/;
      proxy_buffering off;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection $http_connection;

environment:
AUTH_PROVIDER=oidc
AUTH_OIDC_CLIENT_SECRET=secret
AUTH_OIDC_CLIENT_ID=id
AUTH_OIDC_CLIENT_NAME=authentik
AUTH_OIDC_URI=https://authentik.domain.com/application/o/homarr/
AUTH_LOGOUT_REDIRECT_URL=https://authentik.domain.com/application/o/homarr/end-session/
AUTH_SESSION_EXPIRY_TIME=60d
AUTH_OIDC_AUTO_LOGIN=true
DISABLE_ANALYTICS=true
DEFAULT_COLOR_SCHEME=dark
BASE_URL=dashboard.domain.com

Also does not work for me.
 NEXTAUTH_URL=https://dashboard.domain.com
https://dashboard.domain.com/auth/login?callbackUrl=http%3A%2F%2F192.192.192.192%3A7575%2F&error=OAuthSignin

Update from me - in the process of converting to Authelia (due to some unhappy security things I've seen with authentik).
I get this error in Homarr:
message: 'iss mismatch, expected http://auth.domain.com, got: https://auth.domain.com'
No idea where to go from here, have tried everything I can think of... Nginx Proxy Manager (Am I missing some advanced config there?? - Followed this with no luck also: https://thehomelab.wiki/books/dns-reverse-proxy/page/setup-authelia-to-work-with-nginx-proxy-manager)

Update from me - in the process of converting to Authelia (due to some unhappy security things I've seen with authentik).
I get this error in Homarr:
message: 'iss mismatch, expected http://auth.domain.com, got: https://auth.domain.com'
No idea where to go from here, have tried everything I can think of... Nginx Proxy Manager (Am I missing some advanced config there?? - Followed this with no luck also: https://thehomelab.wiki/books/dns-reverse-proxy/page/setup-authelia-to-work-with-nginx-proxy-manager)

Another update - I gave up on NGINX (tried all flavours, NPM, NPMPlus, NGINX etc). I'm sure I was missing something simple from a proxy POV, but could just never get auth passed through successfully.
Bit the bullet and converted to Traefik following this guide: https://docs.ibracorp.io/traefik - Although daunting at first and certainly a learning curve - I now have everything working perfectly and just have to add 3 or 4 lines to docker labels depending on what I want to do. I've also been able to set up Forward Auth, so could always turn off homarr auth if I needed to test, but still keep things locked down. (This also works great for apps without local auth or OIDC).
Note, even with the latest image, I still needed the NextAuth config line from above, otherwise always redirected to Localhost. One other note, was I needed some specific Pihole docker config, to ensure that containers could reference pihole for local/internal Green tick magic.
Happy hunting!

@Meierschlumpf, can you tell us whether it should work now without the NEXTAUTH variable and base url? I can't see anything in the documentation, so I'd assume it should work at least without it. For me, however, it just doesn't work and keeps redirecting to localhost.

Just a note that I'm still running into the redirect issue with Homarr, when using it behind Caddy, and Authelia for OIDC. My Caddy config:
reverse_proxy 192.168.61.1:7575

My Homarr docker-compose config (with secrets and domain redacted):
❯ cat docker-compose.yml
services:
  homarr:
    image: ghcr.io/ajnart/homarr:0.15.4
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - configs:/app/data/configs
      - data:/data
      - icons:/app/public/icons
    ports:
      - '7575:7575'
    environment:
      - BASE_URL=homarr.example.me
      - TZ=America/Los_Angeles
      - DEFAULT_COLOR_SCHEME=dark
      - AUTH_PROVIDER=credentials,oidc
      - AUTH_OIDC_URI=https://authelia.example.me
      - AUTH_OIDC_CLIENT_ID=random string
      - AUTH_OIDC_CLIENT_SECRET=topsecret
      - AUTH_OIDC_CLIENT_NAME=Authelia
      - AUTH_LOGOUT_REDIRECT_URL=https://authelia.example.me/logout
      - AUTH_OIDC_ADMIN_GROUP=sudoers-users
      - AUTH_OIDC_OWNER_GROUP=sudoers-owners
      - NEXTAUTH_URL=https://homarr.example.me

I thought maybe BASE_URL should have fixed but it doesn't work, I still get redirects to localhost if I comment out NEXTAUTH_URL.

@rkj do you get logs on your homarr instance?

Actually yes:
homarr_homarr.1.kr5qhggb1dto@flerovium    | [next-auth][error][OAUTH_CALLBACK_ERROR]
homarr_homarr.1.kr5qhggb1dto@flerovium    | https://next-auth.js.org/errors#oauth_callback_error invalid_grant (The provided authorization grant (e.g., authorization code, resource owner credentials) or refresh token is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client. The 'redirect_uri' from this request does not match the one from the authorize request.) {
homarr_homarr.1.kr5qhggb1dto@flerovium    |   error: OPError: invalid_grant (The provided authorization grant (e.g., authorization code, resource owner credentials) or refresh token is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client. The 'redirect_uri' from this request does not match the one from the authorize request.)
homarr_homarr.1.kr5qhggb1dto@flerovium    |       at processResponse (/app/node_modules/openid-client/lib/helpers/process_response.js:38:13)
homarr_homarr.1.kr5qhggb1dto@flerovium    |       at Client.grant (/app/node_modules/openid-client/lib/client.js:1354:22)
homarr_homarr.1.kr5qhggb1dto@flerovium    |       at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
homarr_homarr.1.kr5qhggb1dto@flerovium    |       at async Client.callback (/app/node_modules/openid-client/lib/client.js:493:24)
homarr_homarr.1.kr5qhggb1dto@flerovium    |       at async oAuthCallback (/app/node_modules/next-auth/core/lib/oauth/callback.js:109:16)
homarr_homarr.1.kr5qhggb1dto@flerovium    |       at async Object.callback (/app/node_modules/next-auth/core/routes/callback.js:52:11)
homarr_homarr.1.kr5qhggb1dto@flerovium    |       at async AuthHandler (/app/node_modules/next-auth/core/index.js:208:28)
homarr_homarr.1.kr5qhggb1dto@flerovium    |       at async NextAuthApiHandler (/app/node_modules/next-auth/next/index.js:22:19)
homarr_homarr.1.kr5qhggb1dto@flerovium    |       at async auth (/app/.next/server/pages/api/auth/[...nextauth].js:143:12) {
homarr_homarr.1.kr5qhggb1dto@flerovium    |     name: 'OAuthCallbackError',
homarr_homarr.1.kr5qhggb1dto@flerovium    |     code: undefined
homarr_homarr.1.kr5qhggb1dto@flerovium    |   },
homarr_homarr.1.kr5qhggb1dto@flerovium    |   providerId: 'oidc',
homarr_homarr.1.kr5qhggb1dto@flerovium    |   message: "invalid_grant (The provided authorization grant (e.g., authorization code, resource owner credentials) or refresh token is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client. The 'redirect_uri' from this request does not match the one from the authorize request.)"
homarr_homarr.1.kr5qhggb1dto@flerovium    | }

The important part is (I think): The 'redirect_uri' from this request does not match the one from the authorize request, but I'm not sure what homarr is setting and why adding NEXTAUTH_URL fixes it - I suspect it uses localhost, but not sure how to verify.

I guess I had the same underlying error. This is what I got from Authentik:
{
    "asn": {
        "asn": 13335,
        "as_org": "CLOUDFLARENET",
        "network": "172.70.110.0/23"
    },
    "geo": {
        "lat": 40.781,
        "city": "New York",
        "long": -73.9501,
        "country": "US",
        "continent": "NA"
    },
    "message": "Invalid redirect URI used by provider",
    "expected": [
        "https://portal.example.com/api/auth/callback/oidc"
    ],
    "provider": {
        "pk": 72,
        "app": "authentik_providers_oauth2",
        "name": "Portal OAuth",
        "model_name": "oauth2provider"
    },
    "http_request": {
        "args": {},
        "path": "/application/o/token/",
        "method": "POST",
        "request_id": "a91d200bfee443689441e5c73fa724a5",
        "user_agent": "openid-client/5.6.1 (https://github.com/panva/node-openid-client)"
    },
    "redirect_uri": "http://localhost:7575/api/auth/callback/oidc"
}

After setting up NEXTAUTH_URL like @rkj did, the correct redirect URI was send to Authentik.

Okay intresting, I'll setup authelia (with traefik) and try to reproduce. Maybe I'm also able to debug it locally then

@Hoempi @rkj can somebody of you try if it works when you add the env variable AUTH_TRUST_HOST and set it to true.
If you have the NEXT_AUTH_URL defined obviously remove it.

Works great for me, thank you!

Okay OMG that was a disaster on my side, I spent like 4 hours trying to get authelia to work and finally by hacking something together and code analysis of the next auth version we had a year ago, I was able to find this piece of code:
/** Extract the origin from the environment */
export function detectOrigin(forwardedHost: any, protocol: any) {
  // If we detect a Vercel environment, we can trust the host
  if (process.env.VERCEL ?? process.env.AUTH_TRUST_HOST)
    return `${protocol === "http" ? "http" : "https"}://${forwardedHost}`

  // If `NEXTAUTH_URL` is `undefined` we fall back to "http://localhost:3000"
  return process.env.NEXTAUTH_URL
}

I'll create a pull request where we add this env variable in the Dockerfile @rkj can you, after we released that, revert the change for on authelia?

Actually, just noticed something weird, the login flow works, I see the dashboard, but I cannot edit the board, and in the profile menu I only see "Switch theme" and "Login"... Switching back to NEXTAUTH_URL fixes it, so maybe there are some more edge cases :(

Oh no 😢
I guess I'll have to investigate further

Okay found something @rkj
Hypothesis:

When you log in this way you are no longer able to go to /auth/login and get redirected.
When you rename your cookie from __Secure-next-auth.session-token to next-auth.session-token your user profile is shown at /manage but you can open /auth/login

Solution: I added a change to my Pull request where it always uses the next-auth.session-token. I'll publish an image so you can try it out

Okay found something @rkj
Hypothesis:

When you log in this way you are no longer able to go to /auth/login and get redirected.
When you rename your cookie from __Secure-next-auth.session-token to next-auth.session-token your user profile is shown at /manage but you can open /auth/login

Solution: I added a change to my Pull request where it always uses the next-auth.session-token. I've published an image so you can try it out fix-oidc-wrong-redirect

Confirming this works so far with Authelia, Traefik and removing Next Auth URL. Variables below:

"AUTH_PROVIDER=oidc"
"AUTH_OIDC_URI=https://auth.domain.com"
"AUTH_OIDC_CLIENT_SECRET=***"
"AUTH_OIDC_CLIENT_ID=***"
"AUTH_OIDC_CLIENT_NAME=Auth"
"AUTH_OIDC_ADMIN_GROUP=admin"
"AUTH_OIDC_OWNER_GROUP=admin"

Quick update on the fix-oidc-wrong-redirect branch. Once the token is stale from Authelia, the logout button doesn't work and nothing redirects you to Authelia to reauthenticate unless you refresh the browser.

Authentik + nginx:
With both, latest and fix-oidc-wrong-redirect I keep receiving following:
[next-auth][error][SIGNIN_OAUTH_ERROR]
  message: 'expected 200 OK, got: 301 Moved Permanently'
}
https://next-auth.js.org/errors#signin_oauth_error expected 200 OK, got: 301 Moved Permanently {
    message: 'expected 200 OK, got: 301 Moved Permanently',
  error: {
    stack: 'OPError: expected 200 OK, got: 301 Moved Permanently\n' +
      '    at processResponse (/app/node_modules/openid-client/lib/helpers/process_response.js:41:11)\n' +
      '    at Issuer.discover (/app/node_modules/openid-client/lib/issuer.js:152:20)\n' +
      '    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n' +
      '    at async openidClient (/app/node_modules/next-auth/core/lib/oauth/client.js:16:14)\n' +
      '    at async getAuthorizationUrl (/app/node_modules/next-auth/core/lib/oauth/authorization-url.js:70:18)\n' +
      '    at async Object.signin (/app/node_modules/next-auth/core/routes/signin.js:38:24)\n' +
      '    at async AuthHandler (/app/node_modules/next-auth/core/index.js:260:26)\n' +
      '    at async NextAuthApiHandler (/app/node_modules/next-auth/next/index.js:22:19)\n' +
      '    at async auth (/app/.next/server/pages/api/auth/[...nextauth].js:143:12)',
    name: 'OPError'
  },
  providerId: 'oidc',

Any idea why?

Authentik + nginx: With both, latest and fix-oidc-wrong-redirect I keep receiving following:
[next-auth][error][SIGNIN_OAUTH_ERROR]
  message: 'expected 200 OK, got: 301 Moved Permanently'
}
https://next-auth.js.org/errors#signin_oauth_error expected 200 OK, got: 301 Moved Permanently {
    message: 'expected 200 OK, got: 301 Moved Permanently',
  error: {
    stack: 'OPError: expected 200 OK, got: 301 Moved Permanently\n' +
      '    at processResponse (/app/node_modules/openid-client/lib/helpers/process_response.js:41:11)\n' +
      '    at Issuer.discover (/app/node_modules/openid-client/lib/issuer.js:152:20)\n' +
      '    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n' +
      '    at async openidClient (/app/node_modules/next-auth/core/lib/oauth/client.js:16:14)\n' +
      '    at async getAuthorizationUrl (/app/node_modules/next-auth/core/lib/oauth/authorization-url.js:70:18)\n' +
      '    at async Object.signin (/app/node_modules/next-auth/core/routes/signin.js:38:24)\n' +
      '    at async AuthHandler (/app/node_modules/next-auth/core/index.js:260:26)\n' +
      '    at async NextAuthApiHandler (/app/node_modules/next-auth/next/index.js:22:19)\n' +
      '    at async auth (/app/.next/server/pages/api/auth/[...nextauth].js:143:12)',
    name: 'OPError'
  },
  providerId: 'oidc',

Any idea why?

No idea why, but these are the exact errors I had when trying to get things working with nginx. Which led me to convert to traefik and find success.
I think it all has to do with forwarding headers and other related that I’m just not aware enough of. I’m sure it can be solved, I just spent far too long and couldn’t get it working. I did have it working for other platforms though (portainer as an example).

I'm currently away from home, else I would already have responded earlier.
But if it is of any help, I could provide my Caddy and Authentik configs this evening or tomorrow morning, depending on when I'll be home.

I got around to fetch the details. If I missed something, please let me know.
Caddy:
portal.hempen.family {
    tls internal
    reverse_proxy {args[1]}
}

.env for Homarr:
TZ=Europe/Berlin
BASE_URL=portal.hempen.family
AUTH_PROVIDER=oidc
#AUTH_TRUST_HOST=true
NEXTAUTH_URL=https://portal.mydomain.com
AUTH_OIDC_URI=https://auth.mydomain.com/application/o/portal
AUTH_OIDC_CLIENT_NAME=Authentik
AUTH_OIDC_CLIENT_ID=ThisIsAPlaceHolderForMyClientIDReally!!!
AUTH_OIDC_CLIENT_SECRET=OfCourseIWontShareMyClientSecretOnTheInternetThatWouldEitherBeReallyDumbOrASignOfMissingUnderstandingAboutSecurityConceptsAndSo!
AUTH_LOGOUT_REDIRECT_URL=https://auth.mydomain.com/application/o/portal/end-session/
AUTH_OIDC_ADMIN_GROUP="server-admin"
AUTH_OIDC_OWNER_GROUP="server-admin"

Outpost in Authentik
Authentication flow: default-authentication-flow (Welcome to authentik!)
Authorization flow: default-provider-authorization-explicit-consent (Authorize Application)
Client ID: ThisIsAPlaceHolderForMyClientIDReally!!!
Client Secret: OfCourseIWontShareMyClientSecretOnTheInternetThatWouldEitherBeReallyDumbOrASignOfMissingUnderstandingAboutSecurityConceptsAndSo!
Redirect URIs/Origins (RegEx): https://portal.mydomain.com/api/auth/callback/oidc
Signing Key: authentik Self-signed Certificate

When you use the custom image it should not be necessary to have the NEXTAUTH_URL set when AUTH_TRUST_HOST is set

No idea why, but these are the exact errors I had when trying to get things working with nginx. Which led me to convert to traefik and find success.

Maybe it's also related to a trailing slash like in the following issue?
https://github.com/nextauthjs/next-auth/discussions/8654

God... I actually tried this but didn't work before (likely because I had multiple issues at that point back then).
It finally works with nginx and the latest version of homarr, not with the custom image:
Nginx conf:
server {
    listen 443 ssl;
    server_name dashboard.domain.com;

    location / {
        proxy_pass http://IP:PORT;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

env:
AUTH_PROVIDER=oidc
AUTH_OIDC_CLIENT_SECRET=secret
AUTH_OIDC_CLIENT_ID=id
AUTH_OIDC_CLIENT_NAME=authentik
AUTH_OIDC_URI=https://authentik.domain.com/application/o/homarr
AUTH_LOGOUT_REDIRECT_URL=https://authentik.domain.com/application/o/homarr/end-session/
AUTH_SESSION_EXPIRY_TIME=60d
AUTH_OIDC_AUTO_LOGIN=false
DISABLE_ANALYTICS=true
TZ=Europe/Zurich
DEFAULT_COLOR_SCHEME=dark
NEXTAUTH_URL=https://dashboard.domain.com
BASE_URL=dashboard.domain.com

Authentik:
Redirect URL in authentik: https://dashboard.domain.com/api/auth/callback/oidc
Had to use the authentik self-signed certificate since the one from let's encrypt is not RSA but ECC.

Confirmed no trailing slash! First thing I checked :D
On Fri, Oct 11, 2024 at 12:01 PM Meier Lukas @.***>
wrote:

No idea why, but these are the exact errors I had when trying to get
things working with nginx. Which led me to convert to traefik and find
success.
Maybe it's also related to a trailing slash like in the following issue?
nextauthjs/next-auth#8654
https://github.com/nextauthjs/next-auth/discussions/8654
—
Reply to this email directly, view it on GitHub
https://github.com/ajnart/homarr/issues/1909#issuecomment-2407707228,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEMOZ7WZG25ML4UAVOFGMWTZ27Y5TAVCNFSM6AAAAABDNQN2UOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBXG4YDOMRSHA
.
You are receiving this because you were mentioned.Message ID:
@.***>

I tried the config of @DevGoran  in authentik x homarr but getting this after login in auth.example.es (the redirections works fine but the login not) :

And if i am logged and try click in the logging section i get this:

Someone has a problem like this?

I tried the config of @DevGoran  in authentik x homarr but getting this after login in auth.example.es (the redirections works fine but the login not) :

And if i am logged and try click in the logging section i get this:

Someone has a problem like this?

What is the container log showing you? Are you also using nginx?

@DevGoran I am using NPM (Nginx Proxy Manager as reverse proxy) and Authentik as SSO Provider. The log is not showing anything but in the insepct window i get a http 307 response:

I have this in config:

@AntonioMallen what is your npm config looking like? I've had used npm in the past but it caused too many issues to me, which is why I switched to just the regular nginx.

I tried the config of @DevGoran  in authentik x homarr but getting this after login in auth.example.es (the redirections works fine but the login not) :

And if i am logged and try click in the logging section i get this:

Someone has a problem like this?

Thus is exactly what is fixed in the mentioned docker image that will be merged to dev soon

@Meierschlumpf Oh sorry i didnt understand well the post (My english is a bad).
Thanks for the help!

I am experiencing a similar issue even with version 0.15.6. My problem is with the callback URL sent from Homarr to my SSO. My Homarr URL is https://DOMAIN.COM:7575, but after attempting to log in via SSO, I receive a redirect error based on the origin URL I defined in the settings. Upon checking the callback URL, I noticed that the callback URL from Homarr is https://DOMAIN.COM, and it does not include the port number, even though I set it in the Docker Compose environment.

Still having problem with redirect url (localhost:7575)

Same error here, using authentik and nginx proxy manager:
got the error:
homarr  |     stack: 'OPError: expected 200 OK, got: 301 Moved Permanently\n' + homarr  |       '    at processResponse (/app/node_modules/openid-client/lib/helpers/process_response.js:41:11)\n' + homarr  |       '    at Issuer.discover (/app/node_modules/openid-client/lib/issuer.js:152:20)\n' + homarr  |       '    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n' + homarr  |       '    at async openidClient (/app/node_modules/next-auth/core/lib/oauth/client.js:16:14)\n' + homarr  |       '    at async getAuthorizationUrl (/app/node_modules/next-auth/core/lib/oauth/authorization-url.js:70:18)\n' + homarr  |       '    at async Object.signin (/app/node_modules/next-auth/core/routes/signin.js:38:24)\n' + homarr  |       '    at async AuthHandler (/app/node_modules/next-auth/core/index.js:260:26)\n' + homarr  |       '    at async NextAuthApiHandler (/app/node_modules/next-auth/next/index.js:22:19)\n' + homarr  |       '    at async auth (/app/.next/server/pages/api/auth/[...nextauth].js:143:12)', homarr  |     name: 'OPError' homarr  |   }, homarr  |   providerId: 'oidc', homarr  |   message: 'expected 200 OK, got: 301 Moved Permanently'
here my compose:
`version: "3.8"
#---------------------------------------------------------------------#
Homarr - A simple, yet powerful dashboard for your server.
#---------------------------------------------------------------------#
services:
homarr:
container_name: homarr
image: ghcr.io/ajnart/homarr:latest
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock # Optional, only if you want docker integration
- config_nfs:/app/data/configs
- icons_nfs:/app/public/icons
- data_nfs:/data
ports:
- 7575:7575
environment:
AUTH_PROVIDER: oidc
AUTH_OIDC_URI: https://auth.domain.win/application/o/homarr/
AUTH_OIDC_CLIENT_SECRET: $$$
AUTH_OIDC_CLIENT_ID: $$$
AUTH_OIDC_CLIENT_NAME: Authentik
  AUTH_OIDC_ADMIN_GROUP: AdminGroup
  AUTH_OIDC_OWNER_GROUP: AdminGroup
  AUTH_SESSION_EXPIRY_TIME: 60d
  AUTH_OIDC_AUTO_LOGIN: false
  DISABLE_ANALYTICS: true
  TZ: Europe/Zurich
  DEFAULT_COLOR_SCHEME: dark
  NEXTAUTH_URL: https://homarr.domain.win
  BASE_URL: homarr.domain.win

volumes:
config_nfs:
driver: local
driver_opts:
type: nfs
o: addr=192.168.1.123,nolock,rw
device: :/volume1/Docker/Volumens/homarr/config
icons_nfs:
driver: local
driver_opts:
type: nfs
o: addr=192.168.1.123,nolock,rw
device: :/volume1/Docker/Volumens/homarr/icons
data_nfs:
driver: local
driver_opts:
type: nfs
o: addr=192.168.1.123,nolock,rw
device: :/volume1/Docker/Volumens/homarr/data
networks:
nginxproxymanager_default:
external: true`
``
in authentik is set the redirect url to .* and tryed https://homarr.domain.win/api/auth/callback/oidc

authors: AntonioMallen DevGoran EHRETic Hoempi K-J-VV Meierschlumpf Snyaify avephill catrielmuller maskalix mikelv702 mundi86 nljc88 pathwayx99 rkj serious-scribbler silverbios sirjmann92 thcrt unbelauscht yey3men2

repo: ajnart/homarr


text:
Issues logging in from local DNS address

Environment
Docker
Version
0.15.6
Describe the problem
I have added Homarr to my local DNS records in Pihole and I route the traffic via Nginx Proxy Manager to the container that runs my Homarr instance. I am able to authenticate with Homarr if I enter the IP address directly in the address bar, but when I try to authenticate via the local DNS address, the request times out and I get the error in the deverloper console
Logs
Uncaught (in promise) Error: A listener indicated an asynchronous response by returning true, but the message channel closed before a response was received

Context

Please tick the boxes

[X] I confirm that I attached the proper logs
[X] I've read the docs
[X] I've checked for duplicate issues
[X] I've tried to debug myself

You are running on an unsigned certificate. As shown on the top left by your browser.
I assume you might need something like NODE_TLS_REJECT_UNAUTHORIZED=0 and maybe NEXTAUTH_URL="https://homarr.home".

Those are not valid Homarr environment variables as seen here https://homarr.dev/docs/advanced/configuration/environment-variables

source: gharchive/issue

license: MIT

license_type: permissive

license_source: github-api


text:
Make package.json scripts compatible with windows.

The version of Ajv you are using
7.0.3
Building from source.
The environment you have the problem with
Microsoft Windows 10 - Powershell.
Your code (please make it as small as possible to reproduce the issue)
npm install
Results and error messages in your platform
It runs the prepublish hook, which triggers the build script which seems to be written for unix-like environments (Mac and Linux). The windows command line does not understand "rm -rf" command. I could try to use the windows subsystem for linux but it would be easier to have cross-platform scripts.
Such a change would make ajv more welcoming to new contributors.
Two solutions :

We use cross-platforms apis, for example the Node fs module.
We maintain two separate set of scripts for both unix and windows command lines.

The scripts support linux, mac and in windows with git-bash - I use all three.
In cases where there are differences, the scripts are cross-platform - there is cross-env to setup env vars and escaped double quotes instead of single quotes.

The scripts support linux, mac and in windows with git-bash - I use all three.
In cases where there are differences, the scripts are cross-platform - there is cross-env to setup env vars and escaped double quotes instead of single quotes.

Thanks, I tried to run the scripts in powershell. I did not know about git-bash so I used wsl2. We should probably add a documentation section on how to compile from source in windows. Let’s keep this issue open I’ll make a PR some time.

Thanks, I tried to run the scripts in powershell. I did not know about git-bash so I used wsl2. We should probably add a documentation section on how to compile from source in windows. Let’s keep this issue open I’ll make a PR some time.

Can I pick this one up? I'm using Windows too.
I think it will involve replacing usages of rm -rf with del-cli, and replacing cp -r with cpy-cli. And it requires some careful manual testing to validate whether recursive copies and deletes still work the same.

authors: bricejar epoberezkin josdejong

repo: ajv-validator/ajv


text:
i have error with getUpdateCLI

Warning: PDOStatement::execute(): SQLSTATE[42S02]: Base table or view not found: 1146 Table 'u776080620_bot.telegram_update' doesn't exist in /home/u776080620/public_html/bot/vendor/longman/telegram-bot/src/DB.php on line 200
exception 'Longman\TelegramBot\Exception\TelegramException' with message 'Client error: POST https://api.telegram.org/bot234213012:*******************************/getUpdates resulted in a 409 Conflict response: {"ok":false,"error_code":409,"description":"Conflict: can't use getUpdates method while webhook is active"} ' in /home/u776080620/public_html/bot/vendor/longman/telegram-bot/src/Request.php:205 Stack trace: #0 /home/u776080620/public_html/bot/vendor/longman/telegram-bot/src/Request.php(296): Longman\TelegramBot\Request::execute('getUpdates', Array) #1 /home/u776080620/public_html/bot/vendor/longman/telegram-bot/src/Request.php(577): Longman\TelegramBot\Request::send('getUpdates', Array) #2 /home/u776080620/public_html/bot/vendor/longman/telegram-bot/src/Telegram.php(311): Longman\TelegramBot\Request::getUpdates(Array) #3 /home/u776080620/public_html/bot/getUpdatesCLI.php(57): Longman\TelegramBot\Telegram->handleGetUpdates() #4 {main}

The error message says:
"description":"Conflict: can't use getUpdates method while webhook is active"
This means, that you have a webhook active. To be able to use getUpdates, you first need to remove the webhook by using the unset.php file.

How?
Can you give an example?

Get the examples/unset.php file and add your bot details.
Now, when you call this file through your browser, you should get the "Webhook was deleted" message. This means that you can now use getUpdates method 👍

authors: MPCL noplanman

repo: akalongman/php-telegram-bot

license: mit

license_source: bigquery


text:
Add support for REST api proxy

Just like the rpc proxy, we would need to also have a proxy for REST apis. It would be great to have the swagger documentation of the API with the available endpoints.
A live example of this is the cosmos directory:
https://cosmos.directory/akash
https://rpc.cosmos.directory/akash
https://rest.cosmos.directory/akash
Example REST api swagger documentation (it doesn't have all the custom endpoints for Akash, but it would be amazing to have them):
https://akash-api.polkachu.com/swagger/#

should we get the seed nodes from here too?
and to confirm, this is supposed to be a forward proxy as well, correct?

Btw for RPC, is it possible to remove this node from the list (https://akash-rpc.publicnode.com/)? It returns an html page at the root instead of the available endpoints. I also got error 403, 404 and 502 from the rpc proxy.

i added an error-rate health thing in #12, which should take care of it
if it is really invalid, it should prob be removed from the list in https://raw.githubusercontent.com/cosmos/chain-registry/master/akash/chain.json - not sure if that's desirable or not, though

see #13

repo: akash-network/rpc-proxy


text:
task: create architectural diagram

Create an architectural  diagram for the project in order to actually see the flow of entire project

done


text:
AKShare 接口问题报告：get_cffex_daily不支持IO产品

描述遇到的问题
接口名称：get_cffex_daily
代码：
    data_df = data_df[data_df["合约代码"] != "小计"]
    data_df = data_df[data_df["合约代码"] != "合计"]
    data_df = data_df[~data_df["合约代码"].str.contains("IO")]
    data_df.reset_index(inplace=True, drop=True)
    data_df["合约代码"] = data_df["合约代码"].str.strip()
    symbol_list = data_df["合约代码"].to_list()

其中这里data_df = data_df[~data_df["合约代码"].str.contains("IO")]使得查询结果不支持IO（沪深300期权）产品，可以考虑注释掉

data_df[~data_df["合约代码"].str.contains("IO")]

该接口设计是获取期货数据

如果只返回期货数据，那还要加一下data_df[~data_df["合约代码"].str.contains("MO")]和data_df[~data_df["合约代码"].str.contains("HO")]，因为CFFEX那边会把期货和期权数据都返回回来（参考主界面http://www.cffex.com.cn）。然后如果这个接口访问频繁（比如长session连接），会返回“10054, 远程主机强迫关闭了一个现有的连接。”，可以在文档里提示一下，避免用户被ban掉ip，麻烦了。

data_df[~data_df["合约代码"].str.contains("HO")]

感谢反馈，已进行相关的修改，升级到 AKShare 1.10.32 版本使用

authors: Hoyuri albertandking

repo: akfamily/akshare


text:
slickPause doesn't work

I'm trying to use the new feature slickPause. However it doesn't work.
Before this feature I was changing an autoPlay state variable, so that the autoplay prop change to false when the slider has to pause.
// this.state.autoPlay is true by default
pauseSlider() {
    this.setState({autoPlay: false});
}

...

render() {
    const {autoPlay} = this.state;
    const settings = {
        autoplaySpeed: 5000,
        className: 'swiper-wrapper',
        infinite: true,
        slidesToShow: 1,
        slidesToScroll: 1,
        arrows: false,
        autoplay: autoPlay,
        pauseOnHover: false,
        initialSlide: 1,
        beforeChange: this.beforeChangeSlide,
        afterChange: this.afterChangeSlide
    };

    ...
}

but the problem was that autoPlay to false made to slide one more time (because the autoPlayTimer was not cleared). Now, I expect the timer to be cleared when calling slickPause(), but it seems to do nothing, as it works the same way as not calling it. I've tried several ways:
Keeping the above example and calling this.slider.slickPause() from componentDidUpdate():
componentDidUpdate(prevProps, prevState) {
    const {autoPlay} = this.state;
    if (!autoPlay && prevState.autoPlay) {
        this.slider.slickPause();
    }
    // also tried calling `this.slider.slickPlay()` when `autoPlay && !prevState.autoPlay`
}

The same as above (with componentDidUpdate) but keeping autoplay prop to true:
render() {
    const {autoPlay} = this.state;
    const settings = {
        autoplaySpeed: 5000,
        className: 'swiper-wrapper',
        infinite: true,
        slidesToShow: 1,
        slidesToScroll: 1,
        arrows: false,
        autoplay: true, // ***
        pauseOnHover: false,
        initialSlide: 1,
        beforeChange: this.beforeChangeSlide,
        afterChange: this.afterChangeSlide
    };

    ...
}

In this way, it just doesn't stop sliding.
Calling this.slider.slickPause() instead of change state
pauseSlider() {
    this.slider.slickPause();
}

Although I need to change the state also for other functionality so actually I change the state:
pauseSlider() {
    this.slider.slickPause();
    this.setState({foo: 'bar'});
}

Am I doing something wrong or is it a bug?

Its working . you can check this example
https://github.com/akiran/react-slick/blob/master/examples/AutoPlayMethods.js

I thinks that it's because of the changing state. Look at this example. If you press the button, you will be redirected to slide 3 and the slider should pause. However, after 5 seconds the slider goes to slide 0 before pausing. Also, if you swipe a few slides forward and wait, instead of pressing the button, you will see a weird behaviour, the slides change within different times.

@laveesingh We need to clear autoplayTimers when autoPlay is set to false

I tried replicating it and I found the problem. The autoplay prop was available in props instead of this.props in update mixin. Fixed that, fixed the issue. 817cd797b04e158a70ada4b2f1ea9c2dc98aab9a
The following snippet works for me:
import React, { Component } from 'react'
import Slider from '../src/slider'

export default class SimpleSlider extends Component {

  constructor(props) {
    super(props)
    this.state = {
      autoplay: false
    }
  }

  render() {
    const settings = {
      dots: true,
      infinite: true,
      speed: 500,
      slidesToShow: 1,
      slidesToScroll: 1,
      autoplaySpeed: 500,
      autoplay: this.state.autoplay
    };
    return (

 Single Item

          <button onClick={() => this.setState({ autoplay: !this.state.autoplay })}> {this.state.autoplay ? 'Playing' : 'Paused' } </button>

        <Slider {...settings}>

1

2

3

4

5

6

        </Slider>

    );
  }
}

@laveesingh Please, look at my previous comment. It's happening exactly the same with 0.19.0 version.

@akiran @laveesingh Could you reopen the issue?

@msalsas I long as I remember, slickPause is working perfectly fine. Could you take a look at this example.

@laveesingh Your example works right. Please, look at this example. If you press the button, you will be redirected to slide 3 and the slider should pause. However, after 5 seconds the slider goes to slide 0 before pausing. Also, if you swipe a few slides forward and wait, instead of pressing the button, you will see a weird behaviour, the slides change within different times.

@laveesingh In your example, you're also changing the state in beforeChange/afterChange hooks (changeUpdateCount/changeSlider). Regarding the second point, I've also tried calling first slickGoTo before slickPause with the same result. You can check it out by editing the code of the "codesandbox" link.

@msalsas the point of the example was to see how we're using another wrapper component to use setState in beforeChange hook. I'll try to find another way to the same.
Anyway, what you're trying to achieve can be achieved as follows:
<button onClick={() => {
  this.slickGoTo(3)
  setTimeout(this.slickPause, 0)
}}>
 goto slide 3 and pause
</button>

I figured two consecutive methods won't work because updates from the first take a bit of time and the second method won't take effect while first is still in progress. I'll look more into it to find something that'd make these methods work without setTimeout.

SlickPause doesn't work , it is ok?

@laveesingh I've tried using a timeout and wrapping the Slider but neither worked. I've finally disabled autoplay, added a setInterval with a slickNext call in componentDidMount and called clearInterval when I want to stop the auto-play. I'd  say that you have a bit of mess with timers, because any of the children components of Slide could change its state, and timers shouldn't be updated.

@msalsas Finally, I've managed to solved issues related to autoplay/pause by managing another state in InnerSlider component. Commits like: 466e026, 877c465 and bb5de6a solve the problem.
These changes are currently in dev branch and will be released soon.

authors: akiran laveesingh msalsas varrant

repo: akiran/react-slick


text:
Gonvim-fuzzy ag not working with remote attachment

Hi Akiyosi,
I recently started using the remote attachment feature of gonvim to connect to my local linux vm, from host mac os and it is amazing. Thanks for this wonderful feature.
I had one little problem though. When trying to grep files using GonvimFuzzyAg, no results has been displayed.
This is only one pending feature which prevents me from using this GUI. All other fuzzy finders like GonvimFuzzyFiles and  GonvimFuzzyBuffers are all working.
I am not able to raise an issue in gonvim-fuzzy. Hence raising an issue here.
Can you please take a look ?

Hi,

I am not able to raise an issue in gonvim-fuzzy. Hence raising an issue here.

It is no problem here.

I had one little problem though. When trying to grep files using GonvimFuzzyAg, no results has been displayed.

In remote attach mode, ag must be installed on the remote host. Can you confirm this point?
If ag is not in PATH, you can also set Absolute Path of ag command with g:gonvim_fuzzy_ag_cmd variable in init.vim on the remote host.

Thanks @akiyosi
It is in PATH only
[maari@manjarooo gonvim-fuzzy]$ which ag /usr/bin/ag [maari@manjarooo gonvim-fuzzy]$ echo $PATH /home/maari/.local/bin:/home/maari/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl [maari@manjarooo gonvim-fuzzy]$
When i try to set the g:gonvim_fuzzy_ag_cmd manually, I get the following error while searching
let g:gonvim_fuzzy_ag_cmd='/usr/bin/ag --nogroup --column --nocolor'
Invalid directory

I'm sorry. I was misunderstanding.😓
In the current specification GonvimFuzzyAg searches for local files, not remote.
I am planning to improve GonvimFuzzyAg to search for remote host in remote attached case.

authors: Mariappan akiyosi

repo: akiyosi/gonvim


text:
Test branch dane tutorial

Work in progress

Paldies par darbu, šo es veru ciet!

source: gharchive/pull-request

authors: akmakit arvids-dane


text:
updated style.css file

Related Issues or bug

Info about Issue or bug

Fixes: #[issue number that will be closed through this PR]
Proposed Changes

Info about changes Goes here

Additional Info

Anything related Issues

Screenshots

Original
Updated

original screenshot
**updated screenshot **

could you please merge my pr under JWOC with difficulty label?


text:
fixed font size in mobile view

Related Issue
Closes: #1716

Description
fixed font size in mobile view
Screenshots

Checklist

[X] My code adheres to the established style guidelines of the project.
[X] I have included comments in areas that may be difficult to understand.
[X] My changes have not introduced any new warnings.
[X] I have conducted a self-review of my code.

@akshitagupta15june please merge my PR with Gssoc label

@akshitagupta15june please merge my PR with Gssoc label

Please merge the PR @akshitagupta15june

merge it under gssoc @akshitagupta15june

@akshitagupta15june please assign me


text:
Upadted Nav links and Blog styling

Changes made in this PR

Updated dropdown links with correct path , now clicking on the link would re-direct to the correct page, earlier it was an empty path.
Updated blog UI in Blog.html

Screenshot -

Do I need to raise issue first, then wait for the assigned tag? can I directly solve the issue and make a PR. will it be acceptable for GSSOC23 .As I am beginners so have this doubt.


text:
💡[FEATURE]: Preloader

Is your feature request related to a problem? Please describe.
Yes addition of preloader will increase user interest to the site
Describe the solution you'd like
I would like to add a simple animation that would render until the site is being loaded
Describe alternatives you've considered
The loader would be completely responsive and matching the theme of site
Additional context
Kindly assign this issue to me under GSSoC'24

I would like to work on this issue please assign me


text:
img zoom is not working correctly

i tried all options, but it did not work

also how i make default img. i want to show img on right side of the image not on the top

try give it a container div with a solid width. for now, this plugin only display on top for big image

repo: akulubala/vue-product-zoomer


text:
Add support for odroid-m1

Everything's done except u-boot, which at this point is being built for a different board (evb_rk3568).
The m1 does come with u-boot and petitboot in an onboard SPI flash, so building a working u-boot isn't actually needed to get the board running.

thanks. I reviewing your changes and doing a test build.  Does this boot?

It does, yes. I've been booting daily from the NVME, via petitboot.
Booting from the EMMC should work using the embedded (but outdated) u-boot directly. I confess I haven't tested in a while, but can do it next week.

Sorry for the long delay, I just got around to test booting from the EMMC and it's broken.
It seems that the default UBOOT_ROOT from the *.bbclass is taking precedence over the machine defaults, which is wrong.
Since this PR is already merged (thanks!), I'll close it and create a new one for the fix. Sorry..

Turns out it was a simple fix, created a new PR.
I'm not allowed to close this as "merged", @akuster could you please do it? Thanks!

Opps sorry. Yeah I did it manually.
Thanks for adding the M1 support

authors: akuster rmsc

repo: akuster/meta-odroid


text:
Graph precentage on smaller screen overlays with map.

I just cloned the project, did "npm install" and afterwards "npm start".
http://shrani.si/f/x/6D/c85M3bs/ng2-admin-bug.png
Google Chrome 58.0.3029.110 (64-bit).
Node v6.11.0,
NPM v3.10.10,
Windows 10.
The demo on your website doesn't have this problem.

I have the same issue. Seems like these rules are not applied for some reason
`@media (max-width: $resM) {
.card.medium-card.traffic-panel {
  height: auto;
}

div.channels-info {
  display: block;
  width: calc(100% - 88px);
  margin-top: -65px;
  margin-bottom: 10px;
}
.traffic-chart {
  position: inherit;
  float: none;
  margin: 0 auto;
}
.chart-bg {
  left: calc(50% - 90px);
}

}`

i just hide it for temp solution..
div.channels-info {
display: none;
}

repo: akveo/ngx-admin


text:
若删除不是通过 miot auto指定的方式 （修改设备名词为”删除“）， 则设备下面的实体 就是不能删除的状态

如题 我通过下面这种方式删除设备后

它下面的实体并没有删除，同时是不可点选状态

也手动删除不了

这种情况该如何处理啊？

重启HA后，这些实体便会消失。

authors: al-one geekli

repo: al-one/hass-xiaomi-miot


text:
Update reproducible-research-dropin-ann.md

Does this look ok for Autumn 2019?

Fab! Thank you!


text:
SectorElement.init arguments passed incorrectly by sector_geojson.py

When attempting to run the sector_geojson.py example in README.md, I encountered a TypeError: 'XShape' object is not subscriptable at line 70 of aviary/sector/sector_element.py. This was evidently because the call to SectorElement.__init__ from aviary/scripts/sector_geojson.py was passing arguments in the wrong order. There is a similar issue with overflier_climber.py.

A further related issue with overflier_climber.py is that in lines 161-166, sector_element is being passed to ScenarioGenerator when it seems that it needs to be passed to algorithm, resulting in a TypeError.

Another issue, which I think is best addressed inside the scenario generator: Machine College expects the top level dictionary in the airspace file to contain the key-value pair
"type": "FeatureCollection"
Without this it is unable to read the GeoJson correctly.

repo: alan-turing-institute/aviary


text:
Image data supported by pixelflow

[x] 2d ndarray
[x] 3d data (Evie)
[ ] metadata, e.g. geospatial (Alejandro)
[ ] Multichannel image data, e.g. YXC, where C are, for example, different spectral channels
[ ] Temporal image data, e.g. TYX where T are different time points

Can confirm 2D and 3D ndarray can be used by pixelflow as is

Would be useful to map out the expected outputs of these different data types.

authors: IFenton evangeline-corcoran ots22

repo: alan-turing-institute/pixelflow


text:
Adding total energy (kWh) sensor for solar related entities

Is it possible to add total energy consumption/production (kWh) sensors for all solar related entities? That will be great for implementing tesla solar into the energy dashboard. Even though it can be done with the existing Riemann sum integration, there are quite a lot of issues using that integration and it will throw off the statistics. It will be nice if this integration will provide the kWh reading directly.

The relevant energy endpoints for implementation of this FR are located here:
https://tesla-api.timdorr.com/energy-products/energy/history

Came here to post a new bug about this- but this issue is probably the best fit rather than opening a new one. I’ve tried multiple ways to get the kWh matching what the Tesla app shows (per day/month) without success. I’m not sure what I’m doing wrong or maybe it’s just not even possible?
This is what I currently have:
  - platform: integration
    source: sensor.my_home_solar_power
    name: tesla_solarpanels_new_kwh
    unit_prefix: k
    round: 2

Came here to post a new bug about this- but this issue is probably the best fit rather than opening a new one. I’ve tried multiple ways to get the kWh matching what the Tesla app shows (per day/month) without success. I’m not sure what I’m doing wrong or maybe it’s just not even possible?
This is what I currently have:
  - platform: integration
    source: sensor.my_home_solar_power
    name: tesla_solarpanels_new_kwh
    unit_prefix: k
    round: 2

I have tried all three integral method and left seems to be matching the app the closest but it is still off. Hopefully this integration will provide the kWh sensor directly in the future.

I have tried all three integral method and left seems to be matching the app the closest but it is still off. Hopefully this integration will provide the kWh sensor directly in the future.

I have not yet tried this manual kWh method, but was maybe gonna try it tonight: https://community.home-assistant.io/t/convert-w-to-kwh/327007

I have not yet tried this manual kWh method, but was maybe gonna try it tonight: https://community.home-assistant.io/t/convert-w-to-kwh/327007

I have not yet tried this manual kWh method, but was maybe gonna try it tonight: https://community.home-assistant.io/t/convert-w-to-kwh/327007

That's new to me. I will try and compare my current integral with left method.

I gave it a whirl but I must be doing something wrong. Sensors I added:
In sensor.yaml:
  - platform: average
    name: 'Tesla Solar Average Power'
    start: '{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}'
    end: '{{ now() }}'
    entities: sensor.my_home_solar_power
  - platform: average
    name: 'Tesla Solar Five Minute Average Power'
    duration:
      minutes: 5
    entities: sensor.my_home_solar_power

template:
  - sensor:
      - name: Tesla New KWH Sensor
        state: "{{ '%0.2f'|format(states('sensor.tesla_solar_average_power')|float / 1000 * (now().hour + now().minute/60)) }} "
        unit_of_measurement: "kWh"
        device_class: energy
        state_class: total_increasing

But the "Tesla New KWH Sensor" is pretty high- even higher than my original sensor:
  - platform: integration
    source: sensor.my_home_solar_power
    name: tesla_solarpanels_new_kwh
    unit_prefix: k
    round: 2

My setup as follows and it is very close to the integration sensor. Remember always use method: left in the integration sensor.
This is my average power sensor setup
sensor:
  # Average Solar Power
  - platform: average
    name: Average Solar Power
    start: "{{ today_at('00:00') }}"
    end: "{{ now() }}"
    entities: sensor.my_home_solar_power

This is my template energy sensor setup
template:
  - sensor:
      # Daily Solar Energy
      - name: Daily Solar Energy
        device_class: energy
        state_class: total_increasing
        state: "{{ (float(states('sensor.average_solar_power'), default = 0.0) * ((now() - today_at('00:00')).total_seconds() / 3600) / 1000) | round(2) }}"
        unit_of_measurement: kWh

This is my original integration energy sensor
sensor:
  - platform: integration
    source: sensor.my_home_solar_power
    name: Solar Energy
    round: 4
    unit_prefix: k
    method: left

Both sensors yield 27.1kWh and the Tesla app shows 27.4kWh of solar production yesterday. However, I was having a perfect sunny day and that was the perfect scenario without any spike in the solar power. I will keep monitoring both sensors and pick the one getting me result closer to the Tesla app.

@luisiam interesting. I switched to using your “Daily Solar Energy” sensor but it’s still off for me. Tesla app says 2.8 kWh today, but energy HA says 3.6. Fun. Maybe this won’t be solvable without the actual kWh data from teslas api

@luisiam interesting. I switched to using your “Daily Solar Energy” sensor but it’s still off for me. Tesla app says 2.8 kWh today, but energy HA says 3.6. This also matches my older integration sensor too. Fun. Maybe this won’t be solvable without the actual kWh data from teslas api?

Looks like it. According to the API document, seems like it is very doable. I will be more than happy to help with testing if someone can create the code for it, which will require update to the teslajsonpy library as well.

What's interesting is latest HA just dropped, and they have this note: Got an energy sensor in Wh, but you’d like it to be kWh? You can now change the units of energy sensors in the entity settings.
Looking at the sensor supplied by the Tesla integration, it does not show the unit of measurement for me on the entity card - I am also unsure what method they're using to convert between k/kWh - but maybe this new feature in HA could be of assistance for this problem?

That's totally different. Both Wh and kWh are the unit for energy. Simply 1kWh = 1000Wh. It's like m (meter) vs km (kilometer). What we need is from W/kW to Wh/kWh, which requires the integration of power over time.

That's totally different. Both Wh and kWh are the unit for energy. Simply 1kWh = 1000Wh. It's like m (meter) vs km (kilometer). What we need is from W/kW to Wh/kWh, which requires the integration of power over time.

You're right. I missed that part. Sorry.

authors: luisiam nicholashead purcell-lab

repo: alandtse/tesla


text:
Second car with different account

We have 2 Tesla MY and it is not possible to integrate both cars with her specific accounts. If i put my auth-Key, the second car is „unknown“. And if i put the second key, my car is „unknown“.

You can add the integration twice with different accounts.


text:
安装完后出现找不到kube-ovn的socket

当前最新版本,1.0.1

本地linux的权限问题

repo: alauda/kube-ovn


text:
怎么配置中文界面显示

怎么配置中文界面显示，需要修改哪些地方。

Kubeflow 自己其实没有做过i18n 支持，只有部分组件内置了 i18n，但也没有中文的翻译。我们正在做一些汉化的工作正在努力提交回社区，希望以后的版本会包含 i18n 。

repo: alauda/kubeflow-chart


text:
training-operator memory limit 太小发生OOM

安装chart时会报错：
kubeflow                    training-operator-8569f97489-zkxbt                            0/1     OOMKilled。
调整到40Mi就可以啦。

嗯。这个手动调整下即可，后续更新下chart的默认值

authors: jessehu typhoonzero


text:
[Bug]: Calendar event instance exceptions are not backed up

What happened?
Issue
Corso correctly backs up the core recurring events, but does not back up individual instances from the recurring event.  This is normally okay, if the recurring event instance is unchanged.  But in the case of changes to a certain instance of the event, those exceptions get sliced out.
Proposal
Recurring event instance exceptions can be looked up one of two ways.  The first is by querying for exceptions to a recurring event directly.  This is the most direct solution, and cleanly correlates these exceptions to the central event.
https://learn.microsoft.com/en-us/graph/api/event-list-instances?view=graph-rest-1.0&tabs=http
https://graph.microsoft.com/{{version}}/users/{{OwnerId}}/events/{{ItemId}}/instances?startdatetime={{StartDate}}&enddatetime={{EndDate}}&$filter=type ne 'occurrence'

The second is by running a delta on the calendar view.  This is only available through the beta api, and produces a messier result that cannot be filtered to only exceptions.
https://learn.microsoft.com/en-us/graph/api/user-list-calendarview?view=graph-rest-beta&tabs=http
https://graph.microsoft.com/beta/users/{{OwnerId}}/calendars/{{ContainerId}}/calendarview/delta?startdatetime={{StartDate}}&enddatetime={{EndDate}}

Deleted instances
According to forum posts, only the calendarView delta is able to display deleted instances.  I have so far been unable to find entries for deleted items.  In both requests, the deleted item is simply absent.
Corso Version?
any
Where are you running Corso?
any
Relevant log output
n/a

if I understand this right, both of these require using something akin to a calendarView so we'll be bounded by whatever end time we pick right?

Correct

Here is what I am planning. We can go with using events/{{ItemId}}/instances as that can easily filter out by events and for exceptions, plus has a cleaner output compared to the other option. We can use the start and end time available on the recurring event as the start and end time for our search and for events without an end time, we can just set a default limit (eg: 50 years). As we are filtering by exceptions, this should be a relatively small list.
One possible optimized bit is that we might have to download the exceptions even when none have changed in case we have a change in the original event.

We do not seem to get deleted items if we filter by exceptions. For that, it looks like we have to get the full set of items and figure out which all items don't seem to be present.
According to this SO thread, events cannot be moved to date beyond the next event which might help us limit the search for deleted events, but even still it can be a bit messy.
PS: Also found out that we can also search in a 5 year window ref.

Although the upstream issue has been closed, the actual change needs more time to land in the SDK(~1 week). Deferring till the change is available.

authors: ashmrtn meain ryanfkeepers

repo: alcionai/corso


text:
afQuickField or afFieldInput options Helper loops through all  iterations

Hi let me preface the above with template is already in a loop that produces a list of all documents. On each list item is a form with radio select options. The example below is the minimum that I can put so that it make sense (i believe).
Ultimately. what I would like to work (which I understand is incorrect, but so you can understand where I am going with this) is:
{{> afFieldInput name="spreads" option1="{{this.deep.ly.embedded.object1}}"  option1="{{this.deep.ly.embedded.object1}}" type="select-radio" }}
but alas, this is what it looks like now:
<template="parentTemplate">
{{#each Iteration}}
<template="childTemplate">
{{autoForm collection=collection}}
{{> afFieldInput name="spreads" option="afOptionsHelper" type="select-radio" }}
{{/autoform}}

{{/each}}

afOptionsHelper: function() {
return [
{label: 'this.deep.ly.embedded.object1', value: 'this.deep.ly.embedded.object1'},
{label: 'this.deep.ly.embedded.object1', value: 'this.deep.ly.embedded.object2'}
]
};
I am trying to avoid looping through the Collection.find() function in the helper again because its already doing that in the Parent Template. What I end up having is a 50 select options in each of the 125 loop iterations.
Any help is appreciated. Thank you!

After looking/working on it for hours it became clear to me that copying the entire element in firebug/developer tools and pasting it in the template directly was going to give me the control I needed to use spacebars in that template. Thank you!

repo: aldeed/meteor-autoform


text:
Custom tabular table rendered

Hi,
Is there a way to specify what elements should be rendered by tabular ?
For example to hide/remove the filter bar, something like:
{{> tabular table=TabularTables.Users class="table table-striped table-hover" data-search='false'}}
Want to specify it to hide/remove pagination, table header...
Thx

Your question is about DataTables, not tabular. See the dom option.

authors: Errbel aldeed

repo: aldeed/meteor-tabular


text:
Cannot rebuild the lectures

$ cd lectures
$ touch 1_reproducible_research.org
$ make
[lots of emacs' loading messages]
No language for src block: (unnamed)
Makefile:19: recipe for target '1_reproducible_research.tex' failed
make: *** [1_reproducible_research.tex] Error 255

That's not really reproducible, my friend ;)

Actually, I just tried from a fresh git clone on my machine and it worked like a charm. I think the error message you get is due to the fact that your emacs may be trying to reexecute the blocks and some have no language associated (as they're just here to show simple code snippets). In my emacs configuration, I have:
(setq org-export-babel-evaluate nil)
(setq org-confirm-babel-evaluate nil)
I'll try to add it to the Makefile and close this issue. Do not hesitate to reopen it if it's ineffective...

authors: alegrand mquinson

repo: alegrand/SMPE


text:
Printer not found

Hey guys, I can't seem to get node-printer to find my printer. Can you please let me know if you see anything wrong? It works fine with my Brother HW printer but not this printer. Thanks!

This lib relies on CUPS a printer manager for UNIX(like) systems. It is not compatible with Windows. IPP protocol would be a better alternative for cross system compatibility, I already made a POC with it, but it is not ready yet. You can take a look at it at https://github.com/alepee/node-ipp-interface

authors: alepee happilymarrieddad

repo: alepee/node-printer


text:
Custom enemy hammer bros jumping into the ground

As far as I know, it only happens with custom enemy hammer bros. A simple fix could be to make it never jump up/down if the ceiling/floor is 2+ blocks tall, as hammer bros typically only jump up on 1-tall rows of blocks.

Just learned that there's a property for this. Nevermind this, then.

license: WTFPL


text:
Add Windows and MacOS support via CMake or Makefile

Describe you problem / suggestion:
Right now the Linux install via install.sh works perfect, but for Windows and MacOS you need to build yourself the binary.
Steps to reproduce (optional):
None
Possible fix (optional):
Add any installation method for Windows and MacOS using CMake or similar, something that compiles the .cpp files from /src and include the sfml library located in /lib.
OS

[x] : Windows
[x] : Mac OS
[ ] : Linux

Possible duplicate #10

repo: alesbe/sorting-visualizer


text:
Change how hosted zones are searched.

Assuming the hosted zones in AWS are ordered by "["foo.bar.baz.com", "bar.baz.com", "baz.com", "com"]" is wrong since it's not always the case.
This PR changes the way hosted zones are searched. They are searched from bottom till the top domain. This guarantees that hosted zones are searched exactly like the previous code assumed the zones were ordered.

Thanks @PerGon, I went with a slightly different implementation.

Cool, your implementation is more elegant ;) Thanks!

authors: PerGon alex

repo: alex/letsencrypt-aws