vexdev / amarr

aMule Torrent connector for Servarr
MIT License
23 stars 0 forks source link

It doesn't work at all #76

Closed adocampo closed 1 week ago

adocampo commented 4 months ago

Hello,

I'm having issues with this docker. First, if I use the example on amarr's README, it fails with the following message

validating /data/.docker/testing/amarr/docker-compose.yml: (root) Additional property amarr is not allowed

So, my docker-compose finally looks like this:

---
services:
  amarr:
    image: vexdev/amarr:latest
    container_name: amarr
    networks:
      services:
        ipv4_address: 172.28.0.84  <-- I use static IP assignation
    environment:
      - AMULE_HOST=172.28.0.21 <-- this is the amule docker IP
      - AMULE_PORT=4711
      - AMULE_PASSWORD=PASSWORD
    volumes:
      - ./config:/config
    ports:
      - 8082:8080
    restart: unless-stopped
networks:
  services:           <-- both amule and amarr are on the same "services" docker network
    external: true

With my docker, I can start amarr, with those logs

amarr  | 2024-02-29 12:23:45.337 [main] INFO  ktor.application - Autoreload is disabled because the development mode is off.
amarr  | 2024-02-29 12:23:45.598 [main] INFO  ktor.application - Application started in 0.315 seconds.
amarr  | 2024-02-29 12:23:45.803 [DefaultDispatcher-worker-2] INFO  ktor.application - Responding at http://0.0.0.0:8080

If I open http://192.168.1.100:8082/, a blank screen shows image

