LANraragi
GithubDemoDocker HubDiscord Server
Nightly Release
Nightly Release
  • LANraragi Documentation
  • Installing LANraragi
    • ❓Which installation method is best for me?
    • 🪟LRR for Windows (Win10)
    • 🍎Homebrew (macOS)
    • 🐳Docker (All platforms)
    • 🛠️Source Code (Linux/macOS)
    • 🐧Community (Linux)
    • 👿Jail (FreeBSD)
  • Basic Operations
    • 🚀Getting Started
    • 📚Reading Archives
    • ✒️Adding Metadata
    • 🔎Searching the Archive Index
    • 📈Statistics and Logs
    • 🖌️Themes
  • Advanced Usage
    • 🦇Batch Operations
    • 📂Categories
    • ⬇️Downloading Archives
    • 💾Backup and Restore
    • 📱Using External Readers
    • 🌐Network Interface Setup
    • 🕵️Proxy Setup
    • 📏Tag Rules
  • Developer Guide
    • 🏗️Setup a Development Environment
    • 🏛️Architecture & Style
    • 🈁Translating LANraragi to other languages
  • API Documentation
    • 🔑Getting started
    • Search API
    • Archive API
    • Database API
    • Category API
    • Tankoubon API
    • Shinobu API
    • Minion API
    • Miscellaneous other API
  • Writing Plugins
    • 🧩Getting started
    • Login Plugins
    • Metadata Plugins
    • Downloader Plugins
    • Generic Plugins ("Scripts")
    • Code Examples
Powered by GitBook
On this page
  • Setting up LANraragi behind a proxy (reverse proxy setup)
  • Setting up LANraragi to use a proxy for outbound network requests

Was this helpful?

  1. Advanced Usage

Proxy Setup

Setting up LANraragi behind a proxy (reverse proxy setup)

A common post-install setup is to make requests to the app transit through a gateway server such as Apache or nginx. If you do so, please note that archive uploads through LRR will likely not work out of the box due to maximum sizes on uploads those servers can enforce. The example below is for nginx:

http {
    client_max_body_size 0;   <----------------------- This line here
}

server {
    listen 80;

    server_name lanraragi.[REDACTED].net;

    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    index index.php index.html index.htm;
    server_name lanraragi.[REDACTED].net;

    client_max_body_size 0;   <----------------------- And this line here

    # Cert Stuff Omitted

    location / {
        proxy_pass http://0.0.0.0:3000;
        proxy_http_version 1.1;
        <----- The two following lines are needed for batch tagger support with SSL ----->
        proxy_set_header Upgrade $http_upgrade; 
        proxy_set_header Connection $connection_upgrade;
    }
}

By default, LRR runs at the server root, e.g. https://lanraragi.example.com/. You may wish to instead run it under a specific URL subdirectory, e.g. https://example.com/lanraragi/.

This configuration requires that the reverse proxy be configured to strip the URL prefix from requests before forwarding it. For nginx, this is:

server {
    # ...

    location /lanraragi {
        rewrite ^/lanraragi(.*)$ $1 last;
        # ...rest of the block here
    }
}

After this is done, you need to configure LANraragi to use the new prefix. This is set under lrr.conf in the app root directory. Set the variable base_url_path as desired, e.g.:

{
  # other directives...
  base_url_path => "/lanraragi",
}

Make sure to restart the server after editing lrr.conf. This will make the app available under /lanraragi.

Setting up LANraragi to use a proxy for outbound network requests

This is a less common scenario, but you might want to have downloads or metadata requests to external services go through a proxy, in case said external services are blocked by your friendly local totalitarian regime.

To enable automatic proxy detection, the MOJO_PROXY environment variable must be set to 1 on your machine: This is enabled by default on Docker builds. Once said detection enabled, environment variables HTTP_PROXY, http_proxy, HTTPS_PROXY, https_proxy, NO_PROXY and no_proxy will be checked for proxy information.

Here's an example for a Docker-compose setup:

---
version: "2.1"
services:
  lanraragi:
    image: difegue/lanraragi:latest
    container_name: lanraragi
    environment:
      - http_proxy=http://192.168.10.186:1082
      - https_proxy=http://192.168.10.186:1082
    volumes:
      - [database]:/home/koyomi/lanraragi/database
      - [content]:/home/koyomi/lanraragi/content
    ports:
      - 7070:3000
    restart: unless-stopped
PreviousNetwork Interface SetupNextTag Rules

Last updated 8 months ago

Was this helpful?

LANraragi runs on top of the Mojolicious web server, which has support for proxifying external requests.

🕵️
built-in