Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .envrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# =============================================================================
# Youwee development environment
# =============================================================================
#
# Shell compatibility: bash, zsh (requires direnv + nix-direnv installed)
#
# Setup requirements:
# 1. Install direnv: https://direnv.net/docs/installation.html
# 2. Install nix-direnv: https://github.com/nix-community/nix-direnv
# 3. Add to shell rc:
# eval "$(direnv hook bash)" # or: eval "$(direnv hook zsh)"
# 4. First use: cd into this directory and run: direnv allow
#
# Provides: Rust, Node.js, Bun, yt-dlp, FFmpeg, and all Tauri 2.x
# system dependencies (GTK3, WebKitGTK 4.1, OpenSSL, libayatana-appindicator)
# via Konductor frontend devshell.
#
# Non-Nix users: comment out "use flake" and install dependencies manually
# per README.md prerequisites section.

# ── Rust toolchain ────────────────────────────────────────────────────
if [[ -f "$HOME/.cargo/env" ]]; then
source "$HOME/.cargo/env"
fi

# ── Nix devshell (uncomment to use Nix instead of host deps) ─────────
# use flake
36 changes: 34 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,22 @@

> See all releases on the [Releases page](https://github.com/vanloctech/youwee/releases)

#### Linux .deb — optional system dependencies

The `.deb` package works out of the box with its bundled yt-dlp binary. For best results,
install system `ffmpeg` and a current `yt-dlp` so the app can use them automatically:

```bash
# Optional: add PPA for a current yt-dlp (Ubuntu/Debian ship older versions)
sudo add-apt-repository -y ppa:tomtomtom/yt-dlp
sudo apt update
sudo apt install ffmpeg yt-dlp
```

When system binaries are present, Youwee prefers them over bundled versions. Without them,
the bundled yt-dlp and the app-managed FFmpeg download (Settings > Dependencies) provide
full functionality.

### Browser Extension (Chromium + Firefox)

| Browser | Download |
Expand All @@ -111,7 +127,7 @@

- [Bun](https://bun.sh/) (v1.3.5 or later)
- [Rust](https://www.rust-lang.org/) (v1.70 or later)
- [Tauri CLI](https://tauri.app/v1/guides/getting-started/prerequisites)
- [Tauri 2 prerequisites](https://tauri.app/start/prerequisites/) (system libraries for your platform)

#### Steps

Expand All @@ -130,11 +146,27 @@ bun run tauri dev
bun run tauri build
```

#### Nix devshell (Linux)

If you use [Nix](https://nixos.org/), a `flake.nix` provides a complete development
environment with all build and runtime dependencies:

```bash
nix develop # enter devshell (bun, cargo, rustc, pkg-config, WebKitGTK, etc.)
bun install
bun run tauri dev # development
bun run tauri build -b deb # produce .deb (binary is auto-patched for FHS portability)
```

The devshell consumes [konductor](https://github.com/braincraftio/konductor) via
`inputsFrom` and adds `yt-dlp`, `ffmpeg`, `deno`, and `glib-networking` for runtime
and WebKitGTK TLS support.

## Tech Stack

- **Frontend**: React 19, TypeScript, Tailwind CSS, shadcn/ui
- **Backend**: Rust, Tauri 2.0
- **Downloader**: yt-dlp (bundled)
- **Downloader**: yt-dlp (bundled on macOS/Windows, system package on Linux)
- **Build**: Bun, Vite

## Contributing
Expand Down
Loading