As I already have something listening on the port 8080, I set up port 8082 to listen on host (as it didn't work, I stopped the other docker on port 8080 and relaunched amarr on the 8080, with the same result). Anyway, I've tried with curl, both in host at port 8082 and against amarr docker itself in port 8080

[root@samael amule]# curl http://192.168.1.100:8082
[root@samael amule]# curl http://172.28.0.84:8080
[root@samael amule]# 

I can ping from amarr docker to amule docker

root@2e32508b88d4:/# ping 172.28.0.21
PING 172.28.0.21 (172.28.0.21) 56(84) bytes of data.
64 bytes from 172.28.0.21: icmp_seq=1 ttl=64 time=0.089 ms
^C
--- 172.28.0.21 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms

I can also curl amule on port 4711

root@2e32508b88d4:/# curl http://172.28.0.21:4711 --output amule.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1488  100  1488    0     0   484k      0 --:--:-- --:--:-- --:--:--  484k
root@2e32508b88d4:/# gunzip amule.gz 
root@2e32508b88d4:/# cat amule 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
        <title>aMule - Control Panel - Login</title>

        <script language="JavaScript" type="text/javascript">
                function login_init()
                {
                        breakout_of_frame();

Besides, the /config directory is created by docker-compose, but completely empty.

Any help would be much appreciated!

My docker host is an Arch Linux 64bit, docker version 25.0.2, build 29cf629222

adocampo commented 4 months ago

Just tried the container without specifying internal docker IPs

---
services:
  amarr:
    image: vexdev/amarr:latest
    container_name: amarr
    environment:
      - AMULE_HOST=192.168.1.100
      - AMULE_PORT=4711
      - AMULE_PASSWORD=PASSWORD
    volumes:
      - ./config:/config
    ports:
      - 8082:8080
    restart: unless-stopped

With the same result

adocampo commented 4 months ago

Tried on other hosts, docker-compose on the README fails everywhere with the error: validating docker-compose.yml: (root) Additional property amarr is not allowed

To make it start it I had to modify the compose file like this, but the same error as above: blank screen on the browser and no config file generated :|

version: '3.8'
services:
  amarr:
    image: vexdev/amarr:latest
    container_name: amarr
    environment:
      - AMULE_HOST=amule
      - AMULE_PORT=4711
      - AMULE_PASSWORD=password
    volumes:
      - /home/docker/amarr/config:/config
    ports:
      - 8080:8080

I think this was a wonderful idea, but I'm not sure if it's actively maintained anymore.

vexdev commented 2 months ago

Hello @adocampo, I'm sorry I'm trying to make this work with the limited time I have available. As per your comments, I adjusted the readme to include the "services" section, which is indeed necessary. Please note that there's no UI exposed by Amarr, therefore it's expected that you don't get any output from connecting through http. Have you tried following the configuration section of the readme? With what result?

If you like we can have a quick to sort this out, ping me to find a common slot.

adocampo commented 2 months ago

Just tried to add amarr as qBittorrent client as per instructions. No luck either image It's curious, because I could add it as an indexer image I don't know if the indexer test just does a simple curl and if it receives a 200, it gives an OK.

The thing is, even if container stars, I found strange it doesn't populate any file in config directory

pavipollo commented 1 month ago

@adocampo: I have exactly the same problem... Did you find a solution?

vexdev commented 1 week ago

@adocampo @pavipollo Would you please provide the output log of Amarr? I assume you are using Radarr, the configuration seems correct (see my screenshot)

Could you also let me know which version of radarr you are using?

Screenshot 2024-07-06 at 23 50 01

adocampo commented 1 week ago

@vexdev no, now it doesn't even start, or better said, it crashes after a few seconds...

[root@samael amarr]# docker-compose logs -f
amarr  | 2024-07-06 22:01:29.038 [main] INFO  ktor.application - Autoreload is disabled because the development mode is off.
amarr  | Exception in thread "main" java.net.NoRouteToHostException: No route to host
amarr  |        at java.base/sun.nio.ch.Net.connect0(Native Method)
amarr  |        at java.base/sun.nio.ch.Net.connect(Net.java:579)
amarr  |        at java.base/sun.nio.ch.Net.connect(Net.java:568)
amarr  |        at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588)
amarr  |        at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
amarr  |        at java.base/java.net.Socket.connect(Socket.java:633)
amarr  |        at java.base/java.net.Socket.connect(Socket.java:583)
amarr  |        at java.base/java.net.Socket.<init>(Socket.java:507)
amarr  |        at java.base/java.net.Socket.<init>(Socket.java:287)
amarr  |        at jamule.AmuleConnection$1.invoke(AmuleConnection.kt:32)
amarr  |        at jamule.AmuleConnection$1.invoke(AmuleConnection.kt:32)
amarr  |        at jamule.AmuleConnection.<init>(AmuleConnection.kt:24)
amarr  |        at jamule.AmuleConnection.<init>(AmuleConnection.kt:32)
amarr  |        at jamule.AmuleClient.<init>(AmuleClient.kt:23)
amarr  |        at jamule.AmuleClient.<init>(AmuleClient.kt:16)
amarr  |        at amarr.AppKt.buildClient(App.kt:83)
amarr  |        at amarr.AppKt.app(App.kt:49)
amarr  |        at amarr.AppKt$main$1.invoke(App.kt:42)
amarr  |        at amarr.AppKt$main$1.invoke(App.kt:39)
amarr  |        at io.ktor.server.engine.internal.CallableUtilsKt.executeModuleFunction(CallableUtils.kt:51)
amarr  |        at io.ktor.server.engine.ApplicationEngineEnvironmentReloading$launchModuleByName$1.invoke(ApplicationEngineEnvironmentReloading.kt:332)
amarr  |        at io.ktor.server.engine.ApplicationEngineEnvironmentReloading$launchModuleByName$1.invoke(ApplicationEngineEnvironmentReloading.kt:331)
amarr  |        at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.avoidingDoubleStartupFor(ApplicationEngineEnvironmentReloading.kt:356)
amarr  |        at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.launchModuleByName(ApplicationEngineEnvironmentReloading.kt:331)
amarr  |        at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.access$launchModuleByName(ApplicationEngineEnvironmentReloading.kt:32)
amarr  |        at io.ktor.server.engine.ApplicationEngineEnvironmentReloading$instantiateAndConfigureApplication$1.invoke(ApplicationEngineEnvironmentReloading.kt:319)
amarr  |        at io.ktor.server.engine.ApplicationEngineEnvironmentReloading$instantiateAndConfigureApplication$1.invoke(ApplicationEngineEnvironmentReloading.kt:310)
amarr  |        at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.avoidingDoubleStartup(ApplicationEngineEnvironmentReloading.kt:338)
amarr  |        at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.instantiateAndConfigureApplication(ApplicationEngineEnvironmentReloading.kt:310)
amarr  |        at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.createApplication(ApplicationEngineEnvironmentReloading.kt:150)
amarr  |        at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.start(ApplicationEngineEnvironmentReloading.kt:277)
amarr  |        at io.ktor.server.netty.NettyApplicationEngine.start(NettyApplicationEngine.kt:216)
amarr  |        at amarr.AppKt.main(App.kt:43)
amarr  |        at amarr.AppKt.main(App.kt)
amarr  | 2024-07-06 22:01:35.738 [main] INFO  ktor.application - Autoreload is disabled because the development mode is off.
amarr  | Exception in thread "main" java.net.NoRouteToHostException: No route to host
amarr  |        at java.base/sun.nio.ch.Net.connect0(Native Method)
amarr  |        at java.base/sun.nio.ch.Net.connect(Net.java:579)
amarr  |        at java.base/sun.nio.ch.Net.connect(Net.java:568)
amarr  |        at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588)
amarr  |        at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
amarr  |        at java.base/java.net.Socket.connect(Socket.java:633)
amarr  |        at java.base/java.net.Socket.connect(Socket.java:583)
amarr  |        at java.base/java.net.Socket.<init>(Socket.java:507)
amarr  |        at java.base/java.net.Socket.<init>(Socket.java:287)
amarr  |        at jamule.AmuleConnection$1.invoke(AmuleConnection.kt:32)
amarr  |        at jamule.AmuleConnection$1.invoke(AmuleConnection.kt:32)
amarr  |        at jamule.AmuleConnection.<init>(AmuleConnection.kt:24)
amarr  |        at jamule.AmuleConnection.<init>(AmuleConnection.kt:32)
amarr  |        at jamule.AmuleClient.<init>(AmuleClient.kt:23)
amarr  |        at jamule.AmuleClient.<init>(AmuleClient.kt:16)
amarr  |        at amarr.AppKt.buildClient(App.kt:83)
amarr  |        at amarr.AppKt.app(App.kt:49)
amarr  |        at amarr.AppKt$main$1.invoke(App.kt:42)
amarr  |        at amarr.AppKt$main$1.invoke(App.kt:39)
amarr  |        at io.ktor.server.engine.internal.CallableUtilsKt.executeModuleFunction(CallableUtils.kt:51)
amarr  |        at io.ktor.server.engine.ApplicationEngineEnvironmentReloading$launchModuleByName$1.invoke(ApplicationEngineEnvironmentReloading.kt:332)
amarr  |        at io.ktor.server.engine.ApplicationEngineEnvironmentReloading$launchModuleByName$1.invoke(ApplicationEngineEnvironmentReloading.kt:331)
amarr  |        at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.avoidingDoubleStartupFor(ApplicationEngineEnvironmentReloading.kt:356)
amarr  |        at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.launchModuleByName(ApplicationEngineEnvironmentReloading.kt:331)
amarr  |        at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.access$launchModuleByName(ApplicationEngineEnvironmentReloading.kt:32)
amarr  |        at io.ktor.server.engine.ApplicationEngineEnvironmentReloading$instantiateAndConfigureApplication$1.invoke(ApplicationEngineEnvironmentReloading.kt:319)
amarr  |        at io.ktor.server.engine.ApplicationEngineEnvironmentReloading$instantiateAndConfigureApplication$1.invoke(ApplicationEngineEnvironmentReloading.kt:310)
amarr  |        at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.avoidingDoubleStartup(ApplicationEngineEnvironmentReloading.kt:338)
amarr  |        at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.instantiateAndConfigureApplication(ApplicationEngineEnvironmentReloading.kt:310)
amarr  |        at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.createApplication(ApplicationEngineEnvironmentReloading.kt:150)
amarr  |        at io.ktor.server.engine.ApplicationEngineEnvironmentReloading.start(ApplicationEngineEnvironmentReloading.kt:277)
amarr  |        at io.ktor.server.netty.NettyApplicationEngine.start(NettyApplicationEngine.kt:216)
amarr  |        at amarr.AppKt.main(App.kt:43)
amarr  |        at amarr.AppKt.main(App.kt)
amarr exited with code 0
adocampo commented 1 week ago

