Web Service Configuration
Introduction
The web service embeds and serves the static files for the Infinite Scale web client. See the ownCloud Web description for more details.
Note that clients will respond with a connection error if the web service is not available.
The web service also provides a minimal API for branding functionality like changing the logo shown.
Web UI Configuration
-
Single configuration settings of the embedded web UI can be defined via
WEB_OPTION_xxx
environment variables. -
A json based configuration file can be used via the
WEB_UI_CONFIG_FILE
environment variable. -
If a json based configuration file is used, these configurations take precedence over single options set.
Web UI Options
Beside theming, see below, the behavior of the web UI can be configured via options. Behavior customization can be achieved by setting environment variables. Look for environment variables starting with WEB_OPTION_xxx
for more details.
Web UI Config File
When defined via the WEB_UI_CONFIG_FILE
, the configuration of the web UI can be made with a json based file. See the link for examples.
Embedding Web
Web can be consumed by another application in a stripped-down version called “Embed mode”. This mode is supposed to be used in the context of selecting or sharing resources. For more details refer to the developer documentation ownCloud Web / Embed Mode. See the environment variables: WEB_OPTION_MODE
and WEB_OPTION_EMBED_TARGET
to configure the embedded mode.
Customize the Web UI Configuration
See the ownCloud Web with Custom Configuration documentation for details if you want:
-
Custom Compiled Web Assets
-
Extend Web UI With Apps
Custom Theming for the Web UI
See the ownCloud Web with Custom Theming for more details.
Configuration
Environment Variables
The web
service is configured via the following environment variables. Read the Environment Variable Types documentation for important details. Column IV
shows with which release the environment variable has been introduced.
Name | IV | Type | Default Value | Description |
---|---|---|---|---|
|
pre5.0 |
bool |
false |
Activates tracing. |
|
pre5.0 |
string |
|
The type of tracing. Defaults to '', which is the same as 'jaeger'. Allowed tracing types are 'jaeger' and '' as of now. |
|
pre5.0 |
string |
|
The endpoint of the tracing agent. |
|
pre5.0 |
string |
|
The HTTP endpoint for sending spans directly to a collector, i.e. http://jaeger-collector:14268/api/traces. Only used if the tracing endpoint is unset. |
|
pre5.0 |
string |
|
The log level. Valid values are: 'panic', 'fatal', 'error', 'warn', 'info', 'debug', 'trace'. |
|
pre5.0 |
bool |
false |
Activates pretty log output. |
|
pre5.0 |
bool |
false |
Activates colorized log output. |
|
pre5.0 |
string |
|
The path to the log file. Activates logging to this file if set. |
|
pre5.0 |
string |
127.0.0.1:9104 |
Bind address of the debug server, where metrics, health, config and debug endpoints will be exposed. |
|
pre5.0 |
string |
|
Token to secure the metrics endpoint. |
|
pre5.0 |
bool |
false |
Enables pprof, which can be used for profiling. |
|
pre5.0 |
bool |
false |
Enables zpages, which can be used for collecting and viewing in-memory traces. |
|
pre5.0 |
string |
127.0.0.1:9100 |
The bind address of the HTTP service. |
|
pre5.0 |
bool |
false |
Activates TLS for the http based services using the server certifcate and key configured via OCIS_HTTP_TLS_CERTIFICATE and OCIS_HTTP_TLS_KEY. If OCIS_HTTP_TLS_CERTIFICATE is not set a temporary server certificate is generated - to be used with PROXY_INSECURE_BACKEND=true. |
|
pre5.0 |
string |
|
Path/File name of the TLS server certificate (in PEM format) for the http services. |
|
pre5.0 |
string |
|
Path/File name for the TLS certificate key (in PEM format) for the server certificate to use for the http services. |
|
pre5.0 |
string |
/ |
Subdirectory that serves as the root for this HTTP service. |
|
pre5.0 |
int |
604800 |
Cache policy in seconds for ownCloud Web assets. |
|
pre5.0 |
[]string |
[https://localhost:9200] |
A list of allowed CORS origins. See following chapter for more details: Access-Control-Allow-Origin at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin. See the Environment Variable Types description for more details. |
|
pre5.0 |
[]string |
[OPTIONS HEAD GET PUT PATCH POST DELETE MKCOL PROPFIND PROPPATCH MOVE COPY REPORT SEARCH] |
A list of allowed CORS methods. See following chapter for more details: Access-Control-Request-Method at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Request-Method. See the Environment Variable Types description for more details. |
|
pre5.0 |
[]string |
[Origin Accept Content-Type Depth Authorization Ocs-Apirequest If-None-Match If-Match Destination Overwrite X-Request-Id X-Requested-With Tus-Resumable Tus-Checksum-Algorithm Upload-Concat Upload-Length Upload-Metadata Upload-Defer-Length Upload-Expires Upload-Checksum Upload-Offset X-HTTP-Method-Override] |
A list of allowed CORS headers. See following chapter for more details: Access-Control-Request-Headers at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Request-Headers. See the Environment Variable Types description for more details. |
|
pre5.0 |
bool |
false |
Allow credentials for CORS. See following chapter for more details: Access-Control-Allow-Credentials at https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials. |
|
6.0.0 |
string |
/var/lib/ocis/web/assets/core |
Serve ownCloud Web assets from a path on the filesystem instead of the builtin assets. If not defined, the root directory derives from $OCIS_BASE_DATA_PATH/web/assets/core |
|
6.0.0 |
string |
/var/lib/ocis/web/assets/themes |
Serve ownCloud themes from a path on the filesystem instead of the builtin assets. If not defined, the root directory derives from $OCIS_BASE_DATA_PATH/web/assets/themes |
|
6.0.0 |
string |
/var/lib/ocis/web/assets/apps |
Serve ownCloud Web apps assets from a path on the filesystem instead of the builtin assets. If not defined, the root directory derives from $OCIS_BASE_DATA_PATH/web/assets/apps |
|
pre5.0 |
string |
|
Read the ownCloud Web json based configuration from this path/file. The config file takes precedence over WEB_OPTION_xxx environment variables. See the text description for more details. |
|
pre5.0 |
string |
https://localhost:9200 |
Base URL to load themes from. Will be prepended to the theme path. |
|
pre5.0 |
string |
/themes/owncloud/theme.json |
Path to the theme json file. Will be appended to the URL of the theme server. |
|
pre5.0 |
string |
https://localhost:9200 |
URL, where the oCIS APIs are reachable for ownCloud Web. |
|
pre5.0 |
string |
https://localhost:9200/.well-known/openid-configuration |
URL for the OIDC well-known configuration endpoint. Defaults to the oCIS API URL + '/.well-known/openid-configuration'. |
|
pre5.0 |
string |
https://localhost:9200 |
URL of the OIDC issuer. It defaults to URL of the builtin IDP. |
|
pre5.0 |
string |
web |
The OIDC client ID which ownCloud Web uses. This client needs to be set up in your IDP. Note that this setting has no effect when using the builtin IDP. |
|
pre5.0 |
string |
code |
The OIDC response type to use for authentication. |
|
pre5.0 |
string |
openid profile email |
OIDC scopes to request during authentication to authorize access to user details. Defaults to 'openid profile email'. Values are separated by blank. More example values but not limited to are 'address' or 'phone' etc. |
|
pre5.0 |
string |
|
This value needs to point to a valid and reachable web page. The web client will trigger a redirect to that page directly after the logout action. The default value is empty and redirects to the login page. |
|
pre5.0 |
bool |
false |
Configures whether apps and extensions should generally open in a new tab. Defaults to false. |
|
pre5.0 |
bool |
false |
Set this option to 'true' to disable the feedback link in the top bar. Keeping it enabled by setting the value to 'false' or with the absence of the option, allows ownCloud to get feedback from your user base through a dedicated survey website. |
|
pre5.0 |
bool |
false |
Set this option to 'true' if running on an EOS storage backend (https://eos-web.web.cern.ch/eos-web/) to enable its specific features. Defaults to 'false'. |
|
pre5.0 |
bool |
true |
Specifies whether the 'Read more' link should be displayed or not. |
|
pre5.0 |
string |
|
Adds a link to the user’s profile page to point him to an external page, where he can manage his session and devices. This is helpful when an external IdP is used. This option is disabled by default. |
|
5.0 |
string |
|
Specifies the target URL to the login page. This is helpful when an external IdP is used. This option is disabled by default. Example URL like: https://www.myidp.com/login. |
|
pre5.0 |
bool |
true |
Specifies whether the access token will be stored in the local storage when set to 'true' or in the session storage when set to 'false'. If stored in the local storage, login state will be persisted across multiple browser tabs, means no additional logins are required. |
|
5.0 |
[]string |
[] |
A list to disable specific Web extensions identified by their ID. The ID can e.g. be taken from the 'index.ts' file of the web extension. Example: 'com.github.owncloud.web.files.search,com.github.owncloud.web.files.print'. See the Environment Variable Types description for more details. |
|
5.0 |
string |
|
Defines whether Web should be running in 'embed' mode. Setting this to 'true' will enable a stripped down version of Web with reduced functionality used to integrate Web into other applications like via iFrame. Setting it to 'false' or not setting it (default) will run Web as usual with all functionality enabled. See the text description for more details. |
|
5.0 |
string |
|
Defines how Web is being integrated when running in 'embed' mode. Currently, the only supported options are '' (empty) and 'location'. With '' which is the default, Web will run regular as defined via the 'embed.enabled' config option. With 'location', Web will run embedded as location picker. Resource selection will be disabled and the selected resources array always includes the current folder as the only item. See the text description for more details. |
|
5.0 |
string |
|
Defines a URL under which Web can be integrated via iFrame in 'embed' mode. Note that setting this is mandatory when running Web in 'embed' mode. Use '*' as value to allow running the iFrame under any URL, although this is not recommended for security reasons. See the text description for more details. |
|
5.0 |
bool |
false |
Defines whether Web should require authentication to be done by the parent application when running in 'embed' mode. If set to 'true' Web will not try to authenticate the user on its own but will require an access token coming from the parent application. Defaults to being unset. |
|
5.0 |
string |
|
Defines the host to validate the message event origin against when running Web in 'embed' mode with delegated authentication. Defaults to event message origin validation being omitted, which is only recommended for development setups. |
|
5.0 |
bool |
false |
Defines whether one or more filters must be set in order to list users in the Web admin settings. Set this option to 'true' if running in an environment with a lot of users and listing all users could slow down performance. Defaults to 'false'. |
|
5.0 |
int |
0 |
Defines the maximum number of concurrent requests per file/folder/space batch action. Defaults to 4. |
|
5.0 |
int |
0 |
Defines the maximum number of concurrent requests in SSE event handlers. Defaults to 4. |
|
5.0 |
int |
0 |
Defines the maximum number of concurrent requests per sharing invite batch. Defaults to 4. |
|
5.0 |
int |
0 |
Defines the maximum number of concurrent requests when loading individual share information inside listings. Defaults to 2. |
|
pre5.0 |
string |
|
The secret to mint and validate jwt tokens. |
|
pre5.0 |
string |
com.owncloud.api.gateway |
The bind address of the GRPC service. |
YAML Example
-
Note the file shown below must be renamed and placed in the correct folder according to the Configuration File Naming conventions to be effective.
-
See the Notes for Environment Variables if you want to use environment variables in the yaml file.
# Autogenerated
# Filename: web-config-example.yaml
tracing:
enabled: false
type: ""
endpoint: ""
collector: ""
log:
level: ""
pretty: false
color: false
file: ""
debug:
addr: 127.0.0.1:9104
token: ""
pprof: false
zpages: false
http:
addr: 127.0.0.1:9100
tls:
enabled: false
cert: ""
key: ""
root: /
cache_ttl: 604800
cors:
allow_origins:
- https://localhost:9200
allow_methods:
- OPTIONS
- HEAD
- GET
- PUT
- PATCH
- POST
- DELETE
- MKCOL
- PROPFIND
- PROPPATCH
- MOVE
- COPY
- REPORT
- SEARCH
allow_headers:
- Origin
- Accept
- Content-Type
- Depth
- Authorization
- Ocs-Apirequest
- If-None-Match
- If-Match
- Destination
- Overwrite
- X-Request-Id
- X-Requested-With
- Tus-Resumable
- Tus-Checksum-Algorithm
- Upload-Concat
- Upload-Length
- Upload-Metadata
- Upload-Defer-Length
- Upload-Expires
- Upload-Checksum
- Upload-Offset
- X-HTTP-Method-Override
allow_credentials: false
asset:
core_path: /var/lib/ocis/web/assets/core
themes_path: /var/lib/ocis/web/assets/themes
apps_path: /var/lib/ocis/web/assets/apps
file: ""
web:
theme_server: https://localhost:9200
theme_path: /themes/owncloud/theme.json
config:
server: https://localhost:9200
oidc:
metadata_url: https://localhost:9200/.well-known/openid-configuration
authority: https://localhost:9200
client_id: web
response_type: code
scope: openid profile email
post_logout_redirect_uri: ""
apps:
- files
- search
- text-editor
- pdf-viewer
- external
- admin-settings
- epub-reader
- preview
- app-store
applications: []
external_apps: []
options:
openAppsInTab: false
accountEditLink: null
disableFeedbackLink: false
feedbackLink: null
runningOnEos: false
cernFeatures: false
upload: null
editor: null
contextHelpersReadMore: true
logoutUrl: ""
loginUrl: ""
tokenStorageLocal: true
disabledExtensions: []
embed:
enabled: ""
target: ""
messagesOrigin: ""
delegateAuthentication: false
delegateAuthenticationOrigin: ""
userListRequiresFilter: false
concurrentRequests:
resourceBatchActions: 0
sse: 0
shares:
create: 0
list: 0
styles: []
scripts: []
custom_translations: []
apps: {}
token_manager:
jwt_secret: ""
gateway_addr: com.owncloud.api.gateway