Remote Hosting Tutorial#355
Conversation
|
Images automagically compressed by Calibre's image-actions ✨ Compression reduced images by 74.8%, saving 202.3 KB.
|
There was a problem hiding this comment.
Pull request overview
Adds a new “Remote Hosting” tutorial to improve the onboarding/journey for running Caido CLI on a remote host and connecting to it from a local device, and links it from the Tutorials sidebar.
Changes:
- Introduces a new tutorial covering standalone and Docker-based remote hosting, SSH tunneling, and internet exposure via Nginx or Docker+Traefik.
- Adds “Remote Hosting” to the app tutorials sidebar navigation.
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated 11 comments.
| File | Description |
|---|---|
src/app/tutorials/remote.md |
New tutorial page documenting multiple remote hosting approaches and access patterns. |
.vitepress/sidebars/app/tutorials.ts |
Adds the new tutorial to the “Configuration” section of the tutorials sidebar. |
|
Images automagically compressed by Calibre's image-actions ✨ Compression reduced images by 11.1%, saving 7.6 KB.
|
|
Images automagically compressed by Calibre's image-actions ✨ Compression reduced images by 13.8%, saving 8.4 KB.
|
|
Images automagically compressed by Calibre's image-actions ✨ Compression reduced images by 33.3%, saving 17.4 KB.
|
| description: "Learn how to host Caido remotely in a variety of ways." | ||
| --- | ||
|
|
||
| # Remote Hosting | ||
|
|
||
| In this tutorial, you will learn how Caido's client/server-based architecture enables remote hosting, what advantages that setup provides, and how to configure it for different environments. | ||
|
|
||
| ## Architecture | ||
|
|
||
| Caido consists of two components: | ||
|
|
||
| 1. The **client** component. | ||
| 2. The **server** component. | ||
|
|
||
| When you're using the Caido desktop application, both components are packaged together: | ||
|
|
||
| - The client component is an Electron application installed on your local device that includes the windows, interfaces, menus, buttons, and other GUI elements you use to operate Caido. | ||
| - The server component is the Caido CLI tool that runs as a background process that listens for operations generated by the client component and handles proxied network traffic. | ||
|
|
||
| However, the server component, the Caido CLI, can be installed as a standalone binary. | ||
|
|
||
| Once the binary is launched, instead of operating Caido via an installed desktop application, the Caido GUI becomes available as a browser web application. | ||
|
|
||
| The decoupling of the two components is what allows you to install the server component on a remote server and access the [instance](/app/concepts/instance.md) from your local device. | ||
|
|
||
| Being able to run the Caido CLI on a remote server and control it over the web offers several advantages: | ||
|
|
||
| - Instead of keeping your own device awake, Caido can be offloaded to a server that is running continuously. | ||
| - You can use a server with better hardware specifications than your own device, improving performance. | ||
| - You and other members of your [Team](/dashboard/guides/create_team.md) can access the same instance from multiple devices. | ||
| - Instances can be deployed automatically on-demand with [registration keys](/dashboard/guides/create_registration_key.md). | ||
| - You can create instances using your own infrastructure, allowing you to store security audit data on your own servers. | ||
|
|
||
| ::: warning NOTE | ||
| True multi-user instance usage is not yet available. However, data can be shared between members via the [Drop](/app/tutorials/drop.md) plugin. | ||
| ::: | ||
|
|
||
| There are multiple ways to launch the Caido CLI on a remote server and access the GUI, which we will cover below. | ||
|
|
||
| ## Downloading & Launching the Caido CLI | ||
|
|
||
| The Caido CLI is available as either a standalone binary or a Docker image container. | ||
|
|
| - You and other members of your [Team](/dashboard/guides/create_team.md) can access the same instance from multiple devices. | ||
| - Instances can be deployed automatically on-demand with [registration keys](/dashboard/guides/create_registration_key.md). | ||
| - You can create instances using your own infrastructure, allowing you to store security audit data on your own servers. | ||
|
|
||
| ::: warning NOTE | ||
| True multi-user instance usage is not yet available. However, data can be shared between members via the [Drop](/app/tutorials/drop.md) plugin. |
| ::: tip | ||
| To sort JSON data, install the `jq` tool: | ||
|
|
||
| ```bash | ||
| sudo apt install jq | ||
| ``` |
| ### Nginx Configuration | ||
|
|
||
| 1. To logically separate the internet-exposed Caido instance from your existing setup, create a new subdomain (_e.g. `caido.example.com`_) by adding an A record for the IP address of your server. | ||
|
|
||
| 2. SSH into your server. | ||
|
|
||
| 3. Create a new `sites-available` file for the domain and use the `proxy_pass` directive to route traffic to Caido: | ||
|
|
||
| ```bash | ||
| sudo nano /etc/nginx/sites-available/caido.example.com | ||
| ``` | ||
|
|
||
| ```txt |
| 5. Make the directory writable: | ||
|
|
||
| ```bash | ||
| sudo chmod -R 777 /home/user/caido/data |
| services: | ||
| caido: | ||
| image: caido/caido:0.55.3 | ||
| container_name: caido | ||
| ports: | ||
| - "127.0.0.1:8082:8082" | ||
| volumes: |
| 2. Create a `docker-compose.yml` file with the following content: | ||
|
|
||
| ```txt | ||
| services: | ||
| caido: | ||
| image: caido/caido:0.55.3 | ||
| container_name: caido | ||
| ports: |
Closes #332