Sign inSign up

ghenry22/file-check

By ghenry22

•Updated 12 months ago

Compare the contents of two folders to ensure they are the same.

Image
Content management system
0

1.6K

ghenry22/file-check repository overview

⁠File Check

This app is designed to compare the contents of two folders and check for any inconsistency in the contents. It will scan all subfolders and will identify:

  • Files that are present in only one of the folders
  • Files that match but have different sizes
  • Files that match in name and location but have different checksums

You can configure multiple folder pairs to scan and click to start scanning them, scans continue in the background so you can come back and check the results later.

Note that full checksum comparisons can take a long time on large datasets.

⁠Docker Deployment Guide

This guide explains how to build and deploy the File Check application using Docker.

⁠Quick Start

  1. Edit the docker-compose.yml file to specify your directory paths:

    volumes:
      # This must be set to a path on your host machine to persist data
      - "/path/to/config:/conf"
    
      # Replace these paths with your actual directories
      - "/path/to/your/directory1:/data/dir1:ro"
      - "/path/to/your/directory2:/data/dir2:ro"
    
  2. Build and start the container:

    docker-compose up -d
    
  3. Access the application:

⁠Container Details

⁠Ports
  • 7171: Frontend web interface (Angular)
  • 3000: Backend API (NestJS)
⁠Volumes
  • Directory mappings: Your local directories mounted read-only & database persistence location
⁠Database Location
  • Inside container: /conf/database.sqlite

⁠Troubleshooting

⁠Container won't start
# Check logs
docker-compose logs

# Verify volume paths exist
ls -la /path/to/your/directory1
ls -la /path/to/your/directory2
⁠Database issues

Ensure that you have mapped a volume for the /conf path so that your data is persisted

⁠Permission issues

Ensure the directories you're mounting are readable by the container user (node:node, UID 1000).

⁠Security Notes

  • Directories are mounted read-only (:ro) for safety
  • The application runs as non-root user inside the container
  • Database uses a mapped volume
  • No sensitive data is exposed through environment variables

⁠Example Docker Compose Configuration

version: '3.8'

services:
  file-check:
    image: ghenry22/file-check:latest
    ports:
      - "7171:7171"  # Frontend port
      - "3000:3000"  # Backend API port
    volumes:
      # Database persistence
      # This must be set to a path on your host machine to persist data
      # - "/path/to/config:/conf"
      # Directory comparison volumes - CUSTOMIZE THESE PATHS
      # Replace with actual accessible paths on your system
      # You can add as many folders as needed
      # - "/path/to/backup:/data/backup:ro"
      # - "/path/to/archive:/data/archive:ro"
    environment:
      - DB_PATH=/conf/database.sqlite
      - NODE_ENV=production
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:7171"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

Tag summary

Content type

Image

Digest

sha256:bee3637e8…

Size

281.6 MB

Last updated

12 months ago

docker pull ghenry22/file-check