# 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