• 1 Post
  • 18 Comments
Joined 2 months ago
cake
Cake day: September 25th, 2024

help-circle
  • Before anything, you’ll want to create a folder for the unix socket: mkdir /var/run/ytproxy and chown it to your reverse proxy’s user and group.

    The Docker files:

    compose.yml
    services:
      piped-frontend:
        image: 1337kavin/piped-frontend:latest
        container_name: piped-frontend
        environment:
          BACKEND_HOSTNAME: $API_ENDPOINT
        depends_on:
          - piped
        restart: unless-stopped
        networks:
          - proxy
    
      piped-proxy:
        image: 1337kavin/piped-proxy:latest
        container_name: piped-proxy
        environment:
          - UDS=1
        volumes:
          - /var/run/ytproxy:/app/socket  # unix socket location
        user: 1000:1000
        restart: unless-stopped
        networks:
          - proxy
    
      piped:
        image: 1337kavin/piped:latest
        container_name: piped-backend
        volumes:
          - ./piped/config/config.properties:/app/config.properties:ro
        depends_on:
          - piped-db
        restart: unless-stopped
        networks:
          - backend_piped
          - proxy
    
      piped-db:
        image: pgautoupgrade/pgautoupgrade:16-alpine
        container_name: piped-db
        environment:
          - POSTGRES_DB=$DB_NAME
          - POSTGRES_USER=$DB_USER
          - POSTGRES_PASSWORD=$DB_PASS
        volumes:
          - ./piped/pgdb:/var/lib/postgresql/data
        restart: unless-stopped
        networks:
          - backend_piped
    
    networks:
      backend_piped:
    
      proxy:
        external: true
    
    .env
    API_ENDPOINT=  # no scheme prefix (ex. pipedapi.domain.example)
    DB_NAME=
    DB_USER=
    DB_PASS=
    

    To configure the reverse proxy (I use nginx), you can use Piped’s recommended files with your domains. The linked repo also contains a template for the required config.properties.

    Let me know if you run into issues, I’ll be glad to help 🙂




    • a hello world doesn’t need libraries in Java
    • installing JDK takes at most 5 steps, depending on the OS
    • a nullpointerexception is more likely the developper’s fault (unassigned value, calling a function on a null object)
    • IntelliJ is easy to install and modern (granted, other IDEs are very ancient)
    • developping GUI apps is a PITA, no matter the ecosystem (generally)

    The rest is more or less spot on (no idea about concurrency issues though)















  • Yes, searxng is indeed making requests to all configured search engines.

    The intended use of searxng is to proxy searches for many users, making tracking individuals difficult for the search engines, since everyone’s data is mixed together.

    Using searxng does however also bring some benefits if used by one person only:

    • no browser fingerprinting
    • convenience: get results from across many search engines at once

    I personally use a private instance mostly because I like the simple search results page.