# Sveltia CMS config — backend: Gitea behind the Cyfronet ingress (HTTPS # vhost). Editors log in via Gitea OAuth (PKCE, no client secret); edits are # committed to the ctao/content repo. Gitea's ROOT_URL and CORS are pinned to # these origins in deploy/ctao-demo-gitea.container. backend: name: gitea # Keep this branch in sync with CONTENT_BRANCH in deploy/build.sh. # Seed the content branch from sample-content/ before deploying. repo: ctao/content branch: main base_url: https://astro-git.isl-dev.grid.cyfronet.pl api_root: https://astro-git.isl-dev.grid.cyfronet.pl/api/v1 app_id: cf1c44ac-ebe6-4a97-bf2f-f7f26ef1126c # OAuth only — hides the "access token" sign-in option (documented # auth_methods). The "Work with Local Repository" button needs no config: # it renders only on localhost (source-verified), so it vanishes once the # portal is served from a real domain. auth_methods: [oauth] # CTAO branding on the sign-in screen and browser tab (documented Sveltia # options: app_title replaces the "Sveltia CMS" label; logo.src is the # current form of the deprecated logo_url). app_title: CTAO Content Editor logo: src: /brand/CTAO_Logo_login.svg media_folder: "uploads" public_folder: "/uploads" # Keep the git repo lean: images are stored as plain git blobs (no LFS), so # every upload is converted client-side to WebP q85 and capped at 2048px # (documented media_libraries transformations). A phone photo lands in the # repo as ~100-300 KB instead of 5-10 MB. media_libraries: default: config: slugify_filename: true transformations: raster_image: format: webp quality: 85 width: 2048 height: 2048 svg: optimize: true collections: - name: examples label: "Example pages" files: - name: lorem-ipsum label: "Lorem ipsum" file: "pages/lorem-ipsum.md" format: frontmatter fields: - { name: title, label: "Title", widget: string } - { name: introduction, label: "Introduction", widget: text, required: false } - { name: image, label: "Image", widget: image, required: false } - { name: imageAlt, label: "Image alternative text", widget: string, required: false, hint: "Describe the image; leave empty only for decorative images." } - { name: imageCaption, label: "Image caption", widget: string, required: false } - { name: body, label: "Body", widget: markdown } - { name: buttonLabel, label: "Button label", widget: string, required: false } - { name: buttonUrl, label: "Button destination", widget: string, required: false, hint: "A site path such as /example/lorem-ipsum/, or an https:// URL." } - name: dolor-sit-amet label: "Dolor sit amet" file: "pages/dolor-sit-amet.md" format: frontmatter fields: - { name: title, label: "Title", widget: string } - { name: introduction, label: "Introduction", widget: text, required: false } - { name: image, label: "Image", widget: image, required: false } - { name: imageAlt, label: "Image alternative text", widget: string, required: false, hint: "Describe the image; leave empty only for decorative images." } - { name: imageCaption, label: "Image caption", widget: string, required: false } - { name: body, label: "Body", widget: markdown } - { name: buttonLabel, label: "Button label", widget: string, required: false } - { name: buttonUrl, label: "Button destination", widget: string, required: false, hint: "A site path such as /example/lorem-ipsum/, or an https:// URL." } - name: consectetur-adipiscing label: "Consectetur adipiscing" file: "pages/consectetur-adipiscing.md" format: frontmatter fields: - { name: title, label: "Title", widget: string } - { name: introduction, label: "Introduction", widget: text, required: false } - { name: image, label: "Image", widget: image, required: false } - { name: imageAlt, label: "Image alternative text", widget: string, required: false, hint: "Describe the image; leave empty only for decorative images." } - { name: imageCaption, label: "Image caption", widget: string, required: false } - { name: body, label: "Body", widget: markdown } - { name: buttonLabel, label: "Button label", widget: string, required: false } - { name: buttonUrl, label: "Button destination", widget: string, required: false, hint: "A site path such as /example/lorem-ipsum/, or an https:// URL." } - name: sed-do-eiusmod label: "Sed do eiusmod" file: "pages/sed-do-eiusmod.md" format: frontmatter fields: - { name: title, label: "Title", widget: string } - { name: introduction, label: "Introduction", widget: text, required: false } - { name: image, label: "Image", widget: image, required: false } - { name: imageAlt, label: "Image alternative text", widget: string, required: false, hint: "Describe the image; leave empty only for decorative images." } - { name: imageCaption, label: "Image caption", widget: string, required: false } - { name: body, label: "Body", widget: markdown } - { name: buttonLabel, label: "Button label", widget: string, required: false } - { name: buttonUrl, label: "Button destination", widget: string, required: false, hint: "A site path such as /example/lorem-ipsum/, or an https:// URL." }