akhilrex / podgrab

A self-hosted podcast manager/downloader/archiver tool to download podcast episodes as soon as they become live with an integrated player.
GNU General Public License v3.0
1.55k stars 87 forks source link

Podcast episodes won't download - no permission?. Traefik with Docker Swarm #287

Closed Cloufish closed 7 months ago

Cloufish commented 8 months ago

Before creating a bug report please make sure you are using the latest docker image / code base.

Please complete the following information

Describe the bug A clear and concise description of what the bug is.

Podcasts are not downloaded locally. I use Docker Swarm with Traefik

I can see a permission denied error but I made sure my privileges are okay with user: "0:0" flag in docker compose and checked with stat

I have only added one Podcast "Easy German", but later I noticed I have the same issue with every Podcast Running natively works without an issue

I've noticed that akhil has recommended to enable websockets. But it doesn't relate to the issue I have image

logs:

[GIN] 2023/11/06 - 13:24:43 | 200 |   15.532458ms |        10.0.0.2 | GET      "/episodes?page=1&count=20&isDownloaded=nil&isPlayed=nil&sorting=release_desc&q=&tagIds=null&podcastIds=null"
2023/11/06 13:24:44 /api/db/dbfunctions.go:94
[0.081ms] [rows:1] SELECT * FROM `podcasts` WHERE `podcasts`.`id` = "ca971e56-2fda-4ecf-8a78-b0a68ae3ec84"
2023/11/06 13:24:44 /api/db/dbfunctions.go:94
[12.109ms] [rows:453] SELECT * FROM `podcast_items` ORDER BY pub_date desc
2023/11/06 13:24:44 /api/db/dbfunctions.go:95
[0.074ms] [rows:1] SELECT count(1) FROM `podcast_items` ORDER BY pub_date desc
2023/11/06 13:24:44 /api/db/dbfunctions.go:97
[0.067ms] [rows:1] SELECT * FROM `podcasts` WHERE `podcasts`.`id` = "ca971e56-2fda-4ecf-8a78-b0a68ae3ec84"
2023/11/06 13:24:44 /api/db/dbfunctions.go:97
[2.093ms] [rows:20] SELECT * FROM `podcast_items` ORDER BY pub_date desc,pub_date desc LIMIT 20
[GIN] 2023/11/06 - 13:24:44 | 200 |   15.109119ms |        10.0.0.2 | GET      "/podcastitems?page=1&count=20&nextPage=2&previousPage=0&totalCount=453&totalPages=23&isDownloaded=nil&isPlayed=nil&sorting=release_desc&q="
2023/11/06 13:24:44 /api/db/dbfunctions.go:94
[0.125ms] [rows:1] SELECT * FROM `podcasts` WHERE `podcasts`.`id` = "ca971e56-2fda-4ecf-8a78-b0a68ae3ec84"
2023/11/06 13:24:44 /api/db/dbfunctions.go:94
[13.607ms] [rows:453] SELECT * FROM `podcast_items` ORDER BY pub_date desc
2023/11/06 13:24:44 /api/db/dbfunctions.go:95
[0.146ms] [rows:1] SELECT count(1) FROM `podcast_items` ORDER BY pub_date desc
2023/11/06 13:24:44 /api/db/dbfunctions.go:97
[0.072ms] [rows:1] SELECT * FROM `podcasts` WHERE `podcasts`.`id` = "ca971e56-2fda-4ecf-8a78-b0a68ae3ec84"
2023/11/06 13:24:44 /api/db/dbfunctions.go:97
[1.958ms] [rows:20] SELECT * FROM `podcast_items` ORDER BY pub_date desc,pub_date desc LIMIT 20
[GIN] 2023/11/06 - 13:24:44 | 200 |   16.428339ms |        10.0.0.2 | GET      "/podcastitems?page=1&count=20&nextPage=2&previousPage=0&totalCount=453&totalPages=23&isDownloaded=nil&isPlayed=nil&sorting=release_desc&q="
2023/11/06 13:24:44 /api/db/dbfunctions.go:94
[0.096ms] [rows:1] SELECT * FROM `podcasts` WHERE `podcasts`.`id` = "ca971e56-2fda-4ecf-8a78-b0a68ae3ec84"
2023/11/06 13:24:44 /api/db/dbfunctions.go:94
[11.464ms] [rows:453] SELECT * FROM `podcast_items` ORDER BY pub_date desc
2023/11/06 13:24:44 /api/db/dbfunctions.go:95
[0.093ms] [rows:1] SELECT count(1) FROM `podcast_items` ORDER BY pub_date desc
2023/11/06 13:24:44 /api/db/dbfunctions.go:97
[0.078ms] [rows:1] SELECT * FROM `podcasts` WHERE `podcasts`.`id` = "ca971e56-2fda-4ecf-8a78-b0a68ae3ec84"
2023/11/06 13:24:44 /api/db/dbfunctions.go:97
[1.408ms] [rows:20] SELECT * FROM `podcast_items` ORDER BY pub_date desc,pub_date desc LIMIT 20
[GIN] 2023/11/06 - 13:24:44 | 200 |   13.665868ms |        10.0.0.2 | GET      "/podcastitems?page=1&count=20&nextPage=2&previousPage=0&totalCount=453&totalPages=23&isDownloaded=nil&isPlayed=nil&sorting=release_desc&q="
2023/11/06 13:24:44 /api/db/dbfunctions.go:94
[0.123ms] [rows:1] SELECT * FROM `podcasts` WHERE `podcasts`.`id` = "ca971e56-2fda-4ecf-8a78-b0a68ae3ec84"
2023/11/06 13:24:44 /api/db/dbfunctions.go:94
[12.628ms] [rows:453] SELECT * FROM `podcast_items` ORDER BY pub_date desc
2023/11/06 13:24:44 /api/db/dbfunctions.go:95
[0.105ms] [rows:1] SELECT count(1) FROM `podcast_items` ORDER BY pub_date desc
2023/11/06 13:24:44 /api/db/dbfunctions.go:97
[0.064ms] [rows:1] SELECT * FROM `podcasts` WHERE `podcasts`.`id` = "ca971e56-2fda-4ecf-8a78-b0a68ae3ec84"
2023/11/06 13:24:44 /api/db/dbfunctions.go:97
[1.273ms] [rows:20] SELECT * FROM `podcast_items` ORDER BY pub_date desc,pub_date desc LIMIT 20
[GIN] 2023/11/06 - 13:24:44 | 200 |   14.926094ms |        10.0.0.2 | GET      "/podcastitems?page=1&count=20&nextPage=2&previousPage=0&totalCount=453&totalPages=23&isDownloaded=nil&isPlayed=nil&sorting=release_desc&q="
Player Not Exists
[GIN] 2023/11/06 - 13:24:44 | 302 |    3.266952ms |        10.0.0.2 | GET      "/podcastitems/c2d91600-1879-4be4-bb07-9bcc149a3460/image"
[GIN] 2023/11/06 - 13:24:44 | 302 |     893.315µs |        10.0.0.2 | GET      "/podcastitems/df00dd4f-6c16-4735-ae93-98a7f160249f/image"
[GIN] 2023/11/06 - 13:24:44 | 302 |    1.126725ms |        10.0.0.2 | GET      "/podcastitems/81f156e4-c54d-4a57-9031-41234fd11bb5/image"
[GIN] 2023/11/06 - 13:24:44 | 302 |     331.886µs |        10.0.0.2 | GET      "/podcastitems/be962da2-8919-4ec3-a7d1-ac0a3df94dac/image"
[GIN] 2023/11/06 - 13:24:44 | 302 |     416.737µs |        10.0.0.2 | GET      "/podcastitems/69f167e0-a86b-4f4a-b958-e2e7881c08b2/image"
[GIN] 2023/11/06 - 13:24:44 | 404 |      185.52µs |        10.0.0.2 | GET      "/podcastitems/c2d91600-1879-4be4-bb07-9bcc149a3460/"
[GIN] 2023/11/06 - 13:24:44 | 404 |     150.494µs |        10.0.0.2 | GET      "/podcastitems/69f167e0-a86b-4f4a-b958-e2e7881c08b2/"
[GIN] 2023/11/06 - 13:24:44 | 404 |     149.112µs |        10.0.0.2 | GET      "/podcastitems/81f156e4-c54d-4a57-9031-41234fd11bb5/"
[GIN] 2023/11/06 - 13:24:44 | 404 |     609.279µs |        10.0.0.2 | GET      "/podcastitems/df00dd4f-6c16-4735-ae93-98a7f160249f/"
[GIN] 2023/11/06 - 13:24:44 | 404 |     596.946µs |        10.0.0.2 | GET      "/podcastitems/be962da2-8919-4ec3-a7d1-ac0a3df94dac/"
[GIN] 2023/11/06 - 13:24:45 | 200 |     246.575µs |        10.0.0.2 | GET      "/podcastitems/df00dd4f-6c16-4735-ae93-98a7f160249f/download"
open /assets/Easy German- Learn German with native speakers - Deutsch lernen mit Muttersprachlern/445-423-10-Tage-nicht-erreichbar.mp3: permission denied
dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277086.2811189 dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277086.2811189 msg=Ignored key without a value. dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277086.2811189 dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277086.2811189 msg=Ignored key without a value. ignored=open /assets/Easy German- Learn German with native speakers - Deutsch lernen mit Muttersprachlern/445-423-10-Tage-nicht-erreichbar.mp3: permission denied dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277086.2811189 dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277086.2811189 msg=Ignored key without a value. dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277086.2811189 dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277086.2811189 msg=Ignored key without a value. ignored=open /assets/Easy German- Learn German with native speakers - Deutsch lernen mit Muttersprachlern/445-423-10-Tage-nicht-erreichbar.mp3: permission denied stacktrace=go.uber.org/zap.(*SugaredLogger).Errorw
    /go/pkg/mod/go.uber.org/zap@v1.16.0/sugar.go:191
