# Francisca

Francisca Logo

- [Français](README-fr.md) General-purpose, high-performance indexer for any system that supports the Nostr protocol (NIP-35 torrent events), written in Rust ## [LEGAL DISCLAIMER](DISCLAIMER.md) **Key Features**: - Works with any Nostr relay exposing NIP-35 torrent events - Fully configurable relays — no account or authentication required - Automatic relay ranking by latency at startup - Near-instant search - Low memory usage - Modular torrent search (by name, seeders, leechers, release date, etc.) - Optional Tor support to anonymize relay connections - TMDB/IMDB integration for ID-based lookups - Compatible with Prowlarr, Jackett, and all \*arr applications ## Configuration (required before first run) Francisca ships with **no default relay**: you must provide at least one (a Nostr relay exposing NIP-35 torrent events). **Via `config.json`** (generated on first run, then edit it): ```json { "relays": ["wss://u2p.anhkagi.net"] } ``` **Or via environment variables** (Docker): ```yaml environment: RELAYS: "wss://u2p.anhkagi.net" # multiple relays: comma-separated ``` | Key (`config.json` / env) | Required | Description | |---------------------------|----------|-------------| | `relays` / `RELAYS` | **yes** | Nostr (NIP-35) relays to query. `wss://` (clearnet) or `ws://…onion` (Tor). Multiple = JSON array, or comma-separated list in env. | | `allowed_pubkeys` / `ALLOWED_PUBKEYS` | no | Trusted publisher pubkeys (hex). Defaults to the U2P network publisher. `[]` = accept any valid-signature event. | | `web_base_url` / `WEB_BASE_URL` | no | Base URL for a per-result "details" link. Empty = no link. | > [!NOTE] > Without a configured relay, the app stops at startup with a message explaining how to add one. ## Compilation Requirements - Rust 1.85.0+ # Installation A ready-to-use Docker image is available for Francisca. To get started with Docker deployment and configuration, see the [dedicated Docker guide](https://francisca.lila.ws/en/installation/docker-guide). > [!IMPORTANT] > If you encounter a `Permission denied` error after updating, see the [Permission Management](https://francisca.lila.ws/en/installation/docker-guide#permission-management) section in the Docker guide. ## Docker To create a custom Docker image with your own optimizations, refer to the [Docker build guide](https://francisca.lila.ws/en/installation/docker-guide). ## Manual Installation To compile the application from sources, follow the [manual installation guide](https://francisca.lila.ws/en/installation/source-guide). ## IMDB and TMDB configuration To enable IMDB and TMDB metadata fetching, please follow the instructions in the [TMDB and IMDB support guide](https://francisca.lila.ws/en/tmdb-imdb). ## Tor Support Francisca can route its Nostr relay connections through Tor to anonymize traffic. | Environment Variable | Default | Description | |----------------------|---------|-------------| | `USE_TOR` | `false` | Enable Tor routing (`true`/`false`) | | `TOR_PROXY` | `127.0.0.1:9050` | SOCKS5 Tor proxy address | Docker Compose example: ```yaml environment: USE_TOR: "true" TOR_PROXY: "127.0.0.1:9050" # Optional if using default ``` > [!NOTE] > Tor must be installed and running on your machine (or accessible from the container) for this option to work. ## Prowlarr integration Francisca can be used as a custom indexer for Prowlarr. To set it up, find your AppData directory (located in the `/system/status` page of Prowlarr) and copy the `francisca.yml` file on the repo in the `{your prowlarr appdata path}/Definitions/Custom` folder, you'll probably need to create the `Custom` folder. Once it's done, restart Prowlarr and go to the indexer settings, you should see Francisca in the list of available indexers. > [!NOTE] > Prowlarr doesn't allow custom "Base URL". By default the URL is `http://localhost:8715/`. For Docker Compose setups, use `http://francisca:8715/`. Alternatively, use francisca-dns-redirect.local with custom DNS or hosts file redirection. ## Jackett Integration Francisca can be used as a custom indexer for Jackett. To set it up, locate your Jackett AppData directory and copy the `francisca.yml` file from the repository into the `{your jackett appdata path}/cardigann/definitions/` folder. You may need to create the `cardigann/definitions/` subfolder if it doesn't exist. > [!NOTE] > The LinuxServer Jackett image provides a well-organized folder structure. If you're using a different Docker image, adjust the paths accordingly. Once complete, restart Jackett and navigate to the indexer settings. You should see Francisca listed among the available indexers. # API Documentation The API documentation is available [here](https://francisca.lila.ws/en/api).