Switch theme to Doks
This commit is contained in:
		
							
								
								
									
										8
									
								
								content/docs/opensend/_index.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								content/docs/opensend/_index.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
---
 | 
			
		||||
title: "OpenSend Docs"
 | 
			
		||||
draft: false
 | 
			
		||||
description: "Documentation for the OpenSend file sharing program"
 | 
			
		||||
menu:
 | 
			
		||||
    docs:
 | 
			
		||||
        parent: "docs"
 | 
			
		||||
---
 | 
			
		||||
							
								
								
									
										37
									
								
								content/docs/opensend/gui.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								content/docs/opensend/gui.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
			
		||||
---
 | 
			
		||||
title: "GUI"
 | 
			
		||||
draft: false
 | 
			
		||||
description: "Opensend fyne GUI"
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
{{< appveyor-ci project="opensend" projectID="wrv3bbuujw57578h" >}}
 | 
			
		||||
{{< minio-s3 project="opensend" >}}
 | 
			
		||||
 | 
			
		||||
This page assumes you have already installed Opensend. If not, follow the installation
 | 
			
		||||
instructions on the installation page.
 | 
			
		||||
 | 
			
		||||
{{< button text="Installation" link="../installation" color="blue">}}
 | 
			
		||||
 | 
			
		||||
### GUI Installation
 | 
			
		||||
 | 
			
		||||
Opensend GUI has been written in golang using [fyne](https://fyne.io). Its source code can be found here:
 | 
			
		||||
 | 
			
		||||
{{< button-gitea text="Opensend GUI" project="opensend-gui" owner="opensend" color="green" >}}
 | 
			
		||||
 | 
			
		||||
To download Opensend GUI, run the following command
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
git clone https://gitea.arsenm.dev/opensend/opensend-gui.git
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
To build Opensend GUI, `go` must be installed. The process for that is explained in the installation instructions for Opensend. Once `go` is installed, run:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
go build
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
This may take a while as `go` downloads and compiles Opensend GUI and Fyne.
 | 
			
		||||
 | 
			
		||||
Once the build is complete, there should be a file named `opensend-gui` in the directory. Run this file to open the GUI which should look like this:
 | 
			
		||||
 | 
			
		||||
{{< image src="/opensend/gui_start.webp" alt="Opensend GUI on start" >}}
 | 
			
		||||
							
								
								
									
										60
									
								
								content/docs/opensend/installation.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								content/docs/opensend/installation.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,60 @@
 | 
			
		||||
---
 | 
			
		||||
title: "Installation"
 | 
			
		||||
draft: false
 | 
			
		||||
description: "Installing opensend"
 | 
			
		||||
---
 | 
			
		||||
{{< appveyor-ci project="opensend" projectID="wrv3bbuujw57578h" >}}
 | 
			
		||||
{{< minio-s3 project="opensend" >}}
 | 
			
		||||
 | 
			
		||||
## Using precompiled binary
 | 
			
		||||
Opensend uses continuous integration to compile. You can find the binary by clicking the download binary badge above.
 | 
			
		||||
 | 
			
		||||
## Building from source
 | 
			
		||||
 | 
			
		||||
### Downloading
 | 
			
		||||
Opensend is hosted on Gitea.
 | 
			
		||||
 | 
			
		||||
{{< button-gitea color="green" project="opensend" owner="opensend" text="Opensend" >}}
 | 
			
		||||
 | 
			
		||||
To download opensend, you can either use the download button on one of the above, or
 | 
			
		||||
you can use the git command
 | 
			
		||||
 | 
			
		||||
To clone opensend using the command, run the following command:
 | 
			
		||||
```bash
 | 
			
		||||
git clone https://gitea.arsenm.dev/opensend/opensend.git
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Now, you will want to `cd` into the root of this repo before completing the rest
 | 
			
		||||
of these instructions
 | 
			
		||||
 | 
			
		||||
### Building
 | 
			
		||||
 | 
			
		||||
Since Opensend is written in go, you will need go installed in order to compile it.
 | 
			
		||||
Most linux distros call the package providing it either `go` or `golang`.
 | 
			
		||||
 | 
			
		||||
Once go is installed, you can check that it runs by running
 | 
			
		||||
```bash
 | 
			
		||||
go version
 | 
			
		||||
```
 | 
			
		||||
To compile Opensend, run the following command:
 | 
			
		||||
```bash
 | 
			
		||||
make
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Installing
 | 
			
		||||
 | 
			
		||||
To install opensend, run one of the following commands:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
sudo make install # Linux
 | 
			
		||||
sudo make install-macos # macOS
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Once this command completes, to test whether opensend was installed properly, run
 | 
			
		||||
this command:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
opensend -h
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
You should get the usage for opensend.
 | 
			
		||||
							
								
								
									
										53
									
								
								content/docs/opensend/usage.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								content/docs/opensend/usage.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,53 @@
 | 
			
		||||
---
 | 
			
		||||
title: "Usage"
 | 
			
		||||
draft: false
 | 
			
		||||
description: "Using opensend"
 | 
			
		||||
---
 | 
			
		||||
{{< appveyor-ci project="opensend" projectID="wrv3bbuujw57578h" >}}
 | 
			
		||||
{{< minio-s3 project="opensend" >}}
 | 
			
		||||
 | 
			
		||||
This page assumes you have already installed Opensend. If not, follow the installation
 | 
			
		||||
instructions on the installation page.
 | 
			
		||||
 | 
			
		||||
{{< button text="Installation" link="../installation" color="blue">}}
 | 
			
		||||
 | 
			
		||||
### Configuration
 | 
			
		||||
Opensend allows configuration by TOML and by command line flags. It looks at the following paths for configs in the specified order:
 | 
			
		||||
 | 
			
		||||
#### Config files
 | 
			
		||||
 | 
			
		||||
1. Config path from `--config` flag
 | 
			
		||||
2. `~/.config/opensend.toml`
 | 
			
		||||
3. `/etc/opensend.toml`
 | 
			
		||||
 | 
			
		||||
#### Command line flags
 | 
			
		||||
 | 
			
		||||
```text
 | 
			
		||||
Usage of opensend:
 | 
			
		||||
  -d string
 | 
			
		||||
        Data to send
 | 
			
		||||
  -dest-dir string
 | 
			
		||||
        Destination directory for files or dirs sent over opensend (default "/home/arsen/Downloads")
 | 
			
		||||
  -r    Receive data
 | 
			
		||||
  -s    Send data
 | 
			
		||||
  -send-to string
 | 
			
		||||
        Use IP address of receiver instead of mDNS
 | 
			
		||||
  -skip-mdns
 | 
			
		||||
        Skip zeroconf service registration (use if mdns fails)
 | 
			
		||||
  -t string
 | 
			
		||||
        Type of data being sent
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
The purpose of the mdns-skipping flags is to account for the iSH app in iOS, as the mdns resolver and registration fails on it.
 | 
			
		||||
 | 
			
		||||
### Algorithms and software used
 | 
			
		||||
 | 
			
		||||
- RSA for asymmetric encryption
 | 
			
		||||
- AES for symmetric encryption
 | 
			
		||||
- Tar for archiving directories
 | 
			
		||||
- Zstandard for compression
 | 
			
		||||
- Base91 for encoding
 | 
			
		||||
- Gob for serialization
 | 
			
		||||
- JSON for serialization
 | 
			
		||||
- TCP sockets for transfer
 | 
			
		||||
- Zeroconf/mDNS for device discovery
 | 
			
		||||
		Reference in New Issue
	
	Block a user