github.com/akhilrex/podgrab/service.Download
    /api/service/fileService.go:56
github.com/akhilrex/podgrab/service.DownloadSingleEpisode
    /api/service/podcastService.go:603
ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ts=1699277086.281092 ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ts=1699277086.281092 msg=Error creating filehttps://chrt.fm/track/G7F34G/https://tlc.cdn.svmaudio.com/secure/af6cfb97-64a0-421a-aeab-b7531633e485/egp423.mp3?dest-id=3776181 ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ts=1699277086.281092 ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ts=1699277086.281092 msg=Error creating filehttps://chrt.fm/track/G7F34G/https://tlc.cdn.svmaudio.com/secure/af6cfb97-64a0-421a-aeab-b7531633e485/egp423.mp3?dest-id=3776181 stacktrace=github.com/akhilrex/podgrab/service.Download
    /api/service/fileService.go:56
github.com/akhilrex/podgrab/service.DownloadSingleEpisode
    /api/service/podcastService.go:603
[GIN] 2023/11/06 - 13:26:13 | 302 |     727.047µs |        10.0.0.2 | GET      "/podcastitems/c0f73181-c66e-4810-be32-74d847d0284c/image"
[GIN] 2023/11/06 - 13:26:13 | 302 |     909.858µs |        10.0.0.2 | GET      "/podcastitems/f5a0df38-c769-4944-88ae-770aa7e127be/image"
[GIN] 2023/11/06 - 13:26:13 | 302 |    1.013051ms |        10.0.0.2 | GET      "/podcastitems/806f1889-088a-46d1-9262-858bdd1788d0/image"
[GIN] 2023/11/06 - 13:26:13 | 302 |    1.647997ms |        10.0.0.2 | GET      "/podcastitems/0f224245-6259-4083-8825-88e445891eec/image"
[GIN] 2023/11/06 - 13:26:13 | 404 |     168.384µs |        10.0.0.2 | GET      "/podcastitems/c0f73181-c66e-4810-be32-74d847d0284c/"
[GIN] 2023/11/06 - 13:26:13 | 404 |      89.378µs |        10.0.0.2 | GET      "/podcastitems/f5a0df38-c769-4944-88ae-770aa7e127be/"
[GIN] 2023/11/06 - 13:26:13 | 404 |      87.162µs |        10.0.0.2 | GET      "/podcastitems/806f1889-088a-46d1-9262-858bdd1788d0/"
[GIN] 2023/11/06 - 13:26:13 | 404 |     103.714µs |        10.0.0.2 | GET      "/podcastitems/0f224245-6259-4083-8825-88e445891eec/"
[GIN] 2023/11/06 - 13:26:14 | 302 |      417.98µs |        10.0.0.2 | GET      "/podcastitems/d9b9c736-4616-4564-9a85-56981f51e390/image"
[GIN] 2023/11/06 - 13:26:14 | 404 |      76.663µs |        10.0.0.2 | GET      "/podcastitems/d9b9c736-4616-4564-9a85-56981f51e390/"
[GIN] 2023/11/06 - 13:26:15 | 200 |     245.538µs |        10.0.0.2 | GET      "/podcastitems/f5a0df38-c769-4944-88ae-770aa7e127be/download"
[GIN] 2023/11/06 - 13:26:15 | 302 |     423.311µs |        10.0.0.2 | GET      "/podcastitems/888c063f-4876-4249-a62e-1b248f0ce94b/image"
[GIN] 2023/11/06 - 13:26:15 | 404 |      88.224µs |        10.0.0.2 | GET      "/podcastitems/888c063f-4876-4249-a62e-1b248f0ce94b/"
dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277176.206304 dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277176.206304 msg=Ignored key without a value. dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277176.206304 dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277176.206304 msg=Ignored key without a value. ignored=open /assets/Easy German- Learn German with native speakers - Deutsch lernen mit Muttersprachlern/441-419-Jeder-ist-ein-Philosoph.mp3: permission denied dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277176.206304 dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277176.206304 msg=Ignored key without a value. dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277176.206304 dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277176.206304 msg=Ignored key without a value. ignored=open /assets/Easy German- Learn German with native speakers - Deutsch lernen mit Muttersprachlern/441-419-Jeder-ist-ein-Philosoph.mp3: permission denied stacktrace=go.uber.org/zap.(*SugaredLogger).Errorw
    /go/pkg/mod/go.uber.org/zap@v1.16.0/sugar.go:191
