Run Piped backend and proxy on Alpine Linux https://github.com/TeamPiped/Piped/issues/2587
Find a file
2023-07-03 15:39:17 +04:00
.gitignore First commit 2023-07-03 14:24:45 +04:00
backend.patch First commit 2023-07-03 14:24:45 +04:00
build.sh Abort script execution if cannot apply patches 2023-07-03 15:37:27 +04:00
piped.init OpenRC init scripts 2023-07-03 15:37:50 +04:00
proxy.init chmod 755 for proxy.init 2023-07-03 15:39:17 +04:00
README.md Really useful Readme 2023-07-03 15:38:54 +04:00
reqwest4j.patch First commit 2023-07-03 14:24:45 +04:00
start.sh Start script 2023-07-03 15:37:38 +04:00

Piped-Alpine

  • Patches for backend source code to make it work on Alpine
  • Simple build script and start.sh
  • OpenRC configs

Patches may outdate, so open an issue if you get an error while script applies them.

How to build

  1. Install dependencies: doas apk add git openjdk17 7zip
  2. Install Rust: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    (Note that you don't need doas or sudo here)
  3. Enter to RustUp environment: source ~/.cargo/env
  4. Run the script: ./build.sh
    (bash build.sh if you executed previous commands from bash)

How to start Piped

  1. Edit config.properties
  2. Change /home/piped in start.sh to directory where piped JAR and config are located
  3. Run the script: ./start.sh

OpenRC

  1. Change /home/piped in piped.init to directory where piped JAR and config are located
  2. Change command_user="piped" in piped.init to the Piped's user name
  3. Copy this init script: doas cp piped.init /etc/init.d/piped
  4. Add it to autostart: doas rc-update add piped
  5. Start the service: doas service piped start

I also need to start a proxy, right?

Yes.

This repo is dedicated only to patches for Piped's backend, but I've included an OpenRC config for proxy and this small explanation below.

Build

Building proxy is quite easy:

git clone https://github.com/TeamPiped/piped-proxy
cd piped-proxy
cargo build --release
cp target/release/piped-proxy ..
cd ..

Start

Command: UDS=1 ./piped-proxy

  • With UDS=1, it creates a Unix socket in ./socket/actix.sock instead of listening on TCP port.
  • Without UDS=1, it listens for HTTP connections on :8080 port.
  • If you want to specify other TCP port, use BIND=127.0.0.1:8080 variable (replace port and host with your own), and do not enable UDS.

Create socket directory before the first start if you have enabled UDS.
Also, check if the user from which the proxy is started has write access to the socket/.

OpenRC

The same as in Piped backend.
Copy proxy.init replacing the directory and user, replacing UDS=1 with BIND=... if needed.
I've set nginx as user because otherwise my reverse proxy won't have access to the socket file.