Quellcode durchsuchen

update dujiaoka

Stille vor 3 Jahren
Ursprung
Commit
fa4a9e1f0e
4 geänderte Dateien mit 206 neuen und 1 gelöschten Zeilen
  1. 80 1
      dujiaoka/README.md
  2. 33 0
      dujiaoka/docker-compose.yml
  3. 46 0
      dujiaoka/domain.conf
  4. 47 0
      dujiaoka/env.conf

+ 80 - 1
dujiaoka/README.md

@@ -1,7 +1,86 @@
 # dujiaoka
+GitHub [stilleshan/dockerfiles](https://github.com/stilleshan/dockerfiles)  
+Docker [stilleshan/dujiaoka](https://hub.docker.com/r/stilleshan/dujiaoka)
+> *docker image support for X86 and ARM*
+
+## 更新
+- **2022-07-19** 更新`2.0.4`版 docker 镜像,同时支持 X86 和 ARM 架构.
+- **2022-07-19** 更新`2.0.3`版 docker 镜像,同时支持 X86 和 ARM 架构.
+
 
 ## 简介
-待优化中...
+基于 🦄独角数卡 [assimon/dujiaoka](https://github.com/assimon/dujiaoka) 的 docker 镜像,支持 docker-compose 数据持久化部署。
+
+> *本项目基于现有的 [Apocalypsor/dujiaoka-docker](https://github.com/Apocalypsor/dujiaoka-docker) 项目重新制作支持 ARM64 架构镜像,你也可以参考下文作者博客链接部署。*
+
+## 部署
+### 准备配置文件
+```shell
+mkdir dujiaoka && cd dujiaoka
+# 创建主目录
+mkdir storage uploads
+chmod -R 777 storage uploads
+# 创建数据目录用于挂载
+```
+
+下载本项目中的`env.conf`和`docker-compose.yml`到上述的`dujiaoka`目录中。
+
+```shell
+chmod -R 777 env.conf
+# 重要步骤
+```
+
+### 配置 nginx
+参考`domian.conf`修改`域名`和`证书路径`,最重要的是`location ^~ /`中的相关配置。
+```nginx
+    location ^~ / {
+        proxy_pass http://127.0.0.1:56789;
+        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 REMOTE-HOST $remote_addr;
+        proxy_set_header X-Forwarded-Proto  $scheme;
+
+        add_header X-Cache $upstream_cache_status;
+
+        proxy_set_header Accept-Encoding "";
+        sub_filter "http://" "https://";
+        sub_filter_once off;
+    }
+```
+
+### 启动容器
+确保目录中有`docker-compose.yml`,`env.conf`,`storage`和`uploads`后执行以下命令`首次`启动:
+> *注意修改 docker-compose.yml 中的 mysql 密码*
+```shell
+docker-compose up -d
+```
+首次启动后,会自动生成`mysql`和`redis`的数据目录。
+
+### 网页安装
+访问域名开始安装:
+- 将`mysql`的地址改为`db`
+- 将`mysql`的用户名改为`dujiaoka`
+- 将`redis`的地址改为`redis`
+- 填写网站名称
+- 网站 url 填写完整域名地址,例如`https://shop.ioiox.com`
+
+点击安装,并成功安装,先修改其他参数后在进行登录使用。
+```shell
+docker-compose down
+# 停止服务
+```
+将`docker-compose.yml`中的`INSTALL`改为`false`  
+将`env.conf`中的`APP_DEBUG`改为`false`
+此时可以看到`env.conf`中的相关配置已经自动变为安装时填写的参数。
+```shell
+docker-compose up -d
+# 再次启动开始使用
+```
+### 完成部署
+自此已完成安装部署,访问域名开始使用: 
+- 所有配置,数据,缓存,数据库都存储在整个`dujiaoka`目录中,定期备份即可。
+- 如需迁移服务器,仅需打包本目录到新服务器,执行上述所有`chmod 777`的权限命令,再次`docker-compose up -d`即可恢复上线。
 
 ## 链接
 - [Apocalypsor/dujiaoka-docker](https://github.com/Apocalypsor/dujiaoka-docker)

+ 33 - 0
dujiaoka/docker-compose.yml

@@ -0,0 +1,33 @@
+version: "3"
+
+services:
+  web:
+    image: stilleshan/dujiaoka
+    environment:
+        # - INSTALL=false
+        - INSTALL=true
+        # - MODIFY=true
+    volumes:
+      - ./env.conf:/dujiaoka/.env
+      - ./uploads:/dujiaoka/public/uploads
+      - ./storage:/dujiaoka/storage
+    ports:
+      - 56789:80
+    restart: always
+ 
+  db:
+    image: mariadb:focal
+    restart: always
+    environment:
+      - MYSQL_ROOT_PASSWORD=YOUR_PASSWORD
+      - MYSQL_DATABASE=dujiaoka
+      - MYSQL_USER=dujiaoka
+      - MYSQL_PASSWORD=YOUR_PASSWORD
+    volumes:
+      - ./mysql:/var/lib/mysql
+
+  redis:
+    image: redis:alpine
+    restart: always
+    volumes:
+      - ./redis:/data

+ 46 - 0
dujiaoka/domain.conf

@@ -0,0 +1,46 @@
+server {
+    listen 80;
+    server_name shop.domain.com;
+    return 301 https://shop.domain.com$request_uri;
+}
+
+server {
+    listen 443   ssl http2;
+    server_name  shop.domain.com;
+    index index.html index.htm index.php default.html default.htm default.php;
+
+    ssl_certificate /usr/local/nginx/conf/ssl/domain.com.cer;
+    ssl_certificate_key /usr/local/nginx/conf/ssl/domain.com.key;
+    ssl_trusted_certificate /usr/local/nginx/conf/ssl/domain.com.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_pass http://127.0.0.1:56789;
+        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 REMOTE-HOST $remote_addr;
+        proxy_set_header X-Forwarded-Proto  $scheme;
+
+        add_header X-Cache $upstream_cache_status;
+
+        proxy_set_header Accept-Encoding "";
+        sub_filter "http://" "https://";
+        sub_filter_once off;
+    }
+
+    # access_log /home/wwwlogs/shop.domain.com.access.log main;
+    # error_log  /home/wwwlogs/shop.domain.com.error.log warn;
+}

+ 47 - 0
dujiaoka/env.conf

@@ -0,0 +1,47 @@
+APP_NAME=独角数卡
+APP_ENV=local
+APP_KEY=base64:hDVkYhfkUjaePiaI1tcBT7G8bh2A8RQxwWIGkq7BO18=
+APP_DEBUG=true
+APP_URL=http://dujiaoka.test
+
+LOG_CHANNEL=stack
+
+# 数据库配置
+DB_CONNECTION=mysql
+DB_HOST=db
+DB_PORT=3306
+DB_DATABASE=dujiaoka
+DB_USERNAME=dujiaoka
+DB_PASSWORD=YOUR_PASSWORD
+
+# redis 配置
+REDIS_HOST=redis
+REDIS_PASSWORD=
+REDIS_PORT=6379
+
+BROADCAST_DRIVER=log
+SESSION_DRIVER=file
+SESSION_LIFETIME=120
+
+
+# 缓存配置
+# file 为磁盘文件  redis 为内存级别
+# redis 为内存需要安装好 redis 服务端并配置
+CACHE_DRIVER=redis
+
+# 异步消息队列
+# sync 为同步  redis 为异步
+# 使用 redis 异步需要安装好 redis 服务端并配置
+QUEUE_CONNECTION=redis
+
+# 后台语言
+## zh_CN 简体中文
+## zh_TW 繁体中文
+## en    英文
+DUJIAO_ADMIN_LANGUAGE=zh_CN
+
+# 后台登录地址
+ADMIN_ROUTE_PREFIX=/admin
+
+# 后台 https 支持 docker 部署无需开启
+#ADMIN_HTTPS=true