Skip to content

อ้างอิง config ​

ตัวเลือกทั้งหมดของ easy-cms.config.ts แบ่งตามตำแหน่งที่ใส่ คำอธิบายและตัวอย่างดูได้จากลิงก์ไปยังคู่มือ มีเทสต์ตรวจหน้านี้กับ type ใน @easy-cms/core ทุกตัวเลือกจึงอยู่ในหน้านี้ครบ

ts
import { defineConfig } from '@easy-cms/core'

export default defineConfig({ secret, db, collections, /* … */ })

ระดับบนสุด ​

ตัวเลือกTypeค่าเริ่มต้น
secretstring—จำเป็น อย่างน้อย 32 ตัวอักษร ใช้เซ็น session และ preview token
dbDatabaseAdapter—จำเป็น sqlite() หรือ postgres() ฐานข้อมูล
serverURLstring—origin สาธารณะ (https://example.com) ทำให้ URL ของ media เป็น URL เต็ม
corsstring[] | '*'[]origin ที่โค้ดใน browser เรียก API ได้ ความปลอดภัย
cronSecretstringCRON_SECRETsecret แบบ Bearer สำหรับ GET <api>/jobs/run การตั้งเวลา
webhooksWebhookConfig[][]ดู webhooks
localizationLocalizationConfig—ดู localization
routesRoutesConfigดู routes
adminAdminConfigดู admin
uploadUploadConfigดู upload
authAuthConfigดู auth
collectionsCollectionConfig[][]ดู collections
globalsGlobalConfig[][]ดู globals
endpointsEndpoint[][]ดู endpoints
commandsCliCommand[][]คำสั่ง easy-cms <name> เช่นจาก plugin: { name, description, help?, run({ cms, args, log }) } CLI
apiKeysbooleanfalseAPI key ใต้ตั้งค่า สำหรับสคริปต์และแอปอื่น API keys
emailEmailAdapter—ส่งอีเมลให้ plugin เช่น smtp() หรือ consoleEmail() อีเมล
pluginsPlugin[][](config) => config ทำงานตามลำดับก่อนตรวจ config Plugins

routes ​

ตัวเลือกTypeค่าเริ่มต้น
apistring/api/cmsตำแหน่งของ REST API

admin ​

ตัวเลือกTypeค่าเริ่มต้น
pathstring/adminตำแหน่งของหน้า admin
locale'en' | 'th'enภาษาเริ่มต้นของหน้า admin ก่อนผู้ใช้เลือกเอง
brandAdminBrand{}ดู brand
siteUrlstring/ (Nuxt, Next.js)เว็บสาธารณะสำหรับปุ่ม "ดูเว็บไซต์": path หรือ URL แบบ http(s)
menustring[]ตามลำดับใน configslug ของ collection ตามลำดับในเมนู ที่ไม่ระบุจะตามมา และ media อยู่ท้ายสุด
modulesstring[][]admin module ที่มี Web Components: export ของแพ็กเกจหรือ path Admin components

brand ​

ตัวเลือกType
namestringแสดงในเมนู หน้า login และแท็บของ browser ค่าเริ่มต้น "Easy CMS"
logostringpath บนเว็บของคุณ หรือ URL แบบ https://
colorstringสีหลักแบบ #rrggbb ระบบสร้างเฉดสีให้

auth ​

ตัวเลือกTypeค่าเริ่มต้น
rolesstring[]['admin', 'editor']ต้องมี admin ผู้ใช้และการยืนยันตัวตน
tokenExpirationnumber604800 (7 วัน)อายุของ session เป็นวินาที
maxLoginAttemptsnumber5จำนวนครั้งที่ login ผิดได้ต่อ email (และ IP) ภายใน lockWindow
lockWindownumber900 (15 นาที)เป็นวินาที
trustedOriginsstring[][]origin อื่นที่ส่ง request ด้วย cookie ได้

upload ​

ตัวเลือกTypeค่าเริ่มต้น
dirstringuploadsโฟลเดอร์ของที่เก็บไฟล์ในเครื่อง นับจาก root ของโปรเจกต์
maxFileSizenumber10485760 (10 MB)เป็น byte
mimeTypesstring[]['image/*', 'application/pdf']ประเภทไฟล์ที่อนุญาต ตรวจจากเนื้อไฟล์
storageStorageAdapterดิสก์ในเครื่องเช่น s3Storage() จาก @easy-cms/storage-s3 อัปโหลด
imageSizesImageSize[][]รูปย่อ (ต้องมี sharp) ดู ขนาดรูป

ขนาดรูป ​

ตัวเลือกTypeค่าเริ่มต้น
namestring—key ใน media.sizes เช่น thumbnail
widthnumber—ความกว้างเป็น pixel
heightnumber—ความสูง (ไม่บังคับ)
fit'cover' | 'contain' | 'inside'coverวิธีจัดรูปเมื่อกำหนดทั้งกว้างและสูง

localization ​

ตัวเลือกTypeค่าเริ่มต้น
localesstring[]—ภาษาของเนื้อหา เช่น ['th', 'en'] หลายภาษา
defaultLocalestringภาษาแรกใช้เมื่อไม่ระบุภาษา และใช้เติมค่าที่ว่าง
fallbackbooleantrueถ้าค่าว่าง จะอ่านค่าจากภาษาเริ่มต้นแทน

webhooks ​

ตัวเลือกTypeค่าเริ่มต้น
urlstring—ปลายทางที่จะ POST event Webhooks
eventsstring[]ทั้งหมดcreate, update, delete, publish, unpublish, draft
collectionsstring[]ทั้งหมดcollection ที่ส่ง event ใช้ [] เพื่อไม่ส่งเลย
globalsstring[]ทั้งหมดglobal ที่ส่ง event ใช้ [] เพื่อไม่ส่งเลย
secretstring—เซ็น body: x-easy-cms-signature: sha256=<hex>
headersRecord<string, string>—header เพิ่มเติม

collections ​

ตัวเลือกTypeค่าเริ่มต้น
slugstring—จำเป็น URL และชื่อตาราง: ตัวพิมพ์เล็ก ตัวเลข - และ _
fieldsField[]—จำเป็น ดู อ้างอิง field
labels{ singular?, plural? }สร้างจาก slugแต่ละตัวเป็น string หรือ { en, th }
iconAdminIconfile-textไอคอนในเมนู แบรนด์
useAsTitlestring—field ระดับบนสุดที่ใช้เป็นชื่อเอกสาร
editIn'page' | 'drawer'pagedrawer แก้ในแผงที่เลื่อนมาทับรายการ (ใช้ได้เมื่อไม่มี drafts, versions หรือ preview)
draftsbooleanfalseเพิ่ม status (draft | published) ฉบับร่าง
versionsboolean | VersionsConfigfalseเก็บเวอร์ชันทุกครั้งที่บันทึก ดู versions
schedulebooleanfalseเผยแพร่และยกเลิกตามเวลา (ต้องมี drafts)
preview({ doc, locale }) => string | null—หน้าที่แสดงเอกสาร สำหรับตัวอย่างสด
access{ read?, create?, update?, delete? }ต้อง loginการควบคุมสิทธิ์
hooksCollectionHooks—ดู hooks
adminCollectionAdmin—ดู admin components

versions ​

ตัวเลือกTypeค่าเริ่มต้น
maxnumber50จำนวนเวอร์ชันที่เก็บต่อเอกสาร เวอร์ชันเก่ากว่านั้นจะถูกลบ

hooks ​

แต่ละตัวเป็น list ของฟังก์ชัน Hooks

Hookอาร์กิวเมนต์ค่าที่คืน
beforeValidatedata, operation, originalDoc?data ใหม่ หรือไม่คืน
beforeChangedata, operation, originalDoc?data ใหม่ หรือไม่คืน
afterChangedoc, operation, previousDoc?—
beforeDeleteid—
afterDeleteid, doc—
afterReaddocdoc ใหม่ หรือไม่คืน

ทุก hook ได้ user, cms และ slug ด้วย

Admin components ​

ตัวเลือกType
sidebarAdminComponent[]กล่องในแถบข้างของหน้าแก้ไข Admin components
group'settings'แสดง collection ใต้ตั้งค่าในเมนู คู่กับ Users และ API keys
list{ tree?, sort? }หน้ารายการ: tree คือชื่อ relationship ไปหา collection เดียวกัน เพื่อแสดงเป็นต้นไม้ (เอกสารระดับบนก่อน เอกสารลูกเปิดอยู่ข้างใต้) ส่วน sort คือลำดับเริ่มต้น เช่น 'title'

globals ​

ตัวเลือกTypeค่าเริ่มต้น
slugstring—จำเป็น
fieldsField[]—จำเป็น
labelstring | { en, th }สร้างจาก slug
iconAdminIconsettingsไอคอนในเมนู
draftsbooleanfalse
versionsboolean | VersionsConfigfalse
schedulebooleanfalseต้องมี drafts
preview({ doc, locale }) => string | null—
access{ read?, update? }ต้อง login
hooksGlobalHooks—ดูด้านล่าง
adminContainerAdmin—{ sidebar } เหมือน collection

Hook ของ global ​

Hookอาร์กิวเมนต์ค่าที่คืน
beforeChangedata, operation, originalDoc?data ใหม่ หรือไม่คืน
afterChangedoc, operation, previousDoc?—
afterReaddocdoc ใหม่ หรือไม่คืน

endpoints ​

ตัวเลือกType
pathstringใต้ routes.api เช่น /seo/generate หรือ /stats/:collection
method'get' | 'post' | 'put' | 'patch' | 'delete'
handler(request: EndpointRequest) => unknownคืน Response หรือค่าที่ส่งเป็น JSON Endpoints
rootbooleanเสิร์ฟ path จาก root ของเว็บ (เฉพาะ standalone server) เช่น /robots.txt ค่าเริ่มต้น false

EndpointRequest ​

PropertyType
requestRequestrequest แบบ Web
urlURLURL ของ request
paramsRecord<string, string>ค่าของ segment แบบ :name
userAuthUser | nullผู้ใช้ที่ login อยู่
ipstring | undefinedIP ของ client ถ้า adapter รู้
cmsEasyCMSLocal API
json() => Promise<object>body แบบ JSON (ต้องเป็น object ขนาดไม่เกิน 1 MB)

เผยแพร่ภายใต้สัญญาอนุญาต MIT