# QuickStart Introduction [#introduction] PaperCloud CLI makes it easy to deploy cloud native opensource projects on major cloud providers with minimal config. Prerequisites [#prerequisites] Cloud subscription in any major cloud subscription with previlage Automatic Installation [#automatic-installation] import { Tab, Tabs } from 'fumadocs-ui/components/tabs'; ```bash curl -fsSL https://get.papercloud.dev | bash ``` ```powershell irm https://get.papercloud.dev/install.ps1 | iex ``` After installation, verify it works: ```bash papercloud --version ``` Cloud Configuration [#cloud-configuration] AWS [#aws] Make sure to install AWS CLI Azure [#azure] Make sure to install Azure CLI GCP [#gcp] Make sure to install GCP CLI Self Host Private VPN [#self-host-private-vpn] Deploy private WireGuard VPN with [wg-easy](https://github.com/wg-easy/wg-easy) UI. Checkout the architecture [here](/templates/networking/wireguard). ```bash papercloud app deploy wireguard --name wireguard-vpn --target azure ``` ```bash papercloud app deploy wireguard --name wireguard-vpn --target aws ``` ```bash papercloud app deploy wireguard --name wireguard-vpn --target gcp ``` Make sure name is unique so that it won't collide with any existing infrastructure ```bash papercloud app list ``` # Cloud Images Introduction [#introduction] PaperCloud Cloud Images are pre-built virtual machine images for popular open source projects, ready to deploy on major cloud providers. Available Images [#available-images] import { Cards, Card } from 'fumadocs-ui/components/card'; Supported Platforms [#supported-platforms] * **AWS** — AMI (Amazon Machine Image) * **Azure** — Managed Image * **GCP** — Custom Image Usage [#usage] import { Tab, Tabs } from 'fumadocs-ui/components/tabs'; ```bash papercloud images deploy --target azure ``` ```bash papercloud images deploy --target aws ``` ```bash papercloud images deploy --target gcp ``` # Templates Welcome to the Templates documentation. # NetBird NetBird is a peer to peer networking solution based on wireguard Installation [#installation] Initialize a config for CLI: npm pnpm yarn bun ```bash npx @fumadocs/cli ``` ```bash pnpm dlx @fumadocs/cli ``` ```bash yarn dlx @fumadocs/cli ``` ```bash bun x @fumadocs/cli ``` You can change the output paths of components in the config. Components [#components] Select and install components. npm pnpm yarn bun ```bash npx @fumadocs/cli add ``` ```bash pnpm dlx @fumadocs/cli add ``` ```bash yarn dlx @fumadocs/cli add ``` ```bash bun x @fumadocs/cli add ``` You can pass component names directly. npm pnpm yarn bun ```bash npx @fumadocs/cli add banner files ``` ```bash pnpm dlx @fumadocs/cli add banner files ``` ```bash yarn dlx @fumadocs/cli add banner files ``` ```bash bun x @fumadocs/cli add banner files ``` How the magic works? [#how-the-magic-works] The CLI fetches the latest version of component from the GitHub repository of Fumadocs. When you install a component, it is guaranteed to be up-to-date. In addition, it also transforms import paths. Make sure to use the latest version of CLI > This is highly inspired by Shadcn UI. Customise [#customise] A simple way to customise Fumadocs layouts. npm pnpm yarn bun ```bash npx @fumadocs/cli customise ``` ```bash pnpm dlx @fumadocs/cli customise ``` ```bash yarn dlx @fumadocs/cli customise ``` ```bash bun x @fumadocs/cli customise ``` Tree [#tree] Generate files tree for Fumadocs UI `Files` component, using the `tree` command from your terminal. npm pnpm yarn bun ```bash npx @fumadocs/cli tree ./my-dir ./output.tsx ``` ```bash pnpm dlx @fumadocs/cli tree ./my-dir ./output.tsx ``` ```bash yarn dlx @fumadocs/cli tree ./my-dir ./output.tsx ``` ```bash bun x @fumadocs/cli tree ./my-dir ./output.tsx ``` You can output MDX files too: npm pnpm yarn bun ```bash npx @fumadocs/cli tree ./my-dir ./output.mdx ``` ```bash pnpm dlx @fumadocs/cli tree ./my-dir ./output.mdx ``` ```bash yarn dlx @fumadocs/cli tree ./my-dir ./output.mdx ``` ```bash bun x @fumadocs/cli tree ./my-dir ./output.mdx ``` See help for further details: npm pnpm yarn bun ```bash npx @fumadocs/cli tree -h ``` ```bash pnpm dlx @fumadocs/cli tree -h ``` ```bash yarn dlx @fumadocs/cli tree -h ``` ```bash bun x @fumadocs/cli tree -h ``` Example Output [#example-output] ```tsx title="output.tsx" import { File, Folder, Files } from 'fumadocs-ui/components/files'; export default ( ); ``` Installation [#installation-1] Initialize a config for CLI: npm pnpm yarn bun ```bash npx @fumadocs/cli ``` ```bash pnpm dlx @fumadocs/cli ``` ```bash yarn dlx @fumadocs/cli ``` ```bash bun x @fumadocs/cli ``` You can change the output paths of components in the config. Components [#components-1] Select and install components. npm pnpm yarn bun ```bash npx @fumadocs/cli add ``` ```bash pnpm dlx @fumadocs/cli add ``` ```bash yarn dlx @fumadocs/cli add ``` ```bash bun x @fumadocs/cli add ``` You can pass component names directly. npm pnpm yarn bun ```bash npx @fumadocs/cli add banner files ``` ```bash pnpm dlx @fumadocs/cli add banner files ``` ```bash yarn dlx @fumadocs/cli add banner files ``` ```bash bun x @fumadocs/cli add banner files ``` How the magic works? [#how-the-magic-works-1] The CLI fetches the latest version of component from the GitHub repository of Fumadocs. When you install a component, it is guaranteed to be up-to-date. In addition, it also transforms import paths. Make sure to use the latest version of CLI > This is highly inspired by Shadcn UI. Customise [#customise-1] A simple way to customise Fumadocs layouts. npm pnpm yarn bun ```bash npx @fumadocs/cli customise ``` ```bash pnpm dlx @fumadocs/cli customise ``` ```bash yarn dlx @fumadocs/cli customise ``` ```bash bun x @fumadocs/cli customise ``` Tree [#tree-1] Generate files tree for Fumadocs UI `Files` component, using the `tree` command from your terminal. npm pnpm yarn bun ```bash npx @fumadocs/cli tree ./my-dir ./output.tsx ``` ```bash pnpm dlx @fumadocs/cli tree ./my-dir ./output.tsx ``` ```bash yarn dlx @fumadocs/cli tree ./my-dir ./output.tsx ``` ```bash bun x @fumadocs/cli tree ./my-dir ./output.tsx ``` You can output MDX files too: npm pnpm yarn bun ```bash npx @fumadocs/cli tree ./my-dir ./output.mdx ``` ```bash pnpm dlx @fumadocs/cli tree ./my-dir ./output.mdx ``` ```bash yarn dlx @fumadocs/cli tree ./my-dir ./output.mdx ``` ```bash bun x @fumadocs/cli tree ./my-dir ./output.mdx ``` See help for further details: npm pnpm yarn bun ```bash npx @fumadocs/cli tree -h ``` ```bash pnpm dlx @fumadocs/cli tree -h ``` ```bash yarn dlx @fumadocs/cli tree -h ``` ```bash bun x @fumadocs/cli tree -h ``` Example Output [#example-output-1] ```tsx title="output.tsx" import { File, Folder, Files } from 'fumadocs-ui/components/files'; export default ( ); ``` Installation [#installation-2] Initialize a config for CLI: npm pnpm yarn bun ```bash npx @fumadocs/cli ``` ```bash pnpm dlx @fumadocs/cli ``` ```bash yarn dlx @fumadocs/cli ``` ```bash bun x @fumadocs/cli ``` You can change the output paths of components in the config. Components [#components-2] Select and install components. npm pnpm yarn bun ```bash npx @fumadocs/cli add ``` ```bash pnpm dlx @fumadocs/cli add ``` ```bash yarn dlx @fumadocs/cli add ``` ```bash bun x @fumadocs/cli add ``` You can pass component names directly. npm pnpm yarn bun ```bash npx @fumadocs/cli add banner files ``` ```bash pnpm dlx @fumadocs/cli add banner files ``` ```bash yarn dlx @fumadocs/cli add banner files ``` ```bash bun x @fumadocs/cli add banner files ``` How the magic works? [#how-the-magic-works-2] The CLI fetches the latest version of component from the GitHub repository of Fumadocs. When you install a component, it is guaranteed to be up-to-date. In addition, it also transforms import paths. Make sure to use the latest version of CLI > This is highly inspired by Shadcn UI. Customise [#customise-2] A simple way to customise Fumadocs layouts. npm pnpm yarn bun ```bash npx @fumadocs/cli customise ``` ```bash pnpm dlx @fumadocs/cli customise ``` ```bash yarn dlx @fumadocs/cli customise ``` ```bash bun x @fumadocs/cli customise ``` Tree [#tree-2] Generate files tree for Fumadocs UI `Files` component, using the `tree` command from your terminal. npm pnpm yarn bun ```bash npx @fumadocs/cli tree ./my-dir ./output.tsx ``` ```bash pnpm dlx @fumadocs/cli tree ./my-dir ./output.tsx ``` ```bash yarn dlx @fumadocs/cli tree ./my-dir ./output.tsx ``` ```bash bun x @fumadocs/cli tree ./my-dir ./output.tsx ``` You can output MDX files too: npm pnpm yarn bun ```bash npx @fumadocs/cli tree ./my-dir ./output.mdx ``` ```bash pnpm dlx @fumadocs/cli tree ./my-dir ./output.mdx ``` ```bash yarn dlx @fumadocs/cli tree ./my-dir ./output.mdx ``` ```bash bun x @fumadocs/cli tree ./my-dir ./output.mdx ``` See help for further details: npm pnpm yarn bun ```bash npx @fumadocs/cli tree -h ``` ```bash pnpm dlx @fumadocs/cli tree -h ``` ```bash yarn dlx @fumadocs/cli tree -h ``` ```bash bun x @fumadocs/cli tree -h ``` Example Output [#example-output-2] ```tsx title="output.tsx" import { File, Folder, Files } from 'fumadocs-ui/components/files'; export default ( ); ``` # WireGuard WireGuard is a networking solution