From 1f621d361a6b1c7cca9f3927c8d196fed138a29c Mon Sep 17 00:00:00 2001 From: Yannic Kilcher Date: Sat, 25 Nov 2023 13:59:28 +0100 Subject: [PATCH 1/7] added bye page --- website/next.config.js | 19 ++++++++++++++ website/src/pages/bye.tsx | 55 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 website/src/pages/bye.tsx diff --git a/website/next.config.js b/website/next.config.js index 911de0c25c..ffb2762725 100644 --- a/website/next.config.js +++ b/website/next.config.js @@ -31,6 +31,25 @@ const nextConfig = { ignoreDuringBuilds: true, }, async redirects() { + if (process.env.BYE === "true") { + return [ + { + source: "/", + destination: "/bye", + permanent: false, + }, + { + source: "/chat", + destination: "/bye", + permanent: false, + }, + { + source: "/contributors", + destination: "https://ykilcher.com/oa-contributors", + permanent: false, + }, + ]; + } if (process.env.MAINTENANCE_MODE !== "true") { return []; } diff --git a/website/src/pages/bye.tsx b/website/src/pages/bye.tsx new file mode 100644 index 0000000000..58a495c4a9 --- /dev/null +++ b/website/src/pages/bye.tsx @@ -0,0 +1,55 @@ +import Image from "next/image"; +import { Container } from "src/components/Container"; +export { getStaticProps } from "src/lib/defaultServerSideProps"; + +const ByePage = () => { + return ( +
+ +
+
+ temp-image +
+
+
+

OpenAssistant has finished!

+

+ OpenAssistant collected data from over 13'000 humans and released it to the public. + Data, models, and code are publicly available. +

+

Links:

+ +

If you're looking to support other open-data projects, check out these:

+ +
+
+
+
+
+ ); +}; + +export default ByePage; From fcd2453dcdcf3920dcf33698c7b15f0752553807 Mon Sep 17 00:00:00 2001 From: Yannic Kilcher Date: Sat, 25 Nov 2023 14:20:31 +0100 Subject: [PATCH 2/7] pre-commit --- website/src/pages/bye.tsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/website/src/pages/bye.tsx b/website/src/pages/bye.tsx index 58a495c4a9..02ea848d50 100644 --- a/website/src/pages/bye.tsx +++ b/website/src/pages/bye.tsx @@ -14,8 +14,8 @@ const ByePage = () => {

OpenAssistant has finished!

- OpenAssistant collected data from over 13'000 humans and released it to the public. - Data, models, and code are publicly available. + OpenAssistant collected data from over 13'000 humans and released it to the public. Data, models, + and code are publicly available.

Links:

-

If you're looking to support other open-data projects, check out these:

+

+ If you're looking to support other open-data projects, check out these: +

  • LMSYS Chatbot Arena From 5c0efa6e564d519f448c323d643fe0eb8bb6e37b Mon Sep 17 00:00:00 2001 From: Yannic Kilcher Date: Sat, 25 Nov 2023 15:31:29 +0100 Subject: [PATCH 3/7] added dashboard redirect --- website/next.config.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/website/next.config.js b/website/next.config.js index ffb2762725..0fee93b73f 100644 --- a/website/next.config.js +++ b/website/next.config.js @@ -38,6 +38,11 @@ const nextConfig = { destination: "/bye", permanent: false, }, + { + source: "/dashboard", + destination: "/bye", + permanent: false, + }, { source: "/chat", destination: "/bye", From 46520c368858feb9a3ae07ebeb47d7bfa729da7b Mon Sep 17 00:00:00 2001 From: Yannic Kilcher Date: Sat, 25 Nov 2023 15:34:09 +0100 Subject: [PATCH 4/7] deployment workflows for bye --- .github/workflows/deploy-to-node.yaml | 1 + ansible/deploy-to-node.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/deploy-to-node.yaml b/.github/workflows/deploy-to-node.yaml index a34e550334..f04484c6ba 100644 --- a/.github/workflows/deploy-to-node.yaml +++ b/.github/workflows/deploy-to-node.yaml @@ -81,6 +81,7 @@ jobs: BACKEND_CORS_ORIGINS: ${{ vars.BACKEND_CORS_ORIGINS }} WEB_INFERENCE_SERVER_HOST: ${{ vars.WEB_INFERENCE_SERVER_HOST }} WEB_ENABLE_CHAT: ${{ vars.WEB_ENABLE_CHAT }} + WEB_BYE: ${{ vars.WEB_BYE }} WEB_ENABLE_DRAFTS_WITH_PLUGINS: ${{ vars.WEB_ENABLE_DRAFTS_WITH_PLUGINS }} WEB_NUM_GENERATED_DRAFTS: ${{ vars.WEB_NUM_GENERATED_DRAFTS }} WEB_CURRENT_ANNOUNCEMENT: ${{ vars.WEB_CURRENT_ANNOUNCEMENT }} diff --git a/ansible/deploy-to-node.yaml b/ansible/deploy-to-node.yaml index f36e020710..5fe6114c8b 100644 --- a/ansible/deploy-to-node.yaml +++ b/ansible/deploy-to-node.yaml @@ -284,6 +284,7 @@ INFERENCE_SERVER_API_KEY: "{{ lookup('ansible.builtin.env', 'WEB_INFERENCE_SERVER_API_KEY') }}" ENABLE_CHAT: "{{ lookup('ansible.builtin.env', 'WEB_ENABLE_CHAT') }}" + BYE: "{{ lookup('ansible.builtin.env', 'BYE') }}" ENABLE_DRAFTS_WITH_PLUGINS: "{{ lookup('ansible.builtin.env', 'WEB_ENABLE_DRAFTS_WITH_PLUGINS')}}" From 29c50eee601b0a93dca61f44f0869945d29d0fc7 Mon Sep 17 00:00:00 2001 From: Yannic Kilcher Date: Sat, 25 Nov 2023 16:10:19 +0100 Subject: [PATCH 5/7] ansible fix --- ansible/deploy-to-node.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible/deploy-to-node.yaml b/ansible/deploy-to-node.yaml index 5fe6114c8b..33898bc19c 100644 --- a/ansible/deploy-to-node.yaml +++ b/ansible/deploy-to-node.yaml @@ -284,7 +284,7 @@ INFERENCE_SERVER_API_KEY: "{{ lookup('ansible.builtin.env', 'WEB_INFERENCE_SERVER_API_KEY') }}" ENABLE_CHAT: "{{ lookup('ansible.builtin.env', 'WEB_ENABLE_CHAT') }}" - BYE: "{{ lookup('ansible.builtin.env', 'BYE') }}" + BYE: "{{ lookup('ansible.builtin.env', 'WEB_BYE') }}" ENABLE_DRAFTS_WITH_PLUGINS: "{{ lookup('ansible.builtin.env', 'WEB_ENABLE_DRAFTS_WITH_PLUGINS')}}" From ca7dc792b238065fafd72886d6fd2c76f58a39bd Mon Sep 17 00:00:00 2001 From: Yannic Kilcher Date: Sat, 25 Nov 2023 16:46:25 +0100 Subject: [PATCH 6/7] apparently, prod ignores redirects or process env --- website/next.config.js | 24 ------------------------ website/src/hooks/env/BrowserEnv.ts | 1 + website/src/pages/api/config.ts | 1 + website/src/pages/bye.tsx | 3 ++- website/src/pages/chat/[id].tsx | 10 +++++++++- website/src/pages/contributors.tsx | 9 +++++++++ website/src/pages/dashboard.tsx | 9 ++++++++- website/src/pages/index.tsx | 7 +++++++ website/src/types/Config.ts | 1 + website/types/env.d.ts | 1 + 10 files changed, 39 insertions(+), 27 deletions(-) create mode 100644 website/src/pages/contributors.tsx diff --git a/website/next.config.js b/website/next.config.js index 0fee93b73f..911de0c25c 100644 --- a/website/next.config.js +++ b/website/next.config.js @@ -31,30 +31,6 @@ const nextConfig = { ignoreDuringBuilds: true, }, async redirects() { - if (process.env.BYE === "true") { - return [ - { - source: "/", - destination: "/bye", - permanent: false, - }, - { - source: "/dashboard", - destination: "/bye", - permanent: false, - }, - { - source: "/chat", - destination: "/bye", - permanent: false, - }, - { - source: "/contributors", - destination: "https://ykilcher.com/oa-contributors", - permanent: false, - }, - ]; - } if (process.env.MAINTENANCE_MODE !== "true") { return []; } diff --git a/website/src/hooks/env/BrowserEnv.ts b/website/src/hooks/env/BrowserEnv.ts index 4d863c0d9a..8ed2f357f9 100644 --- a/website/src/hooks/env/BrowserEnv.ts +++ b/website/src/hooks/env/BrowserEnv.ts @@ -1,6 +1,7 @@ import { createContext, useContext } from "react"; export interface BrowserConfig { + BYE: boolean; ENABLE_CHAT: boolean; ENABLE_DRAFTS_WITH_PLUGINS: boolean; NUM_GENERATED_DRAFTS: number; diff --git a/website/src/pages/api/config.ts b/website/src/pages/api/config.ts index 36c4a6b53d..33c9d8c70a 100644 --- a/website/src/pages/api/config.ts +++ b/website/src/pages/api/config.ts @@ -4,6 +4,7 @@ import { BrowserConfig } from "src/types/Config"; // don't put sensitive information here const config: BrowserConfig = { + BYE: boolean(process.env.BYE), ENABLE_CHAT: boolean(process.env.ENABLE_CHAT), ENABLE_DRAFTS_WITH_PLUGINS: boolean(process.env.ENABLE_DRAFTS_WITH_PLUGINS), NUM_GENERATED_DRAFTS: Number(process.env.NUM_GENERATED_DRAFTS), diff --git a/website/src/pages/bye.tsx b/website/src/pages/bye.tsx index 02ea848d50..0ad9018b04 100644 --- a/website/src/pages/bye.tsx +++ b/website/src/pages/bye.tsx @@ -1,4 +1,5 @@ import Image from "next/image"; +import Link from "next/link"; import { Container } from "src/components/Container"; export { getStaticProps } from "src/lib/defaultServerSideProps"; @@ -20,7 +21,7 @@ const ByePage = () => {

    Links:

    • - List of contributors + List of contributors
    • Paper diff --git a/website/src/pages/chat/[id].tsx b/website/src/pages/chat/[id].tsx index b8bb0b81db..8e3cf55f75 100644 --- a/website/src/pages/chat/[id].tsx +++ b/website/src/pages/chat/[id].tsx @@ -8,9 +8,12 @@ import { get } from "src/lib/api"; import { ModelInfo, PluginEntry } from "src/types/Chat"; export { getServerSideProps } from "src/lib/defaultServerSideProps"; import useSWRImmutable from "swr/immutable"; +import { useBrowserConfig } from "src/hooks/env/BrowserEnv"; const Chat = () => { - const { query } = useRouter(); + const { BYE } = useBrowserConfig(); + const router = useRouter(); + const { query } = router; const id = query.id as string; const { t } = useTranslation(["common", "chat"]); const { data: modelInfos } = useSWRImmutable("/api/chat/models", get, { @@ -20,6 +23,11 @@ const Chat = () => { keepPreviousData: true, }); + if (BYE) { + router.push("/bye"); + return null; + } + return ( <> diff --git a/website/src/pages/contributors.tsx b/website/src/pages/contributors.tsx new file mode 100644 index 0000000000..98610c4fb4 --- /dev/null +++ b/website/src/pages/contributors.tsx @@ -0,0 +1,9 @@ +import { useRouter } from "next/router"; + +const ContributorsPage = () => { + const router = useRouter(); + router.push("https://ykilcher.com/oa-contributors"); + return null; +}; + +export default ContributorsPage; diff --git a/website/src/pages/dashboard.tsx b/website/src/pages/dashboard.tsx index 62d2bbdf99..2f6d9c0e84 100644 --- a/website/src/pages/dashboard.tsx +++ b/website/src/pages/dashboard.tsx @@ -14,10 +14,12 @@ import { useBrowserConfig } from "src/hooks/env/BrowserEnv"; import { useCurrentLocale } from "src/hooks/locale/useCurrentLocale"; import { API_ROUTES } from "src/lib/routes"; import useSWR from "swr"; +import { useRouter } from "next/router"; const Dashboard = () => { const { t } = useTranslation(["dashboard", "common", "tasks"]); - const { ENABLE_CHAT } = useBrowserConfig(); + const { ENABLE_CHAT, BYE } = useBrowserConfig(); + const router = useRouter(); const lang = useCurrentLocale(); const { data } = useSWR(API_ROUTES.AVAILABLE_TASK({ lang }), get, { refreshInterval: 2 * 60 * 1000, //2 minutes @@ -55,6 +57,11 @@ const Dashboard = () => { }, }; + if (BYE) { + router.push("/bye"); + return null; + } + return ( <> diff --git a/website/src/pages/index.tsx b/website/src/pages/index.tsx index 3c33b94367..453d6b7cf7 100644 --- a/website/src/pages/index.tsx +++ b/website/src/pages/index.tsx @@ -8,8 +8,10 @@ import { CallToAction } from "src/components/CallToAction"; import { Faq } from "src/components/Faq"; import { Hero } from "src/components/Hero"; export { getDefaultServerSideProps as getStaticProps } from "src/lib/defaultServerSideProps"; +import { useBrowserConfig } from "src/hooks/env/BrowserEnv"; const Home = () => { + const { BYE } = useBrowserConfig(); const router = useRouter(); const { status } = useSession(); const { t } = useTranslation(); @@ -19,6 +21,11 @@ const Home = () => { } }, [router, status]); + if (BYE) { + router.push("/bye"); + return null; + } + return ( <> diff --git a/website/src/types/Config.ts b/website/src/types/Config.ts index 087cc55faa..37de5d9070 100644 --- a/website/src/types/Config.ts +++ b/website/src/types/Config.ts @@ -1,4 +1,5 @@ export interface BrowserConfig { + BYE: boolean; ENABLE_CHAT: boolean; ENABLE_DRAFTS_WITH_PLUGINS: boolean; // Whether draft messages should be generated if plugins are in use NUM_GENERATED_DRAFTS: number; diff --git a/website/types/env.d.ts b/website/types/env.d.ts index 58667dd643..c338c506d7 100644 --- a/website/types/env.d.ts +++ b/website/types/env.d.ts @@ -9,6 +9,7 @@ declare global { ADMIN_USERS: string; MODERATOR_USERS: string; INFERENCE_SERVER_HOST: string; + BYE: boolean; ENABLE_CHAT: boolean; ENABLE_DRAFTS_WITH_PLUGINS: boolean; NUM_GENERATED_DRAFTS: number; From e1769c102f1597cc0b53a8b915f858239d197aeb Mon Sep 17 00:00:00 2001 From: Yannic Kilcher Date: Sat, 25 Nov 2023 16:58:48 +0100 Subject: [PATCH 7/7] next build fixes --- website/src/pages/chat/[id].tsx | 7 ------- website/src/pages/chat/index.tsx | 10 ++++++++++ website/src/pages/contributors.tsx | 6 +++++- website/src/pages/dashboard.tsx | 13 +++++++------ website/src/pages/index.tsx | 11 +++++------ 5 files changed, 27 insertions(+), 20 deletions(-) diff --git a/website/src/pages/chat/[id].tsx b/website/src/pages/chat/[id].tsx index 8e3cf55f75..c55645afe1 100644 --- a/website/src/pages/chat/[id].tsx +++ b/website/src/pages/chat/[id].tsx @@ -8,10 +8,8 @@ import { get } from "src/lib/api"; import { ModelInfo, PluginEntry } from "src/types/Chat"; export { getServerSideProps } from "src/lib/defaultServerSideProps"; import useSWRImmutable from "swr/immutable"; -import { useBrowserConfig } from "src/hooks/env/BrowserEnv"; const Chat = () => { - const { BYE } = useBrowserConfig(); const router = useRouter(); const { query } = router; const id = query.id as string; @@ -23,11 +21,6 @@ const Chat = () => { keepPreviousData: true, }); - if (BYE) { - router.push("/bye"); - return null; - } - return ( <> diff --git a/website/src/pages/chat/index.tsx b/website/src/pages/chat/index.tsx index 3e2856b459..68fcdeef90 100644 --- a/website/src/pages/chat/index.tsx +++ b/website/src/pages/chat/index.tsx @@ -1,12 +1,22 @@ import Head from "next/head"; +import { useRouter } from "next/router"; import { useTranslation } from "next-i18next"; import React from "react"; import { ChatListBase } from "src/components/Chat/ChatListBase"; import { DashboardLayout } from "src/components/Layout"; export { getStaticProps } from "src/lib/defaultServerSideProps"; +import { useBrowserConfig } from "src/hooks/env/BrowserEnv"; const ChatList = () => { const { t } = useTranslation(); + const { BYE } = useBrowserConfig(); + const router = useRouter(); + + React.useEffect(() => { + if (BYE) { + router.push("/bye"); + } + }, [router, BYE]); return ( <> diff --git a/website/src/pages/contributors.tsx b/website/src/pages/contributors.tsx index 98610c4fb4..8f38f71269 100644 --- a/website/src/pages/contributors.tsx +++ b/website/src/pages/contributors.tsx @@ -1,8 +1,12 @@ import { useRouter } from "next/router"; +import { useEffect } from "react"; const ContributorsPage = () => { const router = useRouter(); - router.push("https://ykilcher.com/oa-contributors"); + useEffect(() => { + router.push("https://ykilcher.com/oa-contributors"); + }, [router]); + return null; }; diff --git a/website/src/pages/dashboard.tsx b/website/src/pages/dashboard.tsx index 2f6d9c0e84..17282b61d2 100644 --- a/website/src/pages/dashboard.tsx +++ b/website/src/pages/dashboard.tsx @@ -1,7 +1,8 @@ import { Button, Card, CardBody, Flex, Heading } from "@chakra-ui/react"; import Head from "next/head"; +import { useRouter } from "next/router"; import { useTranslation } from "next-i18next"; -import { useMemo } from "react"; +import { useEffect, useMemo } from "react"; import { LeaderboardWidget, TaskOption, WelcomeCard } from "src/components/Dashboard"; import { DashboardLayout } from "src/components/Layout"; import { get } from "src/lib/api"; @@ -14,7 +15,6 @@ import { useBrowserConfig } from "src/hooks/env/BrowserEnv"; import { useCurrentLocale } from "src/hooks/locale/useCurrentLocale"; import { API_ROUTES } from "src/lib/routes"; import useSWR from "swr"; -import { useRouter } from "next/router"; const Dashboard = () => { const { t } = useTranslation(["dashboard", "common", "tasks"]); @@ -57,10 +57,11 @@ const Dashboard = () => { }, }; - if (BYE) { - router.push("/bye"); - return null; - } + useEffect(() => { + if (BYE) { + router.push("/bye"); + } + }, [BYE, router]); return ( <> diff --git a/website/src/pages/index.tsx b/website/src/pages/index.tsx index 453d6b7cf7..60e04cd284 100644 --- a/website/src/pages/index.tsx +++ b/website/src/pages/index.tsx @@ -16,15 +16,14 @@ const Home = () => { const { status } = useSession(); const { t } = useTranslation(); useEffect(() => { + if (BYE) { + router.push("/bye"); + } + if (status === "authenticated") { router.push("/dashboard"); } - }, [router, status]); - - if (BYE) { - router.push("/bye"); - return null; - } + }, [router, status, BYE]); return ( <>