From 3115192c33c28d34b5a9011ad63de2eee7a8e5a5 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Fri, 14 Nov 2025 21:43:15 +0100 Subject: [PATCH 1/4] fix: trailing slashes and locale config --- docusaurus.config.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index b8b9180e..db6d2cee 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -9,6 +9,7 @@ const config: Config = { title: 'OpenCloud Docs', tagline: 'Excellent file sharing', favicon: 'img/oc-favicon.svg', + trailingSlash: false, // Set the production url of your site here url: 'https://docs.opencloud.eu', @@ -30,6 +31,14 @@ const config: Config = { i18n: { defaultLocale: 'en', locales: ['en', 'de'], + localeConfigs: { + en: { + htmlLang: 'en-GB', // or 'en-US' + }, + de: { + htmlLang: 'de-DE', + }, + }, }, presets: [ From c90e5543e6a64f0ece7370b741c0653ff3c5483d Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Fri, 14 Nov 2025 21:55:07 +0100 Subject: [PATCH 2/4] Apply suggestions from code review Co-authored-by: Alex --- docusaurus.config.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docusaurus.config.ts b/docusaurus.config.ts index db6d2cee..5095fe61 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -33,9 +33,11 @@ const config: Config = { locales: ['en', 'de'], localeConfigs: { en: { + label: 'English', htmlLang: 'en-GB', // or 'en-US' }, de: { + label: 'Deutsch', htmlLang: 'de-DE', }, }, From e3925052c2375a01136c6cf7515d7b1bd40b68e0 Mon Sep 17 00:00:00 2001 From: Alexander Ackermann Date: Fri, 14 Nov 2025 23:13:29 +0100 Subject: [PATCH 3/4] rewrite links to static --- .../index.md | 4 ++-- .../keycloak.md | 4 ++-- .../configuration/storage/decomposeds3.md | 2 +- .../docker-compose/docker-compose-base.md | 2 +- .../admin/getting-started/container/docker.md | 2 +- .../admin/getting-started/other/bare-metal.md | 2 +- docs/admin/maintenance/upgrade/upgrade.md | 2 +- docs/dev/server/apis/http/authorization.md | 2 +- docs/dev/server/apis/http/graph/index.md | 2 +- docs/dev/server/apis/http/webdav/index.md | 2 +- docs/dev/server/apis/index.md | 6 +++--- .../dev/server/configuration/config-system.md | 2 +- docs/dev/web/development/conventions.md | 2 +- docs/dev/web/development/repo-structure.md | 8 ++++---- .../extension-types/action-extensions.md | 2 +- .../app-menu-item-extensions.md | 2 +- .../custom-component-extensions.md | 2 +- .../extension-types/folder-view-extensions.md | 2 +- .../left-sidebar-menu-item-extensions.md | 2 +- .../right-sidebar-panel-extensions.md | 2 +- .../extension-types/search-extensions.md | 2 +- docs/dev/web/extension-system/index.md | 18 ++++++++--------- .../extension-system/viewer-editor-apps.md | 4 ++-- docs/dev/web/getting-started.md | 4 ++-- docs/dev/web/index.md | 2 +- docs/dev/web/testing/running-tests.md | 4 ++-- docs/user/admin/web-dav.md | 4 ++-- docs/user/desktop-client/multiple-accounts.md | 2 +- docs/user/intro.md | 20 +++++++++---------- docs/user/sharing/file-drop.md | 2 +- static/partials/service-overview.md | 2 +- 31 files changed, 59 insertions(+), 59 deletions(-) diff --git a/docs/admin/configuration/authentication-and-user-management/index.md b/docs/admin/configuration/authentication-and-user-management/index.md index 9944e0cb..8c271154 100644 --- a/docs/admin/configuration/authentication-and-user-management/index.md +++ b/docs/admin/configuration/authentication-and-user-management/index.md @@ -53,7 +53,7 @@ OpenCloud now supports two authentication modes when using Keycloak with LDAP: In this mode, LDAP serves as a central user directory for both Keycloak and OpenCloud. This setup is suitable for scenarios where the LDAP server is not under the control of the OpenCloud admin and can be connected to KeyCloak and OpenCloud using standard attributes and a read-only bind user. -For detailed configuration and setup instructions, see the [Keycloak Shared User Directory](./keycloak#shared-user-directory-mode) guide. +For detailed configuration and setup instructions, see the [Keycloak Shared User Directory](/docs/admin/configuration/authentication-and-user-management/keycloak#shared-user-directory-mode) guide. ### Autoprovisioning Mode @@ -61,4 +61,4 @@ In this mode, Keycloak is holding all users and OpenCloud autoprovisions new use This mode is suitable in scenarios where the OpenIDConnect provider is external and not under control of the OpenCloud admin. To mitigate that lack of control, OpenCloud will use an LDAP server which is fully under the control of the OpenCloud admin to store the users and groups and additional attributes. OpenCloud can disable users for login to actively prevent unwanted access to the system when the workflow with the external Identity Provider is slow or indirect. In this case, the LDAP server needs an OpenCloud Schema and write access for the LDAP bind user. -For detailed configuration and setup instructions, see the [Keycloak with Autoprovisioning](./keycloak#autoprovisioning-mode) guide. +For detailed configuration and setup instructions, see the [Keycloak with Autoprovisioning](/docs/admin/configuration/authentication-and-user-management/keycloak#autoprovisioning-mode) guide. diff --git a/docs/admin/configuration/authentication-and-user-management/keycloak.md b/docs/admin/configuration/authentication-and-user-management/keycloak.md index dbf3d020..173f2f9e 100644 --- a/docs/admin/configuration/authentication-and-user-management/keycloak.md +++ b/docs/admin/configuration/authentication-and-user-management/keycloak.md @@ -38,11 +38,11 @@ GRAPH_USERNAME_MATCH=none OC_EXCLUDE_RUN_SERVICES=idp,idm # it is not supported to run keycloak with the built-in idm ``` -Look [OpenCloud external IDP configuration](./external-idp.md#opencloud-configuration) for some more details about these settings. +Look [OpenCloud external IDP configuration](/docs/admin/configuration/authentication-and-user-management/external-idp#opencloud-configuration) for some more details about these settings. ### Client Configuration -The [OIDC clients](./external-idp.md#client-configuration) required by OpenCloud are pre-configured in the Docker Compose setup and match the clients used by the built-in IdP. +The [OIDC clients](/docs/admin/configuration/authentication-and-user-management/external-idp#client-configuration) required by OpenCloud are pre-configured in the Docker Compose setup and match the clients used by the built-in IdP. ### Manual Client Configuration diff --git a/docs/admin/configuration/storage/decomposeds3.md b/docs/admin/configuration/storage/decomposeds3.md index 5d366f4b..b73c1a61 100644 --- a/docs/admin/configuration/storage/decomposeds3.md +++ b/docs/admin/configuration/storage/decomposeds3.md @@ -81,4 +81,4 @@ After logging in, you should see the OpenCloud interface: If you run into any issues or errors, check the following resource: -- [Common Issues & Help](../../resources/common-issues.md) +- [Common Issues & Help](/docs/admin/resources/common-issues) diff --git a/docs/admin/getting-started/container/docker-compose/docker-compose-base.md b/docs/admin/getting-started/container/docker-compose/docker-compose-base.md index 81e043e3..451502fe 100644 --- a/docs/admin/getting-started/container/docker-compose/docker-compose-base.md +++ b/docs/admin/getting-started/container/docker-compose/docker-compose-base.md @@ -271,4 +271,4 @@ Password: (your password) ## Troubleshooting -If you encounter any issues, check the [Common Issues & Help](./../../../resources/common-issues.md) +If you encounter any issues, check the [Common Issues & Help](/docs/admin/resources/common-issues) diff --git a/docs/admin/getting-started/container/docker.md b/docs/admin/getting-started/container/docker.md index 70b15e40..11cfcff8 100644 --- a/docs/admin/getting-started/container/docker.md +++ b/docs/admin/getting-started/container/docker.md @@ -76,4 +76,4 @@ Your OpenCloud server is now running and ready to use 🚀 If you encounter any issues or errors, try finding a solution here: -- [Common Issues & Help](./../../resources/common-issues.md) +- [Common Issues & Help](/docs/admin/resources/common-issues) diff --git a/docs/admin/getting-started/other/bare-metal.md b/docs/admin/getting-started/other/bare-metal.md index 0604a942..4870057f 100644 --- a/docs/admin/getting-started/other/bare-metal.md +++ b/docs/admin/getting-started/other/bare-metal.md @@ -122,4 +122,4 @@ Your OpenCloud server is now running and ready to use 🚀 If you encounter any issues or errors, try finding a solution here -- [Common Issues & Help](./../../resources/common-issues.md) +- [Common Issues & Help](/docs/admin/resources/common-issues) diff --git a/docs/admin/maintenance/upgrade/upgrade.md b/docs/admin/maintenance/upgrade/upgrade.md index 6743c31a..d16fa90b 100644 --- a/docs/admin/maintenance/upgrade/upgrade.md +++ b/docs/admin/maintenance/upgrade/upgrade.md @@ -32,7 +32,7 @@ Stop the currently running OpenCloud instance: ## Backup Config and Data -It is recommended to create a [backup](../backup.md) before proceeding with the upgrade. +It is recommended to create a [backup](/docs/admin/maintenance/backup) before proceeding with the upgrade. ## Pull the new Opencloud version diff --git a/docs/dev/server/apis/http/authorization.md b/docs/dev/server/apis/http/authorization.md index 366042ce..c1da13f1 100644 --- a/docs/dev/server/apis/http/authorization.md +++ b/docs/dev/server/apis/http/authorization.md @@ -9,7 +9,7 @@ In its default configuration, OpenCloud supports three authentication methods as 2. Implicit Flow 3. Hybrid Flow -For detailed information on OpenCloud's support for OpenID Connect (OIDC), please consult the [Official Documentation](../../../../admin/configuration/authentication-and-user-management). +For detailed information on OpenCloud's support for OpenID Connect (OIDC), please consult the [Official Documentation](/docs/admin/configuration/authentication-and-user-management). While selecting an OpenCloud client for authentication, take note of specific limitations such as the `Redirect URI`: diff --git a/docs/dev/server/apis/http/graph/index.md b/docs/dev/server/apis/http/graph/index.md index 6f57eb89..07e6adf1 100644 --- a/docs/dev/server/apis/http/graph/index.md +++ b/docs/dev/server/apis/http/graph/index.md @@ -59,7 +59,7 @@ For more information about OData query options please check the [API specificati ### Authorization -For development purposes the examples in the developer documentation use Basic Auth. It is disabled by default and should only be enabled by setting `PROXY_ENABLE_BASIC_AUTH` in [the proxy](../../../services/proxy/environment-variables) for development or test instances. +For development purposes the examples in the developer documentation use Basic Auth. It is disabled by default and should only be enabled by setting `PROXY_ENABLE_BASIC_AUTH` in [the proxy](/docs/dev/server/services/proxy/environment-variables) for development or test instances. To authenticate with a Bearer token or OpenID Connect access token replace the `-u user:password` Basic Auth option of curl with a `-H 'Authorization: Bearer '` header. A `` can be obtained by copying it from a request in the browser, although it will time out within minutes. To automatically refresh the OpenID Connect access token an ssh-agent like solution like [oidc-agent](https://github.com/indigo-dc/oidc-agent) should be used. The graph endpoints that support a preconfigured token can be found in the [API specification](https://github.com/opencloud-eu/libre-graph-api) diff --git a/docs/dev/server/apis/http/webdav/index.md b/docs/dev/server/apis/http/webdav/index.md index e7de9bbd..002611e8 100644 --- a/docs/dev/server/apis/http/webdav/index.md +++ b/docs/dev/server/apis/http/webdav/index.md @@ -69,7 +69,7 @@ The WebDAV protocol was created before the REST paradigm has become the de-facto ### Authentication -For development purposes the examples in the developer documentation use Basic Auth. It is disabled by default and should only be enabled by setting `PROXY_ENABLE_BASIC_AUTH` in [the proxy](../../../services/proxy/environment-variables) for development or test instances. +For development purposes the examples in the developer documentation use Basic Auth. It is disabled by default and should only be enabled by setting `PROXY_ENABLE_BASIC_AUTH` in [the proxy](/docs/dev/server/services/proxy/environment-variables) for development or test instances. To authenticate with a Bearer token or OpenID Connect access token replace the `-u user:password` Basic Auth option of curl with a `-H 'Authorization: Bearer '` header. A `` can be obtained by copying it from a request in the browser, although it will time out within minutes. To automatically refresh the OpenID Connect access token an ssh-agent like solution like [oidc-agent](https://github.com/indigo-dc/oidc-agent) should be used. diff --git a/docs/dev/server/apis/index.md b/docs/dev/server/apis/index.md index 93dd5ced..a3e8a3a6 100644 --- a/docs/dev/server/apis/index.md +++ b/docs/dev/server/apis/index.md @@ -5,7 +5,7 @@ sidebar_position: 1 OpenCloud provides a large set of different **application programming interfaces (APIs)**. OpenCloud is built by microservices. That means many calls to "functions" in the code are remote calls. -Basically we have two different API "universes": [HTTP](http) and [gRPC](grpc_apis). +Basically we have two different API "universes": [HTTP](/docs/dev/server/apis/http) and [gRPC](/docs/dev/server/apis/grpc_apis). | HTTP | gRPC | | -------------------------------- | -------------------------------- | @@ -15,7 +15,7 @@ For inter-service-communication we are using mostly gRPC calls because it has so ![OpenCloud APIs Architecture](/img/oc-apis.drawio.svg) -## [HTTP](http) +## [HTTP](/docs/dev/server/apis/http) HTTP APIs are mostly used for client < > server communication. Modern applications are embracing a [RESTful](https://en.wikipedia.org/wiki/Representational_state_transfer) software architecture style. REST APIs are using the HTTP protocol to transfer data between clients and servers. All our clients talk to the Server using HTTP APIs. This has legacy reasons and is well-supported across many platforms and technologies. OpenCloud uses an HTTP API gateway (proxy service) to route client requests to the correct service. @@ -27,7 +27,7 @@ It is best practise to define APIs and their behavior by a spec. We are using th Some APIs have become a de facto standard and are additionally covered by an [RFC](https://en.wikipedia.org/wiki/Request_for_Comments). -## [gRPC](grpc_apis) +## [gRPC](/docs/dev/server/apis/grpc_apis) In gRPC, a client application can directly call methods on a server application on a different machine as if it was a local object. This makes it easier to create distributed applications based on microservices. In gRPC we can define a service and specify the methods that can be called remotely. A gRPC client has a stub that provides the same methods and types as the server. OpenCloud uses a gRPC API Gateway (gateway service) to route the requests to the correct service. diff --git a/docs/dev/server/configuration/config-system.md b/docs/dev/server/configuration/config-system.md index bba80e64..35a1db03 100644 --- a/docs/dev/server/configuration/config-system.md +++ b/docs/dev/server/configuration/config-system.md @@ -128,4 +128,4 @@ Environment variables take precedence over both `opencloud.yaml` and `` element. This is necessary when an action should be performed when clicking the menu item (e.g. opening a file editor). diff --git a/docs/dev/web/extension-system/extension-types/custom-component-extensions.md b/docs/dev/web/extension-system/extension-types/custom-component-extensions.md index ce347a09..26af1054 100644 --- a/docs/dev/web/extension-system/extension-types/custom-component-extensions.md +++ b/docs/dev/web/extension-system/extension-types/custom-component-extensions.md @@ -23,7 +23,7 @@ interface CustomComponentExtension { } ``` -For `id`, `type`, and `extensionPointIds`, please see [extension base section](./../#extension-base-configuration) in the top level docs. +For `id`, `type`, and `extensionPointIds`, please see [extension base section](/docs/dev/web/extension-system#extension-base-configuration) in the top level docs. The `content` property specifies a render function or a Component for the target extension point. diff --git a/docs/dev/web/extension-system/extension-types/folder-view-extensions.md b/docs/dev/web/extension-system/extension-types/folder-view-extensions.md index dfe8a633..c0233601 100644 --- a/docs/dev/web/extension-system/extension-types/folder-view-extensions.md +++ b/docs/dev/web/extension-system/extension-types/folder-view-extensions.md @@ -21,7 +21,7 @@ interface FolderViewExtension { } ``` -For `id`, `type`, and `extensionPointIds`, please see [extension base section](./../#extension-base-configuration) in the top level docs. +For `id`, `type`, and `extensionPointIds`, please see [extension base section](/docs/dev/web/extension-system#extension-base-configuration) in the top level docs. #### FolderView diff --git a/docs/dev/web/extension-system/extension-types/left-sidebar-menu-item-extensions.md b/docs/dev/web/extension-system/extension-types/left-sidebar-menu-item-extensions.md index 51decea2..818de4e7 100644 --- a/docs/dev/web/extension-system/extension-types/left-sidebar-menu-item-extensions.md +++ b/docs/dev/web/extension-system/extension-types/left-sidebar-menu-item-extensions.md @@ -23,7 +23,7 @@ interface SidebarNavExtension { } ``` -For `id`, `type`, and `extensionPointIds`, please see [extension base section](./../#extension-base-configuration) in the top level docs. +For `id`, `type`, and `extensionPointIds`, please see [extension base section](/docs/dev/web/extension-system#extension-base-configuration) in the top level docs. #### AppNavigationItem diff --git a/docs/dev/web/extension-system/extension-types/right-sidebar-panel-extensions.md b/docs/dev/web/extension-system/extension-types/right-sidebar-panel-extensions.md index cb0a6974..21ea1b53 100644 --- a/docs/dev/web/extension-system/extension-types/right-sidebar-panel-extensions.md +++ b/docs/dev/web/extension-system/extension-types/right-sidebar-panel-extensions.md @@ -28,7 +28,7 @@ interface SidebarPanelExtension } ``` -For `id`, `type`, and `extensionPointIds`, please see [extension base section](./../#extension-base-configuration) in the top level docs. +For `id`, `type`, and `extensionPointIds`, please see [extension base section](/docs/dev/web/extension-system#extension-base-configuration) in the top level docs. The `panel` object configures the actual sidebar panel. It consists of different properties and functions, where all the functions get called with a `SideBarPanelContext` entity from the integrating extension points. diff --git a/docs/dev/web/extension-system/extension-types/search-extensions.md b/docs/dev/web/extension-system/extension-types/search-extensions.md index cd395166..978a487a 100644 --- a/docs/dev/web/extension-system/extension-types/search-extensions.md +++ b/docs/dev/web/extension-system/extension-types/search-extensions.md @@ -28,7 +28,7 @@ interface SearchExtension { } ``` -For `id`, `type`, and `extensionPointIds`, please see [extension base section](./../#extension-base-configuration) in the top level docs. +For `id`, `type`, and `extensionPointIds`, please see [extension base section](/docs/dev/web/extension-system#extension-base-configuration) in the top level docs. The `searchProvider` object configures the actual provider. It consist of the following: diff --git a/docs/dev/web/extension-system/index.md b/docs/dev/web/extension-system/index.md index 145f4fe0..43e2db37 100644 --- a/docs/dev/web/extension-system/index.md +++ b/docs/dev/web/extension-system/index.md @@ -84,9 +84,9 @@ By defining an application via `defineWebApplication` you can provide the follow #### Creating a new app -Please check out the [web-app-skeleton repository](https://github.com/opencloud-eu/web-app-skeleton) for a boilerplate application to get started with your own application. In addition to that, if you want to learn how to implement an app for viewing and editing specific file types, please consult the [relevant documentation](./viewer-editor-apps.md) for detailed instructions and guidance. +Please check out the [web-app-skeleton repository](https://github.com/opencloud-eu/web-app-skeleton) for a boilerplate application to get started with your own application. In addition to that, if you want to learn how to implement an app for viewing and editing specific file types, please consult the [relevant documentation](/docs/dev/web/extension-system/viewer-editor-apps) for detailed instructions and guidance. -To learn how to integrate an app into OpenCloud Web, please refer to the [Web Application admin docs](./../../../admin/configuration/web-applications). +To learn how to integrate an app into OpenCloud Web, please refer to the [Web Application admin docs](/docs/admin/configuration/web-applications). ### Extensions @@ -105,15 +105,15 @@ and most prominently also in the `files` app we have defined some extension poin For building an extension you can choose from the types predefined by the OpenCloud Web extension system. See the full list of available extension types below. 1. `ActionExtension` (type `action`) - An extension that can register `Action` items which then get shown in various places (e.g. context menus, batch actions), depending on the - extension points referenced in the extension respectively. Most commonly used for file and folder actions (e.g. copy, rename, delete, etc.). For details, please refer to the [action docs](./extension-types/action-extensions.md) -2. `SearchExtension` (type `search`) - An extension that can register additional search providers. For details, please refer to the [search docs](./extension-types/search-extensions.md). + extension points referenced in the extension respectively. Most commonly used for file and folder actions (e.g. copy, rename, delete, etc.). For details, please refer to the [action docs](/docs/dev/web/extension-system/extension-types/action-extensions) +2. `SearchExtension` (type `search`) - An extension that can register additional search providers. For details, please refer to the [search docs](/docs/dev/web/extension-system/extension-types/search-extensions). 3. `SidebarNavExtension` (type `sidebarNav`) - An extension that can register additional navigation items for the left sidebar. These can be scoped to specific apps, and programmatically enabled/disabled. - For details, please refer to the [sidebar nav docs](./extension-types/left-sidebar-menu-item-extensions.md). -4. `SidebarPanelExtension`, (type `sidebarPanel`) - An extension that can register panels for the right sidebar. For details, please refer to the [sidebar panel docs](./extension-types/right-sidebar-panel-extensions.md). + For details, please refer to the [sidebar nav docs](/docs/dev/web/extension-system/extension-types/left-sidebar-menu-item-extensions). +4. `SidebarPanelExtension`, (type `sidebarPanel`) - An extension that can register panels for the right sidebar. For details, please refer to the [sidebar panel docs](/docs/dev/web/extension-system/extension-types/right-sidebar-panel-extensions). 5. `FolderViewExtension` (type `folderView`) - An extension that can register additional ways of displaying the content of a folder (resources like spaces, folders or files) to the user. - For details, please refer to the [folder view docs](./extension-types/folder-view-extensions.md). + For details, please refer to the [folder view docs](/docs/dev/web/extension-system/extension-types/folder-view-extensions). 6. `CustomComponentExtension` (type `customComponent`) - An extension that can register a custom component for a render target. For details, please refer to the - [custom component docs](./extension-types/custom-component-extensions.md) + [custom component docs](/docs/dev/web/extension-system/extension-types/custom-component-extensions) You're free to introduce your own extension types within your application code and use the extension registry to query the available ones. However, if you have the impression that an important extension type is missing and would be beneficial for the platform, please reach out to us by opening a [GitHub issue](https://github.com/opencloud-eu/web/issues/new/choose). @@ -163,7 +163,7 @@ The user can then select one out of all the extensions which have been registere #### Creating a new extension -Please check out the [web-app-skeleton repository](https://github.com/opencloud-eu/web-app-skeleton) for a boilerplate application that also includes an extension. In addition to that, the [extension types docs](./extension-types) provide instructions and examples on how to implement the different extension types. +Please check out the [web-app-skeleton repository](https://github.com/opencloud-eu/web-app-skeleton) for a boilerplate application that also includes an extension. In addition to that, the [extension types docs](/docs/dev/web/extension-system/extension-types) provide instructions and examples on how to implement the different extension types. ### Helpful packages diff --git a/docs/dev/web/extension-system/viewer-editor-apps.md b/docs/dev/web/extension-system/viewer-editor-apps.md index 4548ced6..4c5a780a 100644 --- a/docs/dev/web/extension-system/viewer-editor-apps.md +++ b/docs/dev/web/extension-system/viewer-editor-apps.md @@ -15,11 +15,11 @@ An app is essentially a distinct package that must be specified as an external a The structure of an app is quite simple and straightforward. Consider, for example, the [pdf-viewer app](https://github.com/opencloud-eu/web/tree/main/packages/web-app-pdf-viewer). It consists of a `package.json` file, a `src` directory containing all the source code, and a `l10n` directory for translations. Optionally, you may also include a `tests` directory if your application requires testing. -To learn more about apps in general, please refer to the [Web app docs](./index.md). +To learn more about apps in general, please refer to the [Web app docs](/docs/dev/web/extension-system). ### App setup -Inside the `src` folder you will need an `index.ts` file that sets up the app so it can be registered by the Web runtime. It follows the basic structure as described in [the apps section](./index.md), so it may look like this: +Inside the `src` folder you will need an `index.ts` file that sets up the app so it can be registered by the Web runtime. It follows the basic structure as described in [the apps section](/docs/dev/web/extension-system), so it may look like this: ```typescript import { AppWrapperRoute, defineWebApplication, AppMenuItemExtension } from '@opencloud-eu/web-pkg'; diff --git a/docs/dev/web/getting-started.md b/docs/dev/web/getting-started.md index f3af4cf3..f0d9517b 100644 --- a/docs/dev/web/getting-started.md +++ b/docs/dev/web/getting-started.md @@ -9,7 +9,7 @@ The source code is hosted at [https://github.com/opencloud-eu/web](https://githu ## Installation -To install and setup the Web client on your local machine, please refer to the [development setup docs](./development/tooling.md#development-setup). +To install and setup the Web client on your local machine, please refer to the [development setup docs](/docs/dev/web/development/tooling#development-setup). ## Configuration @@ -93,7 +93,7 @@ Additional CSS files to further customize the user experience and adapt it to yo Additional JavaScript files to further customize the user experience and adapt it to your specific needs. Expects an array of objects that specify a `src` attribute, pointing to the path/URL of your script, and an optional `async` attribute (defaults to false), like `[{ "src": "js/custom.js", "async": true }]`. :::note -Check out the [extension system docs](./extension-system) for a more convenient way to add functionality to the Web client. +Check out the [extension system docs](/docs/dev/web/extension-system) for a more convenient way to add functionality to the Web client. ::: ### `sentry` diff --git a/docs/dev/web/index.md b/docs/dev/web/index.md index c29fad6e..48418379 100644 --- a/docs/dev/web/index.md +++ b/docs/dev/web/index.md @@ -3,4 +3,4 @@ title: 'Web UI' --- This is the next generation OpenCloud frontend. -If you're new here, head over to the the [getting started guide](./getting-started.md) for a quick introduction. +If you're new here, head over to the the [getting started guide](/docs/dev/web/getting-started) for a quick introduction. diff --git a/docs/dev/web/testing/running-tests.md b/docs/dev/web/testing/running-tests.md index 540ac86f..11368758 100644 --- a/docs/dev/web/testing/running-tests.md +++ b/docs/dev/web/testing/running-tests.md @@ -8,7 +8,7 @@ id: running-tests In order to allow us to make changes quickly, often and with a high level of confidence, we heavily rely on tests within the `web` repository. -This section assumes you have the Web development stack up and running. Please check out the [development setup docs](./../development/tooling.md#development-setup) if you haven't. +This section assumes you have the Web development stack up and running. Please check out the [development setup docs](/docs/dev/web/development/tooling#development-setup) if you haven't. ### Unit Tests @@ -122,7 +122,7 @@ We can run some of the e2e tests on OpenCloud setup with Keycloak as an external #### Run OpenCloud With Keycloak -There's a documentation to serve [OpenCloud with Keycloak](./../../../admin/configuration/authentication-and-user-management/keycloak). Please follow each step to run **OpenCloud with Keycloak**. +There's a documentation to serve [OpenCloud with Keycloak](/docs/admin/configuration/authentication-and-user-management/keycloak). Please follow each step to run **OpenCloud with Keycloak**. #### Run E2E Tests diff --git a/docs/user/admin/web-dav.md b/docs/user/admin/web-dav.md index 554ee588..cb7bb15e 100644 --- a/docs/user/admin/web-dav.md +++ b/docs/user/admin/web-dav.md @@ -16,7 +16,7 @@ With WebDAV, you can connect OpenCloud Spaces and Folders as network drives on y - Access to a resource in OpenCloud, either a Space, a Folder or the root of your account - A WebDAV client (e.g. built-in OS support or [Mountain Duck](https://mountainduck.io/)) - (Optional but recommended) An App Token - → [How to create an App Token](./app-tokens.md) + → [How to create an App Token](/docs/user/admin/app-tokens) ## Step-by-Step Guide @@ -40,7 +40,7 @@ We recommend using an App Token instead of your password for better security. - Go to Settings > App Tokens - Click "+ New", give it a name, and set an expiration date - Copy the token immediately – it will only be shown once - → [See App Token Guide](./app-tokens.md) + → [See App Token Guide](/docs/user/admin/app-tokens) ### Get the WebDAV URL diff --git a/docs/user/desktop-client/multiple-accounts.md b/docs/user/desktop-client/multiple-accounts.md index 10a49008..9f91384e 100644 --- a/docs/user/desktop-client/multiple-accounts.md +++ b/docs/user/desktop-client/multiple-accounts.md @@ -17,7 +17,7 @@ You can synchronize multiple accounts from different OpenCloud servers to your l Add accounts -- Follow the [standard setup process](./set-up): +- Follow the [standard setup process](/docs/user/desktop-client/set-up): - Enter the server URL - Log in with your credentials - Authorize access diff --git a/docs/user/intro.md b/docs/user/intro.md index e4b35ed6..5dd05a2f 100644 --- a/docs/user/intro.md +++ b/docs/user/intro.md @@ -25,39 +25,39 @@ technical problems flexibly yourself and to be able to answer frequently asked q ## Table of contents -### [User Interface and Navigation](./general) +### [User Interface and Navigation](/docs/user/general) Here you will find general information about account settings, customizations and view modes. -### [Manage Files and Folders](./files-and-folders) +### [Manage Files and Folders](/docs/user/files-and-folders) Here you will find information about the management of files and folders. -### [Share Files and Folders](./sharing) +### [Share Files and Folders](/docs/user/sharing) Here you will find information on how to share files and folders. -### [Working in Teams with Spaces](./spaces) +### [Working in Teams with Spaces](/docs/user/spaces) Here you will find information for dealing with Spaces. -### [OpenCloud Desktop](./desktop-client) +### [OpenCloud Desktop](/docs/user/desktop-client) Here you will find information on how to install and set up the desktop client. -### [OpenCloud iOS App](./ios-app) +### [OpenCloud iOS App](/docs/user/ios-app) Here you will find information about the OpenCloud iOS App. -### [Roles](./roles) +### [Roles](/docs/user/roles) Here you will find information about the different roles that can be assigned. -### [Administration of OpenCloud](./admin) +### [Administration of OpenCloud](/docs/user/admin) Here you will find information on what options admins have and how you can use them. -### [Common Issues and Help](./common-issues.md) +### [Common Issues and Help](/docs/user/common-issues) Here you will find information on common issues and help on how to solve them. @@ -71,4 +71,4 @@ work together on data anytime, anywhere without barriers, but with a lot of prod ## How can I use OpenCloud? -Instructions on how to install and set up your own OpenCloud can be found in the ["Admin" Documentation](../admin/welcome/index.md) under ["Getting-Started"](../admin/getting-started/) +Instructions on how to install and set up your own OpenCloud can be found in the ["Admin" Documentation](/docs/admin/intro) under ["Getting-Started"](/docs/admin/getting-started) diff --git a/docs/user/sharing/file-drop.md b/docs/user/sharing/file-drop.md index 2f1bf688..45dbf1d4 100644 --- a/docs/user/sharing/file-drop.md +++ b/docs/user/sharing/file-drop.md @@ -24,7 +24,7 @@ The trick: The “link recipients” cannot see the files already in the folder. - Select the option for "Secret File Drop". Select file drop - Type a password and confirm the entries with click on "copy link". -- You can also set an "Expiry date", if you want the link to expire. [External Sharing](./external), if you want to know how to set the Expiry date. +- You can also set an "Expiry date", if you want the link to expire. [External Sharing](/docs/user/sharing/external), if you want to know how to set the Expiry date. Enter password and copy link - Now you send the link and the password to a "link recipient". diff --git a/static/partials/service-overview.md b/static/partials/service-overview.md index c44c9747..a7cab99e 100644 --- a/static/partials/service-overview.md +++ b/static/partials/service-overview.md @@ -1,3 +1,3 @@ The {props.service_name} service is part of the OpenCloud backend architecture and is compiled inside the opencloud single binary. -The environment variables `OC_RUN_SERVICES`, `OC_EXCLUDE_RUN_SERVICES` and `OC_ADD_RUN_SERVICES` can be used to control which services are started when the OpenCloud server is launched. This services machine name is {props.service_machine_name}. See the [Configuration System](../../configuration/config-system) documentation for more details on configuring services. +The environment variables `OC_RUN_SERVICES`, `OC_EXCLUDE_RUN_SERVICES` and `OC_ADD_RUN_SERVICES` can be used to control which services are started when the OpenCloud server is launched. This services machine name is {props.service_machine_name}. See the [Configuration System](/docs/dev/server/configuration/config-system) documentation for more details on configuring services. From 22a7e427d9418c4e24d1cc71a7189ffbc0a0e667 Mon Sep 17 00:00:00 2001 From: Alexander Ackermann Date: Fri, 14 Nov 2025 23:20:32 +0100 Subject: [PATCH 4/4] fix missing title in user intro.md german version --- i18n/de/docusaurus-plugin-content-docs/current/user/intro.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/i18n/de/docusaurus-plugin-content-docs/current/user/intro.md b/i18n/de/docusaurus-plugin-content-docs/current/user/intro.md index d1b82788..b140b67f 100644 --- a/i18n/de/docusaurus-plugin-content-docs/current/user/intro.md +++ b/i18n/de/docusaurus-plugin-content-docs/current/user/intro.md @@ -1,5 +1,7 @@ --- sidebar_position: 1 +title: Willkommen +description: Willkommen ---