Compare commits

...

5 Commits

Author SHA1 Message Date
Brock H Caldwell
bd6918abd1 fix: injects TMDB API token in build
Some checks failed
SonarQube Scan / SonarQube Trigger (push) Failing after 13s
2026-03-01 21:57:02 -06:00
Brock H Caldwell
9a0b0443d4 chore: lists filename in error output
Some checks failed
SonarQube Scan / SonarQube Trigger (push) Failing after 13s
2026-03-01 14:03:04 -06:00
1726b21d1d fix: uses latest tag by default
Some checks failed
SonarQube Scan / SonarQube Trigger (push) Failing after 13s
2026-03-01 18:37:09 +00:00
Brock H Caldwell
207fd26f50 fix: prevents 'your torrent is being downloaded' downloads from download seasson handler
Some checks failed
SonarQube Scan / SonarQube Trigger (push) Failing after 13s
2026-02-11 16:27:49 -06:00
Brock H Caldwell
aa357725e8 fix: prevents 'your torrent is being downloaded' downloads
Some checks failed
SonarQube Scan / SonarQube Trigger (push) Failing after -1m13s
2026-02-11 16:21:17 -06:00
9 changed files with 28 additions and 22 deletions

3
.gitignore vendored
View File

@@ -24,3 +24,6 @@ phpstan.neon
/phpunit.xml /phpunit.xml
/.phpunit.cache/ /.phpunit.cache/
###< phpunit/phpunit ### ###< phpunit/phpunit ###
docs/examples/movies/
docs/examples/tvshows/

View File

@@ -3,6 +3,9 @@ FROM code.caldwell.digital/home/torsearch-base:php8.4
ARG APP_VERSION="0.0.0-dev" ARG APP_VERSION="0.0.0-dev"
ENV APP_VERSION="${APP_VERSION}" ENV APP_VERSION="${APP_VERSION}"
ARG TMDB_API=""
ENV TMDB_API="${TMDB_API}"
COPY . /app COPY . /app
COPY --chmod=775 docker/app/entrypoint.sh /usr/local/bin/docker-entrypoint COPY --chmod=775 docker/app/entrypoint.sh /usr/local/bin/docker-entrypoint
COPY docker/app/Caddyfile /etc/frankenphp/Caddyfile COPY docker/app/Caddyfile /etc/frankenphp/Caddyfile

View File

@@ -17,6 +17,9 @@ FROM code.caldwell.digital/home/torsearch-base-worker-supervisord:latest
# Set the APP_VERSION in the image # Set the APP_VERSION in the image
ENV APP_VERSION=${APP_VERSION} ENV APP_VERSION=${APP_VERSION}
ARG TMDB_API=""
ENV TMDB_API="${TMDB_API}"
# Copy the actual application code from the previously built app # Copy the actual application code from the previously built app
COPY --chown=1000:1000 --from=app_image /app /app COPY --chown=1000:1000 --from=app_image /app /app

View File

@@ -17,6 +17,9 @@ FROM code.caldwell.digital/home/torsearch-base-worker-supervisord:latest
# Set the APP_VERSION in the image # Set the APP_VERSION in the image
ENV APP_VERSION=${APP_VERSION} ENV APP_VERSION=${APP_VERSION}
ARG TMDB_API=""
ENV TMDB_API="${TMDB_API}"
# Copy the actual application code from the previously built app # Copy the actual application code from the previously built app
COPY --chown=1000:1000 --from=app_image /app /app COPY --chown=1000:1000 --from=app_image /app /app

View File

