aboutsummaryrefslogtreecommitdiffsponsor
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md102
1 files changed, 102 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..6ac2e91
--- /dev/null
+++ b/README.md
@@ -0,0 +1,102 @@
+# 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"
+ }
+ ]
+}
+```