github.com/akhilrex/podgrab/service.Download
    /api/service/fileService.go:56
github.com/akhilrex/podgrab/service.DownloadSingleEpisode
    /api/service/podcastService.go:603
ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ts=1699277176.2062678 ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ts=1699277176.2062678 msg=Error creating filehttps://chrt.fm/track/G7F34G/https://tlc.cdn.svmaudio.com/secure/af6cfb97-64a0-421a-aeab-b7531633e485/egp419.mp3?dest-id=3776181 ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ts=1699277176.2062678 ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ts=1699277176.2062678 msg=Error creating filehttps://chrt.fm/track/G7F34G/https://tlc.cdn.svmaudio.com/secure/af6cfb97-64a0-421a-aeab-b7531633e485/egp419.mp3?dest-id=3776181 stacktrace=github.com/akhilrex/podgrab/service.Download
    /api/service/fileService.go:56
github.com/akhilrex/podgrab/service.DownloadSingleEpisode
    /api/service/podcastService.go:603
open /assets/Easy German- Learn German with native speakers - Deutsch lernen mit Muttersprachlern/441-419-Jeder-ist-ein-Philosoph.mp3: permission denied
[GIN] 2023/11/06 - 13:26:16 | 200 |     236.471µs |        10.0.0.2 | GET      "/podcastitems/c0f73181-c66e-4810-be32-74d847d0284c/download"
dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277178.824814 dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277178.824814 msg=Ignored key without a value. dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277178.824814 dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277178.824814 msg=Ignored key without a value. ignored=open /assets/Easy German- Learn German with native speakers - Deutsch lernen mit Muttersprachlern/440-418-Ein-Boomer,-wie-er-im-Buche-steht.mp3: permission denied dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277178.824814 dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277178.824814 msg=Ignored key without a value. dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277178.824814 dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > dpanic dpanic zap@v1.16.0/sugar.go:191 > ts=1699277178.824814 msg=Ignored key without a value. ignored=open /assets/Easy German- Learn German with native speakers - Deutsch lernen mit Muttersprachlern/440-418-Ein-Boomer,-wie-er-im-Buche-steht.mp3: permission denied stacktrace=go.uber.org/zap.(*SugaredLogger).Errorw
    /go/pkg/mod/go.uber.org/zap@v1.16.0/sugar.go:191
