ljw 1 год назад
Родитель
Сommit
c827a4e335
6 измененных файлов с 155 добавлено и 6 удалено
  1. 37 0
      Dockerfile
  2. 64 2
      README.md
  3. 1 0
      build.bat
  4. 3 2
      build.sh
  5. 50 0
      docker-compose.yaml
  6. 0 2
      http/controller/admin/login.go

+ 37 - 0
Dockerfile

@@ -0,0 +1,37 @@
1
+FROM golang:1.22 as builder
2
+
3
+RUN set -eux; \
4
+    apt update; \
5
+    apt install nodejs npm -y; \
6
+    git clone https://github.com/lejianwen/rustdesk-api; \
7
+    #先编译后台
8
+    git clone https://github.com/lejianwen/rustdesk-api-web; \
9
+    cd rustdesk-api-web; \
10
+    npm install; \
11
+    npm run build; \
12
+    cd ..; \
13
+    mkdir -p rustdesk-api/resources/admin; \
14
+    cp -ar rustdesk-api-web/dist/* rustdesk-api/resources/admin; \
15
+        cd rustdesk-api; \
16
+        go mod tidy; \
17
+        go install github.com/swaggo/swag/cmd/swag@latest; \
18
+    go env -w GO111MODULE=on;\
19
+    go env -w CGO_ENABLED=1;\
20
+    go env -w GOOS=linux;\
21
+    go env -w GOARCH=amd64;\
22
+    go env -w CGO_LDFLAGS="-static"; \
23
+    go build -o release/apimain cmd/apimain.go; \
24
+    cp -ar resources release/; \
25
+    mkdir -p release/resources/public; \
26
+    cp -ar docs release/; \
27
+    cp -ar conf release/; \
28
+    mkdir -p release/data; \
29
+    mkdir -p release/runtime;
30
+
31
+
32
+FROM alpine
33
+WORKDIR /app
34
+COPY --from=builder /go/rustdesk-api/release /app/
35
+
36
+EXPOSE 21114
37
+CMD ["./apimain"]

+ 64 - 2
README.md

@@ -25,7 +25,7 @@ hbbr -k 123456789
25 25
 
26 26
 ***前端代码在[rustdesk-api-web](https://github.com/lejianwen/rustdesk-api-web)***
27 27
 
28
-***初次安装管理员为用户名密码为admin admin,请即时更改密码***
28
+***后台访问地址是`http://<your server>:21114/_admin/`初次安装管理员为用户名密码为`admin admin`,请即时更改密码***
29 29
 
30 30
 1. 管理员界面
31 31
    ![web_admin](docs/web_admin.png)
@@ -81,9 +81,69 @@ rustdesk:
81 81
 ### 安装步骤
82 82
 
83 83
 #### docker运行
84
+1. 直接docker运行
85
+```bash
86
+docker run -d --name rustdesk-api -p 21114:21114 -v /data/rustdesk/api:/app/data lejianwen/rustdesk-api
87
+```
88
+2. 使用`docker compose`,根据rustdesk提供的示例加上自己的rustdesk-api
89
+```docker-compose
90
+networks:
91
+  rustdesk-net:
92
+    external: false
93
+services:
94
+  hbbs:
95
+    container_name: hbbs
96
+    ports:
97
+      - 21115:21115
98
+      - 21116:21116 # 自定义 hbbs 映射端口
99
+      - 21116:21116/udp # 自定义 hbbs 映射端口
100
+      - 21118:21118 # web client 需要
101
+    image: rustdesk/rustdesk-server
102
+    command: hbbs -r <relay-server-ip[:port]> -k 123456789 # 填入个人域名或 IP + hbbr 暴露端口
103
+    volumes:
104
+      - /data/rustdesk/hbbs:/root # 自定义挂载目录
105
+    networks:
106
+      - rustdesk-net
107
+    depends_on:
108
+      - hbbr
109
+    restart: unless-stopped
110
+    deploy:
111
+      resources:
112
+        limits:
113
+          memory: 64M
114
+  hbbr:
115
+    container_name: hbbr
116
+    ports:
117
+      - 21117:21117 # 自定义 hbbr 映射端口
118
+    image: rustdesk/rustdesk-server
119
+    command: hbbr -k 123456789
120
+    #command: hbbr
121
+    volumes:
122
+      - /data/rustdesk/hbbr:/root # 自定义挂载目录
123
+    networks:
124
+      - rustdesk-net
125
+    restart: unless-stopped
126
+    deploy:
127
+      resources:
128
+        limits:
129
+          memory: 64M
130
+  rustdesk-api:
131
+    container_name: rustdesk-api
132
+    ports:
133
+      - 21114:21114
134
+    image: lejianwen/rustdesk-api
135
+    volumes:
136
+      - /data/rustdesk/api:/app/data #将数据库挂载出来方便备份
137
+    networks:
138
+      - rustdesk-net
139
+    restart: unless-stopped
140
+
141
+```
84 142
 
85 143
 #### 下载release直接运行
86 144
 
145
+下载地址[release](https://github.com/lejianwen/rustdesk-api/releases)
146
+
87 147
 #### 源码安装
88 148
 
89 149
 1. 克隆仓库
@@ -100,6 +160,7 @@ rustdesk:
100 160
 3. 编译后台前端,前端代码在[rustdesk-api-web](https://github.com/lejianwen/rustdesk-api-web)中
101 161
    ```bash
102 162
    cd resources
163
+   mkdir -p admin
103 164
    git clone https://github.com/lejianwen/rustdesk-api-web
104 165
    cd rustdesk-api-web
105 166
    npm install
@@ -114,5 +175,6 @@ rustdesk:
114 175
     go generate generate_api.go
115 176
     ```
116 177
 5. 编译,如果想自己编译,先cd到项目根目录,然后windows下直接运行`build.bat`,linux下运行`build.sh`,编译后会在`release`
117
-   目录下生成对应的可执行文件。
178
+   目录下生成对应的可执行文件。直接运行编译后的可执行文件即可。
118 179
 
180
+6. 打开浏览器访问`http://<your server>:21114/_admin/`,默认用户名密码为`admin`,请及时更改密码。

+ 1 - 0
build.bat

@@ -1,4 +1,5 @@
1 1
 @echo off
2
+rmdir /s /q release
2 3
 go env -w GO111MODULE=on
3 4
 go env -w GOPROXY=https://goproxy.cn,direct
4 5
 go env -w CGO_ENABLED=1

+ 3 - 2
build.sh

@@ -1,5 +1,6 @@
1 1
 #!/bin/sh
2 2
 
3
+rm release -rf
3 4
 go env -w GO111MODULE=on
4 5
 go env -w GOPROXY=https://goproxy.cn,direct
5 6
 go env -w CGO_ENABLED=1
@@ -11,5 +12,5 @@ go build -o release/apimain cmd/apimain.go
11 12
 cp -ar resources release/
12 13
 cp -ar docs release/
13 14
 cp -ar conf release/
14
-mkdir release/data
15
-mkdir release/runtime
15
+mkdir -p release/data
16
+mkdir -p release/runtime

+ 50 - 0
docker-compose.yaml

@@ -0,0 +1,50 @@
1
+networks:
2
+  rustdesk-net:
3
+    external: false
4
+services:
5
+  hbbs:
6
+    container_name: hbbs
7
+    ports:
8
+      - 21115:21115
9
+      - 21116:21116 # 自定义 hbbs 映射端口
10
+      - 21116:21116/udp # 自定义 hbbs 映射端口
11
+      - 21118:21118 # web client 需要
12
+    image: rustdesk/rustdesk-server
13
+    command: hbbs -r <relay-server-ip[:port]> -k 123456789 # 填入个人域名或 IP + hbbr 暴露端口
14
+    volumes:
15
+      - /data/rustdesk/hbbs:/root # 自定义挂载目录
16
+    networks:
17
+      - rustdesk-net
18
+    depends_on:
19
+      - hbbr
20
+    restart: unless-stopped
21
+    deploy:
22
+      resources:
23
+        limits:
24
+          memory: 64M
25
+  hbbr:
26
+    container_name: hbbr
27
+    ports:
28
+      - 21117:21117 # 自定义 hbbr 映射端口
29
+    image: rustdesk/rustdesk-server
30
+    command: hbbr -k 123456789
31
+    #command: hbbr
32
+    volumes:
33
+      - /data/rustdesk/hbbr:/root #自定义挂载目录
34
+    networks:
35
+      - rustdesk-net
36
+    restart: unless-stopped
37
+    deploy:
38
+      resources:
39
+        limits:
40
+          memory: 64M
41
+  rustdesk-api:
42
+    container_name: rustdesk-api
43
+    ports:
44
+      - 21114:21114
45
+    image: lejianwen/rustdesk-api
46
+    volumes:
47
+      - /data/rustdesk/api:/app/data #将数据库挂载出来方便备份
48
+    networks:
49
+      - rustdesk-net
50
+    restart: unless-stopped

+ 0 - 2
http/controller/admin/login.go

@@ -6,7 +6,6 @@ import (
6 6
 	"Gwen/http/response"
7 7
 	adResp "Gwen/http/response/admin"
8 8
 	"Gwen/service"
9
-	"fmt"
10 9
 	"github.com/gin-gonic/gin"
11 10
 )
12 11
 
@@ -25,7 +24,6 @@ type Login struct {
25 24
 // @Router /admin/login [post]
26 25
 // @Security token
27 26
 func (ct *Login) Login(c *gin.Context) {
28
-	fmt.Println("login")
29 27
 	f := &admin.Login{}
30 28
 	err := c.ShouldBindJSON(f)
31 29
 	if err != nil {