update dujiaoka
This commit is contained in:
parent
03b4a66950
commit
fa4a9e1f0e
|
@ -1,7 +1,86 @@
|
||||||
# dujiaoka
|
# 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)
|
- [Apocalypsor/dujiaoka-docker](https://github.com/Apocalypsor/dujiaoka-docker)
|
||||||
|
|
|
@ -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
|
|
@ -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;
|
||||||
|
}
|
|
@ -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
|
Loading…
Reference in New Issue