Sorry, one of my docker-compose files didn't started, this one started:

---
services:
  amarr:
    image: vexdev/amarr:latest
    container_name: amarr
    environment:
      - AMULE_HOST=192.168.1.100
      - AMULE_PORT=4711
      - AMULE_PASSWORD=PASSWORD
    volumes:
      - ./config:/config
    ports:
      - 8082:8080
    restart: unless-stopped

logs

# docker-compose logs -f
amarr  | 2024-07-06 22:05:08.705 [main] INFO  ktor.application - Autoreload is disabled because the development mode is off.
amarr  | 2024-07-06 22:05:08.951 [main] INFO  ktor.application - Application started in 0.3 seconds.
amarr  | 2024-07-06 22:05:09.133 [DefaultDispatcher-worker-1] INFO  ktor.application - Responding at http://0.0.0.0:8080

Sonarr version: 4.0.2.1183 Radarr version: 5.6.0.8846

vexdev commented 1 week ago

@adocampo Ok so I just setup the exact same version of radarr you have, and I have no issue connecting, in fact I can only have the same result you have when I'm connecting to a wrong port. Could you please open in browser or with curl from the same machine which is running your radarr the following url? http://192.168.1.100:8082/api/v2/app/webapiVersion

What do you get?

If you're running radarr in docker please do the following (Assuming you named the container "radarr"):

docker exec -ti radarr bash
curl http://192.168.1.100:8082/api/v2/app/webapiVersion

And paste the output

adocampo commented 1 week ago

image

# docker exec -ti radarr bash
root@3438b3595529:/# curl http://192.168.1.100:8082/api/v2/app/webapiVersion
2.8.19root@3438b3595529:/# 
adocampo commented 1 week ago

client fails to be added both in sonarr as in radarr image

vexdev commented 1 week ago

Could you add the following environment variable to amarr in your docker-compose? AMARR_LOG_LEVEL=DEBUG

Then you can re-run docker compose up, try to setup the connection in either radarr or sonarr and after it fails send here the output log of amarr.

As it's taking a while maybe if I cannot figure it out from this log, we could discuss it on discord ( https://discord.gg/Xks5CtCGGM )

adocampo commented 1 week ago
amarr  | 2024-07-07 07:52:45.535 [main] INFO  ktor.application - Application started in 0.364 seconds.
amarr  | 2024-07-07 07:52:45.536 [main] DEBUG ktor.application - Application started: io.ktor.server.application.Application@4e31276e
amarr  | 2024-07-07 07:52:45.752 [DefaultDispatcher-worker-1] INFO  ktor.application - Responding at http://0.0.0.0:8080
amarr  | 2024-07-07 07:53:18.410 [eventLoopGroupProxy-4-1] DEBUG ktor.application - 200 OK: GET - /api/v2/app/webapiVersion in 58ms
amarr  | 2024-07-07 07:53:18.411 [eventLoopGroupProxy-4-2] DEBUG ktor.application - 200 OK: GET - /api/v2/app/webapiVersion in 8ms
amarr  | 2024-07-07 07:53:18.414 [eventLoopGroupProxy-4-3] DEBUG ktor.application - 200 OK: GET - /api/v2/app/webapiVersion in 0ms
amarr  | 2024-07-07 07:53:18.879 [eventLoopGroupProxy-4-4] DEBUG ktor.application - 200 OK: GET - /api/v2/app/preferences in 452ms
amarr  | 2024-07-07 07:53:18.892 [eventLoopGroupProxy-4-5] DEBUG ktor.application - 200 OK: GET - /api/v2/app/webapiVersion in 2ms
amarr  | 2024-07-07 07:53:18.896 [eventLoopGroupProxy-4-6] DEBUG ktor.application - 200 OK: GET - /api/v2/app/webapiVersion in 1ms
amarr  | 2024-07-07 07:53:18.903 [eventLoopGroupProxy-4-7] DEBUG ktor.application - 200 OK: GET - /api/v2/app/webapiVersion in 1ms
amarr  | 2024-07-07 07:53:19.033 [eventLoopGroupProxy-4-8] DEBUG ktor.application - 200 OK: GET - /api/v2/torrents/categories in 124ms
amarr  | 2024-07-07 07:53:19.040 [eventLoopGroupProxy-4-1] INFO  ktor.application - Getting download queue...
amarr  | 2024-07-07 07:53:19.041 [eventLoopGroupProxy-4-1] INFO  ktor.application - Reconnecting...
amarr  | 2024-07-07 07:53:19.045 [eventLoopGroupProxy-4-1] INFO  ktor.application - Authenticating...
amarr  | 2024-07-07 07:53:19.060 [eventLoopGroupProxy-4-1] DEBUG ktor.application - Writing packet...
amarr  | 2024-07-07 07:53:19.065 [eventLoopGroupProxy-4-1] DEBUG ktor.application - Parsing packet...
amarr  | 2024-07-07 07:53:19.066 [eventLoopGroupProxy-4-1] DEBUG ktor.application - Parsing transport layer...
amarr  | 2024-07-07 07:53:19.066 [eventLoopGroupProxy-4-1] DEBUG ktor.application - Parsing flags...
amarr  | 2024-07-07 07:53:19.085 [eventLoopGroupProxy-4-1] ERROR ktor.application - Unhandled: GET - /api/v2/torrents/info
amarr  | java.lang.IndexOutOfBoundsException: toIndex (4) is greater than size (0).
amarr  |        at kotlin.collections.ArraysKt__ArraysJVMKt.copyOfRangeToIndexCheck(ArraysJVM.kt:49)
amarr  |        at kotlin.collections.ArraysKt___ArraysJvmKt.copyOfRange(_ArraysJvm.kt:1465)
amarr  |        at kotlin.collections.ArraysKt___ArraysKt.sliceArray(_Arrays.kt:4701)
amarr  |        at kotlin.collections.unsigned.UArraysKt___UArraysKt.sliceArray-c0bezYM(_UArrays.kt:2345)
amarr  |        at jamule.ec.EncodingKt.readUInt32-mbSTycY(Encoding.kt:45)
amarr  |        at jamule.ec.packet.PacketParser.readUInt-OGnWXxg(PacketParser.kt:103)
amarr  |        at jamule.ec.packet.PacketParser.parseFlags(PacketParser.kt:51)
amarr  |        at jamule.ec.packet.PacketParser.parseTransport(PacketParser.kt:26)
amarr  |        at jamule.ec.packet.PacketParser.parse(PacketParser.kt:20)
amarr  |        at jamule.AmuleConnection.sendRequestNoAuth(AmuleConnection.kt:73)
amarr  |        at jamule.AmuleConnection.authenticate(AmuleConnection.kt:85)
amarr  |        at jamule.AmuleConnection.reconnect(AmuleConnection.kt:52)
amarr  |        at jamule.AmuleConnection.sendRequest(AmuleConnection.kt:57)
amarr  |        at jamule.AmuleClient.getDownloadQueue-d1pmJ48(AmuleClient.kt:150)
amarr  |        at amarr.torrent.TorrentService.getTorrentInfo(TorrentService.kt:22)
amarr  |        at amarr.torrent.TorrentApiKt$torrentApi$1$7.invokeSuspend(TorrentApi.kt:54)
amarr  |        at amarr.torrent.TorrentApiKt$torrentApi$1$7.invoke(TorrentApi.kt)
amarr  |        at amarr.torrent.TorrentApiKt$torrentApi$1$7.invoke(TorrentApi.kt)
amarr  |        at io.ktor.server.routing.Route$buildPipeline$1$1.invokeSuspend(Route.kt:116)
amarr  |        at io.ktor.server.routing.Route$buildPipeline$1$1.invoke(Route.kt)
amarr  |        at io.ktor.server.routing.Route$buildPipeline$1$1.invoke(Route.kt)
amarr  |        at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)
amarr  |        at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)
amarr  |        at io.ktor.util.pipeline.SuspendFunctionGun.execute$ktor_utils(SuspendFunctionGun.kt:98)
amarr  |        at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:77)
amarr  |        at io.ktor.server.routing.Routing$executeResult$$inlined$execute$1.invokeSuspend(Pipeline.kt:478)
amarr  |        at io.ktor.server.routing.Routing$executeResult$$inlined$execute$1.invoke(Pipeline.kt)
amarr  |        at io.ktor.server.routing.Routing$executeResult$$inlined$execute$1.invoke(Pipeline.kt)
amarr  |        at io.ktor.util.debug.ContextUtilsKt.initContextInDebugMode(ContextUtils.kt:17)
amarr  |        at io.ktor.server.routing.Routing.executeResult(Routing.kt:190)
amarr  |        at io.ktor.server.routing.Routing.interceptor(Routing.kt:64)
amarr  |        at io.ktor.server.routing.Routing$Plugin$install$1.invokeSuspend(Routing.kt:140)
amarr  |        at io.ktor.server.routing.Routing$Plugin$install$1.invoke(Routing.kt)
amarr  |        at io.ktor.server.routing.Routing$Plugin$install$1.invoke(Routing.kt)
amarr  |        at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)
amarr  |        at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)
amarr  |        at io.ktor.server.engine.BaseApplicationEngineKt$installDefaultTransformationChecker$1.invokeSuspend(BaseApplicationEngine.kt:124)
amarr  |        at io.ktor.server.engine.BaseApplicationEngineKt$installDefaultTransformationChecker$1.invoke(BaseApplicationEngine.kt)
amarr  |        at io.ktor.server.engine.BaseApplicationEngineKt$installDefaultTransformationChecker$1.invoke(BaseApplicationEngine.kt)
amarr  |        at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)
amarr  |        at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)
amarr  |        at io.ktor.util.pipeline.SuspendFunctionGun.execute$ktor_utils(SuspendFunctionGun.kt:98)
amarr  |        at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:77)
amarr  |        at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1$invokeSuspend$$inlined$execute$1.invokeSuspend(Pipeline.kt:478)
amarr  |        at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1$invokeSuspend$$inlined$execute$1.invoke(Pipeline.kt)
amarr  |        at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1$invokeSuspend$$inlined$execute$1.invoke(Pipeline.kt)
amarr  |        at io.ktor.util.debug.ContextUtilsKt.initContextInDebugMode(ContextUtils.kt:17)
amarr  |        at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1.invokeSuspend(DefaultEnginePipeline.kt:123)
amarr  |        at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1.invoke(DefaultEnginePipeline.kt)
amarr  |        at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1.invoke(DefaultEnginePipeline.kt)
amarr  |        at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)
amarr  |        at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)
amarr  |        at io.ktor.util.pipeline.SuspendFunctionGun.execute$ktor_utils(SuspendFunctionGun.kt:98)
amarr  |        at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:77)
amarr  |        at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1$invokeSuspend$$inlined$execute$1.invokeSuspend(Pipeline.kt:478)
amarr  |        at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1$invokeSuspend$$inlined$execute$1.invoke(Pipeline.kt)
amarr  |        at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1$invokeSuspend$$inlined$execute$1.invoke(Pipeline.kt)
amarr  |        at io.ktor.util.debug.ContextUtilsKt.initContextInDebugMode(ContextUtils.kt:17)
amarr  |        at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1.invokeSuspend(NettyApplicationCallHandler.kt:119)
amarr  |        at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1.invoke(NettyApplicationCallHandler.kt)
amarr  |        at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1.invoke(NettyApplicationCallHandler.kt)
amarr  |        at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:44)
amarr  |        at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:112)
amarr  |        at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:126)
amarr  |        at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56)
amarr  |        at kotlinx.coroutines.BuildersKt.launch(Unknown Source)
amarr  |        at io.ktor.server.netty.NettyApplicationCallHandler.handleRequest(NettyApplicationCallHandler.kt:37)
amarr  |        at io.ktor.server.netty.NettyApplicationCallHandler.channelRead(NettyApplicationCallHandler.kt:29)
amarr  |        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
amarr  |        at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:61)
amarr  |        at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:425)
amarr  |        at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
amarr  |        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)
amarr  |        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
amarr  |        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
amarr  |        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
amarr  |        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
amarr  |        at io.ktor.server.netty.EventLoopGroupProxy$Companion.create$lambda$1$lambda$0(NettyApplicationEngine.kt:296)
amarr  |        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
amarr  |        at java.base/java.lang.Thread.run(Thread.java:833)
amarr  | 2024-07-07 07:53:19.092 [eventLoopGroupProxy-4-1] DEBUG ktor.application - 500 Internal Server Error: GET - /api/v2/torrents/info in 53ms

