This commit is contained in:
despiegk 2025-02-10 15:28:14 +03:00
parent 204158754f
commit f038db50be
26 changed files with 18 additions and 41036 deletions

View File

@ -1,38 +1,25 @@
<h1>ThreeFold BYOI: Build Your Own Internet</h1> <h1>ThreeFold Bring Your Own Internet</h1>
<h2>Table of Contents</h2>
- [Introduction](#introduction) get hero
- [Steps](#steps)
- [URL](#url)
--- ```bash
curl https://raw.githubusercontent.com/freeflowuniverse/herolib/refs/heads/development/install_hero.sh > /tmp/install_hero.sh
bash /tmp/install_hero.sh
#DONT FORGET TO START A NEW SHELL (otherwise the paths will not be set)
## Introduction hero docusaurus -u https://git.ourworld.tf/tfgrid/docs_bring_your_own_internet -d
```
This repository contains the code to deploy the ThreeFold BYOI website. to push
## Steps ```bash
hero docusaurus -u https://git.ourworld.tf/tfgrid/docs_bring_your_own_internet -bp
- Install #push for development:
``` hero docusaurus -u https://git.ourworld.tf/tfgrid/docs_bring_your_own_internet -bpd
bash install.sh
```
- Run locally
```
bash develop.sh
```
- Push change (staging)
```
bash build-dev.sh
```
- Push change (production)
```
bash build.sh
``` ```
## URL ## URL
- The website is available in stating and production modes: - The production website is available at `https://info.ourworld.tf/byoi`
- Staging: https://threefold.info/byoidev
- Production: https://threefold.info/byoi

View File

@ -1,3 +0,0 @@
module.exports = {
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
};

View File

@ -1,22 +0,0 @@
#!/bin/bash
set -ex
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "${script_dir}"
export PATH=${BASE}/node_modules/.bin:$PATH
echo "Docs directory: $script_dir"
# Change baseUrl to '/depindev/'
sed -i "s|/byoi/|/byoidev/|g" docusaurus.config.ts ./src/pages/index.tsx
#bun build
#bun ${script_dir}/node_modules/.bin/docusaurus build
pnpm build
rsync -rv --delete ${script_dir}/build/ root@info.ourworld.tf:/root/hero/www/info/byoidev
# Change baseUrl to '/depin/'
sed -i "s|/byoidev/|/byoi/|g" docusaurus.config.ts ./src/pages/index.tsx

View File

@ -1,16 +0,0 @@
#!/bin/bash
set -ex
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "${script_dir}"
export PATH=${BASE}/node_modules/.bin:$PATH
echo "Docs directory: $script_dir"
#bun build
#bun ${script_dir}/node_modules/.bin/docusaurus build
pnpm build
rsync -rv --delete ${script_dir}/build/ root@info.ourworld.tf:/root/hero/www/info/byoi

View File

@ -2,7 +2,7 @@
"title": "Build Your Own Internet", "title": "Build Your Own Internet",
"tagline": "Learn how to build your own internet", "tagline": "Learn how to build your own internet",
"favicon": "img/favicon.png", "favicon": "img/favicon.png",
"url": "https://threefold.info", "url": "https://threefold.info/byoi",
"baseUrl": "/byoi/", "baseUrl": "/byoi/",
"image": "img/tf_graph.png", "image": "img/tf_graph.png",
"metadata": { "metadata": {
@ -10,6 +10,6 @@
"image": "https://info.ourworld.tf/img/tf_graph.png", "image": "https://info.ourworld.tf/img/tf_graph.png",
"title": "Build Your Own Internet" "title": "Build Your Own Internet"
}, },
"buildDest": "root@info.ourworld.tf:/root/hero/www/info", "buildDest": ["root@info.ourworld.tf:/root/hero/www/info/byoi"],
"buildDestDev": "root@info.ourworld.tf:/root/hero/www/infodev" "buildDestDev": ["root@info.ourworld.tf:/root/hero/www/infodev/byoi"]
} }

View File

@ -1,12 +0,0 @@
#!/bin/bash
set -ex
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "${script_dir}"
echo "Docs directory: $script_dir"
export NODE_OPTIONS=--openssl-legacy-provider
npm run start -- --host 0.0.0.0

View File

@ -1,82 +0,0 @@
import {themes as prismThemes} from 'prism-react-renderer';
import type {Config} from '@docusaurus/types';
import type * as Preset from '@docusaurus/preset-classic';
import navbar from './cfg/navbar.json';
import footer from './cfg/footer.json';
import main from './cfg/main.json';
const config: Config = {
title: main.title,
tagline: main.tagline,
favicon: main.favicon,
url: main.url,
baseUrl: main.baseUrl,
onBrokenLinks: 'throw',
onBrokenMarkdownLinks: 'warn',
i18n: {
defaultLocale: 'en',
locales: ['en'],
},
presets: [
[
'classic',
{
docs: {
sidebarPath: './sidebars.ts',
},
blog: {
showReadingTime: true,
feedOptions: {
type: ['rss', 'atom'],
xslt: true,
},
onInlineTags: 'warn',
onInlineAuthors: 'warn',
onUntruncatedBlogPosts: 'warn',
},
theme: {
customCss: './src/css/custom.css',
},
} satisfies Preset.Options,
],
],
markdown: {
mermaid: true,
},
themes: ['@docusaurus/theme-mermaid'],
scripts: [
{
src: '/js/crisp.js',
async: false,
},
],
themeConfig: {
colorMode: {
defaultMode: "dark",
disableSwitch: true,
respectPrefersColorScheme: false
},
image: main.image,
metadata: [
{ name: 'description', content: main.metadata.description },
{ property: 'og:image', content: main.metadata.image },
{ property: 'og:description', content: main.metadata.description },
{ property: 'og:title', content: main.metadata.title },
],
navbar: navbar,
footer: footer,
prism: {
theme: prismThemes.github,
darkTheme: prismThemes.dracula,
},
},
};
export default config;

View File

@ -1,169 +0,0 @@
import {themes as prismThemes} from 'prism-react-renderer';
import type {Config} from '@docusaurus/types';
import type * as Preset from '@docusaurus/preset-classic';
const config: Config = {
title: 'Build Your Own Internet',
tagline: 'Learn how to build your own internet',
favicon: 'img/favicon.png',
url: 'https://threefold.info',
baseUrl: '/byoi/',
onBrokenLinks: 'throw',
onBrokenMarkdownLinks: 'warn',
i18n: {
defaultLocale: 'en',
locales: ['en'],
},
presets: [
[
'classic',
{
docs: {
sidebarPath: './sidebars.ts',
},
blog: {
showReadingTime: true,
feedOptions: {
type: ['rss', 'atom'],
xslt: true,
},
onInlineTags: 'warn',
onInlineAuthors: 'warn',
onUntruncatedBlogPosts: 'warn',
},
theme: {
customCss: './src/css/custom.css',
},
} satisfies Preset.Options,
],
],
markdown: {
mermaid: true,
},
themes: ['@docusaurus/theme-mermaid'],
scripts: [
{
src:
'/js/crisp.js',
async: false,
},
],
themeConfig: {
colorMode: {
defaultMode: 'dark',
disableSwitch: true,
respectPrefersColorScheme: false,
},
image: 'img/tf_graph.png',
navbar: {
title: '',
logo: {
alt: 'ThreeFold Logo',
src: 'img/logo.svg',
srcDark: 'img/new_logo_tft.png',
},
items: [
{
type: 'docSidebar',
sidebarId: 'tutorialSidebar',
position: 'left',
label: 'Docs',
},
{
to: '/support',
label: 'Support',
position: 'left',
},
{
href: 'https://threefold.io',
label: 'ThreeFold.io',
position: 'right',
},
],
},
footer: {
style: 'dark',
links: [
{
title: 'DePIN',
items: [
{
label: 'Introduction',
href: '/docs/introduction',
},
{
label: 'BYO Internet',
href: '/docs/byoi',
},
{
label: 'TFGrid POC',
href: '/docs/threefold_poc',
},
{
label: 'Feedback',
to: '/docs/feedback',
},
],
},
{
title: 'Community',
items: [
{
label: 'Telegram',
href: 'https://t.me/threefold',
},
{
label: 'X',
href: 'https://x.com/threefold_io',
},
{
label: 'Forum',
href: 'https://forum.threefold.io',
},
{
label: 'Support',
to: '/support',
},
],
},
{
title: 'Links',
items: [
{
label: 'ThreeFold.io',
href: 'https://threefold.io',
},
{
label: 'Dashboard',
href: 'https://dashboard.grid.tf',
},
{
label: 'GitHub',
href: 'https://github.com/threefoldtech/home',
},
{
label: 'Gitea',
href: 'https://git.ourworld.tf/tfgrid/info_docs_byoi',
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} ThreeFold`,
},
prism: {
theme: prismThemes.github,
darkTheme: prismThemes.dracula,
},
} satisfies Preset.ThemeConfig,
};
export default config;

View File

@ -1,24 +0,0 @@
#!/bin/bash
set -ex
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "${script_dir}"
echo "Docs directory: $script_dir"
# Check if bun is installed
# if ! command -v bun &> /dev/null; then
# echo "Bun is not installed. Installing..."
# curl -fsSL https://bun.sh/install | bash
# else
# echo "Bun is already installed."
# fi
#bun install
export PATH=${BASE}/node_modules/.bin:$PATH
npm install @docusaurus/core@3.6.3 @docusaurus/preset-classic@3.6.3 @docusaurus/theme-mermaid@3.6.3
pnpm install

18210
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,49 +0,0 @@
{
"name": "docs-website",
"version": "0.0.0",
"private": true,
"scripts": {
"docusaurus": "docusaurus",
"start": "docusaurus start",
"build": "docusaurus build",
"swizzle": "docusaurus swizzle",
"deploy": "docusaurus deploy",
"clear": "docusaurus clear",
"serve": "docusaurus serve",
"write-translations": "docusaurus write-translations",
"write-heading-ids": "docusaurus write-heading-ids",
"typecheck": "tsc"
},
"dependencies": {
"@docusaurus/core": "^3.6.3",
"@docusaurus/preset-classic": "^3.6.3",
"@docusaurus/theme-mermaid": "^3.6.3",
"@mdx-js/react": "^3.0.0",
"clsx": "^2.0.0",
"prism-react-renderer": "^2.3.0",
"react": "^18.0.0",
"react-dom": "^18.0.0"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "^3.6.3",
"@docusaurus/tsconfig": "3.5.2",
"@docusaurus/types": "3.5.2",
"typescript": "~5.5.2"
},
"browserslist": {
"production": [
">0.5%",
"not dead",
"not op_mini all"
],
"development": [
"last 3 chrome version",
"last 3 firefox version",
"last 5 safari version"
]
},
"engines": {
"node": ">=18.0"
},
"packageManager": "pnpm@9.3.0+sha512.ee7b93e0c2bd11409c6424f92b866f31d3ea1bef5fbe47d3c7500cdc3c9668833d2e55681ad66df5b640c61fa9dc25d546efa54d76d7f8bf54b13614ac293631"
}

File diff suppressed because it is too large Load Diff

View File

@ -1,31 +0,0 @@
import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';
/**
* Creating a sidebar enables you to:
- create an ordered group of docs
- render a sidebar for each doc of that group
- provide next/previous navigation
The sidebars can be generated from the filesystem, or explicitly defined here.
Create as many sidebars as you want.
*/
const sidebars: SidebarsConfig = {
// By default, Docusaurus generates a sidebar from the docs folder structure
tutorialSidebar: [{type: 'autogenerated', dirName: '.'}],
// But you can create a sidebar manually
/*
tutorialSidebar: [
'intro',
'hello',
{
type: 'category',
label: 'Tutorial',
items: ['tutorial-basics/create-a-document'],
},
],
*/
};
export default sidebars;

View File

@ -1,71 +0,0 @@
import clsx from 'clsx';
import Heading from '@theme/Heading';
import styles from './styles.module.css';
import { useColorMode } from '@docusaurus/theme-common'
type FeatureItem = {
title: string;
Svg: React.ComponentType<React.ComponentProps<'svg'>>;
description: JSX.Element;
};
const FeatureList: FeatureItem[] = [
{ scale: 1.0,
fill:"currentColor",
title: 'Building Web4',
Svg: require('@site/static/img/clouds.svg').default,
description: (
<>
Laying the groundwork for Web4, the next generation of the Internet.
</>
),
},
{ scale: 1.0,
fill:"currentColor",
title: 'ThreeFold Grid',
Svg: require('@site/static/img/nodes.svg').default,
description: (
<>
ThreeFold nodes, routers and phones create an end&#8209;to&#8209;end encrypted network.
</>
),
},
{ scale: 1.0,
fill:"currentColor",
title: 'Community Rewards',
Svg: require('@site/static/img/rewards.svg').default,
description: (
<>
The ecosystem rewards the community to foster growth and expansion.
</>
),
},
];
function Feature({scale, fill, id, title, Svg, description}: FeatureItem) {
return (
<div className={clsx('col col--4')}>
<div className="text--center">
<Svg transform={"scale(" + scale + ")"} fill={fill} id={id} className={styles.featureSvg} role="img" />
</div>
<div className="text--center padding-horiz--md">
<Heading as="h3">{title}</Heading>
<p>{description}</p>
</div>
</div>
);
}
export default function HomepageFeatures(): JSX.Element {
return (
<section className={styles.features}>
<div className="container">
<div className="row">
{FeatureList.map((props, idx) => (
<Feature key={idx} {...props} />
))}
</div>
</div>
</section>
);
}

View File

@ -1,11 +0,0 @@
.features {
display: flex;
align-items: center;
padding: 2rem 0;
width: 100%;
}
.featureSvg {
height: 200px;
width: 200px;
}

View File

@ -1,131 +0,0 @@
/**
* Any CSS included here will be global. The classic template
* bundles Infima by default. Infima is a CSS framework designed to
* work well for content-centric websites.
*/
/* Ensure navbar items and logo are vertically aligned */
.navbar__logo {
display: flex;
align-items: center; /* Center aligns the items vertically */
height: 100%; /* Ensures full height for alignment */
}
.navbar__logo img {
max-width: 150px; /* Set maximum width of the logo */
height: auto; /* Maintain aspect ratio */
}
/* Align navbar items, such as Docs and Support */
.navbar__item {
display: flex;
align-items: center; /* Vertically align the items */
}
/* Optional: Adjust padding for navbar items */
.navbar__link {
padding: 8px 12px; /* Modify values as necessary for better spacing */
}
/* Add @font-face declarations for the Inter font */
@font-face {
font-family: 'Inter';
font-weight: 400; /* Light */
font-style: normal;
src: url('/fonts/Inter_28pt-Light.ttf') format('truetype'); /* Corrected path */
}
@font-face {
font-family: 'Inter';
font-weight: 500; /* Regular */
font-style: normal;
src: url('/fonts/Inter_28pt-Regular.ttf') format('truetype'); /* Corrected path */
}
@font-face {
font-family: 'Inter';
font-weight: 600; /* Medium */
font-style: normal;
src: url('/fonts/Inter_28pt-Medium.ttf') format('truetype'); /* Corrected path */
}
/* Apply the Inter font globally */
body {
font-family: 'Inter', sans-serif; /* Set the global font */
font-size: 18px;
}
/* Header styles - Medium weight for headers */
h1, h2, h3, h4, h5, h6 {
font-weight: 600; /* Medium weight for headers */
font-family: 'Inter', sans-serif; /* Set the global font */
}
/* Paragraph styles - Light weight for paragraphs */
p {
font-weight: 400; /* Light weight for paragraphs */
font-family: 'Inter', sans-serif; /* Set the global font */
}
/* You can override the default Infima variables here. */
:root {
--ifm-color-primary: #2e83ff;
--ifm-color-primary-dark: #29784c;
--ifm-color-primary-darker: #277148;
--ifm-color-primary-darkest: #205d3b;
--ifm-color-primary-light: #33925d;
--ifm-color-primary-lighter: #359962;
--ifm-color-primary-lightest: #3cad6e;
--ifm-code-font-size: 95%;
--svg-fill-color: #2a2021; /* Black fill for light mode */
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
}
/* Dark mode styles */
html[data-theme="dark"] {
--svg-fill-color: #fff; /* White fill for dark mode */
}
/* For readability concerns, you should choose a lighter palette in dark mode. */
[data-theme='dark'] {
--ifm-color-primary: #8d8d8d;
--ifm-color-primary-dark: #21af90;
--ifm-color-primary-darker: #1fa588;
--ifm-color-primary-darkest: #1a8870;
--ifm-color-primary-light: #29d5b0;
--ifm-color-primary-lighter: #32d8b4;
--ifm-color-primary-lightest: #4fddbf;
--svg-fill-color: #fff; /* White fill for dark mode */
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
}
.footer {
background-color: #131213;
}
.footer a,
.footer p,
.footer span,
.footer div {
color: #ffffff; /* Example: Light gray text for dark mode */
}
.navbar { /* or .navbar--fixedTop if it has that class */
background-color: #131213;
}
/* Apply scroll margin to footnote targets */
[data-footnote-ref="true"] {
scroll-margin-top: 80px; /* Adjust this value to match your navbar height */
}
/* Ensure navbar items and logo are vertically aligned */
.navbar__logo {
display: flex;
align-items: center; /* Center aligns the items vertically */
height: 100%; /* Ensures full height for alignment */
}
.navbar__link { /* Example: for navbar links */
color: #ffffff;
}
img.svg-icon {
fill: var(--svg-fill-color); /* Apply the color variable */
}

View File

@ -1,23 +0,0 @@
/**
* CSS files with the .module.css suffix will be treated as CSS modules
* and scoped locally.
*/
.heroBanner {
padding: 4rem 0;
text-align: center;
position: relative;
overflow: hidden;
}
@media screen and (max-width: 996px) {
.heroBanner {
padding: 2rem;
}
}
.buttons {
display: flex;
align-items: center;
justify-content: center;
}

View File

@ -1,6 +0,0 @@
import React from 'react';
import { Redirect } from '@docusaurus/router';
export default function Home() {
return <Redirect to="/byoi/docs/introduction" />;
}

View File

@ -1,7 +0,0 @@
---
title: Markdown page example
---
# Markdown page example
You don't need React to write simple standalone pages.

View File

@ -1,38 +0,0 @@
# Support
Our dedicated team is here to help you every step of the way. We're passionate about ensuring that you receive the best possible experience exploring the ThreeFold ecosystem.
If you can't find the answer to your question, our dedicated ThreeFold support team is here to help.
## Reach Support
***To contact the ThreeFold support team, simply click on the chat button at the bottom right of the screen.***
You can also visit the [ThreeFold Support Crisp website](https://threefoldfaq.crisp.help/en/).
## Live Chat Availability
Our support team is available from Monday to Friday, Central European Summer Time (CEST), between 8:00 AM and 12:00 AM (16 hours per day). During these hours, you can interact with us in real-time via live chat on the ThreeFold website.
* **Monday to Friday**: Available from 8:00 AM to 12:00 AM CEST
> Outside of these hours, you can still write to the support team and they will get back to you during working hours.
## How We Can Help
Our support team is here to assist you with any questions or concerns you may have about ThreeFold. Whether it's troubleshooting an issue, setting up a new feature, or simply answering a question, we're here to help.
### Support Services
* **Technical Support**: Assistance with technical issues related to ThreeFold.
* **Feature Setup**: Guidance on how to set up and use various ThreeFold features, services and products.
* **General Questions**: Answers to any questions you may have about ThreeFold.
## Get In Touch
Ready to reach out? Simply click on the chat button at the bottom right of the screen and initiate a chat with us during business hours.
*We're here to listen, assist, and provide support!*
---

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +0,0 @@
window.$crisp=[];window.CRISP_WEBSITE_ID="1a5a5241-91cb-4a41-8323-5ba5ec574da0";(function(){d=document;s=d.createElement("script");s.src="https://client.crisp.chat/l.js";s.async=1;d.getElementsByTagName("head")[0].appendChild(s);})();

View File

@ -1,7 +0,0 @@
{
// This file is not used in compilation. It is here just for a nice editor experience.
"extends": "@docusaurus/tsconfig",
"compilerOptions": {
"baseUrl": "docs"
}
}

9871
yarn.lock

File diff suppressed because it is too large Load Diff