72 lines
2.4 KiB
Markdown
72 lines
2.4 KiB
Markdown
# 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 openjdk21 7zip`
|
|
(Note that both OpenJDK 17 and 21 are installed,
|
|
for building reqwest4j and Piped respectively)
|
|
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)
|
|
|
|
You can set environment variables
|
|
`ARCH=x86_64|aarch64|armv7...`,
|
|
`LIBC=musl|gnu|musleabi|gnueabi`,
|
|
e.g. `ARCH=aarch64 ./build.sh`.
|
|
They default to x86_64 musl.
|
|
|
|
## 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:
|
|
```bash
|
|
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.
|