Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Install plugin inside geoserver cloud #286

Open
turdusmerula opened this issue Nov 10, 2022 · 6 comments
Open

Install plugin inside geoserver cloud #286

turdusmerula opened this issue Nov 10, 2022 · 6 comments

Comments

@turdusmerula
Copy link

turdusmerula commented Nov 10, 2022

I need to add several plugins to my geoserver instance:

So far I don't quite understand how to add these plugins to the cloud version of geoserver. Can you provide a general way or some hints to integrate a plugin inside geoserver?
I think this is quite a duplica of #224 but the goal is to generalize plugin integration.

@MkLHX
Copy link
Contributor

MkLHX commented Nov 14, 2022

Hello, same for me i need to install https://docs.geoserver.org/maintain/en/user/extensions/importer/installing.html
There is a way to link WEB-INF/lib folder to host ?

@groldan
Copy link
Member

groldan commented Dec 26, 2022

@MkLHX the importer extension is already integrated, you just need to enable it.
In docker-compose.yml you can add the following env variable to the web-ui service:

webui:
    environment:
      WEBUI_IMPORTER_ENABLED: "true"

Or modify the geoserver.yml externalized configuration

geoserver:
  web-ui:
    extensions:
      importer.enabled: true

@groldan
Copy link
Member

groldan commented Dec 26, 2022

@turdusmerula gscloud requires each extension to be integrated explicitly through a spring-boot autoconfiguration. Just dropping a geoserver plugin to the classpath won't work because we don't do component scanning through applicationContext.xml, in order to be able to cherry picking exactly what to import to the spring application context and use externalized configuration.

If you have coding capabilities a pull request is always welcomed.
For NetCDF threre's already a ticket (#138 ) but no formal commitment to integrate it yet.

For Keycloak you can create a ticket labeled as feature. This (and any other additional authentication plugin) one is tricky, cause by one side I'd rather delegate authentication to the gateway instead of having to integrate all possible authentication mechanisms on all services, but on the other side I don't currently have the bandwith to work on that.

@MkLHX
Copy link
Contributor

MkLHX commented Jan 5, 2023

@MkLHX the importer extension is already integrated, you just need to enable it. In docker-compose.yml you can add the following env variable to the web-ui service:

webui:
    environment:
      WEBUI_IMPORTER_ENABLED: "true"

Or modify the geoserver.yml externalized configuration

geoserver:
  web-ui:
    extensions:
      importer.enabled: true

Thank you.

Where can i find the documentation about geoserver cloud environement variables list?

@MkLHX
Copy link
Contributor

MkLHX commented Mar 16, 2023

Hello, @groldan

I'm doing this message, just to be sure you got my question the last time:

Where can I find the documentation about the geoserver cloud environment variables list?

Because I need to install/activate the INSPIRE plugin, I don't know where to find the .env variable about this option.

@groldan
Copy link
Member

groldan commented Apr 25, 2023

it boils down to whatever config you have in the externalized configuration, see https://github.com/geoserver/geoserver-cloud-config/blob/master/geoserver.yml

given the way spring-boot config works, you can replace any of those config properties with environment variables (capitalizing them and replacing . by _), or through Java System Properties (no change in the name required here).

For some of them we use shorter placeholders (${placeholder[:<defaultValue>]}), for example in:

geotools:
  httpclient:
      http:
        host: ${http.proxyHost:}

you don't need to provide the full geotools.httpclient.http.host property name, but just http.proxyHost (or HTTP_PROXYHOST env variable)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants