diff --git a/developer_manual/getting-started/development-environment/setup.rst b/developer_manual/getting-started/development-environment/setup.rst index c9653ad..2aa6fff 100644 --- a/developer_manual/getting-started/development-environment/setup.rst +++ b/developer_manual/getting-started/development-environment/setup.rst @@ -4,7 +4,7 @@ Setup .. note:: If the project does not have an issue for what you want to work on, please create one first. -If you would like to start contributing code, you may wish to begin with our list of good first issues. +If you would like to start contributing code, you may wish to begin with our list of good first issues. See the respective sections below for further instructions. Prerequisites @@ -33,19 +33,67 @@ application manifest is the source of truth. Additional dependencies +++++++++++++++++++++++ -- ``poppler-utils`` -- System locale configured with UTF-8 charset +- ``poppler-utils`` +- System locale configured with UTF-8 charset -Setting up Nextcloud --------------------- +Using the VS Code Dev Container +------------------------------- -This project depends on Nextcloud. To start writing code, you need a working Nextcloud environment. -We recommend using Docker, but you may use another method if you prefer. +LibreSign's repository contains a Dev Container configuration for contributors +who use VS Code Dev Containers or a compatible implementation. + +The Dev Container is a thin adapter over +`LibreCodeCoop/nextcloud-docker-development +`__ (NCDD). +LibreSign does not maintain a second independent Nextcloud, database, nginx, +Mailpit or Redis topology for this workflow. + +Open the LibreSign repository in VS Code and choose **Reopen in Container**. +During initialization the adapter prepares the pinned NCDD revision used by the +current LibreSign branch. The LibreSign checkout is mounted as +``/var/www/html/apps-extra/libresign`` and LibreSign-specific setup runs after +Nextcloud becomes ready. + +The runtime defaults and supported overrides are defined in LibreSign's current +``.devcontainer`` files. Do not copy their PHP, Nextcloud or database versions +into this manual. + +For an isolated worktree, open that worktree itself in VS Code. Its Dev +Container uses its own Compose project and runtime state, so multiple worktrees +can coexist without fixed application or database host ports. + +For local Docker/VS Code development, the setup output prints the canonical +HTTPS hostname exposed by NCDD's shared proxy. + +GitHub Codespaces uses the same shared NCDD proxy. The Dev Container forwards +``host.docker.internal:443``, which is the Docker host port owned by that +proxy, and configures Nextcloud's public hostname from ``CODESPACE_NAME`` +and ``GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN``. GitHub exposes forwarded +port 443 through the corresponding +``https://-443.`` URL. + +Mailpit is forwarded directly from its Compose service on port 8025. + +This keeps Nextcloud's trusted domain and overwrite host aligned with the URL +the browser actually uses while preserving the proxy as the single HTTP entry +point for Nextcloud. + +When closing or rebuilding an environment, use the Dev Container lifecycle or +project-scoped Compose commands. Do not stop every Docker container on the host +or remove every Docker volume. + +Setting up Nextcloud manually +----------------------------- + +This project depends on Nextcloud. If you are not using the Dev Container, you +need a working Nextcloud environment. + +We recommend using Docker, but you may use another method if you prefer. Suggested setups: -- `LibreCode Coop Setup `__ -- `Julius Härtl Nextcloud Setup `__ +- `LibreCode Coop Setup `__ +- `Julius Härtl Nextcloud Setup `__ .. note:: If you encounter problems with these setups, please open an issue in the corresponding repository. @@ -61,8 +109,9 @@ If the environment does not become ready, use its documented diagnostics and ``docker compose ps``/logs rather than assuming a fixed container name or URL. -Once Nextcloud is running, go to the setup folder and locate ``volumes/nextcloud/apps-extra``. -Clone the LibreSign repository into this folder . +Once Nextcloud is running, go to the setup folder and locate +``volumes/nextcloud/apps-extra``. Clone the LibreSign repository into this +folder. .. code-block:: bash @@ -93,11 +142,11 @@ Inside the container, go to ``apps-extra/libresign`` and run: Configuring LibreSign --------------------- -After setting up the environment and installing LibreSign, open +After setting up the environment and installing LibreSign, open ``Administration Settings > LibreSign`` in Nextcloud and: -- Click the **Download binaries** button. -- Once all items show status **successful** (except “root certificate not configured”), +- Click the **Download binaries** button. +- Once all items show status **successful** (except “root certificate not configured”), continue to the next section to configure the root certificate.