marcelGoerentz / Threadfin

MIT License
3 stars 1 forks source link
Threadfin


Threadfin

M3U Proxy for Plex DVR and Emby/Jellyfin Live TV. Based on xTeVe.

You can follow the old xTeVe documentation for now until I update it for Threadfin. Documentation for setup and configuration is here.

Donation

Paypal/Me

Requirements

Plex

Emby

Jellyfin


Threadfin Features

Filter Group

Map Editor

xTeVe Features

Files

Channel management

Streaming


CLI arguments

These are the currently available command line arguments:

arg type description example
-h bool prints the help and don't start the service -h
-dev bool activates the developer mode -dev
-config string sets the path to the root config folder -config=~./.threadfin
-port integer sets the port for the webserver (also for https) -port=34400
-useHttps bool switches the webserver to https -useHttps
-restore string restores the settings from the given filepath -restore=/path/to/file/threadfin_backup.zip
-gitBranch string sets the branch from which the program is to be updated -gitBranch=beta
-debug integer sets the debug level -debug=3
-info bool prints the system info -info

Docker Image

Threadfin

version: "2.3"
services:
  threadfin:
    image: mgoerentz/threadfin
    container_name: threadfin
    ports:
      - 34400:34400
    environment:
      - PUID=1001
      - PGID=1001
      - TZ=America/Los_Angeles
    volumes:
      - ./data/conf:/home/threadfin/conf
      - ./data/temp:/tmp/threadfin:rw
    restart: unless-stopped

Threadfin Beta branch

New features and bug fixes are only available in beta branch. Only after successful testing they are merged into the main branch.

It is not recommended to use the beta version in a production system.

With the command line argument branch the Git Branch can be changed. Threadfin must be started via the terminal.

Switch from master to beta branch:

threadfin -branch=beta

...
[Threadfin] GitHub:                https://github.com/Threadfin/Threadfin
[Threadfin] Git Branch:            beta [Threadfin]
...

Switch from beta to master branch:

threadfin -branch=main

...
[Threadfin] GitHub:                https://github.com/Threadfin/Threadfin
[Threadfin] Git Branch:            main [Threadfin]
...

When the branch is changed, an update is only performed if there is a new version and the update function is activated in the settings.


Build from source code [Go / Golang]

Requirements

Dependencies

Build

  1. Download source code

  2. Install dependencies

    go mod tidy && go mod vendor
  3. Build Threadfin

    go build threadfin.go
  4. Update web files (optional)

If TypeScript files were changed, run:

tsc -p ./ts/tsconfig.json

Then, to embed updated JavaScript files into the source code (src/webUI.go), run it in development mode at least once:

go build threadfin.go
threadfin -dev

Fork without pull request :mega:

When creating a fork, the Threadfin GitHub account must be changed from the source code or the update function disabled. Future updates of Threadfin would update your fork.

threadfin.go - Line: 29

var GitHub = GitHubStruct{Branch: "main", User: "Threadfin", Repo: "Threadfin", Update: true}

/*
  Branch: GitHub Branch
  User:   GitHub Username
  Repo:   GitHub Repository
  Update: Automatic updates from the GitHub repository [true|false]
*/