mirror of
https://github.com/DumbWareio/DumbDrop.git
synced 2025-11-01 20:43:38 +00:00
* feat(docker): Enhance Docker configuration and entrypoint management - Updated .env.example to include user/group ID and umask settings for better file permission management in Docker. - Modified docker-compose.yml to specify version and added restart policy for the service. - Enhanced Dockerfile to create user/group based on ARG values and set umask for file creation. - Introduced entrypoint.sh script to manage user permissions and execute commands with appropriate privileges. These changes improve the Docker setup for better handling of file permissions and user management, ensuring a smoother development and deployment experience. * - Update dockerfile to use existing PUID, PGID if exists and create one as fallback. - include environment variables in docker compose as well --------- Co-authored-by: gitmotion <43588713+gitmotion@users.noreply.github.com>
42 lines
2.4 KiB
YAML
42 lines
2.4 KiB
YAML
services:
|
|
dumbdrop:
|
|
image: dumbwareio/dumbdrop:latest
|
|
ports:
|
|
- 3000:3000
|
|
volumes:
|
|
# Replace "./local_uploads" ( before the colon ) with the path where the files land
|
|
- ./local_uploads:/app/uploads
|
|
environment: # Environment variables for the DumbDrop service
|
|
# Explicitly set upload directory inside the container
|
|
UPLOAD_DIR: /app/uploads
|
|
DUMBDROP_TITLE: DumbDrop # The title shown in the web interface
|
|
MAX_FILE_SIZE: 1024 # Maximum file size in MB
|
|
DUMBDROP_PIN: 123456 # Optional PIN protection (4-10 digits, leave empty to disable)
|
|
AUTO_UPLOAD: true # Upload without clicking button
|
|
BASE_URL: http://localhost:3000 # The base URL for the application
|
|
|
|
# Additional available environment variables (commented out with defaults)
|
|
# FOOTER_LINKS: "My Site @ https://example.com,Docs @ https://docs.example.com" # Custom footer links
|
|
# PORT: 3000 # Server port (default: 3000)
|
|
# NODE_ENV: production # Node environment (development/production)
|
|
# APPRISE_URL: "" # Apprise notification URL for upload notifications (default: none)
|
|
# APPRISE_MESSAGE: "New file uploaded - {filename} ({size}), Storage used {storage}" # Notification message template with placeholders: {filename}, {size}, {storage}
|
|
# APPRISE_SIZE_UNIT: "Auto" # Size unit for notifications (B, KB, MB, GB, TB, or Auto)
|
|
# ALLOWED_EXTENSIONS: ".jpg,.jpeg,.png,.pdf,.doc,.docx,.txt" # Comma-separated list of allowed file extensions (default: all allowed)
|
|
# PUID: 1000 # User ID for file ownership (default: 1000)
|
|
# PGID: 1000 # Group ID for file ownership (default: 1000)
|
|
# UMASK: "000" # File permissions mask (default: 000)
|
|
restart: unless-stopped
|
|
# user: "${PUID}:${PGID}" # Don't set user here, entrypoint handles it
|
|
# Consider adding healthcheck
|
|
# healthcheck:
|
|
# test: ["CMD", "curl", "--fail", "http://localhost:3000/health"] # Assuming a /health endpoint exists
|
|
# interval: 30s
|
|
# timeout: 10s
|
|
# retries: 3
|
|
# healthcheck:
|
|
# test: ["CMD", "curl", "--fail", "http://localhost:3000/health"]
|
|
# interval: 30s
|
|
# timeout: 10s
|
|
# retries: 3
|
|
# start_period: 30s |