From 78e5b17f4752e9e2666ef4cc488c28ca242ed542 Mon Sep 17 00:00:00 2001 From: Ninjeeter Date: Mon, 22 Dec 2025 12:00:56 -0700 Subject: [PATCH 1/3] Internet exposed instance render push. --- .vitepress/sidebars/tutorials.ts | 4 + src/tutorials/instance_internet.md | 157 +++++++++++++++++++++++++++++ 2 files changed, 161 insertions(+) create mode 100644 src/tutorials/instance_internet.md diff --git a/.vitepress/sidebars/tutorials.ts b/.vitepress/sidebars/tutorials.ts index 6354881f..e01033d5 100644 --- a/.vitepress/sidebars/tutorials.ts +++ b/.vitepress/sidebars/tutorials.ts @@ -17,6 +17,10 @@ export const tutorialsSidebar: DefaultTheme.SidebarItem[] = [ text: "Invisible Proxying", link: "/tutorials/invisible_proxy", }, + { + text: "Exposing an Instance to the Internet", + link: "/tutorials/instance_internet", + }, ], }, { diff --git a/src/tutorials/instance_internet.md b/src/tutorials/instance_internet.md new file mode 100644 index 00000000..0c099b12 --- /dev/null +++ b/src/tutorials/instance_internet.md @@ -0,0 +1,157 @@ +# Exposing an Instance to the Internet + +::: tip +Discover your system architecture with: +```bash +uname -m +``` +::: + + +1. Download the latest Caido CLI release from GitHub: `wget https://caido.download/releases/v0.54.1/caido-cli-vX.XX.X-linux-.tar.gz` +2. Extract with: `tar -xzf caido-cli-vX.XX.X-.tar.gz` +3. Make it executable: `chmod +x caido-cli` +4. Add it to PATH to make it globally executable: `sudo mv caido-cli /usr/local/bin/` +5. Delete the installation package: `rm caido-cli-v0.54.1-linux-x86_64.tar.gz` +6. View the command-line options with: `caido-cli -h` + +## Exposing the Instance to the Internet + +### Nginx Configuration + +::: tip +To separate the internet-exposed instance from your setup, create a new subdomain by adding an A record for `caido.` pointing to the same IP address. + +Then create a new `sites-available` file: + +```bash +sudo nano /etc/nginx/sites-available/caido.ninjeeter-poc.com +``` + +```txt +server { + server_name caido.ninjeeter-poc.com; + + location / { + proxy_pass http://127.0.0.1:8081; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + listen 80; + listen [::]:80; +} +``` + +Enable the site: + +```bash +sudo ln -s /etc/nginx/sites-available/caido.ninjeeter-poc.com /etc/nginx/sites-enabled/ +``` + +```bash +sudo nginx -t +``` + +```bash +sudo systemctl reload nginx +``` + +And obtain a SSL/TLS certificate: + +```bash +sudo certbot --nginx -d caido.ninjeeter-poc.com +``` + +::: + +1. Launch Caido: + +```bash +caido-cli --ui-listen 0.0.0.0:8081 --proxy-listen 0.0.0.0:8082 --ui-domain ninjeeter-poc.com --debug --no-renderer-sandbox --no-open +``` + +## Docker + +::: warning NOTE +If Nginx/Apache is running, kill it with `sudo systemctl stop nginx`/`sudo systemctl stop apache` +::: + +1. Install Docker with the Docker Compose plugin. +2. SSH into your server. +3. Create a `docker-compose.yml` file with the following content (_ensure to replace `user` with your username_, `example.com` with your domain, `user@example.com` with your email address, and account for any currently running processes by changing the ports_): + +```txt +services: + caido: + image: caido/caido:latest + container_name: caido + ports: + - "127.0.0.1:8082:8082" # Proxy port + volumes: + - /home/user/caido/data/:/home/caido/.local/share/caido + command: > + caido-cli + --no-renderer-sandbox + --debug + --no-open + --ui-listen 0.0.0.0:8081 + --ui-domain example.com + --proxy-listen 0.0.0.0:8082 + #--allow-guests + restart: unless-stopped + labels: + - "traefik.enable=true" + - "traefik.http.routers.caido.rule=Host(`example.com`)" + - "traefik.http.routers.caido.entrypoints=websecure" + - "traefik.http.routers.caido.tls.certresolver=letsencrypt" + - "traefik.http.services.caido.loadbalancer.server.port=8081" + + traefik: + image: traefik:latest + container_name: traefik + restart: unless-stopped + ports: + - "80:80" # HTTP (requires Nginx to be stopped/disabled) + - "443:443" # HTTPS / TLS termination (requires Nginx to be stopped/disabled) + command: + - "--providers.docker=true" + - "--providers.docker.exposedbydefault=false" + - "--entrypoints.web.address=:80" + - "--entrypoints.websecure.address=:443" + + # Redirect HTTP → HTTPS + - "--entrypoints.web.http.redirections.entrypoint.to=websecure" + - "--entrypoints.web.http.redirections.entrypoint.scheme=https" + + # Let's Encrypt - HTTP challenge (works with standard ports 80/443) + - "--certificatesresolvers.letsencrypt.acme.httpchallenge=true" + - "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web" + - "--certificatesresolvers.letsencrypt.acme.email=user@example.com" + - "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json" + + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + - ./letsencrypt:/letsencrypt + +``` + +3. Create a data storage location for Caido: + +```bash +mkdir -p /home/ninjeeter/caido/data +``` + +4. Since the container runs as `uid=996(caido) gid=996(caido) groups=996(caido)`, set ownership of the host directory to match: + +```bash +sudo chown -R 996:996 /home/ninjeeter/caido/data +``` + +5. Make the directory writable: + +```bash +sudo chmod 755 /home/ninjeeter/caido/data +``` From b73a0d9970c3d90912b8f95703c48c579c5fbf7c Mon Sep 17 00:00:00 2001 From: Ninjeeter Date: Tue, 23 Dec 2025 09:03:07 -0700 Subject: [PATCH 2/3] Ready for review: Exposing an instance on the internet. --- src/_images/internet_instance.png | Bin 0 -> 38260 bytes src/tutorials/instance_internet.md | 70 +++++++++++++---------------- 2 files changed, 31 insertions(+), 39 deletions(-) create mode 100644 src/_images/internet_instance.png diff --git a/src/_images/internet_instance.png b/src/_images/internet_instance.png new file mode 100644 index 0000000000000000000000000000000000000000..343785ed035f3d7e5153cb339420691354d4cdf1 GIT binary patch literal 38260 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 PKI%119gTuZmQVf<5=P`X literal 0 HcmV?d00001 diff --git a/src/tutorials/instance_internet.md b/src/tutorials/instance_internet.md index 0c099b12..42e41471 100644 --- a/src/tutorials/instance_internet.md +++ b/src/tutorials/instance_internet.md @@ -1,36 +1,22 @@ # Exposing an Instance to the Internet -::: tip -Discover your system architecture with: -```bash -uname -m -``` -::: - +In this tutorial, you will learn how to expose a Caido instance to the internet. -1. Download the latest Caido CLI release from GitHub: `wget https://caido.download/releases/v0.54.1/caido-cli-vX.XX.X-linux-.tar.gz` -2. Extract with: `tar -xzf caido-cli-vX.XX.X-.tar.gz` -3. Make it executable: `chmod +x caido-cli` -4. Add it to PATH to make it globally executable: `sudo mv caido-cli /usr/local/bin/` -5. Delete the installation package: `rm caido-cli-v0.54.1-linux-x86_64.tar.gz` -6. View the command-line options with: `caido-cli -h` - -## Exposing the Instance to the Internet +::: warning NOTE +Ensure to replace `user` with your username, `example.com` with your domain, `user@example.com` with your email address, and account for any currently running processes by changing the ports. +::: -### Nginx Configuration +## Nginx Configuration -::: tip -To separate the internet-exposed instance from your setup, create a new subdomain by adding an A record for `caido.` pointing to the same IP address. +1. To logically separate the internet-exposed Caido instance from your existing setup, create a new subdomain by adding a A record for `caido.example.com` for the IP address of your server. -Then create a new `sites-available` file: +2. SSH into your server. -```bash -sudo nano /etc/nginx/sites-available/caido.ninjeeter-poc.com -``` +3. Create a new `sites-available` file and use the `proxy_pass` directive to route traffic to Caido: `sudo nano /etc/nginx/sites-available/caido.example.com` ```txt server { - server_name caido.ninjeeter-poc.com; + server_name caido.example.com; location / { proxy_pass http://127.0.0.1:8081; @@ -45,10 +31,10 @@ server { } ``` -Enable the site: +4. Make the site available, test the configuration, and reload the web server: ```bash -sudo ln -s /etc/nginx/sites-available/caido.ninjeeter-poc.com /etc/nginx/sites-enabled/ +sudo ln -s /etc/nginx/sites-available/caido.example.com /etc/nginx/sites-enabled/ ``` ```bash @@ -59,29 +45,29 @@ sudo nginx -t sudo systemctl reload nginx ``` -And obtain a SSL/TLS certificate: +5. Obtain a SSL/TLS certificate: ```bash -sudo certbot --nginx -d caido.ninjeeter-poc.com +sudo certbot --nginx -d caido.example.com ``` -::: - -1. Launch Caido: +6. Launch the Caido CLI: ```bash -caido-cli --ui-listen 0.0.0.0:8081 --proxy-listen 0.0.0.0:8082 --ui-domain ninjeeter-poc.com --debug --no-renderer-sandbox --no-open +caido-cli --ui-listen 0.0.0.0:8081 --proxy-listen 0.0.0.0:8082 --ui-domain caido.example.com --debug --no-renderer-sandbox --no-open ``` ## Docker +The following Docker compose file runs two services: the Caido CLI and [Traefik](https://doc.traefik.io/traefik/). + ::: warning NOTE -If Nginx/Apache is running, kill it with `sudo systemctl stop nginx`/`sudo systemctl stop apache` +If Nginx/Apache is running, kill it with: `sudo systemctl stop nginx`/`sudo systemctl stop apache` ::: -1. Install Docker with the Docker Compose plugin. +1. Install [Docker](https://docs.docker.com/engine/install/) with the Docker Compose plugin. 2. SSH into your server. -3. Create a `docker-compose.yml` file with the following content (_ensure to replace `user` with your username_, `example.com` with your domain, `user@example.com` with your email address, and account for any currently running processes by changing the ports_): +3. Create a `docker-compose.yml` file with the following content: ```txt services: @@ -114,8 +100,8 @@ services: container_name: traefik restart: unless-stopped ports: - - "80:80" # HTTP (requires Nginx to be stopped/disabled) - - "443:443" # HTTPS / TLS termination (requires Nginx to be stopped/disabled) + - "80:80" + - "443:443" command: - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" @@ -141,17 +127,23 @@ services: 3. Create a data storage location for Caido: ```bash -mkdir -p /home/ninjeeter/caido/data +mkdir -p /home/user/caido/data ``` 4. Since the container runs as `uid=996(caido) gid=996(caido) groups=996(caido)`, set ownership of the host directory to match: ```bash -sudo chown -R 996:996 /home/ninjeeter/caido/data +sudo chown -R 996:996 /home/user/caido/data ``` 5. Make the directory writable: ```bash -sudo chmod 755 /home/ninjeeter/caido/data +sudo chmod 755 /home/user/caido/data ``` + +## Accessing Caido + +Once Caido is running, access the instance at the configured domain and authenticate into your account. + +Login page. From eecc7c1fec2b2c01c46b71471459bfb55bd3b624 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 23 Dec 2025 16:03:36 +0000 Subject: [PATCH 3/3] Optimised images with calibre/image-actions --- src/_images/internet_instance.png | Bin 38260 -> 8487 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/_images/internet_instance.png b/src/_images/internet_instance.png index 343785ed035f3d7e5153cb339420691354d4cdf1..9541c7ceac2e366c0c4e3460a528f63ea4dde6c1 100644 GIT binary patch literal 8487 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 PKI%119gTuZmQVf<5=P`X