{"id":15789849,"url":"https://github.com/moartube/moartube-node","last_synced_at":"2025-07-19T16:38:57.063Z","repository":{"id":197457499,"uuid":"695981147","full_name":"MoarTube/MoarTube-Node","owner":"MoarTube","description":"An open-source, self-hosted video/live streaming YouTube alternative platform that utilizes Cloudflare for unmatched scalability. Host your node in the cloud or at home.","archived":false,"fork":false,"pushed_at":"2024-10-20T16:15:24.000Z","size":2880,"stargazers_count":27,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-20T19:12:45.825Z","etag":null,"topics":["alternative","live","moartube","stream","twitch","video","youtube"],"latest_commit_sha":null,"homepage":"https://www.moartube.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MoarTube.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-24T19:38:32.000Z","updated_at":"2024-10-20T16:15:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"4d3e4567-fc7c-4951-ab3c-98acd87d07fe","html_url":"https://github.com/MoarTube/MoarTube-Node","commit_stats":null,"previous_names":["cconley717/moartube-node","moartube/moartube-node"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MoarTube%2FMoarTube-Node","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MoarTube%2FMoarTube-Node/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MoarTube%2FMoarTube-Node/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MoarTube%2FMoarTube-Node/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MoarTube","download_url":"https://codeload.github.com/MoarTube/MoarTube-Node/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230438185,"owners_count":18225870,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alternative","live","moartube","stream","twitch","video","youtube"],"created_at":"2024-10-04T22:03:56.955Z","updated_at":"2025-07-19T16:38:57.050Z","avatar_url":"https://github.com/MoarTube.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://github.com/MoarTube/MoarTube-Node/assets/26640616/2dacfc1c-dbd0-4c71-b9a5-b11ac67d290f\" alt=\"logo\" width=\"200\"/\u003e\n\n# MoarTube-Node\nWelcome to **MoarTube Node**, the server-side software for hosting your own videos and live streams! This cross-platform, terminal-based Node.js Express application is managed by the [MoarTube Client](https://github.com/MoarTube/MoarTube-Client). Whether you want to share your node’s videos with [MoarTube](https://www.moartube.com) or run your node privately, MoarTube gives you the freedom to do it your way.\n\n[TL;DR: Watch the Quickstart Video](https://www.moartube.com/guides/moartube-quick-start)\n\n# 🚀 How to Get Started\nWelcome to the **MoarTube Node setup guide**! Follow these simple steps to get your MoarTube Node up and running. Don’t worry—MoarTube is designed to be so easy to set up and use, you’ll be done in minutes.\n\nWhen you’re ready, make sure to check out the [MoarTube Client](https://github.com/MoarTube/MoarTube-Client) if you haven’t already.\n\n# Table of Contents\n- [Features](#features)\n- [System Requirements](#system-requirements-lightweight-flexible-and-powerful)\n- [Prerequisites](#prerequisites)\n  - [Docker](#docker)\n  - [npm](#npm)\n  - [git](#git)\n  - [script (Ubuntu Linux)](#script-ubuntu-linux)\n- [Installation Methods](#installation-methods)\n  - [Docker](#dockerhub)\n  - [npm](#npm-1)\n  - [git](#git-1)\n  - [script (Ubuntu Linux)](#script-ubuntu-linux-1)\n- [Next Steps](#next-steps)\n  - [Default Login Credentials](#default-login-credentials)\n  - [Cloudflare](#cloudflare)\n  - [Get MoarTube Client](#get-moartube-client)\n- [Guides](#guides)\n  - [Ubuntu Linux Node.js install Guide](#ubuntu-linux-nodejs-install-guide)\n  - [Ubuntu Linux Autostart Guide](#ubuntu-linux-autostart-guide)\n\n# Features\n## 🖥️ Platform Support\n- Cross-platform compatibility: **Windows**, **macOS**, and **Linux**\n- Capable of running on a **[Raspberry Pi Zero 2 W](https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/)**\n- Run your node **Privately** or **publicize** your videos and streams on [MoarTube](http://www.moartube.com)\n- MoarTube Client performs **video and stream processing** on your local machine\n- MoarTube Node handles **storage and distribution** of your content\n- Host your node:\n  - **In the cloud**\n  - **On your home WiFi**\n\n## 📹 Video \u0026 Streaming Features\n- **Video on Demand (VoD)** and **HLS Live Streaming**\n- Supported formats:\n  - **HLS** *(H.264, AAC)*\n  - **MP4** *(H.264, AAC)*\n  - **WEBM** *(VP9, Opus)*\n  - **OGV** *(VP8, Opus)*\n- Transcoding capabilities:\n  - Convert **MP4/WEBM** videos to **HLS/MP4/WEBM/OGV**\n  - Transcode **RTMP streams** ([e.g., from OBS](https://www.moartube.com/guides/how-to-live-stream-obs)) into **HLS live streams**\n- Video resolutions: **2160p**, **1440p**, **1080p**, **720p**, **480p**, **360p**, **240p**\n- Video player modes:\n  - **Streamer Mode**\n  - **Theater Mode**\n  - **Fullscreen Mode**\n- **Anonymous Comments \u0026 Live Stream Chat**:\n  - Foster engagement while maintaining user privacy\n\n## 💾 Data Processing, Storage, Distribution\n- Processing\n  - **CPU** and **GPU** support\n  - Nvidia, AMD\n    - Windows Only\n- Storage\n  - Local database storage using **SQLite**\n  - Decentralize your node with a remote **Postgres** database\n  - **File system** to store your videos and live streams locally on your node\n  - **S3-compatible provider** to store your videos and live streams in the cloud\n    - Amazon Web Services (AWS), DigitalOcean Spaces, Minio, etc...\n    - **path-style** and **vhost-style** URL compatibility\n- Distribution\n  - Leverage Cloudflare's CDN for global content distribution\n\n## ⚙️ Admin \u0026 Moderation\n- **Admin Panel**\n  - Managing videos and live streams\n- **Reports Section**:\n  - Track and moderate comments and videos\n- **Comment Monitoring Overview**:\n  - Includes moderation tools\n\n## 💵 Monetization \u0026 Promotion\n- Monetization via cryptocurrency:\n  - Accept **ETH** and **BNB** via MetaMask\n  - Provide **wallet addresses** to your viewers for donations\n- Promote your node by providing links to:\n  - **Social media platforms**\n  - **Websites**\n  - **External platforms**\n\n## 🛠️ Advanced Features\n- [**Cloudflare CDN**](https://www.moartube.com/guides/how-to-enable-cloudflare-cdn):\n  - Cloudflare's **global network** facilitates mass data propagation for audiences of any size, anywhere.\n  - Data is transmitted throughout Cloudflare's **global network** within milliseconds of beng requested.\n  - Available to a free-tier Cloudflare account.\n- [**Cloudflare Turnstile**](https://www.moartube.com/guides/how-to-enable-cloudflare-turnstile):\n  - Next-generation **bot detection** and **human verification** without intrusive captchas.\n  - Available to a free-tier Cloudflare account.\n- [**Postgres**](https://www.moartube.com/guides/how-to-configure-database)\n  - Remote database storage for video and live stream metadata and information.\n  - Host your database **anywhere**.\n- [**S3 Providers**](https://www.moartube.com/guides/how-to-configure-storage)\n  - Remote storage for video and live stream content.\n  - Seemingly **unlimited** storage size and can meet **high demand**.\n    - cheap and affordable\n  - Compatible with any S3 provider that conforms to the AWS S3 specification.\n- [**Dual Box Compatibility**](https://www.moartube.com/guides/how-to-dual-box):\n  - Broadcast an OBS RTMP stream to a dedicated processing system running the MoarTube Client.\n  - Can broadcast to a dedicated processing system over LAN or WAN.\n  - No plugins like NDI required.\n- [**GPU Acceleration**](https://www.moartube.com/guides/how-to-enable-gpu-acceleration):\n  - Supports **Nvidia** and **AMD** GPUs for accelerated encoding/decoding (Windows only).\n\n## 🏆 Why Choose MoarTube?\nMoarTube empowers you to take control of your media hosting with privacy, decentralization, and features designed to rival major platforms while remaining lightweight, accessible, and cost-effective, all from a single node.\n\n![image](https://github.com/MoarTube/MoarTube-Client/assets/26640616/0d8ac95f-f68b-4e36-849e-28139b45ce50)\n\n![image](https://github.com/MoarTube/MoarTube-Client/assets/26640616/918aa074-b6e2-49f1-8d14-5c2ed1bcd582)\n\n![image](https://github.com/MoarTube/MoarTube-Client/assets/26640616/068ec86b-a3d8-4285-9b64-4b71f64cce41)\n\n# System Requirements: Lightweight, Flexible, and Powerful\nMoarTube is designed to be lightweight and accessible, making it the most resource-efficient self-hosted video and live streaming solution available today.\n\n## 📋 **Minimal Requirements**\n- **Node.js** is the only requirement to run a MoarTube Node, and it's supported on all major operating systems.\n- MoarTube Node **efficiently** operates on even the most resource-constrained systems.\n  - Runs comfortably on a VPS with 1GB RAM and 1 vCPU.\n  - Can run on a [**Raspberry Pi Zero 2 W**](https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/).\n- Compatible with **Node.js v20 and later**.\n\n## ⚙️ **Resource Efficiency**\n- **MoarTube Node's** footprint is remarkably small because most computationally heavy tasks, like encoding and memory-intensive operations, are performed on your local machine by the **MoarTube Client**.\n- Your node's responsibilities are **storage and distribution**, keeping its resource demands low so that it can run on just about anything.\n- MoarTube Node is **multi-threaded**, utilizing the full potential of its system's CPU to ensure optimal operation.\n\n## 🌐 **Decentralize your Deployment**\n- Designate external providers such as **Postgres** and **S3** to store and distribute your content for greater scalability.\n- Your node becomes completely disposable. Content and metadata are stored **externally** (e.g., S3, Postgres), allowing you to re-deploy your node at any time without data loss. Just tell your new node where its data is and you're back **online**.\n- [Cloudflare](https://www.moartube.com/guides/how-to-enable-cloudflare-cdn) eliminates much of the strain on your storage distribution by leveraging the **world’s largest CDN**, giving your node the same global delivery reach as **major platforms**.\n\n## 🌍 Run Your Node Anywhere\nWhether on a cloud VPS, personal computer, or compact device like a Raspberry Pi, MoarTube gives you full control. MoarTube’s efficiency and flexibility make it the ideal solution for hosting media **anywhere**, on virtually **any hardware**, for audiences of **any size**.\n\n# Prerequisites\n\nObserve the corresponding prerequisite for your installation method.\n\n## Docker\nIf you're using Docker, make sure that it is installed on your machine.\n\n## npm\nIf you're using npm to install the software, make sure that [Node.js and npm](https://nodejs.org/en) are installed on your machine.\n\n## git\nYou can clone the repo, but make sure that [Node.js and npm](https://nodejs.org/en) are installed on your machine.\n\n## script (Ubuntu Linux)\n\nA script to automate your entire setup. Installs Node.js using Snap, clones the git repo using git, installs dependencies using npm, and sets the node to autostart on system boot using systemctl\n\n# Installation Methods\n\nChoose any of the following installation methods.\n\n## [DockerHub](https://hub.docker.com/r/moartube/moartube-node/tags)\n\nMoarTube Node is available on DockerHub and can be easily set up using Docker Desktop or via the command line for a more manual approach.\n\n### Using [Docker Desktop](https://www.docker.com/products/docker-desktop/)\n\nYou can manage MoarTube Node using Docker Desktop by searching for `moartube/moartube-node` on DockerHub within the Docker Desktop interface.\n\n### Manual Docker Setup\n\nTo set up MoarTube Node manually using Docker, execute the following command in your terminal. This command pulls the latest MoarTube Node image, creates a container named `moartube-node-1`, assigns it port 8181, and configures it to auto-restart unless manually stopped.\n\n#### For x86-64 architecture: \n```bash\ndocker run --platform linux/amd64 -d --restart unless-stopped -p 8181:80 --name moartube-node-1 moartube/moartube-node:latest\n```\n\n#### For ARM64 architecture: \n```bash\ndocker run --platform linux/arm64 -d --restart unless-stopped -p 8181:80 --name moartube-node-1 moartube/moartube-node:latest\n```\n\n*note: the Docker container uses [**/data**](https://github.com/MoarTube/MoarTube-Node/blob/master/Dockerfile#L19) for its volume container path.*\n\n## [npm](https://www.npmjs.com/package/@moartube/moartube-node)\nYou can install MoarTube Node globally:\n\n```bash\nnpm i @moartube/moartube-node -g\n```\n\nAnd run from the command-line globally:\n\n```bash\nmoartube-node\n```\n\n\u003cbr\u003e\n\nYou can install MoarTube Node locally:\n\n```bash\nnpm i @moartube/moartube-node\n```\n\nAnd run from the command-line locally:\n\n```bash\nnode node_modules/@moartube/moartube-node/moartube-node.js\n```\n\n## [git](https://github.com/MoarTube/MoarTube-Node)\n\n```bash\ngit clone https://github.com/MoarTube/MoarTube-Node\n```\n\nOpen a terminal in the cloned directory and run:\n\n```bash\nnpm install\n```\n\n```bash\nnode moartube-node.js\n```\n\n## [script (Ubuntu Linux)](https://www.moartube.com/bash/install/node)\n\n```bash\nbash \u003c(wget -O - https://www.moartube.com/bash/install/node)\n```\n\n# Next Steps\n\n## Default Login Credentials\n\nThe default login credentials for your node are below. Be sure to change these upon logging in.\n\nBy default, MoarTube Node listens on port 80.\n\n**username**: admin\u003cbr/\u003e**password**: admin\n\n## Cloudflare\n\nAt this point, you should probably look into creating a free [Cloudflare account](https://www.cloudflare.com/network/) so that you can [give your node CDN capabilities](https://www.moartube.com/guides/how-to-enable-cloudflare-integration). With its global network, Cloudflare will distribute most of your node's videos and live streams.\n\n## Get MoarTube Client\n\nIf you haven't already, it's time to get the [MoarTube Client](https://github.com/MoarTube/MoarTube-Client).\n\n# Guides\n\n## Ubuntu Linux Node.js Install Guide\n\nUbuntu Linux comes pre-installed with the Snap package manager. It's the easiest way to install Node.js.\n\nRun the command:\n```bash\nsudo snap install node --classic --channel=21\n```\n\n## Ubuntu Linux Autostart Guide\n\nThis guide will configure your node to autostart on system boot.\n\nStop the Moartube Node software if it is running\n\nRun the command:\n```bash\nsudo nano /etc/systemd/system/moartube-node.service\n```\n\nBelow is an example of a moartube-node systemd service unit file\n\nMake any necessary changes and paste it into the nano text editor\n\n```\n[Unit]\nDescription=MoarTube Node\nAfter=network.target\n\n[Service]\nType=simple\nUser=root\nExecStart=/snap/bin/node /home/Moartube-Node/moartube-node.js\nRestart=always\n\n[Install]\nWantedBy=multi-user.target\n```\n\nReload all services.\n\n```bash\nsudo systemctl daemon-reload\n```\n\nMake the moartube-node service autostart on system boot.\n\n```bash\nsudo systemctl enable moartube-node\n```\n\nStart the moartube-node service.\n\n```bash\nsudo systemctl start moartube-node\n```\n\nView the status of the moartube-node service\n\n```bash\nsudo systemctl status moartube-node\n```\n\n\n### some commands of interest\n\nStop the moartube-node service.\n\n```bash\nsudo systemctl stop moartube-node\n```\n\nRestart the moartube-node service.\n\n```bash\nsudo systemctl restart moartube-node\n```\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoartube%2Fmoartube-node","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoartube%2Fmoartube-node","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoartube%2Fmoartube-node/lists"}