A self-hosted TorrServer experience without renting a VPS.
Deploy on bunny.net Magic Containers, connect with Lampa, and control when the server runs.
| 🇷🇺 Русский | 🇬🇧 English | 🇳🇱 Nederlands |
|---|---|---|
| Руководство пользователя → | User guide → | Gebruikershandleiding → |
| Установка · Lampa · Цены | Setup · Lampa · Pricing | Installatie · Lampa · Kosten |
TorrServer Bunny is a deployment and control layer built around the open-source TorrServer by YouROK. Instead of maintaining a 24/7 VPS, you use a container on Bunny, a private HTTPS CDN address, and three simple terminal commands to manage it.
|
Runs in Bunny Magic Containers. Select one region; the installer handles the container, credentials and HTTPS endpoint. |
Copy the HTTPS CDN domain into Lampa's TorrServer settings. Your account gets its own login and generated password. |
Stop compute after a film. Start the same application again later, with its persistent configuration intact. |
|
TorrServer login credentials are saved locally. The HTTPS endpoint uses authentication; the Bunny API key stays out of the container. |
Enable a separately billed Anycast IPv4 endpoint for inbound BitTorrent TCP/UDP connections. |
A scheduled GitHub Action can request a stop after 60+ minutes without media activity. Best effort, not a guaranteed timer. |
FIRST-TIME SETUP · macOS / Linux · Python 3 + curl · Bunny account required
1. Open Terminal on your Mac or Linux computer. Copy and run:
curl -fsSL --retry 3 \
https://raw.githubusercontent.com/vbrekher/TorrServer-bunny/master/install-bunny.sh \
-o /tmp/install-torrserver-bunny.sh \
&& sh /tmp/install-torrserver-bunny.sh2. Answer the guided setup questions. The wizard will ask for your private Bunny account API key, region (for example AMS or DE), a username and whether you want the optional paid Anycast peer port. It generates a password automatically. Type CREATE once to approve billable resources.
3. Get your private server address. After provisioning, run status and look for the HTTPS CDN URL. A valid example looks like https://mc-example.bunny.run. Use your own address, not this example.
Important
Setup creates paid Bunny resources. If you already have an app, do not run the setup wizard again. Go straight to the daily commands below.
| Action | Command | What happens |
|---|---|---|
| 🟢 Start | ~/.local/bin/torrserver-bunny start | Deploys your existing server |
| 🔍 Status | ~/.local/bin/torrserver-bunny status | Checks Bunny status and HTTPS URL |
| 🔴 Stop | ~/.local/bin/torrserver-bunny stop | Stops running containers, not the saved app |
Starting and stopping are asynchronous. Wait for active in status before expecting the stream to work. Opening Lampa will not automatically start a stopped container.
| 1. Find the HTTPS URL | Run ~/.local/bin/torrserver-bunny status and copy the line TorrServer HTTPS CDN URL. |
| 2. Retrieve credentials privately | Run ~/.local/bin/torrserver-bunny status --show-credentials on your own computer. |
| 3. Configure Lampa | Open Lampa → Settings → TorrServer and enter the HTTPS CDN domain, username and password. Menu names may vary. |
| 4. Try a test stream | Test with a torrent that you are allowed to download and share. TV codec and torrent peer compatibility require real testing. |
Warning
Do not use an Anycast IP ending in :32000 as your Lampa server URL. That is a BitTorrent peer port, not the HTTPS web endpoint. For Lampa, use the HTTPS CDN domain returned by status.
An illustrative Blu-ray-size movie streamed over 3 hours to one viewer in Europe / North America, assuming one fully utilized CPU core and 1 GB of billed RAM for that period:
| Usage | Calculation | Example |
|---|---|---|
| 📡 50 GB outgoing video traffic | 50 × $0.01/GB | $0.50 |
| ⚙️ CPU for 3 hours | 3 × $0.02/core-hour | $0.06 |
| 🧠 RAM for 3 hours | 3 × $0.005/GB-hour | $0.015 |
| Estimated session subtotal | Network + assumed compute | ≈ $0.58 |
| 💾 Persistent 1 GB configuration volume | Monthly allocation | ≈ $0.10 / month |
| 🌐 Optional Anycast IPv4 | Full-month allocation | ≈ $2 / month |
One such movie in a 30-day month, with resources retained all month:
| Configuration | Illustrative total |
|---|---|
| Without Anycast IP | ≈ $0.68 / month |
| With an allocated Anycast IPv4 | ≈ $2.68 / month |
This is not a guaranteed bill. The session estimate excludes BitTorrent peer upload / seeding (potentially significant), extra or repeated traffic, additional applicable CDN charges, region-specific prices, taxes, other Bunny products and account minimums. CPU and RAM usage are assumptions, not measurements. stop stops compute, but allocated storage and Anycast can remain billable. Bunny rates and billing may change. Rates referenced as of 2 November 2026: Magic Containers · CDN pricing.
Start the server → watch a movie in Lampa → stop playback → let GitHub Actions shut down the idle container. The timer starts from the last tracked video activity, not from server startup. No extra software needs to stay running on your Mac after setup.
Simple instructions in your language:
| 🇷🇺 Русский | 🇬🇧 English | 🇳🇱 Nederlands |
|---|---|---|
| Автоотключение за 4 шага | 4 steps to auto-stop | Automatisch stoppen in 4 stappen |
1. Install and sign in to GitHub CLI (gh); use a GitHub repository you own containing .github/workflows/idle-watchdog.yml (fork this repository if necessary). Do not give your Bunny API key to a repository owned by someone else.
2. Start your existing Bunny app, play a short video in Lampa and check that the gateway has counted real media data:
~/.local/bin/torrserver-bunny activityTracked media bytes since container startup must be greater than 0. If it is 0, auto-stop must remain off; play a test stream since the current container startup and recheck.
3. Enable the scheduled watchdog on your own GitHub repository:
REPO="YOUR_USERNAME/TorrServer-bunny" # Replace with your own GitHub repo
gh auth status
~/.local/bin/torrserver-bunny enable-github-watchdog --repo "$REPO"
# Enter ENABLE when prompted. Continue ONLY if "Secrets installed" appears.
gh workflow enable idle-watchdog.yml -R "$REPO"
gh workflow run idle-watchdog.yml -R "$REPO"The CLI securely sets four GitHub Actions repository secrets from your local configuration; do not paste secrets into README or GitHub source files. The manual workflow run is a connectivity check, not a forced shutdown.
4. After playback ends, leave the Bunny app running and avoid streaming for 60 minutes or more. Check the result:
gh run list --workflow idle-watchdog.yml -R "$REPO" -L 10
~/.local/bin/torrserver-bunny statusThe log line IDLE_STOP_REQUESTED means shutdown was requested; State: inactive confirms Bunny actually stopped. A green GitHub Actions run can simply mean that the stop condition was not met. When Bunny is already inactive, the updated watchdog logs ALREADY_INACTIVE and exits without another stop. For noninteractive logs, pass the run ID: gh run view RUN_ID -R "$REPO" --log.
Important
GitHub checks approximately every 10 minutes, but scheduled runs may be delayed or skipped: this is not a guaranteed 60:00 timer. If no video has been tracked since this container started, the safety rule will not stop it automatically; use ~/.local/bin/torrserver-bunny stop. Lampa cannot restart a stopped container by itself. Persistent storage and allocated Anycast IP can still cost money. Real-world idle auto-stop verified on 4 Nov 2026: GitHub Actions run #41920393921 logged idle_minutes=91 and IDLE_STOP_REQUESTED; the owner confirmed Bunny State: inactive.
🔧 Advanced troubleshooting and useful commands
| Situation | What to do |
|---|---|
| Already installed | Use start, status and stop — not setup. |
| Need your password | ~/.local/bin/torrserver-bunny status --show-credentials (keep output private). |
| No HTTPS domain yet | Check torrserver-https under Magic Containers → Endpoints in Bunny. Do not create another app. |
| Wrong IP address appears | Update the CLI and run status; use the HTTPS CDN domain, not Anycast port 32000. |
| Creation returned HTTP 500 | Do not retry CREATE blindly; run ~/.local/bin/torrserver-bunny doctor and check your Bunny dashboard. |
| Update the CLI without creating a server | Run the installer with the status argument (see below). |
curl -fsSL --retry 3 \
https://raw.githubusercontent.com/vbrekher/TorrServer-bunny/master/install-bunny.sh \
-o /tmp/install-torrserver-bunny.sh \
&& sh /tmp/install-torrserver-bunny.sh statusMore detail: Technical deployment guide.
| Capability | Verification |
|---|---|
| Real Magic Containers app created | ✅ Confirmed from owner deployment on 2 November 2026 |
Application active, HTTPS CDN URL received |
✅ Confirmed from Bunny API output |
| Python CLI and Go gateway | ✅ Automated tests in GitHub Actions |
| Streaming through Lampa | ✅ Playback confirmed by the project owner (4 Nov 2026); physical-device compatibility has not been independently audited |
| Scheduled 60-minute shutdown on live Bunny | ✅ Verified: 91 idle minutes → stop requested → owner saw inactive (GitHub run) |
Verification boundary: Lampa streaming is now owner-confirmed (4 Nov 2026). It is not an independent compatibility certification for every Samsung/Tizen device or format. A real 60-minute idle shutdown has been verified: GitHub requested undeploy after 91 tracked idle minutes, and the owner observed the container inactive. GitHub cron scheduling remains best-effort; one live pass does not guarantee every future scheduled run. This project does not provide or distribute movies, catalogs or copyrighted material.
A big thank-you to YouROK and all contributors to TorrServer.
TorrServer Bunny is an independent deployment and lifecycle layer built around their work. The original torrent engine, its upstream community and its license deserve clear recognition.
Original TorrServer · Lampa · Technical guide · GPL-3.0 License
Use only content you are legally entitled to access and share. This repository does not host any films or torrent catalog.