github.com/akhilrex/podgrab/service.Download
    /api/service/fileService.go:56
github.com/akhilrex/podgrab/service.DownloadSingleEpisode
    /api/service/podcastService.go:603
open /assets/Easy German- Learn German with native speakers - Deutsch lernen mit Muttersprachlern/440-418-Ein-Boomer,-wie-er-im-Buche-steht.mp3: permission denied
ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ts=1699277178.8247838 ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ts=1699277178.8247838 msg=Error creating filehttps://chrt.fm/track/G7F34G/https://tlc.cdn.svmaudio.com/secure/af6cfb97-64a0-421a-aeab-b7531633e485/egp418.mp3?dest-id=3776181 ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ts=1699277178.8247838 ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ERR ERR service/fileService.go:56 > ts=1699277178.8247838 msg=Error creating filehttps://chrt.fm/track/G7F34G/https://tlc.cdn.svmaudio.com/secure/af6cfb97-64a0-421a-aeab-b7531633e485/egp418.mp3?dest-id=3776181 stacktrace=github.com/akhilrex/podgrab/service.Download
    /api/service/fileService.go:56
github.com/akhilrex/podgrab/service.DownloadSingleEpisode
    /api/service/podcastService.go:603

docker-compose.yml

version: "3.5"

services:
  podgrab:
    image: akhilrex/podgrab
    container_name: podgrab
    ports:
      - 8080:8080
    networks:
      - web
      - podgrab
    security_opt:
      - no-new-privileges
    user: "0:0"
    volumes:
      - podgrab-volume:/config
      - /media/Immersion/German/Podcasts:/assets
    deploy:
      labels:
        - "traefik.enable=true"
        - "traefik.http.routers.podgrab.rule=Host(`podgrab.home`)"
        - "traefik.http.services.podgrab.loadbalancer.server.port=8080"
        - "traefik.docker.network=web"
        - "io.portainer.accesscontrol.users=admin"
        - "traefik.http.routers.podgrab.tls=true"

