Skip to content

Latest commit

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

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:

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.

About

Run Piped backend and proxy on Alpine Linux

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - DarkCat09/Piped-Alpine: Run Piped backend and proxy on Alpine Linux · GitHub
Skip to content

Latest commit

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

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:

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.

About

Run Piped backend and proxy on Alpine Linux

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - DarkCat09/Piped-Alpine: Run Piped backend and proxy on Alpine Linux · GitHub
Skip to content

Latest commit

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

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:

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.

About

Run Piped backend and proxy on Alpine Linux

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - DarkCat09/Piped-Alpine: Run Piped backend and proxy on Alpine Linux · GitHub
Skip to content

Latest commit

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

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:

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.

About

Run Piped backend and proxy on Alpine Linux

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - DarkCat09/Piped-Alpine: Run Piped backend and proxy on Alpine Linux · GitHub
Skip to content

Latest commit

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

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:

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.

About

Run Piped backend and proxy on Alpine Linux

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - DarkCat09/Piped-Alpine: Run Piped backend and proxy on Alpine Linux · GitHub
Skip to content

Latest commit

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

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:

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.

About

Run Piped backend and proxy on Alpine Linux

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - DarkCat09/Piped-Alpine: Run Piped backend and proxy on Alpine Linux · GitHub
Skip to content

Latest commit

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

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:

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.

About

Run Piped backend and proxy on Alpine Linux

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - DarkCat09/Piped-Alpine: Run Piped backend and proxy on Alpine Linux · GitHub
Skip to content

Latest commit

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

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:

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.

About

Run Piped backend and proxy on Alpine Linux

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages