From 9727f5fee4f2ce9df4fe73a5598c8daf766af34b Mon Sep 17 00:00:00 2001 From: Joonas Somero Date: Thu, 14 Aug 2025 12:34:25 +0300 Subject: [PATCH 01/57] Split build to allow alternate languages --- Containerfile | 26 +++++ Containerfile.builder | 42 +++++++ Dockerfile | 43 ------- mkdocs.yml | 254 ++++++++++++++++++++++-------------------- 4 files changed, 200 insertions(+), 165 deletions(-) create mode 100644 Containerfile create mode 100644 Containerfile.builder delete mode 100644 Dockerfile diff --git a/Containerfile b/Containerfile new file mode 100644 index 0000000000..24c7de15b2 --- /dev/null +++ b/Containerfile @@ -0,0 +1,26 @@ +ARG builder_image +FROM ${builder_image} AS builder + +ARG config_file=mkdocs.yml +ARG site_url +ARG lang + +ENV SITE_URL="${site_url}${lang:+/}${lang}${lang:+/}" + +COPY "${config_file}" ./ + +RUN mkdocs build --site-dir=/tmp/site \ + --config-file="${config_file}" + + +FROM registry.access.redhat.com/ubi8/nginx-124 + +LABEL maintainer="CSC Service Desk " + +ADD nginx.conf "${NGINX_CONF_PATH}" + +COPY --from=builder /tmp/site /usr/share/nginx/html + +EXPOSE 8000/tcp + +CMD nginx diff --git a/Containerfile.builder b/Containerfile.builder new file mode 100644 index 0000000000..ef0d452e2c --- /dev/null +++ b/Containerfile.builder @@ -0,0 +1,42 @@ +FROM registry.access.redhat.com/ubi8/python-311:latest + +LABEL maintainer="CSC Service Desk " + +WORKDIR /tmp + +COPY requirements.txt ./ + +RUN \ + pip install --upgrade pip \ +&& \ + pip install --requirement=requirements.txt + +ARG repo_org=CSCfi +ARG repo_name=csc-user-guide +ARG repo_branch=master + +RUN \ + git config --global --add safe.directory /tmp/src \ +&& \ + git clone --no-checkout \ + --single-branch \ + --branch=${repo_branch} \ + https://github.com/${repo_org}/${repo_name} src \ +&& \ + git -C src sparse-checkout init --no-cone \ +&& \ + git -C src sparse-checkout set docs \ +&& \ + git -C src checkout + +WORKDIR /tmp/src + +COPY mkdocs.yml .git-revision-date-ignore-revs ./ +COPY scripts/ ./scripts/ +COPY hooks/ ./hooks/ +COPY csc-overrides/ ./csc-overrides/ + +RUN \ + for feat in new glossary; do \ + bash scripts/generate_${feat}.sh; \ + done diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 665b3b5816..0000000000 --- a/Dockerfile +++ /dev/null @@ -1,43 +0,0 @@ -FROM rockylinux:8 - -LABEL maintainer="CSC Service Desk " - -# These need to be owned and writable by the root group in OpenShift -ENV ROOT_GROUP_DIRS='/var/run /var/log/nginx /var/lib/nginx' - -ARG repo_org=CSCfi -ARG repo_name=csc-user-guide -ARG repo_branch=master - -COPY requirements.txt /tmp - -WORKDIR /tmp - -RUN dnf -y install epel-release \ - nginx \ - python3.11 \ - python3.11-pip \ - git \ - findutils &&\ - dnf clean all &&\ - pip3 install --use-pep517 --no-cache-dir -r requirements.txt - -RUN chgrp -R root ${ROOT_GROUP_DIRS} &&\ - chmod -R g+rwx ${ROOT_GROUP_DIRS} - -COPY . /tmp - -RUN if [ ! -d ".git" ]; then \ - git clone --bare --single-branch --branch=$repo_branch https://github.com/$repo_org/$repo_name .git && \ - git init && \ - git switch --force $repo_branch; \ - fi && \ - bash scripts/generate_new.sh && \ - bash scripts/generate_glossary.sh && \ - mkdocs build -d /usr/share/nginx/html - -COPY nginx.conf /etc/nginx - -EXPOSE 8000 - -CMD [ "/usr/sbin/nginx" ] diff --git a/mkdocs.yml b/mkdocs.yml index 5c92e51d06..c3e30f7b5f 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -6,6 +6,8 @@ repo_name: CSCfi/csc-user-guide repo_url: https://github.com/CSCfi/csc-user-guide/ edit_uri: edit/master/docs/ +docs_dir: docs/ + extra: environment: !ENV [MKDOCS_ENV, "preview"] announcement_visible: true # Controls the visibility of the announcement bar @@ -50,6 +52,13 @@ extra: link: https://www.facebook.com/CSCfi/ - icon: material/youtube link: https://www.youtube.com/c/CSCfi + alternate: + - name: Suomeksi + link: /fi/ + lang: fi + - name: In English + link: / + lang: en hooks: - hooks/catalog.py @@ -57,128 +66,129 @@ hooks: - hooks/preview.py plugins: - - tags - - search - - git-revision-date-localized: - enabled: !ENV [ENABLED_GIT_REVISION_DATE, true] - fallback_to_build_date: true - ignored_commits_file: .git-revision-date-ignore-revs - type: date - custom_format: "%Y-%m-%dT%H:%M:%S%z" # Used with feedback buttons - locale: en - timezone: Europe/Helsinki - exclude: - - index.md - - support/archives/*.md - - support/glossary.md - - support/whats-new.md - - apps/index.md - - apps/by_discipline.md - - apps/by_system.md - - apps/by_license.md - - section-index - - redirects: - redirect_maps: - # deprecation: - "support/tutorials/nomachine-usage.md": "apps/nomachine.md" - "support/faq/cannot-login-from-nomachine.md": "apps/nomachine.md" - "support/tutorials/puhti_quick.md": "support/tutorials/hpc-quick.md" - "support/tutorials/mahti_quick.md": "support/tutorials/hpc-quick.md" - "computing/allas.md": "data/Allas/allas-hpc.md" - "computing/containers/creating.md": "computing/containers/overview.md" - "computing/containers/run-existing.md": "computing/containers/overview.md" - # renamed files: - "cloud/csc_notebooks/what_is_new.md": "support/whats-new.md#cloud-services" - "cloud/csc_notebooks/concepts.md": "cloud/noppe/concepts.md" - "cloud/csc_notebooks/data_persistence.md": "cloud/noppe/data_persistence.md" - "cloud/csc_notebooks/guide_for_students.md": "cloud/noppe/guide_for_students.md" - "cloud/csc_notebooks/guide_for_teachers.md": "cloud/noppe/guide_for_teachers.md" - "cloud/csc_notebooks/index.md": "cloud/noppe/index.md" - "computing/overview.md": "computing/index.md" - "cloud/concepts.md": "cloud/index.md" - "apps/alpha.md": "apps/index.md" - "support/tutorials/env-guide/overview.md": "support/tutorials/env-guide/index.md" - "computing/cProfile.md": "apps/cProfile.md" - "computing/compute-san.md": "apps/compute-san.md" - "computing/cuda-gdb.md": "apps/cuda-gdb.md" - "computing/gdb.md": "apps/gdb.md" - "computing/ncu.md": "apps/ncu.md" - "computing/nsys.md": "apps/nsys.md" - "computing/nvprof.md": "apps/nvprof.md" - "computing/pdb.md": "apps/pdb.md" - "data/Allas/allas-examples.md": "data/Allas/allas-hpc.md" - # files moved to Allas: - # (note the '..md' hack, as these are not Markdown files) - "data/sensitive-data/federated-ega-pricing.pdf.md": "https://a3s.fi/docs-files/sensitive-data/PDF_instructions/federated-ega-pricing.pdf" - # for URL consistency: - "sensitive-data.md": "data/sensitive-data/index.md" - "applications.md": "apps/index.md" - "faq.md": "support/faq/index.md" - "tutorials.md": "support/tutorials/index.md" - "training-material.md": "support/training-material/index.md" - "contact.md": "support/contact.md" - "whats-new.md": "support/whats-new.md" - # for convenience: - "glossary.md": "support/glossary.md" - "archives.md": "support/contact.md#archives" - "mahti-nvme-2025.md": "support/wn/comp-new.md#new-small-partition-with-high-performance-nvme-storage-on-mahti-1322025" - # Pouta - "cloud/pouta/accounting.md": "cloud/pouta/vm-flavors-and-billing.md" - # Rahti2 to Rahti: - "cloud/rahti2/catalog-docs.md": "cloud/rahti/catalog-docs.md" - "cloud/rahti2/rahti-migration.md": "cloud/rahti/rahti-migration.md" - "cloud/rahti2/index.md": "cloud/rahti/index.md" - "cloud/rahti2/advanced.md": "cloud/rahti/advanced.md" - "cloud/rahti2/billing.md": "cloud/rahti/billing.md" - "cloud/rahti2/rahti-what-is.md": "cloud/rahti/rahti-what-is.md" - "cloud/rahti2/concepts.md": "cloud/rahti/concepts.md" - "cloud/rahti2/moving-into.md": "cloud/rahti/moving-into.md" - "cloud/rahti2/ext_docs.md": "cloud/rahti/ext_docs.md" - "cloud/rahti2/access.md": "cloud/rahti/access.md" - "cloud/rahti2/networking.md": "cloud/rahti/networking.md" - "cloud/rahti2/storage/index.md": "cloud/rahti/storage/index.md" - "cloud/rahti2/storage/persistent.md": "cloud/rahti/storage/persistent.md" - "cloud/rahti2/storage/expand-volumes.md": "cloud/rahti/storage/expand-volumes.md" - "cloud/rahti2/storage/volume-snapshot.md": "cloud/rahti/storage/volume-snapshot.md" - "cloud/rahti2/storage/ephemeral.md": "cloud/rahti/storage/ephemeral.md" - "cloud/rahti2/storage/objectstorage.md": "cloud/rahti/storage/objectstorage.md" - "cloud/rahti2/containers.md": "cloud/rahti/containers.md" - "cloud/rahti2/security-guide.md": "cloud/rahti/security-guide.md" - "cloud/rahti2/tutorials/index.md": "cloud/rahti/tutorials/index.md" - "cloud/rahti2/tutorials/allow-pull-from-other-projects.md": "cloud/rahti/tutorials/allow-pull-from-other-projects.md" - "cloud/rahti2/tutorials/deploy_static_webserver_webconsole.md": "cloud/rahti/tutorials/deploy_static_webserver_webconsole.md" - "cloud/rahti2/tutorials/webhooks.md": "cloud/rahti/tutorials/webhooks.md" - "cloud/rahti2/tutorials/annotations.md": "cloud/rahti/tutorials/annotations.md" - "cloud/rahti2/tutorials/connect-database-hpc.md": "cloud/rahti/tutorials/connect-database-hpc.md" - "cloud/rahti2/tutorials/yaml_introduction.md": "cloud/rahti/tutorials/yaml_introduction.md" - "cloud/rahti2/tutorials/web-app-dev-cloud.md": "cloud/rahti/tutorials/web-app-dev-cloud.md" - "cloud/rahti2/tutorials/sidecar_proxy_authentication.md": "cloud/rahti/tutorials/sidecar_proxy_authentication.md" - "cloud/rahti2/tutorials/deploy_static_webserver_cli.md": "cloud/rahti/tutorials/deploy_static_webserver_cli.md" - "cloud/rahti2/tutorials/custom-domain.md": "cloud/rahti/tutorials/custom-domain.md" - "cloud/rahti2/tutorials/email.md": "cloud/rahti/tutorials/email.md" - "cloud/rahti2/tutorials/http-redirector.md": "cloud/rahti/tutorials/http-redirector.md" - "cloud/rahti2/tutorials/multi-stage-builds.md": "cloud/rahti/tutorials/multi-stage-builds.md" - "cloud/rahti2/tutorials/ci_cd_introduction.md": "cloud/rahti/tutorials/ci_cd_introduction.md" - "cloud/rahti2/tutorials/advanced-NetworkPolicies-networking.md": "cloud/rahti/tutorials/advanced-NetworkPolicies-networking.md" - "cloud/rahti2/tutorials/pod-affinity.md": "cloud/rahti/tutorials/pod-affinity.md" - "cloud/rahti2/tutorials/kustomize.md": "cloud/rahti/tutorials/kustomize.md" - "cloud/rahti2/tutorials/4cat.md": "cloud/rahti/tutorials/4cat.md" - "cloud/rahti2/usage/cli.md": "cloud/rahti/usage/cli.md" - "cloud/rahti2/usage/projects_and_quota.md": "cloud/rahti/usage/projects_and_quota.md" - "cloud/rahti2/usage/getting_started.md": "cloud/rahti/usage/getting_started.md" - "cloud/rahti2/images/creating.md": "cloud/rahti/images/creating.md" - "cloud/rahti2/images/keeping_docker_images_small.md": "cloud/rahti/images/keeping_docker_images_small.md" - "cloud/rahti2/images/overview.md": "cloud/rahti/images/overview.md" - "cloud/rahti2/images/Using_Rahti_2_integrated_registry.md": "cloud/rahti/images/Using_Rahti_integrated_registry.md" - "computing/quantum-computing/helmi/helmi-projects.md": "computing/quantum-computing/projects.md" - "computing/quantum-computing/helmi/helmi-from-lumi.md": "computing/quantum-computing/access.md" - "computing/quantum-computing/helmi/first-quantum-job.md": "computing/quantum-computing/first-quantum-job.md" - "computing/quantum-computing/helmi/helmi-specs.md": "computing/quantum-computing/specs.md" - "computing/quantum-computing/helmi/fiqci-partition.md": "computing/quantum-computing/fiqci-partition.md" - "computing/quantum-computing/helmi/running-on-helmi.md": "computing/quantum-computing/running-quantum-jobs.md" - "computing/quantum-computing/kvasi/kvasi-billing.md": "computing/quantum-computing/overview.md" - "computing/quantum-computing/kvasi/kvasi.md": "computing/quantum-computing/overview.md" - "support/tutorials/singularity-scratch.md": "computing/containers/overview.md" + tags: {} + search: + lang: en + git-revision-date-localized: + enabled: !ENV [ENABLED_GIT_REVISION_DATE, true] + fallback_to_build_date: true + ignored_commits_file: .git-revision-date-ignore-revs + type: date + custom_format: "%Y-%m-%dT%H:%M:%S%z" # Used with feedback buttons + locale: en + timezone: Europe/Helsinki + exclude: + - index.md + - support/archives/*.md + - support/glossary.md + - support/whats-new.md + - apps/index.md + - apps/by_discipline.md + - apps/by_system.md + - apps/by_license.md + section-index: {} + redirects: + redirect_maps: + # deprecation: + "support/tutorials/nomachine-usage.md": "apps/nomachine.md" + "support/faq/cannot-login-from-nomachine.md": "apps/nomachine.md" + "support/tutorials/puhti_quick.md": "support/tutorials/hpc-quick.md" + "support/tutorials/mahti_quick.md": "support/tutorials/hpc-quick.md" + "computing/allas.md": "data/Allas/allas-hpc.md" + "computing/containers/creating.md": "computing/containers/overview.md" + "computing/containers/run-existing.md": "computing/containers/overview.md" + # renamed files: + "cloud/csc_notebooks/what_is_new.md": "support/whats-new.md#cloud-services" + "cloud/csc_notebooks/concepts.md": "cloud/noppe/concepts.md" + "cloud/csc_notebooks/data_persistence.md": "cloud/noppe/data_persistence.md" + "cloud/csc_notebooks/guide_for_students.md": "cloud/noppe/guide_for_students.md" + "cloud/csc_notebooks/guide_for_teachers.md": "cloud/noppe/guide_for_teachers.md" + "cloud/csc_notebooks/index.md": "cloud/noppe/index.md" + "computing/overview.md": "computing/index.md" + "cloud/concepts.md": "cloud/index.md" + "apps/alpha.md": "apps/index.md" + "support/tutorials/env-guide/overview.md": "support/tutorials/env-guide/index.md" + "computing/cProfile.md": "apps/cProfile.md" + "computing/compute-san.md": "apps/compute-san.md" + "computing/cuda-gdb.md": "apps/cuda-gdb.md" + "computing/gdb.md": "apps/gdb.md" + "computing/ncu.md": "apps/ncu.md" + "computing/nsys.md": "apps/nsys.md" + "computing/nvprof.md": "apps/nvprof.md" + "computing/pdb.md": "apps/pdb.md" + "data/Allas/allas-examples.md": "data/Allas/allas-hpc.md" + # files moved to Allas: + # (note the '..md' hack, as these are not Markdown files) + "data/sensitive-data/federated-ega-pricing.pdf.md": "https://a3s.fi/docs-files/sensitive-data/PDF_instructions/federated-ega-pricing.pdf" + # for URL consistency: + "sensitive-data.md": "data/sensitive-data/index.md" + "applications.md": "apps/index.md" + "faq.md": "support/faq/index.md" + "tutorials.md": "support/tutorials/index.md" + "training-material.md": "support/training-material/index.md" + "contact.md": "support/contact.md" + "whats-new.md": "support/whats-new.md" + # for convenience: + "glossary.md": "support/glossary.md" + "archives.md": "support/contact.md#archives" + "mahti-nvme-2025.md": "support/wn/comp-new.md#new-small-partition-with-high-performance-nvme-storage-on-mahti-1322025" + # Pouta + "cloud/pouta/accounting.md": "cloud/pouta/vm-flavors-and-billing.md" + # Rahti2 to Rahti: + "cloud/rahti2/catalog-docs.md": "cloud/rahti/catalog-docs.md" + "cloud/rahti2/rahti-migration.md": "cloud/rahti/rahti-migration.md" + "cloud/rahti2/index.md": "cloud/rahti/index.md" + "cloud/rahti2/advanced.md": "cloud/rahti/advanced.md" + "cloud/rahti2/billing.md": "cloud/rahti/billing.md" + "cloud/rahti2/rahti-what-is.md": "cloud/rahti/rahti-what-is.md" + "cloud/rahti2/concepts.md": "cloud/rahti/concepts.md" + "cloud/rahti2/moving-into.md": "cloud/rahti/moving-into.md" + "cloud/rahti2/ext_docs.md": "cloud/rahti/ext_docs.md" + "cloud/rahti2/access.md": "cloud/rahti/access.md" + "cloud/rahti2/networking.md": "cloud/rahti/networking.md" + "cloud/rahti2/storage/index.md": "cloud/rahti/storage/index.md" + "cloud/rahti2/storage/persistent.md": "cloud/rahti/storage/persistent.md" + "cloud/rahti2/storage/expand-volumes.md": "cloud/rahti/storage/expand-volumes.md" + "cloud/rahti2/storage/volume-snapshot.md": "cloud/rahti/storage/volume-snapshot.md" + "cloud/rahti2/storage/ephemeral.md": "cloud/rahti/storage/ephemeral.md" + "cloud/rahti2/storage/objectstorage.md": "cloud/rahti/storage/objectstorage.md" + "cloud/rahti2/containers.md": "cloud/rahti/containers.md" + "cloud/rahti2/security-guide.md": "cloud/rahti/security-guide.md" + "cloud/rahti2/tutorials/index.md": "cloud/rahti/tutorials/index.md" + "cloud/rahti2/tutorials/allow-pull-from-other-projects.md": "cloud/rahti/tutorials/allow-pull-from-other-projects.md" + "cloud/rahti2/tutorials/deploy_static_webserver_webconsole.md": "cloud/rahti/tutorials/deploy_static_webserver_webconsole.md" + "cloud/rahti2/tutorials/webhooks.md": "cloud/rahti/tutorials/webhooks.md" + "cloud/rahti2/tutorials/annotations.md": "cloud/rahti/tutorials/annotations.md" + "cloud/rahti2/tutorials/connect-database-hpc.md": "cloud/rahti/tutorials/connect-database-hpc.md" + "cloud/rahti2/tutorials/yaml_introduction.md": "cloud/rahti/tutorials/yaml_introduction.md" + "cloud/rahti2/tutorials/web-app-dev-cloud.md": "cloud/rahti/tutorials/web-app-dev-cloud.md" + "cloud/rahti2/tutorials/sidecar_proxy_authentication.md": "cloud/rahti/tutorials/sidecar_proxy_authentication.md" + "cloud/rahti2/tutorials/deploy_static_webserver_cli.md": "cloud/rahti/tutorials/deploy_static_webserver_cli.md" + "cloud/rahti2/tutorials/custom-domain.md": "cloud/rahti/tutorials/custom-domain.md" + "cloud/rahti2/tutorials/email.md": "cloud/rahti/tutorials/email.md" + "cloud/rahti2/tutorials/http-redirector.md": "cloud/rahti/tutorials/http-redirector.md" + "cloud/rahti2/tutorials/multi-stage-builds.md": "cloud/rahti/tutorials/multi-stage-builds.md" + "cloud/rahti2/tutorials/ci_cd_introduction.md": "cloud/rahti/tutorials/ci_cd_introduction.md" + "cloud/rahti2/tutorials/advanced-NetworkPolicies-networking.md": "cloud/rahti/tutorials/advanced-NetworkPolicies-networking.md" + "cloud/rahti2/tutorials/pod-affinity.md": "cloud/rahti/tutorials/pod-affinity.md" + "cloud/rahti2/tutorials/kustomize.md": "cloud/rahti/tutorials/kustomize.md" + "cloud/rahti2/tutorials/4cat.md": "cloud/rahti/tutorials/4cat.md" + "cloud/rahti2/usage/cli.md": "cloud/rahti/usage/cli.md" + "cloud/rahti2/usage/projects_and_quota.md": "cloud/rahti/usage/projects_and_quota.md" + "cloud/rahti2/usage/getting_started.md": "cloud/rahti/usage/getting_started.md" + "cloud/rahti2/images/creating.md": "cloud/rahti/images/creating.md" + "cloud/rahti2/images/keeping_docker_images_small.md": "cloud/rahti/images/keeping_docker_images_small.md" + "cloud/rahti2/images/overview.md": "cloud/rahti/images/overview.md" + "cloud/rahti2/images/Using_Rahti_2_integrated_registry.md": "cloud/rahti/images/Using_Rahti_integrated_registry.md" + "computing/quantum-computing/helmi/helmi-projects.md": "computing/quantum-computing/projects.md" + "computing/quantum-computing/helmi/helmi-from-lumi.md": "computing/quantum-computing/access.md" + "computing/quantum-computing/helmi/first-quantum-job.md": "computing/quantum-computing/first-quantum-job.md" + "computing/quantum-computing/helmi/helmi-specs.md": "computing/quantum-computing/specs.md" + "computing/quantum-computing/helmi/fiqci-partition.md": "computing/quantum-computing/fiqci-partition.md" + "computing/quantum-computing/helmi/running-on-helmi.md": "computing/quantum-computing/running-quantum-jobs.md" + "computing/quantum-computing/kvasi/kvasi-billing.md": "computing/quantum-computing/overview.md" + "computing/quantum-computing/kvasi/kvasi.md": "computing/quantum-computing/overview.md" + "support/tutorials/singularity-scratch.md": "computing/containers/overview.md" markdown_extensions: From e69c7778c614828e3392c37193777fa558deb625 Mon Sep 17 00:00:00 2001 From: Joonas Somero Date: Fri, 15 Aug 2025 12:35:54 +0300 Subject: [PATCH 02/57] Set up for building in $APP_ROOT/src Initialize /tmp/src for cloning in later stage --- Containerfile.builder | 45 +++++++++++-------------------------------- 1 file changed, 11 insertions(+), 34 deletions(-) diff --git a/Containerfile.builder b/Containerfile.builder index ef0d452e2c..5cd766451b 100644 --- a/Containerfile.builder +++ b/Containerfile.builder @@ -1,42 +1,19 @@ -FROM registry.access.redhat.com/ubi8/python-311:latest +FROM registry.access.redhat.com/ubi8/python-311 LABEL maintainer="CSC Service Desk " -WORKDIR /tmp - -COPY requirements.txt ./ - +USER 0 +ADD requirements.txt mkdocs.yml . +ADD csc-overrides ./csc-overrides +ADD hooks ./hooks +ADD scripts ./scripts RUN \ - pip install --upgrade pip \ + mkdir /tmp/src \ && \ - pip install --requirement=requirements.txt - -ARG repo_org=CSCfi -ARG repo_name=csc-user-guide -ARG repo_branch=master + chown -R 1001:0 /tmp/src ./ +USER 1001 RUN \ - git config --global --add safe.directory /tmp/src \ -&& \ - git clone --no-checkout \ - --single-branch \ - --branch=${repo_branch} \ - https://github.com/${repo_org}/${repo_name} src \ -&& \ - git -C src sparse-checkout init --no-cone \ -&& \ - git -C src sparse-checkout set docs \ + pip install --upgrade pip \ && \ - git -C src checkout - -WORKDIR /tmp/src - -COPY mkdocs.yml .git-revision-date-ignore-revs ./ -COPY scripts/ ./scripts/ -COPY hooks/ ./hooks/ -COPY csc-overrides/ ./csc-overrides/ - -RUN \ - for feat in new glossary; do \ - bash scripts/generate_${feat}.sh; \ - done + pip install --requirement=requirements.txt From 55a0ca03b564a11706a7ad35214ffe9274a59081 Mon Sep 17 00:00:00 2001 From: Joonas Somero Date: Fri, 15 Aug 2025 14:25:10 +0300 Subject: [PATCH 03/57] Edit build/deploy config for alternate languages --- Containerfile | 40 ++++++++++++++++++++++++++----------- Containerfile.builder | 2 +- nginx.conf | 46 ++++++++++++++++++++----------------------- 3 files changed, 50 insertions(+), 38 deletions(-) diff --git a/Containerfile b/Containerfile index 24c7de15b2..5660cea11d 100644 --- a/Containerfile +++ b/Containerfile @@ -1,26 +1,42 @@ -ARG builder_image -FROM ${builder_image} AS builder +FROM image-registry.apps.2.rahti.csc.fi/docs-csc-development/docs-csc-builder AS builder +ARG repo_org=CSCfi +ARG repo_name=csc-user-guide +ARG repo_branch=master ARG config_file=mkdocs.yml -ARG site_url -ARG lang -ENV SITE_URL="${site_url}${lang:+/}${lang}${lang:+/}" - -COPY "${config_file}" ./ - -RUN mkdocs build --site-dir=/tmp/site \ - --config-file="${config_file}" +ADD .git-revision-date-ignore-revs "${config_file}" . + +RUN \ + git clone --no-checkout \ + --single-branch \ + --branch=${repo_branch} \ + https://github.com/${repo_org}/${repo_name} \ + /tmp/src \ +&& \ + git -C /tmp/src sparse-checkout init --no-cone \ +&& \ + git -C /tmp/src sparse-checkout set docs \ +&& \ + git -C /tmp/src checkout \ +&& \ + mv /tmp/src/{.git,docs} ./ \ +&& \ + for feat in new glossary; do \ + bash scripts/generate_${feat}.sh; \ + done \ +&& \ + mkdocs build --site-dir=/tmp/site \ + --config-file="${config_file}" FROM registry.access.redhat.com/ubi8/nginx-124 LABEL maintainer="CSC Service Desk " +COPY --from=builder /tmp/site "${NGINX_APP_ROOT}/src" ADD nginx.conf "${NGINX_CONF_PATH}" -COPY --from=builder /tmp/site /usr/share/nginx/html - EXPOSE 8000/tcp CMD nginx diff --git a/Containerfile.builder b/Containerfile.builder index 5cd766451b..f089a2e3ea 100644 --- a/Containerfile.builder +++ b/Containerfile.builder @@ -1,4 +1,4 @@ -FROM registry.access.redhat.com/ubi8/python-311 +FROM ubi8/python-311 LABEL maintainer="CSC Service Desk " diff --git a/nginx.conf b/nginx.conf index e3c9d83927..53082d58b8 100644 --- a/nginx.conf +++ b/nginx.conf @@ -2,13 +2,13 @@ # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ -#user nginx; + worker_processes auto; daemon off; -error_log stderr; +error_log stderr; #/var/log/nginx/error.log notice; pid /run/nginx.pid; -# Load dynamic modules. See /usr/share/nginx/README.dynamic. +# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { @@ -26,7 +26,7 @@ http { tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; - types_hash_max_size 2048; + types_hash_max_size 2048; #4096; include /etc/nginx/mime.types; default_type application/octet-stream; @@ -34,21 +34,22 @@ http { # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. - include /etc/nginx/conf.d/*.conf; + include /opt/app-root/etc/nginx.d/*.conf; server { - listen 8000 default_server; - try_files $uri $uri/ =404; - server_name _; - absolute_redirect off; + listen 8000 default_server; + #listen [::]:8080 default_server; + try_files $uri $uri/ =404; + server_name _; + absolute_redirect off; server_name_in_redirect off; - port_in_redirect off; - root /usr/share/nginx/html; + port_in_redirect off; + root /opt/app-root/src; # Load configuration files for the default server block. - include /etc/nginx/default.d/*.conf; + include /opt/app-root/etc/nginx.default.d/*.conf; - location / { + location / { #location = /404.html { } error_page 404 /404.html; @@ -58,35 +59,30 @@ http { error_page 500 502 503 504 /50x.html; location = /50x.html { } + } # Settings for a TLS enabled server. # # server { -# listen 443 ssl http2 default_server; +# listen 443 ssl http2; +# listen [::]:443 ssl http2; # server_name _; -# root /usr/share/nginx/html; +# root /opt/app-root/src; # # ssl_certificate "/etc/pki/nginx/server.crt"; # ssl_certificate_key "/etc/pki/nginx/private/server.key"; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 10m; -# ssl_ciphers HIGH:!aNULL:!MD5; +# ssl_ciphers PROFILE=SYSTEM; # ssl_prefer_server_ciphers on; # # # Load configuration files for the default server block. -# include /etc/nginx/default.d/*.conf; +# include /opt/app-root/etc/nginx.default.d/*.conf; # -# location / { +# location = /404.html { # } # -# error_page 404 /404.html; -# location = /40x.html { -# } -# -# error_page 500 502 503 504 /50x.html; -# location = /50x.html { -# } # } } From a773a77de44c159a4b42e5f7cd6294308bdf9f60 Mon Sep 17 00:00:00 2001 From: Joonas Somero Date: Wed, 20 Aug 2025 14:00:29 +0300 Subject: [PATCH 04/57] Define subpath for Finnish alternate --- nginx.conf | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/nginx.conf b/nginx.conf index 53082d58b8..3f86d11097 100644 --- a/nginx.conf +++ b/nginx.conf @@ -44,12 +44,17 @@ http { absolute_redirect off; server_name_in_redirect off; port_in_redirect off; - root /opt/app-root/src; # Load configuration files for the default server block. include /opt/app-root/etc/nginx.default.d/*.conf; - location / { #location = /404.html { + + location /fi { + alias /opt/app-root/src; + } + + location / { + root /opt/app-root/src; } error_page 404 /404.html; From 65441bece0be68b94ac1b2a94d745db41a478270 Mon Sep 17 00:00:00 2001 From: Joonas Somero Date: Wed, 20 Aug 2025 14:21:15 +0300 Subject: [PATCH 05/57] MkDocs config for Finnish alternate --- mkdocs_fi.yml | 379 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 379 insertions(+) create mode 100644 mkdocs_fi.yml diff --git a/mkdocs_fi.yml b/mkdocs_fi.yml new file mode 100644 index 0000000000..1ce2e332c7 --- /dev/null +++ b/mkdocs_fi.yml @@ -0,0 +1,379 @@ +INHERIT: ./mkdocs.yml +site_url: !ENV [SITE_URL, "https://docs.csc.fi/fi"] +site_description: Ohjeet ja käyttöoppaat CSC:n supertietokoneille, pilvipalveluille, tallennusratkaisuille ja ohjelmistoille, mukaan lukien UKK ja tutoriaalit + +#edit_uri: edit/master/docs/ + +extra: + analytics: + feedback: + title: Onko tämä sivu hyödyllinen? + ratings: + - name: "Kyllä" + type: Positive + description: Kyllä! Tämä sivu on hyödyllinen. + note: >- + Kiitos palautteestasi! + - name: "Ei" + type: Negative + description: Ei! Tätä sivua pitäisi parantaa. + note: >- + Kiitos! Arvostamme palautettasi. + short_description: Käyttöoppaat ja tutoriaalit + +theme: + language: fi + +plugins: + search: + lang: fi + +nav: + - Etusivu: index.md + - Käyttäjätunnukset: + - accounts/index.md + - Uuden käyttäjätilin luominen: accounts/how-to-create-new-user-account.md + - Käyttäjätilin elinkaari: accounts/account-lifecycle.md + - Salasanan vaihtaminen: accounts/how-to-change-password.md + - Käyttäjätietojen hallinta: accounts/how-to-manage-user-information.md + - Uuden projektin luominen: accounts/how-to-create-new-project.md + - Kun projektisi käsittelee henkilötietoja: accounts/when-your-project-handles-personal-data.md + - Jäsenten lisääminen projektiisi: accounts/how-to-add-members-to-project.md + - Palveluiden käyttöoikeuden lisääminen projektille: accounts/how-to-add-service-access-for-project.md + - Projektisi hallinta: accounts/how-to-manage-your-project.md + - Laskentayksiköiden hakeminen: accounts/how-to-apply-for-billing-units.md + - Levykiintiöiden kasvattaminen: accounts/how-to-increase-disk-quotas.md + - Mahti-supertietokoneen suuren osion käyttö: accounts/how-to-access-mahti-large-partition.md + - Laskentayksiköiden käytön tarkastelu: accounts/how-to-view-billing-unit-usage.md + - Laskutus: accounts/billing.md + - Monivaiheinen tunnistautuminen: accounts/mfa.md + - Vahva tunnistautuminen: accounts/strong-identification.md + - FMI: accounts/fmi.md + - Laskenta: + - computing/index.md + - Käyttöpolitiikka: computing/usage-policy.md + - Laskutus: computing/hpc-billing.md + - Järjestelmät: + - computing/available-systems.md + - Puhti: computing/systems-puhti.md + - Mahti: computing/systems-mahti.md + - Roihu: computing/systems-roihu.md + - LUMI: "https://docs.lumi-supercomputer.eu/hardware/" + - Yhteyden muodostaminen: + - computing/connecting/index.md + - SSH-avainten määrittäminen: computing/connecting/ssh-keys.md + - SSH-asiakas macOS:lla ja Linuxilla: computing/connecting/ssh-unix.md + - SSH-asiakas Windowsilla: computing/connecting/ssh-windows.md + - Supertietokoneen tallennustila: + - computing/disk.md + - Lustre-tiedostojärjestelmä: computing/lustre.md + - Allas-objektitallennustila: computing/allas.md + - Moduuliympäristö: computing/modules.md + - Töiden ajaminen: + - computing/running/getting-started.md + - Puhti-erätyöskriptin luominen: computing/running/creating-job-scripts-puhti.md + - Puhti-esimerkkiskriptit: computing/running/example-job-scripts-puhti.md + - Mahti-erätyöskriptin luominen: computing/running/creating-job-scripts-mahti.md + - Mahti-esimerkkiskriptit: computing/running/example-job-scripts-mahti.md + - Työn lähettäminen: computing/running/submitting-jobs.md + - Saatavilla olevat erätyöjonot: computing/running/batch-job-partitions.md + - Suuri läpäisykyky: computing/running/throughput.md + - Interaktiivinen käyttö: computing/running/interactive-usage.md + - Suorituskyvyn tarkistuslista: computing/running/performance-checklist.md + - Ohjelmistojen asentaminen: + - computing/installing.md + - Kääntäminen Puhtissa: computing/compiling-puhti.md + - Kääntäminen Mahtissa: computing/compiling-mahti.md + - Kääntäminen LUMIssa: computing/compiling-lumi.md + - Korkean suorituskyvyn kirjastot: computing/hpc-libraries.md + - Virheenkorjaus: computing/debugging.md + - Suorituskyvyn analyysi: computing/performance.md + - Kontit: + - computing/containers/overview.md + - Konttien ajaminen: computing/containers/run-existing.md + - Konttien luominen: computing/containers/creating.md + - Konttikääre (Tykky): computing/containers/tykky.md + - Verkkokäyttöliittymä: + - computing/webinterface/index.md + - Yhteyden muodostaminen: computing/webinterface/connecting.md + - Komentorivi: computing/webinterface/shell.md + - Tiedostot ja tallennuspalvelut: computing/webinterface/file-browser.md + - Projektinäkymä: computing/webinterface/project-view.md + - Interaktiiviset sovellukset: + - computing/webinterface/apps.md + - Nopeutettu visualisointi: computing/webinterface/accelerated-visualization.md + - Työpöytä: computing/webinterface/desktop.md + - Jupyter: computing/webinterface/jupyter.md + - Julia Jupyterissä: computing/webinterface/julia-on-jupyter.md + - Jupyter kursseille: computing/webinterface/jupyter-for-courses.md + - MATLAB: computing/webinterface/matlab.md + - MLflow: computing/webinterface/mlflow.md + - RStudio: computing/webinterface/rstudio.md + - TensorBoard: computing/webinterface/tensorboard.md + - Visual Studio Code: computing/webinterface/vscode.md + - Kvanttilaskenta: + - computing/quantum-computing/overview.md + - Kvasi QLM: + - Kvasin käyttö: computing/quantum-computing/kvasi/kvasi.md + - Kvasin laskutus: computing/quantum-computing/kvasi/kvasi-billing.md + - Helmi: + - Helmi-projektit: computing/quantum-computing/helmi/helmi-projects.md + - Helmin käyttö LUMIn kautta: computing/quantum-computing/helmi/helmi-from-lumi.md + - Ensimmäinen kvanttityö: computing/quantum-computing/helmi/first-quantum-job.md + - Tekniset tiedot: computing/quantum-computing/helmi/helmi-specs.md + - FiQCI-osio: computing/quantum-computing/helmi/fiqci-partition.md + - Ajaminen Helmillä: computing/quantum-computing/helmi/running-on-helmi.md + - Pilvipalvelut: + - cloud/index.md + - Noppe: + - cloud/noppe/index.md + - Opas opiskelijoille: cloud/noppe/guide_for_students.md + - Opas opettajille: cloud/noppe/guide_for_teachers.md + - Käsitteet: cloud/noppe/concepts.md + - Tietojen pysyvyys: cloud/noppe/data_persistence.md + - Pouta: + - cloud/pouta/index.md + # - Mikä on Pouta: cloud/pouta/pouta-what-is.md + # - Poutan tietoturvaohjeet: cloud/pouta/security.md + # - Poutan laskutusperiaatteet ja kiintiöt: cloud/pouta/accounting.md + # - Virtuaalikonetyypit ja laskentayksikköhinnat: cloud/pouta/vm-flavors-and-billing.md + - Aloittaminen: + - cloud/pouta/getting-started.md + - Virtuaalikoneen luominen: cloud/pouta/launch-vm-from-web-gui.md + - Virtuaalikoneeseen yhdistäminen: cloud/pouta/connecting-to-vm.md + - Komentorivi: + - cloud/pouta/command-line-tools.md + - Asennus: cloud/pouta/install-client.md + - Konfigurointi: + - cloud/pouta/configuration.md + - Virtuaalikoneen elinkaari ja laskentayksiköiden säästäminen: cloud/pouta/vm-lifecycle.md + - Virtuaalikonetyypit ja laskentayksikköhinnat: cloud/pouta/vm-flavors-and-billing.md + - Laskutusperiaatteet ja kiintiöt: cloud/pouta/accounting.md + - Levykuvat: + - cloud/pouta/images.md + - Virtuaalikoneiden levykuvien luominen, muuntaminen, lataaminen ja jakaminen: cloud/pouta/adding-images.md + - Verkko: + - cloud/pouta/networking.md + - Tallennustila: + - cloud/pouta/storage.md + - Tilapäistallennustila: cloud/pouta/ephemeral-storage.md + - Pysyvät levyt: cloud/pouta/persistent-volumes.md + - Tilannekuvat: cloud/pouta/snapshots.md + - Tilannekuva QEMUn avulla: cloud/pouta/qemu-vm.md + - Moni-liitettävä Cinder-tallennustila: cloud/pouta/multiattach.md + - Edistynyt käyttö: + - cloud/pouta/advanced.md + - Lisäpalvelut (sähköposti, dns): cloud/pouta/additional-services.md + - API-käyttö: cloud/pouta/api-access.md + - Sovellustunnukset: cloud/pouta/application-credentials.md + - Sovelluskehityskäytännöt: cloud/pouta/application-dev.md + - Tunnetut ongelmat ja rajoitukset: cloud/pouta/known-problems.md + - Poutan tietoturvaohjeet: cloud/pouta/security.md + # - Itseopiskelua ja vianetsintää: + # - Pouta-videot: cloud/pouta/pouta-videos.md + - Tutoriaalit: + - cloud/pouta/tutorials/index.md + - cPouta- ja ePouta-aiheiset videot: cloud/pouta/tutorials/pouta-videos.md + - Opettele pilvilaskentaa kehittämällä ja julkaisemalla verkkosovellus: cloud/pouta/tutorials/web-app-dev-cloud.md + - Orkestrointi Heat-työkalulla: cloud/pouta/tutorials/heat-orchestration.md + - Luo hyppykone cPoutaan: cloud/pouta/tutorials/create-jumphost.md + - SSH-avainpari: cloud/pouta/tutorials/ssh-key.md + - Kiinteän IP-osoitteen luominen virtuaalikoneelle: cloud/pouta/tutorials/create-fixed-ip-for-Vm.md + - Kuvaputken asennus: cloud/pouta/tutorials/picture-pipeline.md + - Pukki: + - cloud/dbaas/index.md + - Mikä on DBaaS: cloud/dbaas/what-is-dbaas.md + - Tietoturvaohjeet: cloud/dbaas/security-guides.md + - DBaaS:n käytön aloittaminen: + - cloud/dbaas/getting-started.md + - Verkkokäyttöliittymä: cloud/dbaas/web-interface.md + - Komentoriviohjeet: cloud/dbaas/cli.md + - Palomuurit: cloud/dbaas/firewalls.md + - Tietokantaoperaatiot: cloud/dbaas/operations.md + - Sovellustunnukset: cloud/dbaas/application-credentials.md + - Tietokantakoot ja hinnat: cloud/dbaas/flavors.md + - Varmuuskopiot: cloud/dbaas/backups.md + - Tietokannat: + - cloud/dbaas/databases.md + - PostgreSQL: + - cloud/dbaas/postgresql.md + - Tietokantaan pääsy: cloud/dbaas/postgres-accessing.md + - PostgreSQL-versioiden erot: cloud/dbaas/postgres-versions.md + - Laajennukset ja parametrit: cloud/dbaas/postgres-extensions.md + - Käyttöoikeudet: cloud/dbaas/postgres-permissions.md + - MariaDB: + - cloud/dbaas/mariadb.md + - Tietokantaan pääsy: cloud/dbaas/mariadb-accessing.md + - Käyttöoikeudet: cloud/dbaas/mariadb-permissions.md + + - Edistyneemmät ominaisuudet: cloud/dbaas/advanced.md + - Tietokantainstanssin levyn koon muuttaminen: cloud/dbaas/resize-volume.md + - Rahti: + - cloud/rahti/index.md + - Mikä on Rahti: + - cloud/rahti/rahti-what-is.md + - Kontit ja niiden orkestrointi: cloud/rahti/containers.md + - Kubernetes- ja OpenShift-käsitteet: cloud/rahti/concepts.md + - Ulkoinen dokumentaatio: cloud/rahti/ext_docs.md + - Aloittaminen: + - Käyttöoikeuden hankkiminen: cloud/rahti/access.md + - Verkkokäyttöliittymä: cloud/rahti/usage/getting_started.md + - Komentorivityökalu: cloud/rahti/usage/cli.md + - Siirtyminen Rahtiin: cloud/rahti/moving-into.md + - Konfigurointi: + - Laskutus: cloud/rahti/billing.md + - Projektit ja kiintiöt: cloud/rahti/usage/projects_and_quota.md + - Rahti-katalogi: cloud/rahti/catalog-docs.md + - Levykuvat: + - cloud/rahti/images/overview.md + - Levykuvan luominen: cloud/rahti/images/creating.md + - Docker-levykuvien pitäminen pieninä: cloud/rahti/images/keeping_docker_images_small.md + - Rahtin integroidun rekisterin käyttö: cloud/rahti/images/Using_Rahti_integrated_registry.md + - Tallennustila Rahtissa: + - cloud/rahti/storage/index.md + - Tilapäistallennustila: cloud/rahti/storage/ephemeral.md + - Pysyvät levyt: cloud/rahti/storage/persistent.md + - Objektitallennustila: cloud/rahti/storage/objectstorage.md + - Levyn laajentaminen: cloud/rahti/storage/expand-volumes.md + - Levyn tilannekuva: cloud/rahti/storage/volume-snapshot.md + - Edistynyt käyttö: + - cloud/rahti/advanced.md + - Verkko: cloud/rahti/networking.md + - Tietoturvaohje: cloud/rahti/security-guide.md + - Tutoriaalit: + - cloud/rahti/tutorials/index.md + - 4cat: cloud/rahti/tutorials/4cat.md + - Edistyneet NetworkPolicy-käytännöt: cloud/rahti/tutorials/advanced-NetworkPolicies-networking.md + - Rahtin tietokantoihin pääsy CSC-supertietokoneista: cloud/rahti/tutorials/connect-database-hpc.md + - Levykuvien latausoikeuden antaminen toisesta Rahti-projektista: cloud/rahti/tutorials/allow-pull-from-other-projects.md + - Huomautukset: cloud/rahti/tutorials/annotations.md + - CI/CD Rahtissa: cloud/rahti/tutorials/ci_cd_introduction.md + - Mukautetut verkkotunnukset ja suojattu tiedonsiirto: cloud/rahti/tutorials/custom-domain.md + - Staattisen verkkopalvelimen käyttöönotto komentoriviltä: cloud/rahti/tutorials/deploy_static_webserver_cli.md + - Staattisen verkkopalvelimen käyttöönotto verkkokäyttöliittymällä: cloud/rahti/tutorials/deploy_static_webserver_webconsole.md + - Kustomize: cloud/rahti/tutorials/kustomize.md + - Opettele pilvilaskentaa kehittämällä ja julkaisemalla verkkosovellus: cloud/rahti/tutorials/web-app-dev-cloud.md + - Monivaiheinen kääntäminen: cloud/rahti/tutorials/multi-stage-builds.md + - Pod (anti) yhteensopivuus: cloud/rahti/tutorials/pod-affinity.md + - Käänteisen välityspalvelimen tunnistautuminen sivukontin avulla: cloud/rahti/tutorials/sidecar_proxy_authentication.md + - Sähköpostin lähettäminen Rahtista: cloud/rahti/tutorials/email.md + - HTTP-uudelleenohjauksen asennus Rahtiin: cloud/rahti/tutorials/http-redirector.md + - Lyhyt johdatus YAML-formaattiin: cloud/rahti/tutorials/yaml_introduction.md + - Webhookit: cloud/rahti/tutorials/webhooks.md + - OAuth2 Proxy: cloud/rahti/tutorials/oauth2.md + - Data: + - data/index.md + # - Aineistot: data/datasets.md + - Datan kanssa työskentely: + - data/datasets/dataset-sources.md + - Vinkkejä tiedonhallintaan: data/datasets/datamanagement.md + - Metatiedot ja datan dokumentointi: data/datasets/metadata-and-documentation.md + - Aineistolähteet: data/datasets/sourcing-datasets.md + - Datan tallentaminen CSC:llä: data/datasets/hosting-datasets-at-CSC.md + - Aineistojen julkaiseminen: data/datasets/publishing-datasets.md + - Datan siirtäminen: + - data/moving/index.md + - Tiedostojen kopiointi scp:llä: data/moving/scp.md + - Tiedostojen siirtäminen HPC-verkkokäyttöliittymien avulla: data/moving/web-interface.md + - Graafiset tiedostonsiirtotyökalut: data/moving/graphical_transfer.md + - Rsyncin käyttö tiedonsiirtoon ja synkronointiin: data/moving/rsync.md + - Tarin ja SSH:n käyttö pienten tiedostojen tehokkaaseen siirtoon: data/moving/tar_ssh.md + - Wgetin käyttö datan lataamiseen verkkosivuilta CSC:lle: data/moving/wget.md + - Tiedostojen jakaminen ja siirtäminen Funet FileSenderillä: data/moving/funet.md + - Datan siirtäminen IDAn ja CSC:n laskentaympäristön välillä: data/ida/using_ida.md + - Etälevyjen liittäminen: data/moving/disk_mount.md + - Datan kopioiminen Allaksen ja IDAn välillä Puhtin kautta: data/moving/copy_allas_ida.md + - Allas-objektitallennustila: + - data/Allas/index.md + - Johdatus Allas-tallennuspalveluun: data/Allas/introduction.md + - Allakseen pääsy: data/Allas/accessing_allas.md + - Yleiset käyttötapaukset: data/Allas/using_allas/common_use_cases.md + - Yleiset virheilmoitukset: data/Allas/using_allas/error_messages.md + - Allas-objektitallennustilaan liittyvät termit ja käsitteet: data/Allas/terms_and_concepts.md + - Allas-asiakasohjelmat: + - Allas Web-käyttöliittymä: data/Allas/using_allas/allas-ui.md + - a-command: data/Allas/using_allas/a_commands.md + - a-backup: data/Allas/using_allas/a_backup.md + - Cyberduck: data/Allas/using_allas/cyberduck.md + - Python S3-rajapinnalla: data/Allas/using_allas/python_boto3.md + - Python SWIFT-rajapinnalla: data/Allas/using_allas/python_swift.md + - Rclone laskentaympäristöstä: data/Allas/using_allas/rclone.md + - Rclone työasemalta: data/Allas/using_allas/rclone_local.md + - Swift: data/Allas/using_allas/swift_client.md + - S3cmd: data/Allas/using_allas/s3_client.md + - Web-käyttöliittymä: data/Allas/using_allas/web_client.md + # data/Allas/using_allas/directory_object_error.md is not linked in this structure + - Kaivos-tietokantapalvelu: + - data/kaivos/overview.md + - Tietokantatilin hankkiminen: data/kaivos/kaivos-account.md + - MySQL-asiakasohjelmat CSC:llä: data/kaivos/kaivos_client_in_puhti.md + - Tietojen tuonti ja vienti: data/kaivos/kaivos_import.md + - MySQL-asiakkaan käyttö eräajopalvelun kautta: data/kaivos/kaivos_batch_job.md + - Kaivos.csc.fi:n käyttö suoraan paikalliselta tietokoneelta: data/kaivos/kaivos_remote.md + - Perl MySQL API:n käyttö CSC:llä: data/kaivos/kaivos_perl.md + # Python MySQL API at CSC: + - Arkaluonteinen data: + - data/sensitive-data/index.md + - Palvelun valinta: data/sensitive-data/choose-a-service.md + - Tallenna ja analysoi: + - Aloita tästä: + - data/sensitive-data/sd-access.md + - Pääsy projektin vetäjänä: data/sensitive-data/sd-use-case-new-user-project-manager.md + - Pääsy projektin jäsenenä: data/sensitive-data/sd-use-case-new-user-project-member.md + - Tallenna SD Connectilla: + - data/sensitive-data/sd_connect.md + - Kirjautuminen SD Connectiin: data/sensitive-data/sd-connect-login.md + - Lataaminen palveluun: data/sensitive-data/sd-connect-upload.md + - Jakaminen: data/sensitive-data/sd-connect-share.md + - Lataaminen palvelusta: data/sensitive-data/sd-connect-download.md + - Poistaminen: data/sensitive-data/sd-connect-delete.md + - Komentorivikäyttöliittymä: data/sensitive-data/sd-connect-command-line-interface.md + - Vianetsintä: data/sensitive-data/sd-connect-troubleshooting.md + - Analysoi SD Desktopilla: + - data/sensitive-data/sd_desktop.md + - Kirjautuminen SD Desktopiin: data/sensitive-data/sd-desktop-login.md + - Virtuaalityöpöydän luominen: data/sensitive-data/sd-desktop-create.md + - Virtuaalityöpöydän hallinta: data/sensitive-data/sd-desktop-manage.md + - Virtuaalityöpöydän käyttö: data/sensitive-data/sd-desktop-access-vm.md + - Virtuaalityöpöydällä työskentely: data/sensitive-data/sd-desktop-working.md + - Mukautus - ohjelmistot ja työkalut: data/sensitive-data/sd-desktop-software.md + - Datan tuonti: data/sensitive-data/sd-desktop-access.md + - Datan vienti käyttöliittymän kautta: data/sensitive-data/sd-desktop-export.md + - Datan vienti ohjelmallisesti: data/sensitive-data/sd-desktop-export-commandline.md + - Vianetsintä: data/sensitive-data/sd-desktop-troubleshooting.md + - Julkaise ja uudelleenkäytä: + - Julkaise Federated EGA:lla: + - data/sensitive-data/federatedega.md + - Datan julkaiseminen: data/sensitive-data/fega-submission.md + - Uudelleenkäytä SD Apply:lla: + - data/sensitive-data/sd-apply.md + - Hae pääsyä FEGA-dataan: data/sensitive-data/sd-apply-access.md + - Hyväksy pääsy FEGA-dataan: data/sensitive-data/sd-apply-approval.md + - Mahdollista FEGA-datan uudelleenkäyttö: data/sensitive-data/sd-apply-dac.md + - Terveys- ja sosiaalialan tietojen toissijainen käyttö: + - Aloita tästä: + - data/sensitive-data/secondarydata-access.md + - Findata-luvalla pääsy: data/sensitive-data/findata-permit.md + - Rekisteriluvalla pääsy: data/sensitive-data/single-register-permit.md + - Analysoi SD Desktopilla toissijaiseen käyttöön: + - data/sensitive-data/sd-desktop-audited.md + - Kirjautuminen SD Desktopiin: data/sensitive-data/sd-desktop-secondary-login.md + - Virtuaalityöpöydän luominen: data/sensitive-data/sd-desktop-secondary-create.md + - Virtuaalityöpöydän hallinta: data/sensitive-data/sd-desktop-secondary-manage.md + - Virtuaalityöpöydän käyttö: data/sensitive-data/sd-desktop-secondary-access-vm.md + - Työpöydällä ja ohjelmistoilla työskentely: data/sensitive-data/sd-desktop-secondary-working.md + - Datan tuonti: data/sensitive-data/sd-desktop-secondary-access.md + - Datan vienti: data/sensitive-data/sd-desktop-secondary-export.md + - Vianetsintä: data/sensitive-data/sd-desktop-secondary-troubleshooting.md + - Ohjeet rekistereille: data/sensitive-data/single-register-submission.md + - Terminologia: data/sensitive-data/sd-terminology.md + - Sovellukset: + - apps/index.md + - Tieteenaloittain: apps/by_discipline.md + - Saatavuuden mukaan: apps/by_system.md + - Lisenssin mukaan: apps/by_license.md + - UKK: support/faq/index.md + - Tutoriaalit: support/tutorials/index.md + - Koulutusmateriaalit: support/training-material/index.md + - Yhteystiedot: support/contact.md + - Uutiset: support/whats-new.md \ No newline at end of file From e23cbc4102ce6efd002fe2fce784ebd27751697b Mon Sep 17 00:00:00 2001 From: Joonas Somero Date: Wed, 8 Oct 2025 10:01:40 +0300 Subject: [PATCH 06/57] Update translated nav --- mkdocs_fi.yml | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/mkdocs_fi.yml b/mkdocs_fi.yml index 1ce2e332c7..a43492cce8 100644 --- a/mkdocs_fi.yml +++ b/mkdocs_fi.yml @@ -67,7 +67,6 @@ nav: - Supertietokoneen tallennustila: - computing/disk.md - Lustre-tiedostojärjestelmä: computing/lustre.md - - Allas-objektitallennustila: computing/allas.md - Moduuliympäristö: computing/modules.md - Töiden ajaminen: - computing/running/getting-started.md @@ -88,11 +87,10 @@ nav: - Korkean suorituskyvyn kirjastot: computing/hpc-libraries.md - Virheenkorjaus: computing/debugging.md - Suorituskyvyn analyysi: computing/performance.md - - Kontit: + - Apptainer-kontit: - computing/containers/overview.md - - Konttien ajaminen: computing/containers/run-existing.md - - Konttien luominen: computing/containers/creating.md - - Konttikääre (Tykky): computing/containers/tykky.md + - Esimerkkejä: computing/containers/examples.md + - Tykky: computing/containers/tykky.md - Verkkokäyttöliittymä: - computing/webinterface/index.md - Yhteyden muodostaminen: computing/webinterface/connecting.md @@ -113,16 +111,12 @@ nav: - Visual Studio Code: computing/webinterface/vscode.md - Kvanttilaskenta: - computing/quantum-computing/overview.md - - Kvasi QLM: - - Kvasin käyttö: computing/quantum-computing/kvasi/kvasi.md - - Kvasin laskutus: computing/quantum-computing/kvasi/kvasi-billing.md - - Helmi: - - Helmi-projektit: computing/quantum-computing/helmi/helmi-projects.md - - Helmin käyttö LUMIn kautta: computing/quantum-computing/helmi/helmi-from-lumi.md - - Ensimmäinen kvanttityö: computing/quantum-computing/helmi/first-quantum-job.md - - Tekniset tiedot: computing/quantum-computing/helmi/helmi-specs.md - - FiQCI-osio: computing/quantum-computing/helmi/fiqci-partition.md - - Ajaminen Helmillä: computing/quantum-computing/helmi/running-on-helmi.md + - Projektit: computing/quantum-computing/projects.md + - Käyttö LUMIn kautta: computing/quantum-computing/access.md + - Ensimmäinen kvanttityö: computing/quantum-computing/first-quantum-job.md + - Tekniset tiedot: computing/quantum-computing/specs.md + - FiQCI-osio: computing/quantum-computing/fiqci-partition.md + - Kvanttitöiden ajaminen: computing/quantum-computing/running-quantum-jobs.md - Pilvipalvelut: - cloud/index.md - Noppe: @@ -148,7 +142,6 @@ nav: - cloud/pouta/configuration.md - Virtuaalikoneen elinkaari ja laskentayksiköiden säästäminen: cloud/pouta/vm-lifecycle.md - Virtuaalikonetyypit ja laskentayksikköhinnat: cloud/pouta/vm-flavors-and-billing.md - - Laskutusperiaatteet ja kiintiöt: cloud/pouta/accounting.md - Levykuvat: - cloud/pouta/images.md - Virtuaalikoneiden levykuvien luominen, muuntaminen, lataaminen ja jakaminen: cloud/pouta/adding-images.md @@ -207,7 +200,8 @@ nav: - Käyttöoikeudet: cloud/dbaas/mariadb-permissions.md - Edistyneemmät ominaisuudet: cloud/dbaas/advanced.md - - Tietokantainstanssin levyn koon muuttaminen: cloud/dbaas/resize-volume.md + - Tietokantainstanssin levyjen koon muuttaminen: cloud/dbaas/resize-volume.md + - Tietokantainstanssien uudelleenkoonti: cloud/dbaas/resize-volume.md - Rahti: - cloud/rahti/index.md - Mikä on Rahti: @@ -291,17 +285,19 @@ nav: - Yleiset virheilmoitukset: data/Allas/using_allas/error_messages.md - Allas-objektitallennustilaan liittyvät termit ja käsitteet: data/Allas/terms_and_concepts.md - Allas-asiakasohjelmat: + - Allas-yhteyden määritys: data/Allas/using_allas/allas-conf.md - Allas Web-käyttöliittymä: data/Allas/using_allas/allas-ui.md + - Puhti/Mahti web-käyttöliittymä: computing/webinterface/file-browser.md - a-command: data/Allas/using_allas/a_commands.md - a-backup: data/Allas/using_allas/a_backup.md - Cyberduck: data/Allas/using_allas/cyberduck.md - Python S3-rajapinnalla: data/Allas/using_allas/python_boto3.md - - Python SWIFT-rajapinnalla: data/Allas/using_allas/python_swift.md + - Python Swift-rajapinnalla: data/Allas/using_allas/python_swift.md - Rclone laskentaympäristöstä: data/Allas/using_allas/rclone.md - Rclone työasemalta: data/Allas/using_allas/rclone_local.md - Swift: data/Allas/using_allas/swift_client.md - S3cmd: data/Allas/using_allas/s3_client.md - - Web-käyttöliittymä: data/Allas/using_allas/web_client.md + - Pouta web-käyttöliittymä: data/Allas/using_allas/web_client.md # data/Allas/using_allas/directory_object_error.md is not linked in this structure - Kaivos-tietokantapalvelu: - data/kaivos/overview.md @@ -314,7 +310,7 @@ nav: # Python MySQL API at CSC: - Arkaluonteinen data: - data/sensitive-data/index.md - - Palvelun valinta: data/sensitive-data/choose-a-service.md + - Sisällysluettelo: data/sensitive-data/sd-services-toc.md - Tallenna ja analysoi: - Aloita tästä: - data/sensitive-data/sd-access.md @@ -376,4 +372,4 @@ nav: - Tutoriaalit: support/tutorials/index.md - Koulutusmateriaalit: support/training-material/index.md - Yhteystiedot: support/contact.md - - Uutiset: support/whats-new.md \ No newline at end of file + - Uutiset: support/whats-new.md From 01720cd246c5e738f8f86f40ce40ae1670fe76f3 Mon Sep 17 00:00:00 2001 From: Joonas Somero Date: Wed, 8 Oct 2025 14:29:47 +0300 Subject: [PATCH 07/57] Translate footer --- csc-overrides/partials/footer.html | 40 ++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/csc-overrides/partials/footer.html b/csc-overrides/partials/footer.html index 528ec2aeaa..982ded85bb 100644 --- a/csc-overrides/partials/footer.html +++ b/csc-overrides/partials/footer.html @@ -11,6 +11,7 @@