Zipstack / unstract

No-code LLM Platform to launch APIs and ETL Pipelines to structure unstructured documents
https://unstract.com
GNU Affero General Public License v3.0
352 stars 29 forks source link

About access unstract web from other computer #414

Open haluwong opened 1 week ago

haluwong commented 1 week ago

It seems the webUI can only access through http://frontend.unstract.localhost/ which point to 127.0.0.1

I'm trying to setup nginx to reverse proxy to it through another URL and set host header to frontend.unstract.localhost. Can see the login screen but will redirect back to http://frontend.unstract.localhost/!!!

Is there anyway to setup with another hostname? Please advise?

Thanks, Halu

ritwik-g commented 1 week ago

Hi @haluwong , I think below can help you with setting it up for a different domain.

  1. You actually don't need to use nginx. We are using traefik already in our docker-compose. So you can continue using this. We just need to make changes to the hosts in routing rules and backend envs.
  2. To change routing rules you need to change the host name from frontend.unstract.localhost to which even hostname you want to use. https://github.com/Zipstack/unstract/blob/49b9873a7a3feca769919fe2ce8846c743c187fd/docker/docker-compose.yaml#L31 https://github.com/Zipstack/unstract/blob/49b9873a7a3feca769919fe2ce8846c743c187fd/docker/docker-compose.yaml#L105
  3. Should change envs in backend related to the FE URL. https://github.com/Zipstack/unstract/blob/49b9873a7a3feca769919fe2ce8846c743c187fd/backend/sample.env#L10 https://github.com/Zipstack/unstract/blob/49b9873a7a3feca769919fe2ce8846c743c187fd/backend/sample.env#L35-L38 (In local should be changing the backend/.env file. If you are making change in backend/sample.env file then you need to delete the backend/.env file if it already exists and then run the script)

This should be enough to get it running for a different host.

Please try and let us know if it works for you.

Also if possible it would be great if you can help with a new README on how to setup unstract for different host.

dumbsheep1990 commented 1 week ago

I modified the corresponding points according to the prompts. The homepage can be accessed, but after logging in, it still jumps to http://frontend.unstract.localhost.

dumbsheep1990 commented 1 week ago

I modified the host configuration in sample.proxy_overrides.yaml, but it still prompts that verification cannot be performed when logging in, and jumps back to the landing page.

ritwik-g commented 1 week ago

@dumbsheep1990 Hi can you confirm if the changes where made in backend/sample.env as mentioned in the below thread. If you have could you please share the screenshots or share the configuration itself of backend?

Hi @haluwong , I think below can help you with setting it up for a different domain.

  1. You actually don't need to use nginx. We are using traefik already in our docker-compose. So you can continue using this. We just need to make changes to the hosts in routing rules and backend envs.
  2. To change routing rules you need to change the host name from frontend.unstract.localhost to which even hostname you want to use. https://github.com/Zipstack/unstract/blob/49b9873a7a3feca769919fe2ce8846c743c187fd/docker/docker-compose.yaml#L31 https://github.com/Zipstack/unstract/blob/49b9873a7a3feca769919fe2ce8846c743c187fd/docker/docker-compose.yaml#L105
  3. Should change envs in backend related to the FE URL. https://github.com/Zipstack/unstract/blob/49b9873a7a3feca769919fe2ce8846c743c187fd/backend/sample.env#L10 https://github.com/Zipstack/unstract/blob/49b9873a7a3feca769919fe2ce8846c743c187fd/backend/sample.env#L35-L38

This should be enough to get it running for a different host.

Please try and let us know if it works for you.

Also if possible it would be great if you can help with a new README on how to setup unstract for different host.

haluwong commented 1 week ago

@ritwik-g I tried to following your suggestion to modify .env and labels for unstract-backend and unstract-frontend also, modified the backend/settings/dev.py in unstract-backend added our URL in the CORS_ALLOWED_ORIGINS CORS_ORIGIN_WHITELIST

Can show the login page but cannot login. http://unstract.certosa.com/api/v1/session (401 authorized) screen_20240624_11

ritwik-g commented 1 week ago

@haluwong , when you modified the code (backend/settings/dev.py), you will need to build containers from the local code. Which is acheivable passing -b or --build-local to ./run-platform.sh

image

Hope you have done this.

In any case I don't think this is a CORS error. Can you also share

haluwong commented 1 week ago

I downloaded the latest branch. Try to replace all the "frontend.unstract.localhost" to my desired hostname. use "./run-platform.sh -b" to build it locally and run it.

Login page can show but will show NetworkError to fetch the source map screen_20240626_02

But i can access http://unstract.certosa.com/static/js/main.12ab8275.js.map in my browser.

Then, click login and input the username ,password and login and then it will redirect to first login page again. screen_20240626_05

some js show NetworkError too but I can access it. And for http://unstract.certosa.com/api/v1/login Request: screen_20240626_04

Response: screen_20240626_03

I tried in both chrome and firefox redirect to the following landing page after login~ image

Hope this information is useful for your troubleshooting

ritwik-g commented 4 days ago

@haluwong I think the issue is with traefik routing. From the response of login API(/api/v1/login) it looks like to be going to Frontend container instead of backend.

Can you share the screenshot of docker-compose.yaml portions for backend and front-end?

ritwik-g commented 1 day ago

@haluwong I tried this locally and noticed one thing. If you make change in sample.env file in backend then we need to delete the backend/.env file and run the script again. Else the .env file is not updated.

So either delete backend/.env file and run script or make the changes directly in .env file it should work for you