# Demo Deployment This project can run behind the existing Caddy edge service with this temporary route: ```text Caddy -> chatroom-nginx -> chatroom-app ``` The chatroom compose stack joins the existing external Docker network named `caddy_proxy`. No app ports are published to the host. ## Start the Chatroom Stack From this project directory: ```powershell docker compose up -d --build docker compose ps ``` Test the FastAPI health endpoint through the Nginx container: ```powershell docker compose exec chatroom-nginx wget -qO- http://chatroom-app:8000/health ``` ## Temporary Caddy Change Do this manually in: ```text D:\Programing\Scripts\Home Lab\Interanet\caddy-deployment\config\caddy\Caddyfile ``` Add this temporary block: ```caddy chat.amiirkhl.ir { import {$CADDY_TLS_MODE:custom_tls} reverse_proxy chatroom-nginx:80 } ``` If the current custom certificate does not include `chat.amiirkhl.ir`, use this instead: ```caddy chat.amiirkhl.ir { import letsencrypt_tls reverse_proxy chatroom-nginx:80 } ``` Reload Caddy from the Caddy deployment directory: ```powershell docker compose exec caddy caddy reload --config /etc/caddy/Caddyfile ``` ## Browser Test Open: ```text https://chat.amiirkhl.ir ``` Use two browser tabs, join the same room, and send messages both ways. The frontend builds its WebSocket URL from the current page, so HTTPS should connect with: ```text wss://chat.amiirkhl.ir/ws/{room}/{user} ``` ## Undo After the Demo 1. Remove the `chat.amiirkhl.ir` block from the Caddyfile. 2. Reload Caddy: ```powershell docker compose exec caddy caddy reload --config /etc/caddy/Caddyfile ``` 3. Stop and remove the chatroom stack from this project directory: ```powershell docker compose down ```