1
0
mirror of https://github.com/coalaura/up.git synced 2025-07-17 21:44:35 +00:00
Files
up/README.md

63 lines
2.1 KiB
Markdown
Raw Normal View History

2025-06-20 23:27:52 +02:00
2025-06-21 00:15:01 +02:00
UP is a simple file transfer tool that acts as a drop-in replacement for `scp` and `sftp`. It sends data over HTTPS for much faster uploads without any extra setup. Up uses your existing SSH keys and reads `~/.ssh/config` so you can keep working with the host aliases you already have.
2025-06-20 23:27:52 +02:00
## Why UP?
- Transfers are noticeably quicker than traditional `scp` or `sftp`.
- No setup: use the same SSH keys and host aliases you already have.
2025-06-21 00:15:01 +02:00
- Small single binary for sending and receiving.
2025-06-20 23:27:52 +02:00
2025-06-21 00:27:10 +02:00
## Installation
You can bootstrap **up** with a single command.
This script will detect your OS (`linux`/`darwin`) and CPU (`amd64`/`arm64`),
download the correct binary and install it to `/usr/local/bin/up`.
```bash
curl -sL https://raw.githubusercontent.com/coalaura/up/master/install.sh | sh
```
2025-06-20 23:27:52 +02:00
## Quick Start
2025-06-20 23:40:37 +02:00
Pre-built binaries for common operating systems are available in the [releases](https://github.com/coalaura/up/releases/latest). Choose the download that matches your OS and architecture or build the latest development version yourself:
2025-06-20 23:27:52 +02:00
```bash
2025-06-21 00:15:01 +02:00
go build -o up .
2025-06-20 23:27:52 +02:00
```
Start the server (listens on port 7966) and then upload a file:
```bash
2025-06-21 00:15:01 +02:00
./up receive
2025-06-20 23:27:52 +02:00
2025-06-21 00:15:01 +02:00
./up send very_big.tar.xz localhost:7966
2025-06-20 23:27:52 +02:00
```
2025-06-21 00:15:01 +02:00
Uploaded files are stored under the server's `files/` directory. Up will prompt to trust the server's certificate on first use and will remember it afterwards. Up is built to work behind reverse proxies like nginx.
2025-06-20 23:27:52 +02:00
2025-06-21 00:49:17 +02:00
## Reverse Proxy Setup
Here is an example nginx configuration that proxies HTTPS traffic to an Up server running locally. Replace the certificate paths with your own.
```nginx
server {
listen 443 ssl;
server_name up.example.com;
ssl_certificate /etc/ssl/certs/example.pem;
ssl_certificate_key /etc/ssl/private/example.key;
location / {
proxy_pass https://127.0.0.1:7966;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_ssl_verify off;
}
}
```
2025-06-20 23:27:52 +02:00
## License
2025-06-21 00:15:01 +02:00
This project is licensed under the GNU General Public License v3.0 License. See [LICENSE](LICENSE) for details.