Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 67 additions & 0 deletions Apps/Popcornn/appfile.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
{
"version": "2.0",
"title": "Popcornn",
"name": "popcornn",
"icon": "https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/Popcornn/icon.png",
"tagline": "Self-hosted BitTorrent manager with streaming and HLS transcoding",
"overview": "Popcornn is a self-hosted BitTorrent manager with a modern web interface. Search and download torrents, manage your library, stream with built-in HLS transcoding. Backend (Rust) + frontend in one stack. Optional FlareSolverr for Cloudflare-protected indexers.",
"thumbnail": "https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/Popcornn/icon.png",
"screenshots": [
"https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/Popcornn/screenshot-1.png"
],
"category": ["Media"],
"developer": {
"name": "Popcornn Team",
"website": "https://popcornn.app",
"donate_text": "",
"donate_link": ""
},
"adaptor": {
"name": "Popcornn Team",
"website": "https://popcornn.app",
"donate_text": "",
"donate_link": ""
},
"support": "https://github.com/bobdivx/popcorn-server",
"website": "https://popcornn.app",
"container": {
"image": "bobdivx/popcorn-frontend:latest",
"shell": "sh",
"privileged": false,
"network_model": "bridge",
"web_ui": {
"http": "80",
"path": "/"
},
"health_check": "curl -f http://localhost:4321/ || exit 1",
"envs": [
{"key": "TZ", "value": "$TZ", "configurable": "no", "description": "TimeZone"},
{"key": "PUID", "value": "$PUID", "configurable": "no", "description": "Run as user ID"},
{"key": "PGID", "value": "$PGID", "configurable": "no", "description": "Run as group ID"},
{"key": "PUBLIC_BACKEND_URL", "value": "", "configurable": "yes", "description": "Backend URL as seen by the browser (leave empty if same host)"}
],
"ports": [
{"container": "80", "host": "4325", "type": "tcp", "allocation": "preferred", "configurable": "advanced", "description": "Web UI Port"}
],
"volumes": [
{"container": "/app/.data", "host": "/DATA/AppData/$AppID/data", "mode": "rw", "allocation": "automatic", "configurable": "no", "description": "Database and config directory"},
{"container": "/app/downloads", "host": "/DATA/AppData/$AppID/downloads", "mode": "rw", "allocation": "automatic", "configurable": "advanced", "description": "Downloads and transcode cache directory"}
],
"devices": [],
"constraints": {"min_memory": 512, "min_storage": 1024},
"restart_policy": "unless-stopped",
"sysctls": [],
"cap_add": [],
"labels": []
},
"abilities": {
"notification": false,
"widgets": false,
"authentication": false,
"search": false,
"upnp": false
},
"tips": {},
"changelog": {"latest_updates": "", "url": ""},
"latest_update_date": "1738368000"
}
133 changes: 133 additions & 0 deletions Apps/Popcornn/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
name: popcornn
services:
client:
container_name: popcornn-client
depends_on:
- server
deploy:
resources:
limits:
memory: 1073741824
reservations:
memory: "268435456"
environment:
BACKEND_URL: http://server:3000
HOST: 0.0.0.0
NODE_ENV: production
PGID: $PGID
PORT: 80
PUBLIC_BACKEND_URL: ${PUBLIC_BACKEND_URL:-}
PUBLIC_CLIENT_URL: ${PUBLIC_CLIENT_URL:-http://localhost:4325}
PUID: $PUID
TZ: $TZ
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:4321/ || exit 1"]
timeout: 10s
interval: 30s
retries: 5
start_period: 1m0s
image: bobdivx/popcorn-frontend:latest
networks:
- popcornn-network
ports:
- "4325:80"
restart: unless-stopped
x-casaos:
envs:
- container: PUBLIC_BACKEND_URL
description:
en_us: "Backend URL as seen by the browser (e.g. http://your-nas:3000). Leave empty if same host."
- container: TZ
description:
en_us: TimeZone
- container: PUID
description:
en_us: Run as user ID
- container: PGID
description:
en_us: Run as group ID
ports:
- container: "80"
description:
en_us: Web UI Port
server:
container_name: popcornn-server
deploy:
resources:
limits:
memory: 2147483648
reservations:
memory: "536870912"
environment:
API_PASSWORD: popcorn_password_secure
API_USERNAME: admin
DOWNLOAD_DIR: /app/downloads
LOG_LEVEL: info
PGID: $PGID
PUID: $PUID
RUST_LOG: info
RUN_AS_ROOT: ${RUN_AS_ROOT:-1}
SERVER_HOST: 0.0.0.0
SERVER_PORT: 3000
TZ: $TZ
TX_ALT: ${TX_ALT:-0}
FLARESOLVERR_URL: ${FLARESOLVERR_URL:-}
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:3000/api/client/health || exit 1"]
timeout: 10s
interval: 30s
retries: 5
start_period: 1m0s
image: bobdivx/popcorn-backend:latest
networks:
- popcornn-network
ports:
- "3000:3000"
restart: unless-stopped
volumes:
- type: bind
source: /DATA/AppData/$AppID/data
target: /app/.data
- type: bind
source: /DATA/AppData/$AppID/downloads
target: /app/downloads
flaresolverr:
image: flaresolverr/flaresolverr:latest
container_name: popcornn-flaresolverr
restart: unless-stopped
networks:
- popcornn-network
ports:
- "9191:9191"
deploy:
resources:
limits:
memory: 1073741824
reservations:
memory: 268435456

networks:
popcornn-network:
driver: bridge

x-casaos:
architectures:
- amd64
- arm64
main: client
author: Popcornn Team
category: Media
description:
en_us: "Popcornn is a self-hosted BitTorrent manager with a modern web interface. Search and download torrents, manage your library, stream with built-in HLS transcoding. Backend (Rust) + frontend in one stack. Optional FlareSolverr for Cloudflare-protected indexers."
developer: Popcornn Team
icon: https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/Popcornn/icon.png
screenshot_link:
- https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/Popcornn/screenshot-1.png
tagline:
en_us: Self-hosted BitTorrent manager with streaming and HLS transcoding
thumbnail: https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/Popcornn/icon.png
title:
en_us: Popcornn
index: /
scheme: http
port_map: "4325"
Binary file added Apps/Popcornn/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Apps/Popcornn/screenshot-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading