TorrenCloud

Getting Started

Install and run TorrenCloud in under 5 minutes with Docker.

One-Command Install

Linux / macOS:

curl -fsSL https://raw.githubusercontent.com/TorrenClou/deploy/main/install.sh | bash

Windows (PowerShell):

irm https://raw.githubusercontent.com/TorrenClou/deploy/main/install.ps1 | iex

The installer handles everything: clones the repo, generates secrets, creates .env, pulls the Docker image, and starts TorrenCloud with Grafana monitoring.

On a remote server, the installer auto-detects your server's IP and prints accessible URLs using sslip.io — no DNS setup needed:

Frontend   http://192-168-1-100.sslip.io:47100
API        http://192-168-1-100.sslip.io:47200/api
Grafana    http://192-168-1-100.sslip.io:47500

It also prints the exact Google Drive redirect URI to register in Google Cloud Console.

Default Credentials

ServiceURLUserPassword
TorrenCloudhttp://localhost:47100admin@torrencloud.localTorrenCloud@2024
Hangfirehttp://localhost:47200/hangfire(same as above)(same as above)
Grafanahttp://localhost:47500adminadmin
Prometheushttp://localhost:47600

Important: Change default credentials in ./torrencloud/.env and run docker restart torrencloud.


Manual Setup

If you prefer full control, follow the steps below.

Prerequisites

  • Docker 20.10 or later — Install Docker
  • 2 GB free RAM minimum
  • 3 GB free disk space for the Docker image

1. Clone the deploy repository

git clone https://github.com/TorrenClou/deploy.git
cd deploy

2. Configure environment

cp .env.example .env

Open .env and fill in the required values:

VariableRequiredDescription
POSTGRES_PASSWORDYesAny strong password
JWT_SECRETYesRandom string, minimum 32 characters
NEXTAUTH_SECRETYesA different random string
ADMIN_EMAILYesYour login email
ADMIN_PASSWORDYesYour login password

Generate secrets with:

# Linux / macOS
openssl rand -base64 32
# PowerShell
[Convert]::ToBase64String((1..32 | ForEach-Object { Get-Random -Max 256 }) -as [byte[]])

3. Run

Linux / macOS:

chmod +x run.sh && ./run.sh

Windows (PowerShell):

.\run.ps1

Or directly with Docker:

docker run -d --name torrencloud \
  -p 47100:47100 -p 47200:47200 -p 47500:47500 -p 47600:47600 \
  -v torrencloud-pgdata:/data/postgres \
  -v torrencloud-redis:/data/redis \
  -v torrencloud-downloads:/data/downloads \
  --env-file .env \
  ghcr.io/torrenclou/torrentclou:latest

4. Open

Wait ~30 seconds for all services to start:

ServiceURL
Frontendhttp://localhost:47100
APIhttp://localhost:47200/api
API Healthhttp://localhost:47200/api/health/ready
Hangfire Dashboardhttp://localhost:47200/hangfire
Grafanahttp://localhost:47500
Prometheushttp://localhost:47600

Log in with the ADMIN_EMAIL and ADMIN_PASSWORD you set in .env.

Verify

curl http://localhost:47200/api/health/ready
# Should return { "status": "Healthy" }

Troubleshooting

"Connection refused" on port 47200 — The API takes 15-20 seconds to start on first boot (runs database migrations). Wait and retry.

"CHANGE_ME" errors — Ensure all required values in .env are filled in.

Port conflicts — Change the port mapping: -p 47101:47100 and update NEXTAUTH_URL=http://localhost:47101 in .env.

Check logs for more details:

docker logs -f torrencloud

On this page