From b527779919160d3d98c8420b166859b7aec60c74 Mon Sep 17 00:00:00 2001 From: dev Date: Sat, 14 Jun 2025 18:44:05 +0200 Subject: [PATCH 1/6] Prod modifications --- .env | 4 ++-- .github/workflows/releases.yml | 3 +-- aperisolve/app.py | 5 +++++ docker-compose.yml | 6 +++--- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.env b/.env index bdea06b..68b1939 100644 --- a/.env +++ b/.env @@ -3,8 +3,8 @@ MAX_PENDING_TIME=600 MAX_STORE_TIME=259200 FLASK_DEBUG=0 FLASK_ENV=production -DB_URI=postgresql://aperiuser:aperipass@postgres:5432/aperisolve +DB_URI=postgresql://aperiuser:iacyANdLeUREonIuMPorpHySTaIsHEAn@postgres:5432/aperisolve RQ_DASHBOARD_REDIS_URL=redis://redis:6379/0 POSTGRES_DB=aperisolve POSTGRES_USER=aperiuser -POSTGRES_PASSWORD=aperipass \ No newline at end of file +POSTGRES_PASSWORD=iacyANdLeUREonIuMPorpHySTaIsHEAn \ No newline at end of file diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml index 6d780f8..42b1404 100644 --- a/.github/workflows/releases.yml +++ b/.github/workflows/releases.yml @@ -39,6 +39,5 @@ jobs: context: ./ push: true tags: | - ghcr.io/${{ env.lower_actor }}/aperisolve:latest - ghcr.io/${{ env.lower_actor }}/aperisolve:${{ env.RELEASE_VERSION }} + ghcr.io/${{ env.lower_actor }}/aperisolve:prod \ No newline at end of file diff --git a/aperisolve/app.py b/aperisolve/app.py index c409c11..2d4e924 100644 --- a/aperisolve/app.py +++ b/aperisolve/app.py @@ -246,6 +246,11 @@ def get_image( return send_file(output_file, as_attachment=True) +@app.route("/ads.txt") +def google_ads() -> str: + return "google.com, pub-2324718887045017, DIRECT, f08c47fec0942fa0" + + if __name__ == "__main__": debug_mode = os.environ.get("FLASK_DEBUG", "false").lower() == "true" app.run(host="0.0.0.0", port=5000, debug=debug_mode) diff --git a/docker-compose.yml b/docker-compose.yml index 777fef2..f1349a6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,11 +1,11 @@ services: web: - image: ghcr.io/zeecka/aperisolve:latest + image: ghcr.io/zeecka/aperisolve:prod #build: . container_name: aperisolve-web restart: always ports: - - "5000:5000" + - "80:5000" volumes: - apresults:/aperisolve/results depends_on: @@ -19,7 +19,7 @@ services: - .env worker: - image: ghcr.io/zeecka/aperisolve:latest + image: ghcr.io/zeecka/aperisolve:prod #build: . container_name: aperisolve-worker restart: always From b1dfa305d3926505ea76305964b7a61c0717c9bc Mon Sep 17 00:00:00 2001 From: dev Date: Sat, 14 Jun 2025 18:48:32 +0200 Subject: [PATCH 2/6] Fix linters --- aperisolve/app.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/aperisolve/app.py b/aperisolve/app.py index 2d4e924..9b4993b 100644 --- a/aperisolve/app.py +++ b/aperisolve/app.py @@ -31,7 +31,8 @@ queue = Queue(connection=redis_conn) @app.errorhandler(413) -def too_large(e): +def too_large(_) -> tuple[Response, int]: + """Error Handler for Max File Size.""" return jsonify({"error": "Image size exceeded"}), 413 @@ -248,6 +249,7 @@ def get_image( @app.route("/ads.txt") def google_ads() -> str: + """Google Ads required file""" return "google.com, pub-2324718887045017, DIRECT, f08c47fec0942fa0" From 277fbe7deaf74bfabe85e1a865c20fd687f01f08 Mon Sep 17 00:00:00 2001 From: dev Date: Sat, 14 Jun 2025 18:52:38 +0200 Subject: [PATCH 3/6] Fix MyPy --- aperisolve/app.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aperisolve/app.py b/aperisolve/app.py index 9b4993b..6e71f74 100644 --- a/aperisolve/app.py +++ b/aperisolve/app.py @@ -6,7 +6,7 @@ import os import time from datetime import datetime, timezone from pathlib import Path -from typing import Optional +from typing import Any, Optional from flask import Flask, Response, abort, jsonify, render_template, request, send_file from redis import Redis @@ -31,7 +31,7 @@ queue = Queue(connection=redis_conn) @app.errorhandler(413) -def too_large(_) -> tuple[Response, int]: +def too_large(_: Any) -> tuple[Response, int]: """Error Handler for Max File Size.""" return jsonify({"error": "Image size exceeded"}), 413 From b610ff6e4c13d5df8e51f6620f13e5f5c680df99 Mon Sep 17 00:00:00 2001 From: dev Date: Sat, 14 Jun 2025 20:11:38 +0200 Subject: [PATCH 4/6] Add Google script.js --- aperisolve/templates/base.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/aperisolve/templates/base.html b/aperisolve/templates/base.html index 5ec42eb..5ebc34b 100644 --- a/aperisolve/templates/base.html +++ b/aperisolve/templates/base.html @@ -9,6 +9,8 @@ + From d8b680ee2f9c1208fb80e357f644749c135d2e7a Mon Sep 17 00:00:00 2001 From: Zeecka Date: Sat, 14 Jun 2025 20:24:11 +0200 Subject: [PATCH 5/6] Fix max size bug --- aperisolve/app.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/aperisolve/app.py b/aperisolve/app.py index 6e71f74..a66cf9e 100644 --- a/aperisolve/app.py +++ b/aperisolve/app.py @@ -20,7 +20,9 @@ app: Flask = Flask(__name__) app.json.sort_keys = False # type: ignore app.config["SQLALCHEMY_DATABASE_URI"] = os.environ.get("DB_URI") app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False -app.config["MAX_CONTENT_LENGTH"] = os.environ.get("MAX_CONTENT_LENGTH") +app.config["MAX_CONTENT_LENGTH"] = int( + os.environ.get("MAX_CONTENT_LENGTH", 1024 * 1024) +) RESULT_FOLDER.mkdir(parents=True, exist_ok=True) From 0b86966b648728ab938922e58cb9d588c4bb7458 Mon Sep 17 00:00:00 2001 From: Zeecka <24873615+Zeecka@users.noreply.github.com> Date: Fri, 26 Dec 2025 12:39:58 +0100 Subject: [PATCH 6/6] Fix error handling in exiftool.py output --- aperisolve/analyzers/exiftool.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aperisolve/analyzers/exiftool.py b/aperisolve/analyzers/exiftool.py index 136931d..23ec7bd 100644 --- a/aperisolve/analyzers/exiftool.py +++ b/aperisolve/analyzers/exiftool.py @@ -20,7 +20,7 @@ def analyze_exiftool(input_img: Path, output_dir: Path) -> None: if data.stderr: update_data( - output_dir, {"strings": {"status": "error", "error": data.stderr}} + output_dir, {"exiftool": {"status": "error", "error": data.stderr}} ) return