aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorAstounds <kirito@disroot.org>2026-05-30 00:34:34 -0500
committerAstounds <kirito@disroot.org>2026-05-30 00:34:34 -0500
commit4e54a34d87056067c0110c00282f6a3248dc5f6f (patch)
treed85617414cb083447523238803ba88146a0dc543 /README.md
parented2af5e3d7a3fcd5a1f383003b6723f5d419f634 (diff)
downloadyt-local-4e54a34d87056067c0110c00282f6a3248dc5f6f.tar.lz
yt-local-4e54a34d87056067c0110c00282f6a3248dc5f6f.tar.xz
yt-local-4e54a34d87056067c0110c00282f6a3248dc5f6f.zip
feat: update README and HACKING, lock deps via pip-compile in DockerHEADmaster
Use pip-compile --generate-hashes in the Docker build stage so that the runtime stage installs pinned dependencies with verified integrity, ensuring fully reproducible container builds. - Add Docker section to README - Fix Python badge (3.7+ → 3.11+) and outdated docs links - Upgrade pip, setuptools, and wheel in Dockerfile to fix grype findings
Diffstat (limited to 'README.md')
-rw-r--r--README.md42
1 files changed, 28 insertions, 14 deletions
diff --git a/README.md b/README.md
index 062d979..44dcf64 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,8 @@
# yt-local
[![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0)
-[![Python 3.7+](https://img.shields.io/badge/python-3.7+-blue.svg)](https://www.python.org/downloads/)
-[![Tests](https://img.shields.io/badge/tests-passing-brightgreen.svg)](https://git.fridu.us/heckyel/youtube-local)
+[![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
+[![Tests](https://img.shields.io/badge/tests-passing-brightgreen.svg)](https://git.fridu.us/heckyel/yt-local)
A privacy-focused, browser-based YouTube client that routes requests through Tor for anonymous viewing—**without compromising on speed or features**.
@@ -76,16 +76,13 @@ cd yt-local
python3 -m venv venv
source venv/bin/activate # or `venv\Scripts\activate` on Windows
-# 3. Install dependencies
-pip install -r requirements.txt
+# 3. Install pinned dependencies
+pip install --no-deps -r requirements.lock
# 4. Run the server
python3 server.py
```
-> [!TIP]
-> If `pip` isn't installed, use your distro's package manager (e.g., `sudo apt install python3-pip` on Debian/Ubuntu).
-
### Portable Mode
To keep settings and data in the same directory as the app:
@@ -97,6 +94,25 @@ python3 server.py
# Data now stored in ./data/ instead of ~/.yt-local/
```
+### Docker
+
+A multi-stage Docker image is available for production use:
+
+```bash
+# Build and run
+docker compose up -d
+
+# Or build manually
+docker build -t yt-local .
+docker run -d -p 127.0.0.1:9010:9010 --name yt-local yt-local
+
+# With Tor enabled
+docker run -d -p 127.0.0.1:9010:9010 -e ENABLE_TOR=1 --name yt-local yt-local
+```
+
+> [!TIP]
+> Persistent data (settings, subscriptions, cache) is stored in a Docker volume named `yt-local-data`.
+
---
## Usage
@@ -209,8 +225,7 @@ Visit `http://localhost:9010/settings` to configure:
### Running Tests
```bash
-source venv/bin/activate # if not already in venv
-make test
+pytest
```
### Project Structure
@@ -248,10 +263,9 @@ yt-local/
Contributions welcome! Please:
1. Read [`docs/HACKING.md`](docs/HACKING.md) for coding guidelines
-2. Follow [PEP 8](https://peps.python.org/pep-0008/) style (use `ruff format`)
-3. Run tests before submitting: `pytest`
-4. Ensure no security issues: `bandit -r .`
-5. Update docs for new features
+2. Follow [PEP 8](https://peps.python.org/pep-0008/) style (use `make lint`)
+3. Run tests before submitting: `make test`
+4. Update docs for new features
---
@@ -310,4 +324,4 @@ Permission is granted to relicense code portions into youtube-dl's license (curr
Made for privacy-conscious users
-Last updated: 2026-05-03
+Last updated: 2026-05-29