Add Iran offline deploy: Mac bundle + prebuilt Docker image.
Fix pnpm workspace error during prisma generate, and add bundle-for-iran.sh so the app is built on Mac (full internet) and the server only copies artifacts. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,174 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE `Post` (
|
||||
`id` VARCHAR(191) NOT NULL,
|
||||
`title` VARCHAR(500) NOT NULL,
|
||||
`slug` VARCHAR(500) NOT NULL,
|
||||
`locale` VARCHAR(5) NOT NULL DEFAULT 'fa',
|
||||
`category` VARCHAR(100) NOT NULL,
|
||||
`excerpt` TEXT NULL,
|
||||
`body` LONGTEXT NULL,
|
||||
`coverImage` VARCHAR(1000) NULL,
|
||||
`featured` BOOLEAN NOT NULL DEFAULT false,
|
||||
`publishedAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`seoTitle` VARCHAR(255) NULL,
|
||||
`seoDesc` VARCHAR(500) NULL,
|
||||
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`updatedAt` DATETIME(3) NOT NULL,
|
||||
|
||||
UNIQUE INDEX `Post_slug_key`(`slug`),
|
||||
INDEX `Post_locale_featured_idx`(`locale`, `featured`),
|
||||
INDEX `Post_locale_category_idx`(`locale`, `category`),
|
||||
INDEX `Post_publishedAt_idx`(`publishedAt` DESC),
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `Project` (
|
||||
`id` VARCHAR(191) NOT NULL,
|
||||
`title` VARCHAR(500) NOT NULL,
|
||||
`slug` VARCHAR(500) NOT NULL,
|
||||
`locale` VARCHAR(5) NOT NULL DEFAULT 'fa',
|
||||
`projectType` VARCHAR(100) NOT NULL,
|
||||
`description` TEXT NULL,
|
||||
`body` LONGTEXT NULL,
|
||||
`coverImage` VARCHAR(1000) NULL,
|
||||
`gallery` TEXT NULL,
|
||||
`techStack` TEXT NULL,
|
||||
`toolsUsed` TEXT NULL,
|
||||
`liveUrl` VARCHAR(500) NULL,
|
||||
`githubUrl` VARCHAR(500) NULL,
|
||||
`featured` BOOLEAN NOT NULL DEFAULT false,
|
||||
`seoTitle` VARCHAR(255) NULL,
|
||||
`seoDesc` VARCHAR(500) NULL,
|
||||
`sortOrder` INTEGER NOT NULL DEFAULT 0,
|
||||
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`updatedAt` DATETIME(3) NOT NULL,
|
||||
|
||||
UNIQUE INDEX `Project_slug_key`(`slug`),
|
||||
INDEX `Project_locale_projectType_idx`(`locale`, `projectType`),
|
||||
INDEX `Project_locale_featured_idx`(`locale`, `featured`),
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `Product` (
|
||||
`id` VARCHAR(191) NOT NULL,
|
||||
`title` VARCHAR(500) NOT NULL,
|
||||
`slug` VARCHAR(500) NOT NULL,
|
||||
`locale` VARCHAR(5) NOT NULL DEFAULT 'fa',
|
||||
`description` TEXT NULL,
|
||||
`price` DOUBLE NULL,
|
||||
`currency` VARCHAR(10) NOT NULL DEFAULT 'IRR',
|
||||
`coverImage` VARCHAR(1000) NULL,
|
||||
`purchaseUrl` VARCHAR(500) NULL,
|
||||
`productType` VARCHAR(50) NOT NULL DEFAULT 'digital',
|
||||
`featured` BOOLEAN NOT NULL DEFAULT false,
|
||||
`seoTitle` VARCHAR(255) NULL,
|
||||
`seoDesc` VARCHAR(500) NULL,
|
||||
`sortOrder` INTEGER NOT NULL DEFAULT 0,
|
||||
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`updatedAt` DATETIME(3) NOT NULL,
|
||||
|
||||
UNIQUE INDEX `Product_slug_key`(`slug`),
|
||||
INDEX `Product_locale_idx`(`locale`),
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `Tag` (
|
||||
`id` VARCHAR(191) NOT NULL,
|
||||
`title` VARCHAR(100) NOT NULL,
|
||||
`slug` VARCHAR(100) NOT NULL,
|
||||
|
||||
UNIQUE INDEX `Tag_slug_key`(`slug`),
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `PostTag` (
|
||||
`postId` VARCHAR(191) NOT NULL,
|
||||
`tagId` VARCHAR(191) NOT NULL,
|
||||
|
||||
PRIMARY KEY (`postId`, `tagId`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `TimelineEvent` (
|
||||
`id` VARCHAR(191) NOT NULL,
|
||||
`title` VARCHAR(500) NOT NULL,
|
||||
`date` DATETIME(3) NOT NULL,
|
||||
`description` TEXT NULL,
|
||||
`icon` VARCHAR(10) NULL,
|
||||
`category` VARCHAR(50) NOT NULL DEFAULT 'career',
|
||||
`sortOrder` INTEGER NOT NULL DEFAULT 0,
|
||||
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
|
||||
INDEX `TimelineEvent_date_idx`(`date` DESC),
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `UsesItem` (
|
||||
`id` VARCHAR(191) NOT NULL,
|
||||
`title` VARCHAR(255) NOT NULL,
|
||||
`description` TEXT NULL,
|
||||
`category` VARCHAR(50) NOT NULL,
|
||||
`url` VARCHAR(500) NULL,
|
||||
`image` VARCHAR(1000) NULL,
|
||||
`sortOrder` INTEGER NOT NULL DEFAULT 0,
|
||||
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
`updatedAt` DATETIME(3) NOT NULL,
|
||||
|
||||
INDEX `UsesItem_category_idx`(`category`),
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `SiteSettings` (
|
||||
`id` VARCHAR(191) NOT NULL DEFAULT 'main',
|
||||
`siteTitle` VARCHAR(255) NOT NULL DEFAULT 'Ali Taghavi',
|
||||
`description` TEXT NULL,
|
||||
`currentStatus` TEXT NULL,
|
||||
`telegramChannel` VARCHAR(255) NULL,
|
||||
`socialGithub` VARCHAR(255) NULL,
|
||||
`socialLinkedin` VARCHAR(255) NULL,
|
||||
`socialTwitter` VARCHAR(255) NULL,
|
||||
`socialTelegram` VARCHAR(255) NULL,
|
||||
`socialInstagram` VARCHAR(255) NULL,
|
||||
`updatedAt` DATETIME(3) NOT NULL,
|
||||
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `AdminUser` (
|
||||
`id` VARCHAR(191) NOT NULL,
|
||||
`username` VARCHAR(100) NOT NULL,
|
||||
`password` VARCHAR(255) NOT NULL,
|
||||
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
|
||||
UNIQUE INDEX `AdminUser_username_key`(`username`),
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `ContactMessage` (
|
||||
`id` VARCHAR(191) NOT NULL,
|
||||
`name` VARCHAR(255) NOT NULL,
|
||||
`email` VARCHAR(255) NOT NULL,
|
||||
`subject` VARCHAR(500) NULL,
|
||||
`message` LONGTEXT NOT NULL,
|
||||
`isRead` BOOLEAN NOT NULL DEFAULT false,
|
||||
`createdAt` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
|
||||
INDEX `ContactMessage_isRead_idx`(`isRead`),
|
||||
INDEX `ContactMessage_createdAt_idx`(`createdAt` DESC),
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `PostTag` ADD CONSTRAINT `PostTag_postId_fkey` FOREIGN KEY (`postId`) REFERENCES `Post`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE `PostTag` ADD CONSTRAINT `PostTag_tagId_fkey` FOREIGN KEY (`tagId`) REFERENCES `Tag`(`id`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user