This commit is contained in:
nicwands 2026-06-03 13:22:01 -04:00
parent ebb586d08a
commit 14dfa8dc37
13 changed files with 20318 additions and 21836 deletions

View file

@ -1,15 +0,0 @@
node_modules
npm-debug.log
.git
.gitignore
README.md
.env
.nyc_output
coverage
.sass-cache
.cache
.tmp
.DS_Store
*.log
dist
.strapi-updater.json

8
.env.example Normal file
View file

@ -0,0 +1,8 @@
HOST=0.0.0.0
PORT=1337
APP_KEYS="toBeModified1,toBeModified2"
API_TOKEN_SALT=tobemodified
ADMIN_JWT_SECRET=tobemodified
TRANSFER_TOKEN_SALT=tobemodified
JWT_SECRET=tobemodified
ENCRYPTION_KEY=tobemodified

View file

@ -1,28 +1,25 @@
import type { Core } from "@strapi/strapi"; import type { Core } from '@strapi/strapi';
const config = ({ const config = ({ env }: Core.Config.Shared.ConfigParams): Core.Config.Admin => ({
env,
}: Core.Config.Shared.ConfigParams): Core.Config.Admin => {
return {
auth: { auth: {
secret: env("ADMIN_JWT_SECRET"), secret: env('ADMIN_JWT_SECRET'),
}, },
apiToken: { apiToken: {
salt: env("API_TOKEN_SALT"), salt: env('API_TOKEN_SALT'),
}, },
transfer: { transfer: {
token: { token: {
salt: env("TRANSFER_TOKEN_SALT"), salt: env('TRANSFER_TOKEN_SALT'),
}, },
}, },
secrets: { secrets: {
encryptionKey: env("ENCRYPTION_KEY"), encryptionKey: env('ENCRYPTION_KEY'),
}, },
flags: { flags: {
nps: env.bool("FLAG_NPS", true), nps: env.bool('FLAG_NPS', true),
promoteEE: env.bool("FLAG_PROMOTE_EE", true), promoteEE: env.bool('FLAG_PROMOTE_EE', true),
docLinks: env.bool('FLAG_DOC_LINKS', true),
}, },
}; });
};
export default config; export default config;

View file

@ -1,14 +1,14 @@
services: services:
nicwands: strapi:
container_name: nicwands container_name: strapi
build: build:
context: . context: .
image: nicwands-cms:latest image: strapi-cms:latest
restart: unless-stopped restart: unless-stopped
env_file: .env env_file: .env
environment: environment:
DATABASE_CLIENT: ${DATABASE_CLIENT} DATABASE_CLIENT: ${DATABASE_CLIENT}
DATABASE_HOST: nicwandsDB DATABASE_HOST: strapiDB
DATABASE_NAME: ${DATABASE_NAME} DATABASE_NAME: ${DATABASE_NAME}
DATABASE_USERNAME: ${DATABASE_USERNAME} DATABASE_USERNAME: ${DATABASE_USERNAME}
DATABASE_PORT: ${DATABASE_PORT} DATABASE_PORT: ${DATABASE_PORT}
@ -20,19 +20,19 @@ services:
- ./.env:/opt/app/.env - ./.env:/opt/app/.env
- ./public/uploads:/opt/app/public/uploads - ./public/uploads:/opt/app/public/uploads
depends_on: depends_on:
- nicwandsDB - strapiDB
healthcheck: healthcheck:
test: test:
- CMD - CMD
- node - node
- "-e" - '-e'
- "fetch('http://127.0.0.1:1337/admin').then((r) => {if (r.status !== 200) throw new Error(r.status)})" - "fetch('http://127.0.0.1:1337/admin').then((r) => {if (r.status !== 200) throw new Error(r.status)})"
timeout: 5s timeout: 5s
interval: 5s interval: 5s
retries: 3 retries: 3
nicwandsDB: strapiDB:
container_name: nicwandsDB container_name: strapiDB
platform: linux/amd64 platform: linux/amd64
restart: unless-stopped restart: unless-stopped
env_file: .env env_file: .env
@ -42,21 +42,21 @@ services:
POSTGRES_PASSWORD: ${DATABASE_PASSWORD} POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
POSTGRES_DB: ${DATABASE_NAME} POSTGRES_DB: ${DATABASE_NAME}
volumes: volumes:
- nicwands-data:/var/lib/postgresql/data/ - strapi-data:/var/lib/postgresql/data/
nicwandsAdminer: strapiAdminer:
container_name: nicwandsAdminer container_name: strapiAdminer
image: adminer image: adminer
restart: unless-stopped restart: unless-stopped
environment: environment:
- ADMINER_DEFAULT_SERVER=nicwandsDB - ADMINER_DEFAULT_SERVER=strapiDB
depends_on: depends_on:
- nicwandsDB - strapiDB
volumes: volumes:
nicwands-data: strapi-data:
networks: networks:
nicwands: strapi:
name: nicwands name: strapi
driver: bridge driver: bridge

