A cross-platform real-time file synchronization tool built in Go, supporting local, remote, SFTP, and MinIO sync.
gofs is a cross-platform, real-time file synchronization tool written in Go. It synchronizes files between local directories, remote servers, SFTP servers, and MinIO object storage, solving the problem of automated and secure file distribution across diverse environments. It includes features like encryption, task scheduling, a web UI, and a client-server architecture for scalable operations.
System administrators, DevOps engineers, and developers who need to automate file synchronization across local disks, remote servers, or cloud storage in a secure and reliable manner. It is particularly suited for teams managing distributed file updates, backups, or deployment pipelines.
Developers choose gofs for its out-of-the-box support for multiple protocols (local, remote, SFTP, MinIO), built-in security features like TLS encryption and user authentication, and flexible operation modes including real-time sync, cron-based scheduling, and a scalable task distribution system. Its modular design and comprehensive feature set make it a versatile alternative to simpler sync tools.
A cross-platform real-time file synchronization tool out of the box based on Golang
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Written in Go, it runs out-of-the-box on multiple platforms, including Windows with background mode support, as shown in the installation and Docker sections.
Supports real-time synchronization across local disks, remote servers, SFTP, and MinIO, with detailed diagrams and examples for each scenario in the README.
Includes TLS encryption, user authentication, and file encryption/decryption with configurable secrets, ensuring secure transfers as evidenced by flags like -tls_cert_file and -encrypt.
Task mode allows central server management of sync tasks across multiple clients, enabling scalable operations, detailed in the task server and client sections with YAML configurations.
Offers a web UI via gofs-webui, manage API for profiling and reporting, and a built-in file server with HTTPS/HTTP3 support, making monitoring and control accessible.
With numerous flags and configuration files, setting up advanced features like remote sync or encryption requires careful tuning, as seen in the lengthy command examples and YAML configs.
Requires Go 1.23+ for installation, which can be a hurdle for teams not using Go or in restricted environments, despite Docker alternatives.
Features like sync delay, checksum calculations, and server compression (noted as 'not fast now' in the README) can impact real-time responsiveness and transfer efficiency.
Only supports MinIO for S3-compatible storage, lacking native integration with major cloud providers like AWS S3 or Google Cloud Storage, which may require workarounds.