From 5dd26db2be0e586910e250cb490737f053a8ebed Mon Sep 17 00:00:00 2001 From: lelo Date: Sun, 16 Mar 2025 21:04:43 +0000 Subject: [PATCH] first install --- .filecache/cache.db | Bin 0 -> 32768 bytes .filecache/cache.db-shm | Bin 0 -> 32768 bytes .filecache/cache.db-wal | 0 .gitignore | 3 +- __pycache__/app.cpython-311.pyc | Bin 0 -> 13837 bytes app.py | 4 +- apply_correction.py | 0 check_ssh_tunnel.sh | 73 +++++++++++++++++++++++++------- docker-compose.yml | 21 +++------ error_correction.json | 0 requirements.txt | 3 ++ transcribe_all.py | 0 12 files changed, 71 insertions(+), 33 deletions(-) create mode 100644 .filecache/cache.db create mode 100644 .filecache/cache.db-shm create mode 100644 .filecache/cache.db-wal create mode 100644 __pycache__/app.cpython-311.pyc mode change 100644 => 100755 app.py mode change 100644 => 100755 apply_correction.py mode change 100644 => 100755 check_ssh_tunnel.sh mode change 100644 => 100755 docker-compose.yml mode change 100644 => 100755 error_correction.json create mode 100644 requirements.txt mode change 100644 => 100755 transcribe_all.py diff --git a/.filecache/cache.db b/.filecache/cache.db new file mode 100644 index 0000000000000000000000000000000000000000..f887a3839ad6fbf11eb4dac555221e766efdb873 GIT binary patch literal 32768 zcmeI(&u`mg7zc1WZ<9DlwUotv{rbu4&-?nV z-uLy^?^g^*XWLe{r8;bp8{rZO?rp|6jw9|za6i$Ob$5os123JAPMq^ixN91pr@wQ# z%n?T)(r?5aaWsFFZw`Nv`z?1n+jEn#K>z{}fB*y_009ULB=GoFEvDtbt7cDUZ-w7QR;#RB^9sQ>@5ptT?dgZ^ z$tzyUmD^0Nt~_4O21S=oEqbrhR0k<~kS{EHSgsc<`W&mun?cbBxQknv^D4k-+j`ge z`w9s1g?CY|uFLht3sykvF3zfe>q2_+rrUO2d%glRtJii0X*}_a|8DD9IN5Cc9}3&e z_4K*L9)LV3_J3i1cCj0&lvI>>+h{lSM}C7)Y{%;Aiet2bCsYU@(Qg2B81b;_Q^Lmb#Nx(MXX`^L>8ix{Vu9T!Sm~+~&c8>g9Jz^#|;({Gi}>CQFstk{>t9Qeb@;=Js}#0*l>In4)T$ZreWk$rQg$M4{Y1 zaJ95iX|Oj6%u#n(@LPUw7L_NKqh&Sq)2`e$OuenPbk>l!8ilZ9^g_)x_>?p?#ed*C zM7?PAO-^V;scgo-YcCY5*4)oVrNRRKF!bzvA|)+P@tj|0_CwPh(<^GvvHW8t3ZyJV zd)_$SAKUwb_%r_*=noMxK>z{}fB*y_009U<00Izz00bcLKNrZm^?Qic?V!sJ#vKL|TXtwuK|A_dMqiOmjeVx8SzY~8IpNfCbujyy>6WXF%v_zlLpI%}WBeyf;xmy&Z2{EoO+s`x6EE@iQh0hA)wYUJHplj%%<{O_&*yZ`AQ8w4N#0SG_<0uX=z1Rwwb2tWV=7g)es|Ht_M z0#`6@4FV8=00bZa0SG_<0uX=z1R&rFVEm6}009U<00Izz00bZa0SG_<0uZ?P0vP{a b{5r-RLI45~fB*y_009U<00Izz00jO7&J^2% literal 0 HcmV?d00001 diff --git a/.filecache/cache.db-shm b/.filecache/cache.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..fe9ac2845eca6fe6da8a63cd096d9cf9e24ece10 GIT binary patch literal 32768 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 OdopT_r~w>#cl/dev/null +} + +# Function to check if the NFS share is mounted +is_nfs_mounted() { + mount | grep -q "${MOUNT_POINT}" +} + +# Restart the SSH tunnel if it's not running +if ! is_tunnel_active; then + echo "[INFO] SSH Tunnel is down. Attempting to reconnect..." + + ssh -f -N -L "${LOCAL_PORT}:localhost:${REMOTE_NFS_PORT}" \ + -o ExitOnForwardFailure=yes \ + -p "${SSH_SERVER_PORT}" \ + "${SSH_USER}@${SSH_SERVER}" + + if is_tunnel_active; then + echo "[SUCCESS] SSH Tunnel established on local port ${LOCAL_PORT}, forwarding to remote NFS port ${REMOTE_NFS_PORT}." + else + echo "[ERROR] Failed to establish SSH tunnel!" + exit 1 + fi else - echo "SSH Tunnel is active." -fi \ No newline at end of file + echo "[INFO] SSH Tunnel is already active on port ${LOCAL_PORT}." +fi + +# Ensure mount point exists +if [ ! -d "${MOUNT_POINT}" ]; then + echo "[INFO] Creating mount point: ${MOUNT_POINT}" + sudo mkdir -p "${MOUNT_POINT}" +fi + +# Mount the NFS share if it's not already mounted +if ! is_nfs_mounted; then + echo "[INFO] NFS is not mounted. Attempting to mount..." + + sudo mount -t nfs -o port=${LOCAL_PORT},nolock,soft 127.0.0.1:"${NFS_SHARE}" "${MOUNT_POINT}" + + if is_nfs_mounted; then + echo "[SUCCESS] NFS mounted successfully at ${MOUNT_POINT}." + else + echo "[ERROR] Failed to mount NFS share!" + exit 1 + fi +else + echo "[INFO] NFS is already mounted at ${MOUNT_POINT}." +fi + diff --git a/docker-compose.yml b/docker-compose.yml old mode 100644 new mode 100755 index a082b75..76f4b3b --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,29 +1,20 @@ services: flask-app: image: python:3.11-slim - container_name: flask-app + container_name: bethaus-app restart: always working_dir: /app volumes: - ./:/app - - filecache:/app/filecache - - templates:/app/templates - - mp3_root:/mp3_root + - ./filecache:/app/filecache + - ./templates:/app/templates + - /mnt/app.bethaus:/mp3_root:ro environment: - FLASK_APP=app.py - FLASK_RUN_HOST=0.0.0.0 + - FLASK_ENV=production - MP3_ROOT=/mp3_root ports: - "5000:5000" command: > - sh -c "pip install flask pillow diskcache && flask run" - -volumes: - filecache: - templates: - mp3_root: - driver: local - driver_opts: - type: nfs - o: addr=127.0.0.1,rw,nolock,soft - device: ":/path/to/your/nfs/export" + sh -c "pip install -r requirements.txt && flask run" diff --git a/error_correction.json b/error_correction.json old mode 100644 new mode 100755 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..62ac035 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +flask +pillow +diskcache diff --git a/transcribe_all.py b/transcribe_all.py old mode 100644 new mode 100755