I'm joining discord as well :)

vexdev commented 1 week ago

It looks like your amarr cannot communicate with your amule. Do you have amule running? Where is it running? Docker or host? Will follow up on discord in a few minutes

adocampo commented 1 week ago

It looks like your amarr cannot communicate with your amule. Do you have amule running?

yes

Where is it running? Docker or host?

docker, but I access via port on host (192.168.1.100:4711).

I can curl from amarr docker to amule port

root@2e32508b88d4:/# curl http://192.168.1.100:4711 --output amule.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1488  100  1488    0     0   484k      0 --:--:-- --:--:-- --:--:--  484k
root@2e32508b88d4:/# gunzip amule.gz 
root@2e32508b88d4:/# cat amule 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
        <title>aMule - Control Panel - Login</title>

        <script language="JavaScript" type="text/javascript">
                function login_init()
                {
                        breakout_of_frame()
...
adocampo commented 1 week ago

@vexdev this is my amule docker-compose.yml


---
version: "2.1"
services:
  amule:
    image: ngosang/amule
    container_name: amule
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Madrid
      - GUI_PWD=PASSWORD
      - WEBUI_PWD=PASSWORD
      - MOD_AUTO_RESTART_ENABLED=true
      - MOD_AUTO_RESTART_CRON=0 2 * * 1
      - MOD_AUTO_SHARE_ENABLED=false
      - MOD_AUTO_SHARE_DIRECTORIES=/incoming;/my_movies
      - MOD_FIX_KAD_GRAPH_ENABLED=true
      - MOD_FIX_KAD_BOOTSTRAP_ENABLED=true
    ports:
      - "4711:4711" # web ui
      - "4712:4712" # remote gui, webserver, cmd ...
      - "4662:4662" # ed2k tcp
      - "4665:4665/udp" # ed2k global search udp (tcp port +3)
      - "4672:4672/udp" # ed2k udp
    volumes:
      - '/data/.docker/amule/config:/home/amule/.aMule'
      - '/data/files/Downloads:/incoming'
      - '/data/files/Downloads/incomplete:/temp'
vexdev commented 1 week ago

You configured Amarr to use port 4711 but that's the web UI port. You should use the EC protocol port 4712. You can change your docker-compose to this, and see if it works:

---
services:
  amarr:
    image: vexdev/amarr:latest
    container_name: amarr
    environment:
      - AMULE_HOST=192.168.1.100
      - AMULE_PORT=4712   // <-- Relevant change
      - AMULE_PASSWORD=PASSWORD
    volumes:
      - ./config:/config
    ports:
      - 8082:8080
    restart: unless-stopped
adocampo commented 1 week ago

yes! that did the job! Now I have both the amarr client and the indexer :) Now I need to figure how it works, but this will be another story.

Thank you @vexdev !!

vexdev commented 1 week ago

You're welcome! I'll update the docs to avoid confusion. Closing