Files
portal/public/admin/config.yml
T

79 lines
2.9 KiB
YAML

# 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/portal repo. Gitea's ROOT_URL and CORS are pinned to
# these origins in deploy/ctao-demo-gitea.container.
backend:
name: gitea
repo: ctao/portal
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: "public/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: news
label: "News"
label_singular: "Article"
folder: "src/content/news"
create: true
slug: "{{slug}}"
extension: md
format: frontmatter
summary: "{{title}} · {{date}}"
fields:
- { name: title, label: "Title", widget: string }
- { name: description, label: "Short description", widget: text }
- { name: date, label: "Date", widget: datetime, date_format: "YYYY-MM-DD", time_format: false }
- { name: category, label: "Category", widget: string, default: "news" }
- { name: author, label: "Author", widget: string, default: "CTAO" }
- { name: cover, label: "Cover image", widget: image, required: false }
- { name: lang, label: "Language (if not English, e.g. pl)", widget: string, required: false }
- { name: draft, label: "Draft (unpublished)", widget: boolean, default: false }
- { name: body, label: "Body", widget: markdown }
- name: pages
label: "Pages"
label_singular: "Page"
folder: "src/content/pages"
create: true
slug: "{{slug}}"
extension: md
format: frontmatter
summary: "{{title}}"
fields:
- { name: title, label: "Title", widget: string }
- { name: description, label: "Description", widget: text, required: false }
- { name: body, label: "Body", widget: markdown }