- Add generate-password.js for Node.js password hash generation
- Add generate-password-docker.sh for Docker-based generation
- Add test-password.sh to verify password against current hash
These scripts help users generate correct bcrypt hashes for the
ADMIN_PASSWORD_HASH environment variable.
Usage:
- Generate new hash: ./scripts/generate-password-docker.sh
- Test current password: ./scripts/test-password.sh
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update setupProxy.js to forward X-Real-IP and X-Forwarded-For headers
- Improve IP detection in backend middleware to prioritize X-Real-IP
- Add debug logging for IP detection in development mode
- Update .env.example with clearer IP configuration examples
- Enable debug logging in docker-compose.dev.yml
This fixes the issue where Docker network IPs (172.20.x.x) were being
detected instead of the real client IP addresses.
To fix IP restrictions, update your .env file:
ALLOWED_IPS=10.30.30.0/24,<your-other-ips>
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add setupProxy.js to proxy API calls to backend container
- Install http-proxy-middleware for development proxy support
- Update docker-compose.dev.yml to use backend service name
- Add HOST=0.0.0.0 to allow external connections to dev server
- Add empty favicon.ico to prevent 500 errors
- Update proxy configuration to use port 7510
This fixes the ERR_CONNECTION_REFUSED errors when the frontend
tries to connect to the backend API in Docker environment.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove custom nodejs user creation that was causing GID 1000 conflicts
- Use the built-in 'node' user from node:alpine image
- Update volume mount path from /home/nodejs to /home/node
- Simplify Dockerfile by removing unnecessary user creation
This fixes the "addgroup: gid '1000' in use" error during Docker build.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Explicitly set NODE_ENV=development during npm install to include devDependencies
- Add NODE_ENV=development environment variable in Dockerfile
- Add fallback dev:node script using Node.js --watch flag
- Ensure nodemon is installed with other development dependencies
This fixes the "sh: nodemon: not found" error in the development container.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create dedicated Dockerfile.backend.dev for development with proper permissions
- Set user UID/GID to 1000 (common for development systems)
- Create logs and temp directories in Dockerfile before switching user
- Use named volumes for logs, temp, and node_modules to maintain permissions
- Mount only source files instead of entire backend directory
- Remove complex entrypoint script in favor of simple CMD
- Add LOG_DIR and TEMP_DIR environment variables
This fixes the "Permission denied" errors when creating directories in Docker.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix MinIO service temp directory path (was going to /temp instead of /app/temp)
- Add TEMP_DIR environment variable support
- Make audit logger optional in development mode to avoid permission issues
- Ensure log directory exists before creating loggers
- Update docker-entrypoint.sh to create temp directory
- Create backend/temp directory with .gitkeep
- Update .gitignore to exclude temp files but keep directory structure
This fixes the EACCES permission errors that were causing the backend to restart.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Change default ports to 7510 (backend) and 7511 (frontend) to avoid conflicts
- Add PORT environment variable support for both services
- Create docker-compose.dev.yml for development without SSL/nginx
- Add development script (scripts/dev.sh) for easy local development
- Create comprehensive port configuration documentation
- Update docker-compose.yml to support dynamic port configuration
- Add frontend .env.example with development settings
This allows running the application on custom ports internally without SSL,
making it easier to integrate with existing infrastructure.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix logger path to use relative path from backend directory
- Add LOG_DIR environment variable support for custom log paths
- Create logs directory with .gitkeep to ensure it exists
- Add docker-entrypoint.sh to handle runtime permissions
- Optimize Dockerfile to set proper permissions for nodejs user
- Ensure logs directory is writable by the application
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Make createUser field required in FormData interface to match yup schema
- Add explicit optional handling for username/password in yup schema
- Fix Docker FROM casing warning (as -> AS)
- Ensure TypeScript compilation passes without errors
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix .gitignore excluding frontend/public directory
- Add index.html and manifest.json to version control
- Remove unnecessary favicon references
- These files are essential for React build process
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix TypeScript type mismatch in CreateBucketDialog component
- Make form fields optional to match yup schema validation
- Add comprehensive Gitea Actions workflows for testing and deployment
- Set up parallel testing for backend and frontend
- Configure Docker build verification in CI pipeline
- Add deployment workflow with staging and production environments
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace deprecated docker-compose with docker compose
- Add package-lock.json files for backend and frontend
- Fix npm ci deployment errors
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added 5 methods to obtain MinIO access keys and secrets
- Included MinIO Console, mc client, server startup, Docker, and Kubernetes methods
- Added best practices for credential management
- Provided example of creating limited service accounts
- Included sample IAM policy for MinIO WebUI operations
- Emphasized security practices like not using root credentials
- Backend: Express.js API with MinIO CLI integration
- Frontend: React with Material-UI for non-technical users
- Features: Bucket management, user creation, storage monitoring
- Security: JWT auth, IP filtering, encrypted passwords
- Docker support for easy deployment
- Automated weekly storage reports
- Setup and deployment scripts included