import okcms from "okcms"; import path from "path"; import dotenv from "dotenv"; dotenv.config(); const __dirname = path.resolve(); var isProduction = process.env.OK_PRODUCTION === "true"; // Charles' types from the spreadsheet var tagTypes = [ "(none)", "No6092", "1620s", "painting", "blunt", "National Gallery of Canada", "AGO", "courtauld", "intervensions", "connosieurship", "double agent", "forensics", "black box", ].map((type, index) => [index, type]); var app = okcms .createApp({ project: "No. 6092", debug: !isProduction, production: isProduction, admin: { dashboard: { resources: {}, }, }, schemas: { page: { id: { type: "string", hidden: true }, title: { type: "string" }, author: { type: "string" }, description: { type: "text" }, thumbnail: { type: "image" }, images: { type: "gallery" }, tag_0: { type: "enum", options: tagTypes, alias: "Tag #1" }, tag_1: { type: "enum", options: tagTypes, alias: "Tag #2" }, tag_2: { type: "enum", options: tagTypes, alias: "Tag #3" }, tag_3: { type: "enum", options: tagTypes, alias: "Tag #4" }, tag_4: { type: "enum", options: tagTypes, alias: "Tag #5" }, tag_5: { type: "enum", options: tagTypes, alias: "Tag #6" }, tag_6: { type: "enum", options: tagTypes, alias: "Tag #7" }, tag_7: { type: "enum", options: tagTypes, alias: "Tag #8" }, tag_8: { type: "enum", options: tagTypes, alias: "Tag #9" }, hidden: { type: "flag" }, }, ui: { id: { type: "string", hidden: true }, title: { type: "string" }, body: { type: "text" }, hidden: { type: "flag" }, }, }, resources: [{ type: "page" }, { type: "ui" }], views: { "/": { template: "home", data: [ { type: "page", query: "*" }, { type: "ui", query: "*" }, ], }, }, services: { s3: { // key: process.env.S3_KEY, // secret: process.env.S3_SECRET, // bucket: process.env.S3_BUCKET, // dirname: "km", local: { localPath: path.join(__dirname, "./public/assets/uploads/"), remotePath: "/assets/uploads/", }, image: { allowed: true, preserveFilename: false, maxbytes: 2 * 1024 * 1024, }, file: { allowed: true, preserveFilename: true, maxbytes: 100 * 1024 * 1024, }, video: { allowed: true, preserveFilename: true, maxbytes: 200 * 1024 * 1024, }, audio: { allowed: true, preserveFilename: true, maxbytes: 100 * 1024 * 1024, }, }, }, }) .listen(process.env.PORT || 3000); console.log("Server listening at port " + (process.env.PORT || 3000) + "...");