@@ -2,7 +2,7 @@
# Torsearch # # Torsearch #
################### ###################
# The version of Torsearch to run. Docker will this tag. # The version of Torsearch to run. Docker will this tag.
TAG=0.38.0 TAG=latest
# The port for which the web server (app container) will # The port for which the web server (app container) will
# serve the application on the host. # serve the application on the host.
@@ -11,8 +11,8 @@ WEB_PORT=8004
# The host directories where your media is stored. # The host directories where your media is stored.
# If you would like to use a docker driver for a network # If you would like to use a docker driver for a network
# share, update the compose.yml file to reflect that. # share, update the compose.yml file to reflect that.
LOCAL_MOVIES_DIR="<enter movies dir>" LOCAL_MOVIES_DIR="./movies"
LOCAL_TVSHOWS_DIR="<enter tvshows dir>" LOCAL_TVSHOWS_DIR="./tvshows"
# Set the timezone you're in. This helps render monitored items correctly on the calendar # Set the timezone you're in. This helps render monitored items correctly on the calendar
TZ=America/Chicago TZ=America/Chicago
@@ -34,6 +34,8 @@ APP_ENV=prod
# Mercure is a Caddy module built into the webserver # Mercure is a Caddy module built into the webserver
# that facilitates the usage of websockets to transmit # that facilitates the usage of websockets to transmit
# real time data (download progress, etc.) # real time data (download progress, etc.)
# TBH, I've only run into issues when changing these. If
# you have problems after changing them, just revert them.
MERCURE_JWT_SECRET="!ChangeThisMercureHubJWTSecretKey!" MERCURE_JWT_SECRET="!ChangeThisMercureHubJWTSecretKey!"
MERCURE_PUBLISHER_JWT_KEY="!ChangeThisMercureHubJWTSecretKey!" MERCURE_PUBLISHER_JWT_KEY="!ChangeThisMercureHubJWTSecretKey!"
MERCURE_SUBSCRIBER_JWT_KEY="!ChangeThisMercureHubJWTSecretKey!" MERCURE_SUBSCRIBER_JWT_KEY="!ChangeThisMercureHubJWTSecretKey!"
@@ -45,11 +47,11 @@ MERCURE_SUBSCRIBER_JWT_KEY="!ChangeThisMercureHubJWTSecretKey!"
# Use the DATABASE_URL below to use the MariaDB container # Use the DATABASE_URL below to use the MariaDB container
# provided in the example.compose.yml file, or remove this # provided in the example.compose.yml file, or remove this
# line and fill in the details of your own MySQL/MariaDB server # line and fill in the details of your own MySQL/MariaDB server
MYSQL_RANDOM_ROOT_PASSWORD=true
MYSQL_DATABASE=app
MYSQL_USER=app MYSQL_USER=app
MYSQL_PASSWORD=password MYSQL_PASSWORD="P@ssword123"
MYSQL_DATABASE=app
MYSQL_HOST=database MYSQL_HOST=database
MYSQL_RANDOM_ROOT_PASSWORD=true
DATABASE_URL="mysql://${MYSQL_USER}:${MYSQL_PASSWORD}@${MYSQL_HOST}:3306/${MYSQL_DATABASE}?serverVersion=10.11.2-MariaDB&charset=utf8mb4" DATABASE_URL="mysql://${MYSQL_USER}:${MYSQL_PASSWORD}@${MYSQL_HOST}:3306/${MYSQL_DATABASE}?serverVersion=10.11.2-MariaDB&charset=utf8mb4"
@@ -60,15 +62,6 @@ DATABASE_URL="mysql://${MYSQL_USER}:${MYSQL_PASSWORD}@${MYSQL_HOST}:3306/${MYSQL
REAL_DEBRID_KEY="<enter real debrid api key>" REAL_DEBRID_KEY="<enter real debrid api key>"
###################
# TMDB #
###################
# Enter your TMDB API key
# This is used to provide rich search results when searching
# for media and rendering the Popular Movies and TV Shows section.
TMDB_API="<enter tmdb api key>"
################### ###################
# Redis # # Redis #
################### ###################

View File

@@ -43,7 +43,7 @@ services:
- mysql:/var/lib/mysql - mysql:/var/lib/mysql
env_file: .env env_file: .env
healthcheck: healthcheck:
test: [ "CMD", "mysqladmin", "-u", "${MYSQL_USER}", "-p", "${MYSQL_PASSWORD}" ,"ping", "-h", "localhost" ] test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ]
interval: 5s interval: 5s
timeout: 5s timeout: 5s
retries: 10 retries: 10

View File

@@ -99,6 +99,7 @@ readonly class DownloadMediaHandler implements HandlerInterface
$badFileLocations = [ $badFileLocations = [
'https://torrentio.strem.fun/videos/failed_infringement_v2.mp4' => 'Removed for Copyright Infringement.', 'https://torrentio.strem.fun/videos/failed_infringement_v2.mp4' => 'Removed for Copyright Infringement.',
'https://torrentio.strem.fun/videos/downloading_v2.mp4' => 'Your torrent is downloading to your debrid provider.'
]; ];
$headers = get_headers($downloadUrl, true); $headers = get_headers($downloadUrl, true);

View File

@@ -89,6 +89,7 @@ class DownloadOptionEvaluator
{ {
$badFileLocations = [ $badFileLocations = [
'https://torrentio.strem.fun/videos/failed_infringement_v2.mp4' => 'Removed for Copyright Infringement.', 'https://torrentio.strem.fun/videos/failed_infringement_v2.mp4' => 'Removed for Copyright Infringement.',
'https://torrentio.strem.fun/videos/downloading_v2.mp4' => 'Your torrent is downloading to your debrid provider.'
]; ];
$headers = get_headers($downloadUrl, true); $headers = get_headers($downloadUrl, true);

View File

@@ -2,15 +2,14 @@
{% block body %} {% block body %}
<h2 class="px-4 py-4 text-3xl font-extrabold text-orange-500">500</h2> <h2 class="px-4 py-4 text-3xl font-extrabold text-orange-500">500</h2>
<div class="flex flex-col bg-orange-500/50 p-4 rounded-lg gap-4 w-full md:w-[420px] border-orange-500 border-2 text-gray-50 animate-fade"> <div class="flex flex-col bg-orange-500/50 p-4 rounded-lg gap-4 w-full md:w-[540px] border-orange-500 border-2 text-gray-50 animate-fade">
<div class="flex flex-col m-0 text-center"> <div class="flex flex-col m-0 text-center">
<h3 class="text-2xl text-bold text-center text-gray-50">Oh crap!</h3> <h3 class="text-2xl text-bold text-center text-gray-50">Oh crap!</h3>
</div> </div>
<p class="mb-2">There are many things I'm capable of, but this ain't one of 'em!</p> <p class="mb-2">There are many things I'm capable of, but this ain't one of 'em!</p>
<pre class="bg-gray-800 text-white p-4 rounded-md overflow-x-auto"> <p class="text-sm mb-1">
<code class="language-plaintext"> <code>{{ exception.file }}</code>
{{ exception.message }} </p>
</code> <pre class="bg-gray-800 text-white p-4 rounded-md overflow-x-auto"><code class="language-plaintext">{{ exception.message|trim }}</code></pre>
</pre>
</div> </div>
{% endblock %} {% endblock %}