# Mirror Mirror free and open-source projects you like with minimal effort. Use this project as a service to keep a local or hosted copy of the projects source code or their assets. ## Status This project is in pre-alpha and under active development. Expect rapid and breaking changes. ## Requirements The following applications are required on your system. - Golang >= 1.22.4 - git - rsync ## Verification Verify the project and its assets using the GPG Key included in the project. ``` gpg --import GPG-KEY git commit verify-commit HEAD ``` To verify the projects vendored depnendencies: ``` go mod verify ``` ## Building and Installation ### Slackware You can create a package using the Slackbuild script provided with the project. ``` cd contrib/slackbuild sudo sh *.SlackBuild ``` ### Other Unix-like systems Standard practice is to install under /usr/local/bin ``` sudo GOBIN=/usr/local/sbin go build ./cmd/... ``` ## Configuration Configuration is provided via json file format. - `min-interval` is the minimum time to wait before mirroring a project. - `max-interval` is the minimum time to wait before mirroring a project. - `mirrors` is the list of projects you want mirrored and how. - `rsync` for mirroring files. - `git` for mirroring project source code. - `github-assets` for mirroring Github project assets. Refer to the following example. Mirror will mirror each project at a random interval between 1 and 24 hours. ``` { "min-interval": "1h", "max-interval": "24h", "mirrors": [ { "method": "rsync", "from": "rsync://mirrors.kernel.org/slackware/slackware64-15.0", "to": "/mirror/slackware/slackware64-15.0" }, { "method": "rsync", "from": "rsync://mirrors.kernel.org/slackware/slackware-iso/slackware64-15.0-iso", "to": "/mirror/slackware/slackware64-15.0-iso" }, { "method": "rsync", "from": "rsync://mirrors.kernel.org/slackware/slackware64-current", "to": "/mirror/slackware/slackware64-current" }, { "method": "git", "from": "https://github.com/ytdl-org/youtube-dl", "to": "/srv/git/slackcoder/youtube-dl", "description": "Command-line program to download videos from YouTube.com and other video sites" }, { "method": "github-assets", "from": "https://github.com/ytdl-org/youtube-dl", "to": "/mirror/youtube-dl" } ] } ```