mirror of
https://github.com/schollz/croc.git
synced 2025-10-11 05:11:06 +02:00
Merge branch 'master' of github.com:schollz/croc
This commit is contained in:
commit
59b287df7f
3 changed files with 56 additions and 39 deletions
38
.github/ISSUE_TEMPLATE/bug_report.md
vendored
38
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
@ -2,28 +2,40 @@
|
|||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: ''
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
<!-- The comments between these brackets won't show up in the submitted issue (as you can see in the Preview). -->
|
||||
|
||||
**Please try to [download the latest version](https://github.com/schollz/croc/releases/latest) of croc before reporting a bug!**
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
<!-- Please try to download latest, https://github.com/schollz/croc/releases/latest of croc before reporting a bug! -->
|
||||
|
||||
**To Reproduce**
|
||||
## Describe the bug
|
||||
<-- A clear and concise description of what the bug is. -->
|
||||
|
||||
|
||||
## To Reproduce
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
<-- 1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
4. See error -->
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
4.
|
||||
|
||||
## Expected behaviour
|
||||
<-- A clear and concise description of what you expected to happen. -->
|
||||
|
||||
|
||||
## Version
|
||||
<-- Check "croc -v" and report it -->
|
||||
|
||||
|
||||
## Additional context
|
||||
<-- Add any other context about the problem here. -->
|
||||
|
||||
**Version**
|
||||
Check `croc -version` and report it.
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
|
|
48
README.md
48
README.md
|
@ -37,74 +37,74 @@ For more information about `croc`, see [my blog post](https://schollz.com/softwa
|
|||
Download [the latest release for your system](https://github.com/schollz/croc/releases/latest), or install a release from the command-line:
|
||||
|
||||
```
|
||||
$ curl https://getcroc.schollz.com | bash
|
||||
curl https://getcroc.schollz.com | bash
|
||||
```
|
||||
|
||||
|
||||
On macOS you can install the latest release with [Homebrew](https://brew.sh/):
|
||||
|
||||
```
|
||||
$ brew install croc
|
||||
brew install croc
|
||||
```
|
||||
|
||||
On macOS you can also install the latest release with [MacPorts](https://macports.org/):
|
||||
|
||||
```
|
||||
$ sudo port selfupdate
|
||||
$ sudo port install croc
|
||||
sudo port selfupdate
|
||||
sudo port install croc
|
||||
```
|
||||
|
||||
On Windows you can install the latest release with [Scoop](https://scoop.sh/) or [Chocolatey](https://chocolatey.org):
|
||||
|
||||
```
|
||||
$ scoop install croc
|
||||
scoop install croc
|
||||
```
|
||||
|
||||
```
|
||||
$ choco install croc
|
||||
choco install croc
|
||||
```
|
||||
|
||||
On Unix you can install the latest release with [Nix](https://nixos.org/nix):
|
||||
|
||||
```
|
||||
$ nix-env -i croc
|
||||
nix-env -i croc
|
||||
```
|
||||
|
||||
|
||||
On Alpine Linux you have to install dependencies first:
|
||||
|
||||
```
|
||||
$ apk add bash coreutils
|
||||
$ wget -qO- https://getcroc.schollz.com | bash
|
||||
apk add bash coreutils
|
||||
wget -qO- https://getcroc.schollz.com | bash
|
||||
```
|
||||
|
||||
On Arch Linux you can install the latest release with `pacman`:
|
||||
|
||||
```
|
||||
$ pacman -S croc
|
||||
pacman -S croc
|
||||
```
|
||||
|
||||
On Gentoo you can install with `portage`:
|
||||
```
|
||||
$ emerge net-misc/croc
|
||||
emerge net-misc/croc
|
||||
```
|
||||
|
||||
On Termux you can install with `pkg`:
|
||||
|
||||
```
|
||||
$ pkg install croc
|
||||
pkg install croc
|
||||
```
|
||||
|
||||
On FreeBSD you can install with `pkg`:
|
||||
|
||||
```
|
||||
$ pkg install croc
|
||||
pkg install croc
|
||||
```
|
||||
|
||||
Or, you can [install Go](https://golang.org/dl/) and build from source (requires Go 1.12+):
|
||||
|
||||
```
|
||||
$ GO111MODULE=on go get -v github.com/schollz/croc/v8
|
||||
GO111MODULE=on go get -v github.com/schollz/croc/v8
|
||||
```
|
||||
|
||||
|
||||
|
@ -122,7 +122,7 @@ Code is: code-phrase
|
|||
Then to receive the file (or folder) on another computer, you can just do
|
||||
|
||||
```
|
||||
$ croc code-phrase
|
||||
croc code-phrase
|
||||
```
|
||||
|
||||
The code phrase is used to establish password-authenticated key agreement ([PAKE](https://en.wikipedia.org/wiki/Password-authenticated_key_agreement)) which generates a secret key for the sender and recipient to use for end-to-end encryption.
|
||||
|
@ -134,7 +134,7 @@ There are a number of configurable options (see `--help`). A set of options (lik
|
|||
You can send with your own code phrase (must be more than 4 characters).
|
||||
|
||||
```
|
||||
$ croc send --code [code-phrase] [file(s)-or-folder]
|
||||
croc send --code [code-phrase] [file(s)-or-folder]
|
||||
```
|
||||
|
||||
### Use pipes - stdin and stdout
|
||||
|
@ -142,13 +142,13 @@ $ croc send --code [code-phrase] [file(s)-or-folder]
|
|||
You can pipe to `croc`:
|
||||
|
||||
```
|
||||
$ cat [filename] | croc send
|
||||
cat [filename] | croc send
|
||||
```
|
||||
|
||||
In this case `croc` will automatically use the stdin data and send and assign a filename like "croc-stdin-123456789". To receive to `stdout` at you can always just use the `--yes` will automatically approve the transfer and pipe it out to `stdout`.
|
||||
|
||||
```
|
||||
$ croc --yes [code-phrase] > out
|
||||
croc --yes [code-phrase] > out
|
||||
```
|
||||
|
||||
All of the other text printed to the console is going to `stderr` so it will not interfere with the message going to `stdout`.
|
||||
|
@ -159,7 +159,7 @@ All of the other text printed to the console is going to `stderr` so it will not
|
|||
Sometimes you want to send URLs or short text. In addition to piping, you can easily send text with `croc`:
|
||||
|
||||
```
|
||||
$ croc send --text "hello world"
|
||||
croc send --text "hello world"
|
||||
```
|
||||
|
||||
This will automatically tell the receiver to use `stdout` when they receive the text so it will be displayed.
|
||||
|
@ -170,7 +170,7 @@ This will automatically tell the receiver to use `stdout` when they receive the
|
|||
You can use a proxy as your connection to the relay by adding a proxy address with `--socks5`. For example, you can send via a tor relay:
|
||||
|
||||
```
|
||||
$ croc --socks5 "127.0.0.1:9050" send SOMEFILE
|
||||
croc --socks5 "127.0.0.1:9050" send SOMEFILE
|
||||
```
|
||||
|
||||
### Self-host relay
|
||||
|
@ -178,7 +178,7 @@ $ croc --socks5 "127.0.0.1:9050" send SOMEFILE
|
|||
The relay is needed to staple the parallel incoming and outgoing connections. By default, `croc` uses a public relay but you can also run your own relay:
|
||||
|
||||
```
|
||||
$ croc relay
|
||||
croc relay
|
||||
```
|
||||
|
||||
By default it uses TCP ports 9009-9013. Make sure to open those up. You can customized the ports (e.g. `croc relay --ports 1111,1112`), but you must have a minimum of **2** ports for the relay. The first port is for communication and the subsequent ports are used for the multiplexed data transfer.
|
||||
|
@ -186,7 +186,7 @@ By default it uses TCP ports 9009-9013. Make sure to open those up. You can cust
|
|||
You can send files using your relay by entering `--relay` to change the relay that you are using if you want to custom host your own.
|
||||
|
||||
```
|
||||
$ croc --relay "myrelay.example.com:9009" send [filename]
|
||||
croc --relay "myrelay.example.com:9009" send [filename]
|
||||
```
|
||||
|
||||
Note, when sending, you only need to include the first port (the communication port). The subsequent ports for data transfer will be transmitted back to the user from the relay.
|
||||
|
@ -197,13 +197,13 @@ If it's easier you can also run a relay with Docker:
|
|||
|
||||
|
||||
```
|
||||
$ docker run -d -p 9009-9013:9009-9013 -e CROC_PASS='YOURPASSWORD' schollz/croc
|
||||
docker run -d -p 9009-9013:9009-9013 -e CROC_PASS='YOURPASSWORD' schollz/croc
|
||||
```
|
||||
|
||||
Be sure to include the password for the relay otherwise any requests will be rejected.
|
||||
|
||||
```
|
||||
$ croc --pass YOURPASSWORD --relay "myreal.example.com:9009" send [filename]
|
||||
croc --pass YOURPASSWORD --relay "myreal.example.com:9009" send [filename]
|
||||
```
|
||||
|
||||
Note: when including `--pass YOURPASSWORD` you can instead pass a file with the password, e.g. `--pass FILEWITHPASSWORD`.
|
||||
|
|
|
@ -130,10 +130,15 @@ func getConfigDir() (homedir string, err error) {
|
|||
log.Error(err)
|
||||
return
|
||||
}
|
||||
homedir = path.Join(homedir, ".config", "croc")
|
||||
if xdgConfigHome, isSet := os.LookupEnv("XDG_CONFIG_HOME"); isSet {
|
||||
|
||||
if envHomedir, isSet := os.LookupEnv("CROC_CONFIG_DIR"); isSet {
|
||||
homedir = envHomedir
|
||||
} else if xdgConfigHome, isSet := os.LookupEnv("XDG_CONFIG_HOME"); isSet {
|
||||
homedir = path.Join(xdgConfigHome, "croc")
|
||||
} else {
|
||||
homedir = path.Join(homedir, ".config", "croc")
|
||||
}
|
||||
|
||||
if _, err = os.Stat(homedir); os.IsNotExist(err) {
|
||||
log.Debugf("creating home directory %s", homedir)
|
||||
err = os.MkdirAll(homedir, 0700)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue