faraday Docker & Self-Hosted Deployment

GitHub

Open Source Vulnerability Management Platform

RAW Compose
1. Pull Image (DOCKERHUB) docker pull index.docker.io/faradaysec/faraday
2. Docker Run (1-Click Launch) docker run -d --name faraday -p 5432:5432 --restart always index.docker.io/faradaysec/faraday:latest
3. Podman Run podman run -d --name faraday -p 5432:5432 --restart always index.docker.io/faradaysec/faraday:latest
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/index.docker.io/faradaysec/faraday:latest
5. ORAS Pull (OCI Artifact) oras pull index.docker.io/faradaysec/faraday:latest
6. Compose Deployment docker compose up -d
docker-compose.yaml
Download .yml
x-faraday-image: &faraday-image index.docker.io/faradaysec/faraday:latest  # Use official image from Docker Hub registry or, see below for local development
# x-faraday-image: &faraday-image faraday-local  # For local development, use local image built with `docker-compose build faraday-server`

x-faraday-volumes: &faraday-volumes
  - "faraday:/home/faraday/.faraday:rw"  # by default, store data in a Docker volume.
  # - "$HOME/.faraday:/home/faraday/.faraday:rw"  # Uncomment to use your whole existing `.faraday` folder. Remember to comment the volume above.
  # - "path_to/faraday/cloned/repo:/src"  # Uncomment and adjust path to your local faraday source code directory if you want to use a local development version.

services:
  db:
    image: postgres:12.7-alpine
    restart: always
    container_name: faraday_db
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_DB=faraday
    ports:
      - '5432'
    volumes:
      - "db:/var/lib/postgresql/data:rw"
  redis:
    image: 'redis:8.4-alpine'
    container_name: faraday_redis
    ports:
      - '6379'
  change-password:
    image: *faraday-image
    profiles: ["manual"]
    command: ["faraday-manage", "change-password"]
    volumes: *faraday-volumes
    depends_on:
      - db
  faraday-manage:
    image: *faraday-image
    profiles: [ "manual" ]
    command: [ "faraday-manage" ]
    volumes: *faraday-volumes
    depends_on:
      - db
  faraday-default-worker:
    image: *faraday-image
    restart: always
    container_name: faraday_worker
    command: [ "faraday-worker" ]
    volumes: *faraday-volumes
    environment:
      - PGSQL_USER=postgres
      - PGSQL_PASSWD=postgres
      - PGSQL_HOST=db
      - PGSQL_DBNAME=faraday
      - REDIS_SERVER=redis
    depends_on:
      faraday-server:
        condition: service_healthy
  # Celery Beat scheduler. Run exactly one; do not scale this service.
  faraday-beat:
    image: *faraday-image
    restart: always
    container_name: faraday_beat
    command: [ "faraday-beat" ]
    volumes: *faraday-volumes
    environment:
      - PGSQL_USER=postgres
      - PGSQL_PASSWD=postgres
      - PGSQL_HOST=db
      - PGSQL_DBNAME=faraday
      - REDIS_SERVER=redis
    depends_on:
      faraday-server:
        condition: service_healthy
  faraday-server:
    build:
      context: .
      # args:
      #  - DEV_ENV= 1  # uncomment to use local code source
    image: *faraday-image
    restart: always
    container_name: faraday_server
    entrypoint: "/entrypoint.sh"
    volumes: *faraday-volumes
    environment:
      - PGSQL_USER=postgres
      - PGSQL_PASSWD=postgres
      - PGSQL_HOST=db
      - PGSQL_DBNAME=faraday
      - REDIS_SERVER=redis
    depends_on:
     - db
     - redis
    ports:
     - "5985:5985"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:5985/_api/config"]
      interval: 20s
      timeout: 5s
      retries: 10
volumes:
  db:
    driver: local
  faraday:
    driver: local