diff --git a/documentation/blog/2024-2-26-openpanel-public-beta.md b/documentation/blog/2024-2-26-openpanel-public-beta.md index 9e435c20..c7ef21a8 100644 --- a/documentation/blog/2024-2-26-openpanel-public-beta.md +++ b/documentation/blog/2024-2-26-openpanel-public-beta.md @@ -4,7 +4,7 @@ description: Public beta is released! slug: openpanel-public-beta-released authors: stefanpejcic tags: [OpenPanel, news, tutorial] -image: https://refine.ams3.cdn.digitaloceanspaces.com/website/static/img/placeholder.png +image: https://openpanel.co/img/panel/v1/dashboard/dashboard.png hide_table_of_contents: false --- @@ -17,51 +17,10 @@ Link to blog.. -All the steps described are in this [repo](https://github.com/refinedev/refine/tree/master/examples/blog-job-posting). +text here.. ## Intro -[NestJS](https://github.com/nestjs/nest) is a framework for building efficient, scalable Node.js server-side applications. With [nestjsx/crud](https://github.com/nestjsx/crud) we can add CRUD functions quickly and effortlessly on this framework. -## NestJS Rest Api - -To start playing with NestJS you should have node (>= 10.13.0, except for v13) and [npm](https://nodejs.org) installed. - -**Create Project Folder** - -```bash -mkdir job-posting-app -cd job-posting-app -``` - -Setting up a new project is quite simple with the [Nest CLI](https://docs.nestjs.com/cli/overview). With npm installed, you can create a new Nest project with the following commands in your OS terminal: - -```bash -npm i -g @nestjs/cli -nest new api -``` - -[TypeORM](https://github.com/typeorm/typeorm) is definitely the most mature ORM available in the node.js world. Since it's written in TypeScript, it works pretty well with the Nest framework. I chose mysql as database. TypeORM supports many databases (MySQL, MariaDB, Postgres etc.) - -To start with this library we have to install all required dependencies: - -```bash -npm install --save @nestjs/typeorm @nestjs/config typeorm mysql2 -``` - -- Create an [.env.example](https://github.com/refinedev/refine-hackathon/tree/main/job-posting-app/blob/master/api/.env.example) file. Here we will save the database information. -- Create and configured a [docker-compose](https://github.com/refinedev/refine-hackathon/tree/main/job-posting-app/blob/master/api/docker-compose.yml) file for MySQL. -- Create a [ormconfig.ts](https://github.com/refinedev/refine-hackathon/tree/main/job-posting-app/blob/master/api/ormconfig.ts) file for migrations. -- Add the following scripts to the `package.json` file for migrations. - -```bash -"typeorm": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js", -"db:migration:generate": "npm run typeorm -- migration:generate", -"db:migration:run": "npm run typeorm -- migration:run", -"db:migration:revert": "npm run typeorm -- migration:revert", -"db:refresh": "npm run typeorm schema:drop && npm run db:migration:run" -``` - - -refine_job +openpanel_job
diff --git a/documentation/src/components/banner/banner-examples.tsx b/documentation/src/components/banner/banner-examples.tsx index b307e447..777ecc35 100644 --- a/documentation/src/components/banner/banner-examples.tsx +++ b/documentation/src/components/banner/banner-examples.tsx @@ -14,11 +14,11 @@ type Props = { }; export const BannerExamples: FC = ({ - title = "Open-source Retool alternative for enterprise", - description = "Build React-based internal tools, dashboards & B2B apps with unmatched flexibility", + title = "Next Generation Hosting Panel", + description = "Effortlessly install new PHP versions, modify server configurations, view domain logs, restart services, and more.", button = { - text: "Discover Refine", - href: "https://s.refine.dev/blog-retool?ref=banner-retool-alternative", + text: "Discover OpenPanel", + href: "https://openpanel.co/features?ref=banner-openpanel-alternative", onClick: undefined, }, }) => { diff --git a/documentation/src/components/banner/banner-modal.tsx b/documentation/src/components/banner/banner-modal.tsx index 4f016360..f976f88c 100644 --- a/documentation/src/components/banner/banner-modal.tsx +++ b/documentation/src/components/banner/banner-modal.tsx @@ -29,16 +29,16 @@ type Props = { }; export const BannerModal: FC = ({ - title = "refine's app scaffolder offers +720 customizable CRUD app codebase combinations.", + title = "OpenPanel offers a distinct advantage over other hosting panels by providing each user with an isolated environment and tools to fully manage it.", variant = "purple", image = { - src: "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/banners/playground.gif", - alt: "refine App screenshot", - href: "https://s.refine.dev/banner-modal?ref=banner-modal", + src: "https://openpanel.co/img/admin/openadmin_dashboard.png", + alt: "OpenPanel dashboard screenshot", + href: "https://openpanel.co/demo?ref=banner-modal", }, button = { text: "Try online", - href: "https://s.refine.dev/banner-modal?ref=banner-modal", + href: "https://openpanel.co/demo?ref=banner-modal", onClick: undefined, }, }) => { diff --git a/documentation/src/components/banner/banner-random.tsx b/documentation/src/components/banner/banner-random.tsx index 24a015b4..ca9cabd5 100644 --- a/documentation/src/components/banner/banner-random.tsx +++ b/documentation/src/components/banner/banner-random.tsx @@ -6,11 +6,11 @@ import BrowserOnly from "@docusaurus/BrowserOnly"; const data = [ { description: - "Refine is a React Framework used by over monthly 15K developers for building enterprise internal tools, dashboards, and B2B apps", + "Deliver a VPS-like experience to your users at a fraction of the cost, with all-inclusive features such as resource limiting, and enhanced security seamlessly integrated for worry-free hosting.", image: { - src: "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/banners/banner-tweet.jpg", - alt: "X tweet about Refine", - href: "https://s.refine.dev/blog-twitter?ref=banner-twitter", + src: "https://openpanel.co/img/admin/openadmin_dashboard.png", + alt: "OpenPanel Enterprise edition", + href: "https://openpanel.co/beta/?ref=banner-admin-panel", }, button: { text: "Learn more", diff --git a/documentation/src/components/banner/banner-sidebar.tsx b/documentation/src/components/banner/banner-sidebar.tsx index db8f24f3..6a4bc5b2 100644 --- a/documentation/src/components/banner/banner-sidebar.tsx +++ b/documentation/src/components/banner/banner-sidebar.tsx @@ -4,11 +4,11 @@ import { LandingRainbowButton } from "@site/src/refine-theme/landing-rainbow-but import clsx from "clsx"; import React from "react"; -const text = "Struggling with internal tools?"; +const text = "Struggling with hosting panels?"; const description = - "Explore refine’s limitless possibilities in crafting CRUD apps, CRM solutions, HR dashboards, and more!"; + "Boost your hosting service: Try OpenPanel Community edition and elevate your clients experience to new heights!"; const image = - "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/banners/app-crm.png"; + "https://openpanel.co/img/panel/v1/dashboard/dashboard.png"; export const BannerSidebar = ({ shouldShowBanner }) => { React.useEffect(() => { @@ -40,7 +40,7 @@ export const BannerSidebar = ({ shouldShowBanner }) => { )} > ) => ( width={34} height={34} fill="none" + viewBox="0 0 213.000000 215.000000" {...props} > - - - - - - - - - - - - - - - - - - - + + + ); diff --git a/documentation/src/theme/BlogPostItems/index.js b/documentation/src/theme/BlogPostItems/index.js index 99207c0f..795d6d01 100644 --- a/documentation/src/theme/BlogPostItems/index.js +++ b/documentation/src/theme/BlogPostItems/index.js @@ -59,11 +59,11 @@ export default function BlogPostItems({ "text-gray-500 dark:text-gray-400", )} > - Refine technical blog - a resource for - Refine, front-end ecosystem, and web development. + OpenPanel technical blog - a resource for + OpenPanel, admin and end-users. Here, we publish insightful articles that demystify complex concepts, explore new trends, and provide - helpful tips to enhance your coding journey. + helpful tips to improve your hosting business.