Prerequisites
Before you start, you will need:
Windows
Linux
macOS
Docker (Compose)
Docker (Standalone)
Install Node.js
Install Node.js v20 or higher.Using winget (recommended)
winget install OpenJS.NodeJS.LTS
Download and run the LTS installer from nodejs.org. Verify your installation:node -v # should print v20.x.x or higher
npm -v
Clone the repository
git clone https://github.com/cinepro-org/core.git
cd core
Configure environment variables
Copy the example environment file and fill in your values:Open .env in your editor and set at minimum:# Required
TMDB_API_KEY=your_tmdb_api_key_here
# Server
PORT=3000
HOST=localhost
NODE_ENV=development
# Cache (use 'memory' for local dev)
CACHE_TYPE=memory
CACHE_TYPE=memory is fine for development. Switch to redis for production deployments.
Install Node.js
Install Node.js v20 or higher.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install 20
nvm use 20
Using apt (Ubuntu/Debian)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
Verify your installation:node -v # should print v20.x.x or higher
npm -v
Clone the repository
git clone https://github.com/cinepro-org/core.git
cd core
Configure environment variables
Edit .env and set at minimum:# Required
TMDB_API_KEY=your_tmdb_api_key_here
# Server
PORT=3000
HOST=localhost
NODE_ENV=development
# Cache
CACHE_TYPE=memory
Install Node.js
Install Node.js v20 or higher.Using Homebrew (recommended)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.zshrc
nvm install 20
nvm use 20
Verify your installation:node -v # should print v20.x.x or higher
npm -v
Clone the repository
git clone https://github.com/cinepro-org/core.git
cd core
Configure environment variables
Edit .env and set at minimum:# Required
TMDB_API_KEY=your_tmdb_api_key_here
# Server
PORT=3000
HOST=localhost
NODE_ENV=development
# Cache
CACHE_TYPE=memory
Docker Compose is the recommended production deployment method. It includes a Redis instance automatically.
Install Docker
Download and install Docker Desktop (includes Compose).Verify:docker -v
docker compose version
Clone the repository
git clone https://github.com/cinepro-org/core.git
cd core
Configure environment variables
The only variable required by compose.yml is TMDB_API_KEY — Redis is configured automatically:TMDB_API_KEY=your_tmdb_api_key_here
The Compose file sets CACHE_TYPE=redis and wires REDIS_HOST=redis automatically. You don’t need to change those values.
Start services
This builds the cinepro-core image and starts it alongside a Redis 7 Alpine container on a shared bridge network. The server is exposed on port 3000. View logs
docker compose logs -f cinepro-core
Clone the repository
git clone https://github.com/cinepro-org/core.git
cd core
Build the image
docker build -t cinepro-core:latest .
Run the container
With in-memory cache (simplest):docker run -d \
-p 3000:3000 \
-e TMDB_API_KEY=your_tmdb_api_key_here \
-e CACHE_TYPE=memory \
cinepro-core:latest
With an external Redis instance:docker run -d \
-p 3000:3000 \
-e TMDB_API_KEY=your_tmdb_api_key_here \
-e CACHE_TYPE=redis \
-e REDIS_HOST=your-redis-host \
-e REDIS_PORT=6379 \
cinepro-core:latest
The Dockerfile sets HOST=0.0.0.0 by default in container builds so the server correctly binds to all interfaces.
Production build (without Docker)
If you prefer running without Docker in a production environment:
# 1. Build the TypeScript source
npm run build
# 2. Set production env vars
NODE_ENV=production
# 3. Start the compiled server
npm start
Set NODE_ENV=production to silence debug logging. For persistence across restarts consider a process manager such as PM2 (pm2 start dist/server.js).
Available scripts
| Command | Description |
|---|
npm run dev | Development server with hot reload |
npm run build | Compile TypeScript to dist/ |
npm start | Start production server (requires build first) |
npm run format | Format code with Prettier |
Explore the API
Your server is running — dive into the OMSS-compliant endpoint reference to start fetching movie and TV show sources.
Configure providers
Learn how to enable, disable, or add new streaming source providers to your CinePro Core instance.