networks:
  podgrab:
    driver: overlay
    attachable: true
    name: podgrab
  web:
    external: true
    name: web

volumes:
  podgrab-volume:
    driver: local

image

/api # stat /config /config/podgrab.db /assets
  File: /config
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: 801h/2049d      Inode: 1525471     Links: 2
Access: (0777/drwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2023-11-06 13:56:52.840232273 +0000
Modify: 2023-11-06 13:52:52.866450390 +0000
Change: 2023-11-06 13:52:52.866450390 +0000
  File: /config/podgrab.db
  Size: 26497024        Blocks: 51760      IO Block: 4096   regular file
Device: 801h/2049d      Inode: 1527106     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2023-11-06 13:52:52.866450390 +0000
Modify: 2023-11-06 13:52:52.858450334 +0000
Change: 2023-11-06 13:52:52.858450334 +0000
  File: /assets
  Size: 0               Blocks: 0          IO Block: 1048576 directory
Device: 2bh/43d Inode: 10          Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2023-11-06 12:41:08.135927800 +0000
Modify: 2023-11-06 12:41:08.135927800 +0000
Change: 2023-11-06 12:41:08.135927800 +0000
Cloufish commented 7 months ago

REASON 1 If you use SMB, make sure you have the correct user logged in with the right permissions Remember that the $UID (you can check it with command id) need to be the same as the uid of your host machine

REASON 2 Adding nobrl argument in /etc/fstab prevented the database from being locked https://stackoverflow.com/questions/4065217/sqlite3-db-is-locked

REASON 3 The Ports 8080 that is opened for docker container is not enough. When I added these ports:

      - 22001:22000/tcp # TCP file transfers
      - 22001:22000/udp # QUIC file transfers
      - 21028:21027/udp # Receive local discovery broadcasts

It was writing to the filesystem correctly