2684
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
{ {
"name": "cms.nicwands.com", "name": "cms-nicwands-com",
"version": "0.1.0", "version": "0.1.0",
"private": true, "private": true,
"description": "A Strapi application", "description": "A Strapi application",
@ -15,9 +15,10 @@
"upgrade:dry": "npx @strapi/upgrade latest --dry" "upgrade:dry": "npx @strapi/upgrade latest --dry"
}, },
"dependencies": { "dependencies": {
"@strapi/plugin-cloud": "5.46.1", "@strapi/plugin-cloud": "5.47.1",
"@strapi/plugin-users-permissions": "5.46.1", "@strapi/plugin-users-permissions": "5.47.1",
"@strapi/strapi": "5.46.1", "@strapi/strapi": "5.47.1",
"better-sqlite3": "^12.10.0",
"pg": "8.20.0", "pg": "8.20.0",
"react": "^18.0.0", "react": "^18.0.0",
"react-dom": "^18.0.0", "react-dom": "^18.0.0",
@ -28,7 +29,6 @@
"@types/node": "^20", "@types/node": "^20",
"@types/react": "^18", "@types/react": "^18",
"@types/react-dom": "^18", "@types/react-dom": "^18",
"better-sqlite3": "^12.10.0",
"typescript": "^5" "typescript": "^5"
}, },
"engines": { "engines": {
@ -36,7 +36,7 @@
"npm": ">=6.0.0" "npm": ">=6.0.0"
}, },
"strapi": { "strapi": {
"uuid": "33974e7e-e7a6-4572-985a-e2ef467f2114", "uuid": "226ed072-1db6-4f93-b888-095cae9f3e5c",
"installId": "d119f403157b783e98a16f85355418da5240a3859fbe1bb4683f7b3df6324fe5" "installId": "3c81cee5923221a8cfb80780ef853fb60670f459af5e899344d83559ab34f268"
} }
} }

View file

@ -7,7 +7,7 @@ export default {
// 'fr', // 'fr',
// 'cs', // 'cs',
// 'de', // 'de',
// 'dk', // 'da',
// 'es', // 'es',
// 'he', // 'he',
// 'id', // 'id',

View file

@ -11,10 +11,12 @@
}, },
"pluginOptions": {}, "pluginOptions": {},
"attributes": { "attributes": {
"content": { "mosaic_items": {
"type": "blocks" "type": "component",
"component": "global.mosaic-item",
"repeatable": true
}, },
"SEO": { "seo": {
"type": "component", "type": "component",
"component": "global.seo", "component": "global.seo",
"repeatable": false "repeatable": false

View file

@ -0,0 +1,21 @@
{
"collectionName": "components_global_mosaic_items",
"info": {
"displayName": "Mosaic Item",
"icon": "apps"
},
"options": {},
"attributes": {
"image": {
"type": "media",
"multiple": false,
"allowedTypes": [
"images"
]
},
"note": {
"type": "blocks"
}
},
"config": {}
}

View file

@ -2,7 +2,7 @@
"collectionName": "components_global_seos", "collectionName": "components_global_seos",
"info": { "info": {
"displayName": "SEO", "displayName": "SEO",
"icon": "stack" "icon": "filter"
}, },
"options": {}, "options": {},
"attributes": { "attributes": {

View file

@ -1,10 +1,22 @@
import type { Schema, Struct } from '@strapi/strapi'; import type { Schema, Struct } from '@strapi/strapi';
export interface GlobalMosaicItem extends Struct.ComponentSchema {
collectionName: 'components_global_mosaic_items';
info: {
displayName: 'Mosaic Item';
icon: 'apps';
};
attributes: {
image: Schema.Attribute.Media<'images'>;
note: Schema.Attribute.Blocks;
};
}
export interface GlobalSeo extends Struct.ComponentSchema { export interface GlobalSeo extends Struct.ComponentSchema {
collectionName: 'components_global_seos'; collectionName: 'components_global_seos';
info: { info: {
displayName: 'SEO'; displayName: 'SEO';
icon: 'stack'; icon: 'filter';
}; };
attributes: { attributes: {
description: Schema.Attribute.Text; description: Schema.Attribute.Text;
@ -16,6 +28,7 @@ export interface GlobalSeo extends Struct.ComponentSchema {
declare module '@strapi/strapi' { declare module '@strapi/strapi' {
export module Public { export module Public {
export interface ComponentSchemas { export interface ComponentSchemas {
'global.mosaic-item': GlobalMosaicItem;
'global.seo': GlobalSeo; 'global.seo': GlobalSeo;
} }
} }

View file

@ -451,7 +451,6 @@ export interface ApiGlobalGlobal extends Struct.SingleTypeSchema {
draftAndPublish: true; draftAndPublish: true;
}; };
attributes: { attributes: {
content: Schema.Attribute.Blocks;
createdAt: Schema.Attribute.DateTime; createdAt: Schema.Attribute.DateTime;
createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & createdBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
Schema.Attribute.Private; Schema.Attribute.Private;
@ -461,8 +460,9 @@ export interface ApiGlobalGlobal extends Struct.SingleTypeSchema {
'api::global.global' 'api::global.global'
> & > &
Schema.Attribute.Private; Schema.Attribute.Private;
mosaic_items: Schema.Attribute.Component<'global.mosaic-item', true>;
publishedAt: Schema.Attribute.DateTime; publishedAt: Schema.Attribute.DateTime;
SEO: Schema.Attribute.Component<'global.seo', false>; seo: Schema.Attribute.Component<'global.seo', false>;
updatedAt: Schema.Attribute.DateTime; updatedAt: Schema.Attribute.DateTime;
updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> & updatedBy: Schema.Attribute.Relation<'oneToOne', 'admin::user'> &
Schema.Attribute.Private; Schema.Attribute.Private;