________ _______ ________ ________ ________ _______ _______ ________
|\ ___ \|\ ___ \ |\ __ \|\ ___ \|\ __ \|\ ___ \ |\ ___ \ |\ _____\
\ \ \_|\ \ \ __/|\ \ \|\ \ \ \_|\ \ \ \|\ /\ \ __/|\ \ __/|\ \ \__/
\ \ \ \\ \ \ \_|/_\ \ __ \ \ \ \\ \ \ __ \ \ \_|/_\ \ \_|/_\ \ __\
\ \ \_\\ \ \ \_|\ \ \ \ \ \ \ \_\\ \ \ \|\ \ \ \_|\ \ \ \_|\ \ \ \_|
\ \_______\ \_______\ \__\ \__\ \_______\ \_______\ \_______\ \_______\ \__\
\|_______|\|_______|\|__|\|__|\|_______|\|_______|\|_______|\|_______|\|__|
Vertx http proxy, for some reason I can't talk much.
java(jdk/jre) >= 8
If you want to compile the project yourself, you may need maven(version of 3.6.3 is preferred)
Compile the source codes with the following command:
mvn clean package -DwithNativeDependency=trueThe project contains some platform dependent components, it is recommended for you to compile the code on you device to gain better performance.
Or if you are not so familiar with Java, just use the released jar, there should not be significant difference.
Start a deamon process listening on a port with the following command: For java8:
java -jar deadbeef-client/target/deadbeef-client-${version}[-${os.detected.classifier}].jar --config client-config.yamlJava9 or later:
java --add-opens java.base/jdk.internal.misc=ALL-UNNAMED -Dio.netty.tryReflectionSetAccessible=true -jar deadbeef-client/target/deadbeef-client-${version}[-${os.detected.classifier}].jar --config client-config.yamlNo doubt that you could custom as many JVM options as you like
Here is the client-config.yaml example:
httpPort: 14483 # the http port of remote server
httpsPort: 14484 # the https port of remote server
remoteServer: example.com # the remote server address, ipv6 address is supported if your machine has access to ipv6 network
localPort: 14482 # this is the local port that you could configure your browser proxy to
secretId: a-secret-id
secretKey: a-secret-key
# options below are optional
preferNativeTransport: true
addressResolver: [ 8.8.8.8, 114.114.114.114 ] # custom dns hosts, you may just keep it emptyStart a deamon process on your remote machine to handle requests from you local proxy server.
Note: deadbeef-server handles HTTP/HTTPS on different ports, configure your firewall properly
You may start with the following command:
#!/bin/bash
nohup java --add-opens java.base/jdk.internal.misc=ALL-UNNAMED -Dio.netty.tryReflectionSetAccessible=true -jar deadbeef-server/target/deadbeef-server-${version}[-${os.detected.classifier}].jar -c server-config.yaml > run.log 2>&1 & echo $! > pid.fileHere is what server-config.yaml should be like:
httpPort: 14483
httpsPort: 14484
auth: # authentication key pairs, one secretId might have multiple secretKeys
- { secretKey: one-secret-key, secretId: one-secret-id }
- { secretKey: another-secret-key, secretId: another-secret-id }
preferNativeTransport: true
addressResolver: [ 8.8.8.8, 114.114.114.114 ]