mirror of
https://github.com/GopeedLab/gopeed.git
synced 2026-11-05 16:15:43 +00:00
163 lines
4.0 KiB
Markdown
163 lines
4.0 KiB
Markdown
[](https://github.com/monkeyWie/gopeed/actions?query=workflow%3Atest)
|
|
[](https://codecov.io/gh/monkeyWie/gopeed)
|
|
[](https://github.com/monkeyWie/gopeed/releases)
|
|
[](https://discord.gg/ZUJqJrwCGB)
|
|
|
|

|
|
|
|
[English](/README.md) | [中文](/README_zh-CN.md)
|
|
|
|
## Introduction
|
|
|
|
Gopeed is a high-speed downloader developed by `Golang`+`Flutter`, which supports (HTTP, BitTorrent, Magnet) protocol downloads and supports all platforms.
|
|
|
|
## Installation
|
|
|
|
**Supported platforms**
|
|
|
|
- [x] windows
|
|
- [x] macos
|
|
- [x] linux
|
|
- [x] android
|
|
- [ ] ios
|
|
- [x] web
|
|
- [x] docker
|
|
|
|
[To Release](https://github.com/monkeyWie/gopeed/releases/latest)
|
|
|
|
> Tips: If the macos open failed, please execute the `xattr -d com.apple.quarantine /Applications/Gopeed.app` command in the terminal
|
|
|
|
### Command tool
|
|
|
|
use `go install`:
|
|
|
|
```bash
|
|
go install github.com/monkeyWie/gopeed/cmd/gopeed
|
|
```
|
|
|
|
### Docker
|
|
|
|
#### Start directly
|
|
|
|
```bash
|
|
docker run -d -p 9999:9999 -v /path/to/download:/download liwei2633/gopeed
|
|
```
|
|
|
|
#### Using Docker Compose
|
|
|
|
```yaml
|
|
version: '3'
|
|
|
|
services:
|
|
gopeed:
|
|
container_name: gopeed
|
|
ports:
|
|
- 9999:9999
|
|
image: liwei2633/gopeed
|
|
volumes:
|
|
- ~/Downloads:/download
|
|
restart: unless-stopped
|
|
```
|
|
|
|
Use the command below to start container:
|
|
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
|
|
#### Access Gopeed
|
|
|
|
When the docker container is running, you can access the web page through `http://localhost:9999`.
|
|
> Tip: Modify the download path to `/download` on the setting page to access the downloaded files on the host.
|
|
|
|
## Showcase
|
|
|
|

|
|
|
|
## Development
|
|
|
|
This project is divided into two parts, the front end uses `flutter`, the back end uses `Golang`, and the two sides communicate through the `http` protocol. On the unix system, `unix socket` is used, and on the windows system, `tcp` protocol is used.
|
|
|
|
> The front code is located in the `ui/flutter` directory.
|
|
|
|
### Environment
|
|
|
|
1. Golang 1.19+
|
|
2. Flutter 3.0+
|
|
|
|
### Clone
|
|
|
|
```bash
|
|
git clone [email protected]:monkeyWie/gopeed.git
|
|
```
|
|
|
|
### Build
|
|
|
|
#### Desktop
|
|
|
|
First, you need to configure the environment according to the [flutter desktop official website document](https://docs.flutter.dev/development/platform-integration/desktop), and then you need to prepare the `cgo` environment, which can be searched for yourself.
|
|
|
|
command:
|
|
|
|
- windows
|
|
|
|
```bash
|
|
go build -tags nosqlite -ldflags="-w -s" -buildmode=c-shared -o ui/flutter/windows/libgopeed.dll github.com/monkeyWie/gopeed/bind/desktop
|
|
cd ui/flutter
|
|
flutter build windows
|
|
```
|
|
|
|
- macos
|
|
|
|
```bash
|
|
go build -tags nosqlite -ldflags="-w -s" -buildmode=c-shared -o ui/flutter/macos/Frameworks/libgopeed.dylib github.com/monkeyWie/gopeed/bind/desktop
|
|
cd ui/flutter
|
|
flutter build macos
|
|
```
|
|
|
|
- linux
|
|
|
|
```bash
|
|
go build -tags nosqlite -ldflags="-w -s" -buildmode=c-shared -o ui/flutter/linux/bundle/lib/libgopeed.so github.com/monkeyWie/gopeed/bind/desktop
|
|
cd ui/flutter
|
|
flutter build linux
|
|
```
|
|
|
|
#### Mobile
|
|
|
|
Same as before, you also need to prepare the `cgo` environment, and then install `gomobile`:
|
|
|
|
```bash
|
|
go install golang.org/x/mobile/cmd/gomobile@latest
|
|
gomobile init
|
|
```
|
|
|
|
command:
|
|
|
|
- android
|
|
|
|
```bash
|
|
gomobile bind -tags nosqlite -ldflags="-w -s" -o ui/flutter/android/app/libs/libgopeed.aar -target=android -androidapi 19 -javapkg=com.gopeed github.com/monkeyWie/gopeed/bind/mobile
|
|
cd ui/flutter
|
|
flutter build apk
|
|
```
|
|
|
|
#### Web
|
|
|
|
Web platform communicates directly with the backend http server, no additional environment is required.
|
|
|
|
command:
|
|
|
|
```bash
|
|
cd ui/flutter
|
|
flutter build web
|
|
cd ../../
|
|
rm -rf cmd/web/dist
|
|
cp -r ui/flutter/build/web cmd/web/dist
|
|
go build -tags nosqlite,web -ldflags="-s -w" -o bin/ github.com/monkeyWie/gopeed/cmd/web
|
|
````
|
|
|
|
## License
|
|
|
|
[GPLv3](LICENSE)
|