• 1 Post
  • 17 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)