Skip to content

Password Pusher

Purpose: An application to securely communicate passwords over the web. Passwords automatically expire after a certain number of views and/or time has passed. Track who, what and when.

Docker Configuration

docker-compose.yml
version: '3'

services:
  passwordpusher:
    image: docker.io/pglombardo/pwpush:release
    expose:
      - 5100
    restart: always
    environment:
      # Read Documention on how to generate a master key, then put it below
      - PWPUSH_MASTER_KEY=${PWPUSH_MASTER_KEY}
    networks:
        docker_network:
          ipv4_address: 192.168.5.170
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.passwordpusher.rule=Host(`temp.bunny-lab.io`)"
      - "traefik.http.routers.passwordpusher.entrypoints=websecure"
      - "traefik.http.routers.passwordpusher.tls.certresolver=letsencrypt"
      - "traefik.http.services.passwordpusher.loadbalancer.server.port=5100"
networks:
  docker_network:
    external: true
.env
PWPUSH_MASTER_KEY=<PASSWORD>
PWP__BRAND__TITLE="Bunny Lab"
PWP__BRAND__SHOW_FOOTER_MENU=false
PWP__BRAND__LIGHT_LOGO="https://cloud.bunny-lab.io/apps/theming/image/logo?v=22"
PWP__BRAND__DARK_LOGO="https://cloud.bunny-lab.io/apps/theming/image/logo?v=22"
PWP__BRAND__TAGLINE="Secure Temporary Information Exchange"
PWP__MAIL__RAISE_DELIVERY_ERRORS=true
PWP__MAIL__SMTP_ADDRESS=mail.bunny-lab.io
PWP__MAIL__SMTP_PORT=587
[email protected]
PWP__MAIL__SMTP_PASSWORD=<SMTP_CREDENTIALS>
PWP__MAIL__SMTP_AUTHENTICATION=plain
PWP__MAIL__SMTP_STARTTLS=true
PWP__MAIL__SMTP_OPEN_TIMEOUT=10
PWP__MAIL__SMTP_READ_TIMEOUT=10
PWP__HOST_DOMAIN=bunny-lab.io
PWP__HOST_PROTOCOL=https
PWP__MAIL__MAILER_SENDER='"noreply" <[email protected]>'
PWP__SHOW_VERSION=false
PWP__ENABLE_FILE_PUSHES=true
PWP__FILES__EXPIRE_AFTER_DAYS_DEFAULT=2
PWP__FILES__EXPIRE_AFTER_DAYS_MAX=7
PWP__FILES__EXPIRE_AFTER_VIEWS_DEFAULT=5
PWP__FILES__EXPIRE_AFTER_VIEWS_MAX=10
PWP__FILES__RETRIEVAL_STEP_DEFAULT=true
PWP__ENABLE_URL_PUSHES=true
PWP__LOG_LEVEL=info

PWPUSH_MASTER_KEY

Generate a master key by visiting the official online key generator.

Traefik Reverse Proxy Configuration

If the container does not run on the same host as Traefik, you will need to manually add configuration to Traefik's dynamic config file, outlined below.

http:
  routers:
    password-pusher:
      entryPoints:
        - websecure
      tls:
        certResolver: letsencrypt
      service: password-pusher
      rule: Host(`temp.bunny-lab.io`)

  services:
    password-pusher:
      loadBalancer:
        servers:
          - url: http://192.168.5.170:5100
        passHostHeader: true