├── .dockerignore ├── .gitignore ├── .env ├── License ├── docker.md ├── README.md └── docker-compose.yml /.dockerignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode -------------------------------------------------------------------------------- /.env: -------------------------------------------------------------------------------- 1 | # db 2 | MYSQL_ROOT_PASSWORD=123456789 3 | MYSQL_DATABASE=officeaanglist 4 | MYSQL_USER=officeaanglist 5 | MYSQL_PASSWORD=123456789 6 | 7 | # qbit 8 | QBT_EULA=y 9 | QBT_WEBUI_PORT=6901 10 | 11 | JWT_ENABLEN=false 12 | PUID=1000 13 | PGID=1000 14 | TZ=Asia/Shanghai 15 | DB_TYPE=mariadb 16 | DB_HOST=db 17 | DB_PORT=3306 18 | DB_NAME=officeaanglist 19 | DB_USER=officeaanglist 20 | DB_PWD=123456789 21 | REDIS_SERVER_HOST=redis 22 | REDIS_SERVER_PORT=6379 23 | REDIS_PASSWORD=115099 24 | DOMAIN=https://office.example.com:port 25 | AListdb_ty=mysql 26 | AListdb_host=db 27 | AListdb_port=3306 28 | AListdb_us=officeaanglist 29 | AListdb_pw=123456789 30 | AListdb_name=officeaanglist 31 | qbit_host=qbittorrent-nox 32 | aria2Csecret=QQ943384135 33 | -------------------------------------------------------------------------------- /License: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 homura 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /docker.md: -------------------------------------------------------------------------------- 1 | # docker 2 | 3 | ```shell 4 | sudo docker network create officeaanglist 5 | 6 | # db 7 | sudo docker run -d --restart=always \ 8 | --name officeaanglist-db --hostname db \ 9 | --env-file .env \ 10 | -v /path/to/officeaanglist/db:/var/lib/mysql \ 11 | --network officeaanglist mariadb/server:10.3 12 | 13 | # redis 14 | sudo docker run -d --name officeaanglist-redis \ 15 | --hostname redis --restart always \ 16 | -v /path/to/officeaanglist/redis/redis.conf:/etc/redis/redis.conf \ 17 | -v /path/to/officeaanglist/redis/data:/data \ 18 | --network officeaanglist redis:7.2.1-alpine3.18 redis-server \ 19 | /etc/redis/redis.conf --appendonly yes --requirepass 115099 20 | 21 | # qbittorrent-nox 22 | sudo docker run -d --name qbittorrent-nox \ 23 | --hostname qbittorrent-nox --env-file .env \ 24 | -p 6901:6901/tcp -p 6881:6881/tcp -p 6881:6881/udp \ 25 | -v "/path/to/qbittorrent/config:/config" \ 26 | -v "/path/to/downloads/qbittorrent:/downloads/qbittorrent" \ 27 | --network officeaanglist qbittorrentofficial/qbittorrent-nox:latest 28 | 29 | #officeaanglist 30 | sudo docker run -d --name officeaanglist --restart always \ 31 | --privileged --hostname officeaanglist --env-file .env \ 32 | -p 8088:80 -p 83:443 -v /path/to/officeaanglist/logs/onlyoffice:/var/log/onlyoffice \ 33 | -v /path/to/officeaanglist/logs/nginx:/var/log/nginx \ 34 | -v /path/to/officeaanglist/aria2:/var/www/app/aria2 \ 35 | -v /path/to/AList:/AList \ 36 | -v /path/to/downloads/aria2:/downloads/aria2 \ 37 | -v /path/to/officeaanglist/lib:/var/lib/onlyoffice \ 38 | --network officeaanglist homuras/officeaanglist:v0.3.1 39 | 40 | ``` 41 | 42 | 43 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # officeaanglist 2 | 可以在AList获得对onlyoffice的支持,含用户权限,支持多人编辑 3 | 下载docker-compose.yml更改其中的数据库密码,路径等等, 4 | ## FROM 5 | onlyoffice 6 | aria2 7 | AriaNg 8 | AList 9 | quart_auth 10 | ## USE 11 | docker-compose: 12 | 执行 13 | ``` 14 | git clone https://github.com/Sincejunly/officeaanglist.git 15 | cd officeaanglist 16 | touch /path/to/officeaanglist/redis/redis.conf 17 | sudo docker-compsoe up -d 18 | ``` 19 | [docker-cli](https://github.com/Sincejunly/officeaanglist/blob/github/docker.md) 20 | pdf扩展: 21 | ``` 22 | docker exec -it officeaanglist apt-get update 23 | docker exec -it officeaanglist apt install -y ghostscript 24 | ``` 25 | pdf转换启动后等待完成会在同级目录下生成新的pdf文件。 26 | 启动后要等待很长时间, 27 | ``` 28 | ds:docservice: stopped 29 | ds:docservice: started 30 | ds:converter: stopped 31 | ds:converter: started 32 | * Reloading nginx configuration nginx 33 | ...done. 34 | ``` 35 | 出现以上内容代表成功 36 | 删除映射目录app中的文件,以及数据库目录然后可以达到对容器重置的效果。 37 | 然后访问, 38 | AList: https://example.com/AList/ 39 | AriaNg: https://example.com/AriaNg/ 40 | aria2: https://example.com/aria2/ 41 | Edier:https://example.com/viewer/ 42 | AriaNg配置:https://example.com/aria2/jsonrpc 秘钥:QQ943384135 43 | AList相同 44 | AList,Editer账号,通常情况下Editer会和AList同步 45 | 注:AList,Editer账号本质上没有关联,只是有一定同步关系。 46 | 删除AList账号或者Editer账号不会删除对方的账号。 47 | 账号:admin 48 | 密码:admin 49 | 对于AList注册的用户,含有上传文件权限的用户可以访问Editer编辑功能,只启用的用户可以访问Editer但不能编辑 50 | 对于Editer注册的用户,自动注册AList未启用的账户,需要管理员手动开启用户 51 | 编写了外部alist逻辑,暂未测试 52 | ![image](https://github.com/Sincejunly/officeaanglist/assets/96775034/c3967404-9047-48a9-ad7f-7ef28c1314e5) 53 | ![image](https://github.com/Sincejunly/officeaanglist/assets/96775034/57504316-98a9-4569-848a-ac76016e1272) 54 | 55 | # TODO 56 | - [x] 多人协作 57 | - [ ] onlyoffice多人历史标注支持 58 | - [ ] hexo博客支持 59 | 60 | 61 | 62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | services: 3 | db: 4 | image: mariadb/server:10.3 5 | restart: always 6 | container_name: officeaanglist-db 7 | environment: 8 | 9 | MYSQL_ROOT_PASSWORD: 123456789 10 | MYSQL_DATABASE: officeaanglist 11 | MYSQL_USER: officeaanglist 12 | MYSQL_PASSWORD: 123456789 13 | volumes: 14 | - /path/to/officeaanglist/db:/var/lib/mysql 15 | networks: 16 | - officeaanglist 17 | 18 | redis: 19 | image: redis:7.2.1-alpine3.18 20 | container_name: officeaanglist-redis 21 | restart: always 22 | command: redis-server /etc/redis/redis.conf --appendonly yes --requirepass 115099 23 | volumes: 24 | - /path/to/officeaanglist/redis/redis.conf:/etc/redis/redis.conf 25 | - /path/to/officeaanglist/redis/data:/data 26 | networks: 27 | - officeaanglist 28 | logging: 29 | options: 30 | max-size: "100m" 31 | max-file: "2" 32 | 33 | # phpmyadmin: 34 | # image: phpmyadmin 35 | # restart: always 36 | # container_name: phpmyadminOffic 37 | # ports: 38 | # - "8051:80" 39 | # environment: 40 | # PMA_HOST: db 41 | # MYSQL_ROOT_PASSWORD: $db_r 42 | # networks: 43 | # - officeaanglist 44 | 45 | qbittorrent-nox: 46 | image: qbittorrentofficial/qbittorrent-nox:latest 47 | container_name: qbittorrent-nox 48 | tmpfs: 49 | - /tmp 50 | environment: 51 | - QBT_EULA=y 52 | - QBT_WEBUI_PORT=6901 53 | ports: 54 | - "6901:6901/tcp" 55 | - "6881:6881/tcp" 56 | - "6881:6881/udp" 57 | volumes: 58 | - "/path/to/qbittorrent/config:/config" 59 | - "/path/to/downloads/qbittorrent:/downloads/qbittorrent" 60 | networks: 61 | - officeaanglist 62 | 63 | onlyoffice: 64 | image: homuras/officeaanglist:v0.3.1 65 | #build: . 66 | container_name: officeaanglist 67 | restart: always 68 | privileged: true 69 | #network_mode: "bridge" 70 | # dns: 71 | # - 192.168.0.37 72 | ports: 73 | - "8088:80" 74 | - "83:443" 75 | environment: 76 | - JWT_ENABLEN=false 77 | - PUID=1000 78 | - PGID=1000 79 | - TZ=Asia/Shanghai 80 | - DB_TYPE=mariadb 81 | - DB_HOST=db 82 | - DB_PORT=3306 83 | - DB_NAME=officeaanglist 84 | - DB_USER=officeaanglist 85 | - DB_PWD=123456789 86 | - REDIS_SERVER_HOST=redis 87 | - REDIS_SERVER_PORT=6379 88 | - REDIS_PASSWORD=115099 89 | - DOMAIN=https://office.example.com:port #是否使用反向代理,如果使用反向代理, 90 | #请填写https://****.com,并映射/ssl,证书文件应当是fullchain.pem和privkey.pem 91 | #例:http://192.168.5.10:8088 92 | #- AListHost= 使用外部alist 可以试试填地址或者域名,仅支持3.20.0以下版本 93 | - AListdb_ty=mysql 94 | - AListdb_host=db 95 | - AListdb_port=3306 96 | - AListdb_us=officeaanglist 97 | - AListdb_pw=123456789 98 | - AListdb_name=officeaanglist 99 | - qbit_host=qbittorrent-nox 100 | - aria2Csecret=QQ943384135 #aria2c的密钥建议更改! 101 | 102 | depends_on: 103 | - db 104 | - redis 105 | 106 | volumes: 107 | - /path/to/officeaanglist/logs:/var/log/onlyoffice 108 | - /path/to/officeaanglist/app:/var/www/app:rw 109 | - /path/to/AList:/AList 110 | - /path/to/downloads/aria2:/downloads/aria2 111 | - /path/to/officeaanglist/lib:/var/lib/onlyoffice 112 | 113 | #- /volume1/docker/onlyoffice/db:/var/lib/postgresql 114 | - /path/to/officeaanglist/conf.d:/etc/nginx/conf.d 115 | #- /path/to/ssl:/ssl 116 | 117 | networks: 118 | - officeaanglist 119 | 120 | networks: 121 | officeaanglist: 122 | name: officeaanglist 123 | --------------------------------------------------------------------------------