Kopycat - Easy to use directory synchronization
Kopycat is a cross-platform directory synchronization tool. It can run as a background service, so you don't have to worry about leaving it open or accidentally closing it. It has all the features you'd expect from a sync tool π
π¨ Compatibility and usability π¨
Kopycat does work in it's current state but it's nowhere near being production ready yet.
When the planned ease of use and readyness of Kopycat are met, it will be released as v1.0.0.
If the current realese version is lower than v1.0.0 be ready for some breaking changes and difficulties
when using Kopycat.
Right now Kopycat has only been tested on Windows, if you want to contribute by testing or improving it on macOS or Linux please open an issue.
Usage
To use Kopycat, download the latest release from the releases page and run it.
By default, Kopycat runs in terminal mode where it is fully functional and operates like any other application.
[!NOTE]
Please keep in mind all configuration files and logs are stored relative to the binary, so make sure you aren't running it from Downloads
π
To install Kopycat as a service, use the install
flag (if the service is already installed, install
will attempt to reinstall it).
[!WARNING]
This will require admin privileges.
On Windows, run in an elevated shell, and on Linux, use sudo
.
From here, you can pass these flags to Kopycat with admin privileges to manage the installed service:
start
to start the service (install
automatically starts the service on install)
restart
to restart the service if there are any issues
stop
to stop the service without restarting it
remove
to stop and uninstall the service
After running Kopycat in any mode, you can open the locally hosted web GUI at http://localhost:42069 to configure it.
The port is set to 42069
by default but can be changed with the -port
flag.
[!IMPORTANT]
π¨ DO NOT USE KOPYCAT TO SYNC WHOLE DRIVES OR LARGE DIRECTORIES π¨
It was not designed to handle these cases and may malfunction or consume a lot of system resources.
What to sync βοΈ
Example sync targets |
For use with Kopycat? |
~/ (Obviously) |
β |
~/Pictures (Typically large) |
β |
~/Videos (Typically large) |
β |
~/.config (Small things like configs) |
β
|
Note about releases
I do not own a Mac nor do I have Xcode. Because of this, releases contain a Mach-O binary for macOS but it is not packaged as a .app
or .dmg
.
Project Scope
This isn't a complete list by any means, but it should serve as a baseline of what you can expect from Kopycat.
- Run as a service (tested on Windows, theoretically should be compatible with Linux and macOS)
- Locally hosted web GUI for configuration
- Terminal mode when running as a normal app
- Control over resource usage (this is a hard one and I'm not entirely sure I will be able to achive it in GO)
- Decoupling log cleaning from the start or restart of the app