Просмотр исходного кода

update to support short url for sub

Stille 3 лет назад
Родитель
Сommit
3a91d92ce8
4 измененных файлов с 79 добавлено и 3 удалено
  1. 8 3
      sub/README.md
  2. 1 0
      sub/config.js
  3. 21 0
      sub/docker-compose.yml
  4. 49 0
      sub/myurls.conf

+ 8 - 3
sub/README.md

@@ -5,12 +5,13 @@ Docker [stilleshan/sub](https://hub.docker.com/r/stilleshan/sub)
 > *docker image support for X86 and ARM*
 
 ## 简介
-基于 subweb 和 subconverter 前后端整合容器,支持自定义配置.
+基于 subweb 和 subconverter 前后端加上 myurls 短链接整合容器,支持自定义配置.
 
 ## 部署
 **注意,本项目必须搭配域名反代使用.**
 
 ### docker
+> 已更新支持短链接,如需要更换短链接或自己部署,请使用以下 docker compose 部署.
 ```shell
 docker run -d --name subweb --restart always \
   -p 18080:80 \
@@ -24,11 +25,15 @@ docker run -d --name subweb --restart always \
 `subconverter`同样支持挂载外部配置文件,参考容器内部路径:`/base/snippets/rulesets.txt`.
 
 ### docker compose
+docker compose 已包含 myurl 短链接:
+- 如无需部署 myurls 服务,可删除`12-32`行,将默认使用本站短链接.也可以修改`config.js`来使用其他`myurls`短链接服务.
+- 如需自行部署 myurls 服务,需修改`docker-compose.yml`中的`MYURLS_DOMAIN`,以及`config.js`中的`shortUrl`,注意请严格按照示例格式填写.
+- myurls 服务需要单独配置 nginx 反代以及证书,可以参考`myurls.conf`配置.注意需要修改`域名`,`证书路径`,`日志路径`.
 下载 [docker-compose.yml](https://raw.githubusercontent.com/stilleshan/dockerfiles/main/sub/docker-compose.yml) 执行以下命令启动:
 ```shell
 docker-compose up -d
 ```
 
 ## 参考
-[stilleshan/subweb](https://github.com/stilleshan/subweb)
-[stilleshan/subconverter](https://github.com/stilleshan/subconverter)
+- [stilleshan/subweb](https://github.com/stilleshan/subweb)
+- [stilleshan/subconverter](https://github.com/stilleshan/subconverter)

+ 1 - 0
sub/config.js

@@ -1,6 +1,7 @@
 window.config = {
   siteName: 'Subconverter Web',
   apiUrl: 'http://127.0.0.1:25500',
+  shortUrl: 'https://s.ops.ci',
   menuItem: [
     {
       title: '首页',

+ 21 - 0
sub/docker-compose.yml

@@ -8,3 +8,24 @@ services:
     volumes:
       - ./conf:/usr/share/nginx/html/conf
     restart: always
+
+  myurls:
+    image: stilleshan/myurls:latest
+    # container_name: myurls
+    environment:
+      - MYURLS_DOMAIN=s.ops.ci
+      - MYURLS_TTL=365
+    volumes:
+      - ./data/myurls/logs:/app/logs    
+    ports:
+      - "8002:8002"
+    depends_on:
+      - redis
+    restart: always
+
+  redis:
+    image: redis:latest
+    # container_name: myurls-redis
+    volumes:
+      - ./data/redis:/data
+    restart: always

+ 49 - 0
sub/myurls.conf

@@ -0,0 +1,49 @@
+server {
+    listen 80;
+    server_name  s.ops.ci;
+    return 301 https://s.ops.ci$request_uri;
+}
+
+server {
+    listen 443 ssl;
+    server_name  s.ops.ci;
+    index  index.php index.html index.htm;
+    gzip on;    
+
+    ssl_certificate /usr/local/nginx/conf/ssl/ops.ci.cer;
+    ssl_certificate_key /usr/local/nginx/conf/ssl/ops.ci.key;
+    ssl_trusted_certificate /usr/local/nginx/conf/ssl/ops.ci.cer;
+
+    ssl_stapling on;
+    ssl_stapling_verify on;
+    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
+    ssl_prefer_server_ciphers on;
+    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4;
+    ssl_ecdh_curve secp384r1;
+    ssl_session_timeout  10m;
+    ssl_session_cache builtin:1000 shared:SSL:10m;
+    ssl_session_tickets off;
+    resolver 8.8.8.8 8.8.4.4 valid=60s ipv6=off;
+    resolver_timeout 5s;
+    add_header Strict-Transport-Security "max-age=63072000" always;
+
+    location / {
+        proxy_redirect off;
+        proxy_pass http://127.0.0.1:8002;
+
+        add_header 'Access-Control-Allow-Origin' '*';
+        
+        proxy_set_header  Host                $http_host;
+        proxy_set_header  X-Real-IP           $remote_addr;
+        proxy_set_header  X-Forwarded-Ssl     on;
+        proxy_set_header  X-Forwarded-For     $proxy_add_x_forwarded_for;
+        proxy_set_header  X-Forwarded-Proto   $scheme;
+        proxy_set_header  X-Frame-Options     SAMEORIGIN;
+
+        client_max_body_size        100m;
+        client_body_buffer_size     128k;
+    }
+
+    access_log /home/wwwlogs/s.ops.ci.access.log  main;
+    error_log  /home/wwwlogs/s.ops.ci.error.log  warn;
+}