init docs on decloud
This commit is contained in:
commit
dc9c3df0a3
54
.github/workflows/main.yaml
vendored
Normal file
54
.github/workflows/main.yaml
vendored
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
name: "Docusaurus 🦖 GitHub Pages"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
|
|
||||||
|
# Allows you to run this workflow manually from the Actions tab
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
publish:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
||||||
|
- name: Check out repo
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
# Set up Node.js (required for Bun)
|
||||||
|
- name: Set up Node
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: "20"
|
||||||
|
|
||||||
|
# Install Bun
|
||||||
|
- name: Install Bun
|
||||||
|
run: |
|
||||||
|
curl -fsSL https://bun.sh/install | bash
|
||||||
|
echo "BUN_INSTALL=$HOME/.bun/bin" >> $GITHUB_ENV
|
||||||
|
echo "$HOME/.bun/bin" >> $GITHUB_PATH
|
||||||
|
|
||||||
|
# Install dependencies and build Docusaurus website using Bun
|
||||||
|
- name: Build Docusaurus website
|
||||||
|
run: |
|
||||||
|
bun install
|
||||||
|
bun run build
|
||||||
|
|
||||||
|
# Set up SSH key for deployment
|
||||||
|
- name: Set up SSH key
|
||||||
|
run: |
|
||||||
|
mkdir -p ~/.ssh
|
||||||
|
echo "${{ secrets.SSHKEY }}" > ~/.ssh/id_ssh
|
||||||
|
chmod 600 ~/.ssh/id_ssh
|
||||||
|
eval $(ssh-agent -s)
|
||||||
|
ssh-add ~/.ssh/id_ssh
|
||||||
|
ssh-keyscan -H info.ourworld.tf >> ~/.ssh/known_hosts
|
||||||
|
# Test SSH connection
|
||||||
|
ssh -o StrictHostKeyChecking=no -T root@info.ourworld.tf || true
|
||||||
|
|
||||||
|
# Deploy with rsync
|
||||||
|
- name: Deploy with rsync
|
||||||
|
run: |
|
||||||
|
rsync -avz -e "ssh -o StrictHostKeyChecking=no -i ~/.ssh/id_ssh" ./build/ root@info.ourworld.tf:/root/hero/www/info/testdocs/
|
23
.gitignore
vendored
Normal file
23
.gitignore
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# Dependencies
|
||||||
|
/node_modules
|
||||||
|
|
||||||
|
# Production
|
||||||
|
/build
|
||||||
|
|
||||||
|
# Generated files
|
||||||
|
.docusaurus
|
||||||
|
.cache-loader
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
.DS_Store
|
||||||
|
.env.local
|
||||||
|
.env.development.local
|
||||||
|
.env.test.local
|
||||||
|
.env.production.local
|
||||||
|
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
bun.lockb
|
||||||
|
|
||||||
|
yarn.lock
|
21
LICENSE
Normal file
21
LICENSE
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2024 ThreeFold.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
37
README.md
Normal file
37
README.md
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<h1>ThreeFold Tech Website</h1>
|
||||||
|
|
||||||
|
<h2>Table of Contents</h2>
|
||||||
|
|
||||||
|
- [Introduction](#introduction)
|
||||||
|
- [Steps](#steps)
|
||||||
|
- [URL](#url)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
This repository contains the code to deploy the ThreeFold Tech website.
|
||||||
|
|
||||||
|
## Steps
|
||||||
|
|
||||||
|
- Install
|
||||||
|
```
|
||||||
|
bash install.sh
|
||||||
|
```
|
||||||
|
- Run locally
|
||||||
|
```
|
||||||
|
bash develop.sh
|
||||||
|
```
|
||||||
|
- Push change online to stating website
|
||||||
|
```
|
||||||
|
bash build-dev.sh
|
||||||
|
```
|
||||||
|
- Push change online to production website
|
||||||
|
```
|
||||||
|
bash build.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## URL
|
||||||
|
|
||||||
|
- The website in staging mode is at `threefold.info/tftechdev`
|
||||||
|
- The website in production mode is at `threefold.info/tftech`
|
20
build-dev.sh
Executable file
20
build-dev.sh
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
#!/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 '/declouddev/'
|
||||||
|
sed -i "s|/decloud/|/declouddev/|g" docusaurus.config.ts ./src/pages/index.tsx
|
||||||
|
|
||||||
|
bun docusaurus build
|
||||||
|
|
||||||
|
rsync -rv --delete ${script_dir}/build/ root@info.ourworld.tf:/root/hero/www/info/declouddev
|
||||||
|
|
||||||
|
# Change baseUrl to '/decloud/'
|
||||||
|
sed -i "s|/declouddev/|/decloud/|g" docusaurus.config.ts ./src/pages/index.tsx
|
14
build.sh
Executable file
14
build.sh
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
#!/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 docusaurus build
|
||||||
|
|
||||||
|
rsync -rv --delete ${script_dir}/build/ root@info.ourworld.tf:/root/hero/www/info/tftech
|
14
develop.sh
Executable file
14
develop.sh
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
#!/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
|
||||||
|
|
||||||
|
bun run start -p 3100
|
107
docs/introduction.md
Normal file
107
docs/introduction.md
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
# Introduction
|
||||||
|
|
||||||
|
## The Problem with Today's Cloud
|
||||||
|
|
||||||
|
The internet as we know it is broken. Centralized cloud providers dominate the landscape, charging exorbitant fees, locking users into proprietary ecosystems, and controlling the flow of data. The result? A system that prioritizes profit over people, stifles innovation, and leaves users vulnerable to outages, data breaches, and censorship.
|
||||||
|
|
||||||
|
The ThreeFold Grid offers a radical alternative to centralized cloud: a decentralized, peer-to-peer cloud infrastructure that puts power back in the hands of users. Built on a global network of independent nodes, the ThreeFold Grid enables anyone to deploy their own decentralized cloud—one that is open, resilient, and truly owned by its users. Whether you’re a developer, a startup, or an enterprise, the ThreeFold Grid gives you the tools to take control of your infrastructure, reduce costs, and contribute to a more equitable digital future.
|
||||||
|
|
||||||
|
## The Case for Decentralization
|
||||||
|
|
||||||
|
### The Need for a Change
|
||||||
|
|
||||||
|
The need for a decentralized cloud solution arises from the growing dissatisfaction with traditional cloud providers due to high costs, lack of transparency, and centralized control. Companies and individuals are seeking more control over their infrastructure, lower costs, and better performance without being locked into the monopolistic practices of hyperscalers like AWS, Google Cloud, and Azure. The ThreeFold Grid offers a decentralized, peer-to-peer cloud infrastructure that empowers users to build their own cloud, reducing reliance on centralized providers and enabling true ownership of data and resources.
|
||||||
|
|
||||||
|
### A New Paradigm: The ThreeFold Grid
|
||||||
|
|
||||||
|
The ThreeFold Grid is a decentralized cloud platform that allows users to deploy and manage their own cloud infrastructure. It leverages a global network of independent nodes (servers) contributed by individuals and organizations, creating a distributed and resilient cloud ecosystem. Users can deploy virtual machines, storage, and networking services on the grid, with full control over their data and resources. The platform is designed to be cost-effective, scalable, and flexible, offering multiple deployment options to suit different needs.
|
||||||
|
|
||||||
|
### Building a Decentralized Future
|
||||||
|
|
||||||
|
1. Decentralized Infrastructure: The ThreeFold Grid is built on a peer-to-peer network of nodes, eliminating the need for centralized data centers. Users can choose from multiple deployment options:
|
||||||
|
|
||||||
|
- Deploy on Nodes Managed by Farmers: Utilize nodes managed by independent farmers who contribute their hardware to the grid. This option provides a hands-off approach for users who want to leverage decentralized infrastructure without managing their own hardware.
|
||||||
|
|
||||||
|
- Deploy on Your Own Nodes: For users who want full control, they can become farmers themselves by managing their own nodes. This option is ideal for those who have the technical expertise and want to contribute to the grid while maintaining complete ownership of their infrastructure.
|
||||||
|
|
||||||
|
- Deploy on Cloud Providers: Users can also deploy nodes on cloud providers like Hetzner. This option combines the benefits of decentralized infrastructure with the convenience of cloud provider management, offering a hybrid approach for those who want to balance control and ease of use.
|
||||||
|
|
||||||
|
2. Self-Sovereign Cloud: Users have full control over their data and applications. The grid uses blockchain technology to ensure transparency, security, and trust in the network.
|
||||||
|
|
||||||
|
3. Cost Efficiency: By leveraging underutilized hardware and decentralized resources, the ThreeFold Grid significantly reduces costs compared to traditional cloud providers. Users pay only for the resources they use, with no hidden fees or vendor lock-in.
|
||||||
|
|
||||||
|
4. Scalability: The grid is designed to scale horizontally, allowing users to easily expand their infrastructure as their needs grow. The decentralized nature of the grid ensures high availability and resilience.
|
||||||
|
|
||||||
|
5. Ease of Use: The platform provides a user-friendly interface and APIs for deploying and managing cloud resources. Users can deploy virtual machines, storage, and networking services with just a few clicks or commands.
|
||||||
|
|
||||||
|
## Empowering Your Digital Journey
|
||||||
|
|
||||||
|
### Core Capabilities
|
||||||
|
|
||||||
|
- Decentralized Storage: Secure, redundant, and scalable storage solutions that ensure data privacy and availability.
|
||||||
|
|
||||||
|
- Edge Computing: Deploy applications closer to end-users for lower latency and better performance.
|
||||||
|
|
||||||
|
- Blockchain Integration: Built-in blockchain technology for secure transactions, identity management, and resource allocation.
|
||||||
|
|
||||||
|
- Open Source: The platform is open source, allowing users to contribute to its development and customize it to their needs.
|
||||||
|
|
||||||
|
- Global Network: A growing network of nodes across the globe, ensuring low latency and high availability.
|
||||||
|
|
||||||
|
### Who It's For?
|
||||||
|
|
||||||
|
- Developers and Startups: Looking for cost-effective, scalable, and flexible cloud infrastructure and accessible dev/test workloads.
|
||||||
|
|
||||||
|
- Enterprises: Seeking to reduce dependency on centralized cloud providers and gain more control over their data.
|
||||||
|
|
||||||
|
- Tech Enthusiasts: Those who want to contribute to a decentralized internet and manage their own infrastructure.
|
||||||
|
|
||||||
|
- Hybrid Users: Individuals or organizations that want to combine the benefits of decentralized infrastructure with the convenience of cloud provider management.
|
||||||
|
|
||||||
|
### Your Cloud, Your Way
|
||||||
|
|
||||||
|
The ThreeFold Grid offers a decentralized, cost-effective, and flexible alternative to traditional cloud providers. It empowers users to take control of their infrastructure, reduce costs, and contribute to a more open and resilient internet. By offering multiple deployment options, the grid provides a scalable and adaptable solution for modern cloud computing needs.
|
||||||
|
|
||||||
|
## Join the Movement: Take Control of Your Cloud
|
||||||
|
|
||||||
|
### Getting Started: Your Path to Decentralization
|
||||||
|
|
||||||
|
Getting started with the ThreeFold Grid is simple and straightforward. Users can access the comprehensive manual at [manual.grid.tf](https://manual.grid.tf), which provides step-by-step guides, tutorials, and documentation to help you deploy and manage your cloud infrastructure today. Whether you’re deploying on nodes managed by farmers, your own nodes, or through a cloud provider like Hetzner, the manual has everything you need to get up and running quickly.
|
||||||
|
|
||||||
|
### Be Part of the Community
|
||||||
|
|
||||||
|
The ThreeFold Grid is powered by an active and supportive community of users, contributors, and developers. Whether you’re a beginner or an expert, you’ll find the help you need through our various community platforms:
|
||||||
|
|
||||||
|
- Forum: Join discussions, ask questions, and share ideas at [forum.threefold.io](https://forum.threefold.io).
|
||||||
|
|
||||||
|
- Telegram Channels: Connect with the community in real-time through our Telegram channels for instant support and collaboration.
|
||||||
|
|
||||||
|
- Support Team: Our dedicated support team is always ready to assist you with any challenges you may face.
|
||||||
|
|
||||||
|
For those looking for more personalized assistance, the TFGrid team offers tailor-made services to help you deploy your own internet infrastructure. Whether you need guidance on setting up your nodes or want a custom solution for your specific needs, we’re here to help. Contact us to schedule a personalized service meeting and learn more about how we can support your journey.
|
||||||
|
|
||||||
|
### Collaborate with Us
|
||||||
|
|
||||||
|
We collaborate with trusted hardware providers to ensure that users have access to reliable and high-quality infrastructure. If you’re interested in deploying your own nodes or exploring hardware options, we can connect you with our hardware provider partners. Additionally, we facilitate direct communication with farmers on the ThreeFold Grid, enabling you to deploy your decentralized cloud infrastructure and engage directly with the farmers hosting your workloads. Simply reach out to us, and we’ll help you get started—whether you’re sourcing hardware, connecting with farmers, or exploring deployment options.
|
||||||
|
|
||||||
|
### Growing Together: Our Commitment to Innovation
|
||||||
|
|
||||||
|
The ThreeFold Grid is a Free and Open Source Software (FOSS) project, driven by a global community of contributors. We follow a lean and agile development process, with regular releases that bring new features, security enhancements, and performance optimizations. Our development cycle is transparent, and we actively track bugs and implement feature requests based on user feedback.
|
||||||
|
|
||||||
|
We invite you to contribute to the growth and improvement of the grid:
|
||||||
|
|
||||||
|
- GitHub: Submit feature requests, report bugs, or contribute code on our [GitHub repository](https://github.com/threefoldtech).
|
||||||
|
|
||||||
|
- Gitea: For a more decentralized approach, you can also engage with us on [Gitea](https://git.ourworld.tf).
|
||||||
|
|
||||||
|
Your feedback is invaluable to us, and we’re committed to building a platform that meets the evolving needs of our users. Join us in shaping the future of decentralized cloud computing!
|
||||||
|
|
||||||
|
## Decentralization Starts Here: Take Control Now
|
||||||
|
|
||||||
|
The ThreeFold Grid is more than just a decentralized cloud platform—it’s a vision for a better internet. By empowering users to build their own infrastructure, we’re challenging the status quo and creating a system that prioritizes transparency, control, and accessibility. Whether you’re deploying on nodes managed by farmers, running your own hardware, or leveraging cloud providers, the ThreeFold Grid offers a flexible, cost-effective, and scalable solution for modern cloud computing needs.
|
||||||
|
|
||||||
|
But this is just the beginning. The ThreeFold Grid thrives on community collaboration, continuous improvement, and a shared commitment to decentralization. With easy onboarding, a vibrant support network, and a transparent development process, we’re building a platform that evolves with the needs of its users.
|
||||||
|
|
||||||
|
The future of the internet is in your hands. Whether you’re contributing to the grid, deploying your own nodes, or simply exploring the possibilities, you’re part of a movement that’s redefining how we think about cloud computing. Together, we can create a more open, resilient, and user-centric internet.
|
||||||
|
|
||||||
|
Ready to take control of your cloud? Visit [manual.grid.tf](https://manual.grid.tf) to start your decentralized journey, or join our community at [forum.threefold.io](https://forum.threefold.io) to connect with like-minded innovators. The future of the internet starts here—let’s build it together.
|
170
docusaurus.config.ts
Normal file
170
docusaurus.config.ts
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
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: 'ThreeFold Tech',
|
||||||
|
tagline: 'Self-Healing Data & Cloud Network',
|
||||||
|
favicon: 'img/favicon.png',
|
||||||
|
|
||||||
|
url: 'https://threefold.info',
|
||||||
|
baseUrl: '/decloud/',
|
||||||
|
|
||||||
|
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',
|
||||||
|
metadata: [
|
||||||
|
{ name: 'description', content: 'ThreeFold is laying the foundation for Web4, the next generation of the Internet.' },
|
||||||
|
{ property: 'og:image', content: 'https://threefold.info/decloud/img/tf_graph.png' },
|
||||||
|
{ property: 'og:description', content: 'ThreeFold is laying the foundation for Web4, the next generation of the Internet.' },
|
||||||
|
{ property: 'og:title', content: 'Introduction | ThreeFold Docs' },
|
||||||
|
],
|
||||||
|
navbar: {
|
||||||
|
title: '',
|
||||||
|
logo: {
|
||||||
|
alt: 'ThreeFold Logo',
|
||||||
|
src: '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: 'Docs',
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
label: 'Introduction',
|
||||||
|
to: '/docs/introduction',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'V3 Manual',
|
||||||
|
href: 'https://manual.grid.tf/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'V4 Docs',
|
||||||
|
href: 'https://docs.threefold.io/',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
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',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
copyright: `Copyright © ${new Date().getFullYear()} ThreeFold`,
|
||||||
|
},
|
||||||
|
prism: {
|
||||||
|
theme: prismThemes.github,
|
||||||
|
darkTheme: prismThemes.dracula,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default config;
|
39
install.sh
Executable file
39
install.sh
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
cd "${script_dir}"
|
||||||
|
|
||||||
|
echo "Docs directory: $script_dir"
|
||||||
|
|
||||||
|
# Function to detect the current shell and source the appropriate rc file
|
||||||
|
source_rc_file() {
|
||||||
|
local shell_name=$(basename "$SHELL")
|
||||||
|
case "$shell_name" in
|
||||||
|
bash)
|
||||||
|
source "$HOME/.bashrc"
|
||||||
|
;;
|
||||||
|
zsh)
|
||||||
|
source "$HOME/.zshrc"
|
||||||
|
;;
|
||||||
|
fish)
|
||||||
|
source "$HOME/.config/fish/config.fish"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unsupported shell: $shell_name"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# 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
|
||||||
|
source_rc_file
|
||||||
|
else
|
||||||
|
echo "Bun is already installed."
|
||||||
|
fi
|
||||||
|
|
||||||
|
bun install
|
49
package.json
Normal file
49
package.json
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
{
|
||||||
|
"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.7.0",
|
||||||
|
"@docusaurus/preset-classic": "^3.7.0",
|
||||||
|
"@docusaurus/theme-mermaid": "^3.7.0",
|
||||||
|
"@mdx-js/react": "^3.0.0",
|
||||||
|
"clsx": "^2.0.0",
|
||||||
|
"prism-react-renderer": "^2.3.0",
|
||||||
|
"react": "^18.2.0",
|
||||||
|
"react-dom": "^18.2.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@docusaurus/module-type-aliases": "^3.7.0",
|
||||||
|
"@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": {
|
||||||
|
"bun": ">=1.1.45"
|
||||||
|
},
|
||||||
|
"packageManager": "bun@1.1.45"
|
||||||
|
}
|
31
sidebars.ts
Normal file
31
sidebars.ts
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
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;
|
71
src/components/HomepageFeatures/index.tsx
Normal file
71
src/components/HomepageFeatures/index.tsx
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
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‑to‑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>
|
||||||
|
);
|
||||||
|
}
|
11
src/components/HomepageFeatures/styles.module.css
Normal file
11
src/components/HomepageFeatures/styles.module.css
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
.features {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding: 2rem 0;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.featureSvg {
|
||||||
|
height: 200px;
|
||||||
|
width: 200px;
|
||||||
|
}
|
131
src/css/custom.css
Normal file
131
src/css/custom.css
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
/**
|
||||||
|
* 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 */
|
||||||
|
}
|
23
src/pages/index.module.css
Normal file
23
src/pages/index.module.css
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/**
|
||||||
|
* 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;
|
||||||
|
}
|
6
src/pages/index.tsx
Normal file
6
src/pages/index.tsx
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { Redirect } from '@docusaurus/router';
|
||||||
|
|
||||||
|
export default function Home() {
|
||||||
|
return <Redirect to="/decloud/docs/introduction" />;
|
||||||
|
}
|
7
src/pages/markdown-page.md
Normal file
7
src/pages/markdown-page.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Markdown page example
|
||||||
|
---
|
||||||
|
|
||||||
|
# Markdown page example
|
||||||
|
|
||||||
|
You don't need React to write simple standalone pages.
|
34
src/pages/support.md
Normal file
34
src/pages/support.md
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# 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, 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 visit the [ThreeFold Support Crisp website](https://threefoldfaq.crisp.help/en/) and initiate a chat with us during business hours.
|
||||||
|
|
||||||
|
*We're here to listen, assist, and provide support!*
|
||||||
|
|
||||||
|
---
|
0
static/.nojekyll
Normal file
0
static/.nojekyll
Normal file
1
static/CNAME
Normal file
1
static/CNAME
Normal file
@ -0,0 +1 @@
|
|||||||
|
threefold.info/decloud
|
BIN
static/fonts/Inter_28pt-Light.ttf
Normal file
BIN
static/fonts/Inter_28pt-Light.ttf
Normal file
Binary file not shown.
BIN
static/fonts/Inter_28pt-Medium.ttf
Normal file
BIN
static/fonts/Inter_28pt-Medium.ttf
Normal file
Binary file not shown.
BIN
static/fonts/Inter_28pt-Regular.ttf
Normal file
BIN
static/fonts/Inter_28pt-Regular.ttf
Normal file
Binary file not shown.
BIN
static/img/favicon.png
Normal file
BIN
static/img/favicon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 327 B |
BIN
static/img/new_logo_tft.png
Normal file
BIN
static/img/new_logo_tft.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.2 KiB |
BIN
static/img/tf_graph.png
Normal file
BIN
static/img/tf_graph.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.8 KiB |
1
static/js/crisp.js
Normal file
1
static/js/crisp.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
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);})();
|
7
tsconfig.json
Normal file
7
tsconfig.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
// This file is not used in compilation. It is here just for a nice editor experience.
|
||||||
|
"extends": "@docusaurus/tsconfig",
|
||||||
|
"compilerOptions": {
|
||||||
|
"baseUrl": "docs"
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user