From 520a4dc969a76edff4d44c6d9aad0c6d6c97cb29 Mon Sep 17 00:00:00 2001 From: Miroslav Pejic Date: Wed, 8 Apr 2026 12:50:34 +0200 Subject: [PATCH] [call-me] - add self-hosting automation scripts readme --- README.md | 52 +++++++++++++++++++++++++++++++----- assets/doc/self-hosting.png | Bin 0 -> 26338 bytes 2 files changed, 45 insertions(+), 7 deletions(-) create mode 100644 assets/doc/self-hosting.png diff --git a/README.md b/README.md index 4dd3c33..2b781e4 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ docker-compose up 1. `Open` your browser and visit [http://localhost:8000](http://localhost:8000). -2. `Sign in` with your username. +2. `Join` with your username or `Call` directly the recipient. 3. `Select` the connected recipient's username and click `Call`. @@ -112,6 +112,50 @@ You can explore a `widget` example that demonstrates this functionality [here](. --- +
+Self-Hosting + +
+ +![setup](/assets/doc/self-hosting.png) + +## **Requirements** + +- A clean server running **Ubuntu 22.04 or 24.04 LTS** +- **Root access** to the Server +- A **domain or subdomain** pointing to your server’s public IPv4 + +--- + +## Note + +When **prompted**, simply **enter your domain or subdomain**. Then wait for the installation to complete. + +```bash +# Install +wget -qO cme-install.sh https://docs.mirotalk.com/scripts/cme/cme-install.sh \ + && chmod +x cme-install.sh \ + && ./cme-install.sh +``` + +```bash +# Uninstall +wget -qO cme-uninstall.sh https://docs.mirotalk.com/scripts/cme/cme-uninstall.sh \ + && chmod +x cme-uninstall.sh \ + && ./cme-uninstall.sh +``` + +```bash +# Update +wget -qO cme-update.sh https://docs.mirotalk.com/scripts/cme/cme-update.sh \ + && chmod +x bro-update.sh \ + && ./cme-update.sh +``` + +
+ +--- + ## Fast Integration ![iframe](public/assets/iframe.png) @@ -146,10 +190,4 @@ Docs: http://localhost:8000/api/v1/docs/ or you can check it out live in prod [h --- -## Self-Hosting - -To install this on your VPS, VDS, or personal server, please follow the instructions in **[the self-hosting documentation](./doc/self-hosting.md)**. - ---- - ![Star History Chart](https://app.repohistory.com/api/svg?repo=miroslavpejic85/call-me&type=Date&background=0D1117&color=62C3F8) diff --git a/assets/doc/self-hosting.png b/assets/doc/self-hosting.png new file mode 100644 index 0000000000000000000000000000000000000000..96a8139c4ff4d38f1b4998dbf544715c85362215 GIT binary patch literal 26338 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