**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
```jsx title="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
```

```jsx title=".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
PWP__MAIL__SMTP_USER_NAME=noreply@bunny-lab.io
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" <noreply@bunny-lab.io>'
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
```

!!! note "PWPUSH_MASTER_KEY"
    Generate a master key by visiting the [official online key generator](https://pwpush.com/en/pages/generate_key).

## 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.
``` yaml
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
```