超级好用的Docker项目收藏

  1. 超级好用的Docker项目收藏
    1. 1、Vaultwarden:专属的密码管理工具
      1. 特点:
    2. 2、RustDesk:开源远程桌面服务,远程控制系统
      1. 介绍
      2. 2.特点
      3. 项目展示
    3. ScreeGo:开源、可自托管,在线多人屏幕分享工具
      1. 如何创建自己的 ScreeGo
        1. Docker:
    4. 5、智能家居助手Home Assistant
    5. 6、自动化处理系统Node-RED
    6. 7、SSL证书监测平台——Domain Admin
    7. 8、Reader-网文阅读器 安卓的“阅读”APP网页版
    8. 9、xunlei-迅雷下载器
    9. 10、Alltube-视频下载器
    10. 11、TaleBooks
    11. 12、Glance:搭建专属你自己的信息聚合页
      1. * 支持各种小部件
      2. 十分轻量
      3. docker-compose.yaml:
    12. 13、mblog:一个类似微信朋友圈的项目,适合记录生活
    13. 14、Stirling PDF:10分钟搭建一个PDF工具箱,满足你的所有PDF需求
      1. docker-compose.yml:
    14. 15、Jitsi:腾讯会议替代品,一个开源视频会议项目
    15. 16、PhotoPrism:搭建属于自己的个人相册
    16. 17、Excalidraw:风靡硅谷的白板工具
      1. 相关地址
    17. 18、SearXNG——自建一个属于自己的免费搜索引擎平台!尊重隐私、完全开源!
      1. 系统特色
      2. 相关地址
    18. 19、Wiki.js:最强大、可扩展性最强的Wiki软件
      1. 1.1 特点
      2. 项目展示
    19. 20、Navidrome:完全自由的音乐播放软件——— 随时随地!想听就听!
      1. Navidrome优缺点
        1. 优点:
    20. 21、qbittorrent:个人专属的下载神器
    21. 22、Trilium:超高自由度的个人知识库,个人笔记系统
      1. 1.特点
      2. 项目展示
      3. docker-compose.yaml:
    22. 17、

超级好用的Docker项目收藏

利用docker来安装一些非常好用的项目,绿色无污染,部署容易。通常喜欢用docker-compose的方式部署

命令:

1
2
3
4
5
sudo docker-compose up -d
sudo docker-compose down
sudo docker-compose pull
sudo docker-compose stop
sudo docker-compose restart

1、Vaultwarden:专属的密码管理工具

特点:

  • Windows、Mac、Linux、Android、iOS 全平台覆盖
  • 支持 Chrome、Edge、Safari、Firefox 等主流浏览器插件
  • 支持 密码文本信息表 甚至 附件 的加密保管
  • 支持自动填写网页、app 账号密码
  • 支持文件加密分享,方便地通过 bitwarden send 分享隐私文件、照片等
  • 支持生成两步验证器,为每个密码设置 TOTP 动态口令
  • 支持团队密码库,可在团队成员中共享团队密码
  • 支持密码检测报告,检测密码库中的重复密码、弱密码、已被泄露的密码等
  • 代码开源,支持自搭建,将数据全部掌握在自己手中

官方GitHub地址:https://github.com/dani-garcia/vaultwarden
官方docker镜像地址(官方构建镜像在3个不同的容器注册中心都可用):

管理后台访问 your.domain/admin,登录 Vault­war­den 管理后台,登陆密码为自己设置的 ADMIN_TOKEN

GitHub: ghcr.io/dani-garcia/vaultwarden
Docker Hub: docker.io/vaultwarden/server
Quay: quay.io/vaultwarden/server

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
version: '3'

services:
vaultwarden:
container_name: vaultwarden
image: vaultwarden/server:latest
restart: unless-stopped
volumes:
- ./data/:/data/
ports:
- 8080:80
environment:
- DOMAIN=https://subdomain.yourdomain.com # 这是您希望与您的Vaultwarden实例关联的域名。
- LOGIN_RATELIMIT_MAX_BURST=10 # 允许在一阵登录/两步验证尝试中的最大请求次数。
- LOGIN_RATELIMIT_SECONDS=60 # 这是来自同一IP的登录请求之间的平均秒数,在Vaultwarden限制登录次数之前。
- ADMIN_RATELIMIT_MAX_BURST=10 # 这与LOGIN_RATELIMIT_MAX_BURST相同,只争对admin面板。
- ADMIN_RATELIMIT_SECONDS=60 # 这与LOGIN_RATELIMIT_SECONDS相同
- ADMIN_SESSION_LIFETIME=20 # 会话持续时间
- ADMIN_TOKEN=YourReallyStrongAdminTokenHere # 此值是Vaultwarden管理员面板的令牌(一种密码)。为了安全起见,这应该是一个长的随机字符串。如果未设置此值,则管理员面板将被禁用。建议openssl rand -base64 48 生成ADMIN_TOKEN确保安全
- SENDS_ALLOWED=true # 此设置决定是否允许用户创建Bitwarden发送 - 一种凭证共享形式。
- EMERGENCY_ACCESS_ALLOWED=true # 此设置控制用户是否可以启用紧急访问其账户的权限。例如,这样做可以在用户去世后,配偶可以访问密码库以获取账户凭证。可能的值:true / false。
- WEB_VAULT_ENABLED=true # 此设置决定了网络保险库是否可访问。一旦您配置了您的账户和客户端,停止您的容器,然后将此值切换为false并重启Vaultwarden,可以用来防止未授权访问。可能的值:true/false。
- SIGNUPS_ALLOWED=true # 此设置控制新用户是否可以在没有邀请的情况下注册账户。可能的值:true / false。

安装后可web访问,但无法登录,要ssl登录才行。

另一个配置,需要另配一个配置文件:

docker-compose.yaml:

1
2
3
4
5
6
7
8
9
10
11
12
13
version: '3'

services:
bitwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
volumes:
- /home/docker_data/vaultwarden:/data
env_file:
- config.env
ports:
- "85:80"

config.env:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
SIGNUPS_ALLOWED=false
DOMAIN=https://vault.xx.cn
DATABASE_URL=/data/db.sqlite3
ROCKET_WORKERS=2
WEB_VAULT_ENABLED=true
ADMIN_TOKEN=XXXXXXXX #后台管理的KEY



## Mail specific settings, set SMTP_FROM and either SMTP_HOST or USE_SENDMAIL to enable the mail service.
## To make sure the email links are pointing to the correct host, set the DOMAIN variable.
## Note: if SMTP_USERNAME is specified, SMTP_PASSWORD is mandatory
SMTP_HOST=smtp.xx.com
SMTP_FROM=admin@xx.cnp
SMTP_FROM_NAME=Vaultwarden
SMTP_SECURITY=force_tls # ("starttls", "force_tls", "off") Enable a secure connection. Default is "starttls" (Explicit - ports 587 or 25), "force_tls" (Implicit - port 465) or "off", no encryption (port 25)
SMTP_PORT=465 # Ports 587 (submission) and 25 (smtp) are standard without encryption and with encryption via STARTTLS (Explicit TLS). Port 465 (submissions) is used for encrypted submission (Implicit TLS).
SMTP_USERNAME=admin@xx.cn
SMTP_PASSWORD=XX
SMTP_TIMEOUT=15

# Whether to send mail via the `sendmail` command
# USE_SENDMAIL=false
# Which sendmail command to use. The one found in the $PATH is used if not specified.
# SENDMAIL_COMMAND="/path/to/sendmail"

## Defaults for SSL is "Plain" and "Login" and nothing for Non-SSL connections.
## Possible values: ["Plain", "Login", "Xoauth2"].
## Multiple options need to be separated by a comma ','.
# SMTP_AUTH_MECHANISM="Plain"

## Server name sent during the SMTP HELO
## By default this value should be is on the machine's hostname,
## but might need to be changed in case it trips some anti-spam filters
# HELO_NAME=

## Embed images as email attachments
# SMTP_EMBED_IMAGES=false

## SMTP debugging
## When set to true this will output very detailed SMTP messages.
## WARNING: This could contain sensitive information like passwords and usernames! Only enable this during troubleshooting!
# SMTP_DEBUG=false

## Accept Invalid Hostnames
## DANGEROUS: This option introduces significant vulnerabilities to man-in-the-middle attacks!
## Only use this as a last resort if you are not able to use a valid certificate.
# SMTP_ACCEPT_INVALID_HOSTNAMES=false

## Accept Invalid Certificates
## DANGEROUS: This option introduces significant vulnerabilities to man-in-the-middle attacks!
## Only use this as a last resort if you are not able to use a valid certificate.
## If the Certificate is valid but the hostname doesn't match, please use SMTP_ACCEPT_INVALID_HOSTNAMES instead.
# SMTP_ACCEPT_INVALID_CERTS=false

## Require new device emails. When a user logs in an email is required to be sent.
## If sending the email fails the login attempt will fail!!
# REQUIRE_DEVICE_EMAIL=false

## HIBP Api Key
## HaveIBeenPwned API Key, request it here: https://haveibeenpwned.com/API/Key
# HIBP_API_KEY=

# vim: syntax=ini

2、RustDesk:开源远程桌面服务,远程控制系统

  1. 介绍

一个非常好用的远程桌面软件。

搭建

2.特点

简单在网上抄搜集了一些特点,供大家参考:

  • 用Rust编写

  • 开箱即用,不需要复杂的配置

  • 你可以完全控制你的数据,而不用担心安全问题

  • 你可以使用官方的rendezvous/relay服务器,也可以建立你自己的rendezvous/relay服务器。

    当然我们今天就是和大家分享一下如何搭建

  1. 项目展示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
version: '3'

networks:
rustdesk-net:
external: false

services:
hbbs:
container_name: hbbs
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21118:21118
image: rustdesk/rustdesk-server:latest
command: hbbs -r hbbs.example.com:21117 # hbbs.example.com改成
volumes:
- ./hbbs:/root
networks:
- rustdesk-net
depends_on:
- hbbr
restart: unless-stopped

hbbr:
container_name: hbbr
ports:
- 21117:21117
- 21119:21119
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- ./hbbr:/root
networks:
- rustdesk-net
restart: unless-stopped

ScreeGo:开源、可自托管,在线多人屏幕分享工具

DEMO: https://app.screego.net/

用户只需要使用浏览器,即可分享电脑屏幕,软件窗口,或浏览器标签页,通过 WebRTC 安全传输数据,响应迅速。

如何创建自己的 ScreeGo

作为开源项目,ScreeGo 提供了 Docker 与二进制两种方式,看起来都很简单。官方文档页面也放出了即开即用指南,跟着做就行了。

Docker:

1
sudo docker run --net=host -e SCREEGO_EXTERNAL_IP=YOUREXTERNALIP screego/server:1.5.1
  • 官网:https://screego.net/

  • GitHub:https://github.com/screego/server

  • 原文:https://www.appinn.com/screego-server/

  • # on Linux
    $ ./screego
    # on windows
    $ screego.exe
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34

    ## 3、2FAuth:在线二步验证器——谷歌验证器(Google Authenticator)替代品

    双重认证Two-factor authentication,缩写为2FA,又称为双重验证、双因子认证、双因素认证,也有叫两步验证2-Step Verification,是多重要素验证中的一个特例,使用两种不同的元素,基于时间随机生成一串验证码用于和服务器验证的技术,来确认用户的身份。(类似之前网易的将军令和银行的电子令牌)

    相关地址

    * 2fa GitHub仓库:https://2fa.org/
    * 2fa 官方文档:https://docs.2fauth.app/
    * 官方demo:https://demo.2fauth.app

    docker-compose.yaml:

    ```yaml
    version: "3"
    services:
    2fauth:
    image: 2fauth/2fauth
    container_name: 2fauth
    volumes:
    - ./data:/2fauth
    ports:
    - 8120:8000/tcp
    environment:
    - APP_NAME=2FAuth
    - APP_KEY=SomeRandomStringOf32CharsExactly
    - APP_URL=https://2fa.gugu.ovh
    - IS_DEMO_APP=false
    - LOG_CHANNEL=daily
    - LOG_LEVEL=notice
    - DB_DATABASE="/srv/database/database.sqlite"
    - CACHE_DRIVER=file
    - SESSION_DRIVER=file
    - AUTHENTICATION_GUARD=web-guard
    ## 4、Memos:碎片化知识卡片管理工具——备忘 一个开源的、支持私有化部署的碎片化知识卡片管理工具——Memos 官方Demo:https://demo.usememos.com/ GitHub地址:https://github.com/usememos/memos (543 Star)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    version: "3"
    services:
    memos:
    image: neosmemo/memos:latest
    container_name: memeos
    hostname: memeos
    ports:
    - "5230:5230"
    volumes:
    - /root/data/docker_data/memos/.memos/:/var/opt/memos
    restart: always

5、智能家居助手Home Assistant

1
2
3
4
5
6
7
8
9
10
11
version: '3'
services:
homeassistant:
container_name: homeassistant
image: "ghcr.io/home-assistant/home-assistant:stable"
volumes:
- ./config:/config
- /etc/localtime:/etc/localtime:ro
restart: unless-stopped
privileged: true
network_mode: host

有APP,无APP ,可访问:http://xxx.cn:8123

6、自动化处理系统Node-RED

Node-RED简介
Node-RED是IBM公司开发的一个可视化的编程工具,以满足他们快速连接硬件和设备到Web服务和其他软件的需求,

很快发展成为一种通用的物联网编程工具。Node-RED是一种基于“流”(Flows) 的编程工具,

它有一个可视化编辑器,允许将预定义的代码块(称为“节点”,Node)连接起来执行任务。

连接的节点,通常是输入节点、处理节点和输出节点的组合,当它们连接在一起时,构成一个“流”(Flows)。

可以实现智能家居的各种自动 化,通常连接到Home Assistant内执行。

访问:http://xxx.cn:1880

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
## ################################################################################

# Stack or Compose
################################################################################
# docker stack deploy node-red --compose-file docker-compose-node-red.yml
# docker-compose -f docker-compose-node-red.yml -p myNoderedProject up
################################################################################
version: "3.7"

services:
node-red:
image: nodered/node-red:latest
environment:
- TZ=Asia/Shanghai
ports:
- 1880:1880
networks:
- node-red-net
volumes:
- ./data:/data

networks:
node-red-net:

7、SSL证书监测平台——Domain Admin

Domain Admin主要功能
目前的功能特点:

  • 支持Docker一键部署
  • 支持申请证书,自动续签
  • 支持网站状态检测
  • 支持证书到期提醒
  • 支持域名到期提醒
  • 提醒方式支持邮件、Telegram、WebHook、企业微信、钉钉、飞书
  • 轻量化

官方GitHub地址:https://github.com/dromara/domain-admin (目前1.7k个star,欢迎大家去给项目点星星!)
文档:https://domain-admin.readthedocs.io/zh-cn/latest/manual/install.html
Demo:https://demo.domain-admin.cn/

1
2
3
4
5
6
7
8
9
10
11
12
13
version: '3.8'

services:
domain-admin:
image: mouday/domain-admin:latest
container_name: domain-admin
ports:
- "8000:8000"
volumes:
- ./database:/app/database
- ./logs:/app/logs
restart: always # Ensures the container restarts on failure, optional
#detach: true # Corresponds to `-d`

8、Reader-网文阅读器 安卓的“阅读”APP网页版

https://github.com/hectorqin/reader

  • 1.1 特点
    咕咕这边简单在网上也抄~~~~搜集了一些特点,供大家参考(翻译自GitHub的README):

  • GitHub完全开源,可以免费使用

  • Docker搭建,10分钟搞定

  • 书架管理

  • 搜索

  • 书海

  • 看书

  • 移动端适配

  • 换源

  • 翻页方式

  • 手势支持

  • 自定义主题

  • 自定义样式

  • WebDAV同步

  • 文字替换过滤

  • 听书<仅部分浏览器支持,手机端会因为锁屏而失效>

  • 用户配置备份恢复

  • 支持漫画

  • 支持音频

  • 书源失效检测

  • 导入本地TXT、EPUB、UMD格式的书籍

  • 书籍分组

  • RSS订阅

  • 定时更新书架

  • 并发搜书

  • 本地书仓

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
version: '3.1'
services:

# reader 在线阅读
# 第三方在线演示(服务器位于日本):https://reader.nxnow.top
# 在线演示测试账号/密码分别为guest/guest123,也可自行创建账号添加书源,不定期删除长期未登录账号
# 书源参考 : https://github.com/NZESupB/ReadSource,书源合集下选一个合集进入网页后,Ctrl+S 保存至本地后导入网站即可,或者点击远程书源,将链接导入即可

# 单用户版
#docker run -d --restart=always --name=reader -e "SPRING_PROFILES_ACTIVE=prod" -v $(pwd)/logs:/logs -v $(pwd)/storage:/storage -p 8080:8080 hectorqin/reader
# 多用户版
#docker run -d --restart=always --name=reader -e "SPRING_PROFILES_ACTIVE=prod" -e "READER_APP_SECURE=true" -e "READER_APP_SECUREKEY=管理密码" -e "READER_APP_INVITECODE=注册邀请码" -v $(pwd)/logs:/logs -v $(pwd)/storage:/storage -p 8088:8080 hectorqin/reader

reader:
image: hectorqin/reader
#image: hectorqin/reader:openj9-latest #docker镜像,arm64架构和小内存机器可以使用
container_name: reader #容器名 可自行修改
restart: always
#限制镜像最大资源占用(可选) 低内存(<=2G)可考虑限制 使用此方式启动需加--compatibility,例如 docker-compose --compatibility up -d
#deploy:
#resources:
#limits: #最大限制资源
#cpus: '0.50' #cpu建议不做限制,保持注释即可,1表示100%
#memory: 1024M
#reservations: #保留最小资源
#cpus: 0.25
#memory: 256M
ports:
- 8088:8080 #4396端口映射可自行修改
volumes:
- /home/docker_data/reader/logs:/logs #log映射目录 /home/reader/logs 映射目录可自行修改
- /home/docker_data/reader/storage:/storage #数据映射目录 /home/reader/storage 映射目录可自行修改
#可配置默认书源,默认书源存放于数据映射目录中:storage/data/default/bookSource.json
#书源参考(大部分可通用):https://www.legado.top/blog/book-source
#wget -c https://namofree.gitee.io/yuedu3/legado3_booksource_by_Namo.json -O /home/reader/storage/data/default/bookSource.json
environment:
- SPRING_PROFILES_ACTIVE=prod
- READER_APP_USERLIMIT=50 #用户上限,默认50
- READER_APP_USERBOOKLIMIT=500 #用户书籍上限,默认200
- READER_APP_CACHECHAPTERCONTENT=true #开启缓存章节内容 V2.0
# 下面都是多用户模式配置
- READER_APP_SECURE=true #开启登录鉴权,开启后将支持多用户模式
- READER_APP_SECUREKEY=HHll5200 #管理员密码 建议修改
- READER_APP_INVITECODE=qqai #注册邀请码 建议修改,如不需要可注释或删除
# 自动更新docker
watchtower:
image: containrrr/watchtower
container_name: watchtower
restart: always
# 环境变量,设置为上海时区
environment:
- TZ=Asia/Shanghai
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: reader watchtower wikijs --cleanup --schedule "0 0 4 * * *"
# 仅更新reader与watchtower容器,如需其他自行添加 '容器名' ,如:reader watchtower nginx
# --cleanup 更新后清理旧版本镜像
# --schedule 自动检测更新 crontab定时(限定6位crontab) 此处代表凌晨4点整

9、xunlei-迅雷下载器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
version: '3.8'  # Specifies the version of Docker Compose

services:
xunlei:
image: gngpp/xunlei:latest
container_name: xunlei
ports:
- "5055:5055"
environment:
- XUNLEI_AUTH_USER=admin
- XUNLEI_AUTH_PASSWORD=admin
volumes:
- ./data:/opt/data #数据目录映射
- /D/xunlei:/downloads #下载地址映射
privileged: true
stdin_open: true # Corresponds to `-i`
tty: true # Corresponds to `-t`
restart: always # Ensures the container restarts on failure, optional

访问:http://127.0.0.1:5055

10、Alltube-视频下载器

1
2
3
4
5
6
7
8
9
10
11
12
13
version: '3'
services:
alltube:
image: dnomd343/alltube
container_name: alltube
environment:
- TITLE="Alltube-Video Downloader"
- CONVERT=ON
- STREAM=ON
- REMUX=ON
- PORT=3034
restart: always
network_mode: host

访问:http://127.0.0.1:3034

11、TaleBooks

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
version: "2.4"

services:

talebook:
restart: always
image: talebook/talebook:latest
volumes:
- ./data:/data
ports:
- "86:80"
- "8443:443"
depends_on:
- douban-rs-api

# optional, for meta plugins
# please set "http://douban-rs-api" in settings
douban-rs-api:
restart: always
image: ghcr.io/cxfksword/douban-api-rs

12、Glance:搭建专属你自己的信息聚合页

好久没更新了,今天来分享一个非常棒的自托管仪表板,可以显示实时 RSS 订阅、Reddit 子版块帖子、天气、书签、特定频道的最新 YouTube 视频、日历、股票信息、iframe、twitch 频道和热门游戏、GitHub 发布和网站监控等。

https://github.com/glanceapp/glance

* 支持各种小部件

  • RSS 源

  • Subreddit 帖子

  • 天气

  • 书签

  • Hacker News

  • Lobsters

  • 特定频道的最新 YouTube 视频

  • 时钟

  • 日历

  • 股票

  • iframe

  • Twitch 频道和热门游戏

  • GitHub 发布

  • 代码库概览

  • 网站监控

  • 搜索框

十分轻量

  • 极少的 JavaScript,无臃肿的框架
  • 极少的依赖
  • 单一且易于分发的 小于15MB 二进制文件以及同样小的 Docker 容器
  • 所有请求都是并行处理的,未缓存的页面通常在 ~1 秒内加载(取决于网速和小部件数量)

docker-compose.yaml:

1
2
3
4
5
6
7
8
9
10
11
12
services:
glance:
image: glanceapp/glance
container_name: glance
restart: unless-stopped
ports:
- 8080:8080 # 左边的8080可以自由修改成服务器上没有被占用的端口,右边的8080不要动。
volumes:
- ./glance.yml:/app/glance.yml
- ./assets:/app/assets
- /etc/TZ:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro

13、mblog:一个类似微信朋友圈的项目,适合记录生活

docker-compose.yaml:

1
2
3
4
5
6
7
8
9
services:
moments:
image: kingwrcy/moments:latest
ports:
- "8080:3000" #左边的8080可以随意更改成服务器上没有用过的端口
volumes:
- ./moments-data:/app/data
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro

默认用户名密码:admin/a123456

14、Stirling PDF:10分钟搭建一个PDF工具箱,满足你的所有PDF需求

这是一个强大的本地托管的基于docker的基于web的PDF操作工具,可以让你对PDF文件进行各种操作,如拆分、合并、转换、重新组织、添加图片、旋转、压缩等等。这个本地托管的web应用程序最初是由100%的ChatGPT制作的应用程序,并已发展成为包含各种功能以满足你所有的PDF需求。

官方GitHub地址:https://github.com/Stirling-Tools/Stirling-PDF

docker-compose.yml:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: '3.3'
services:
stirling-pdf:
image: frooodle/s-pdf:latest
ports:
- '8080:8080'
volumes:
- ./trainingData:/usr/share/tessdata #Required for extra OCR languages
- ./extraConfigs:/configs
# - ./customFiles:/customFiles/
# - ./logs:/logs/
environment:
- DOCKER_ENABLE_SECURITY=false
- INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false

15、Jitsi:腾讯会议替代品,一个开源视频会议项目

官方GitHub地址:https://github.com/jitsi/jitsi-meet

部署教程:https://blog.laoda.de/archives/docker-compose-install-jitsi

16、PhotoPrism:搭建属于自己的个人相册

官方GitHub地址:https://github.com/photoprism/photoprism/
官方Demo:https://demo-zh.photoprism.app/
官方文档:https://docs.photoprism.app/getting-started

点击查看代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
version: '3.5' 
# 示例 Docker Compose 配置文件,用于 PhotoPrism(Linux / AMD64)
#
# 注意:
# - 在内存小于 4 GB 或设置了内存/交换空间限制的服务器上运行 PhotoPrism 可能会导致意外重启(“崩溃”),
# 例如,当索引器临时需要更多内存来处理大文件时。
# - 如果您在家庭网络之外的公共服务器上安装 PhotoPrism,请始终在安全的 HTTPS 反向代理(如 Traefik 或 Caddy)后面运行它。
# 否则,您的文件和密码将以明文传输,任何人,包括您的提供商、黑客和政府都可以截获:
# https://docs.photoprism.app/getting-started/proxies/traefik/
#
# 安装指南:
# - https://docs.photoprism.app/getting-started/docker-compose/
# - https://docs.photoprism.app/getting-started/raspberry-pi/
# - https://www.photoprism.app/kb/activation
#
# 故障排除清单:
# - https://docs.photoprism.app/getting-started/troubleshooting/
# - https://docs.photoprism.app/getting-started/troubleshooting/docker/
# - https://docs.photoprism.app/getting-started/troubleshooting/mariadb/
#
# CLI 命令:
# - https://docs.photoprism.app/getting-started/docker-compose/#command-line-interface
#
# 所有命令在非 root 用户下运行时可能需要加上 "sudo" 前缀。
# 这将使得卷挂载中的家目录快捷方式 ~ 指向 /root。
services:
photoprism:
## 使用 photoprism/photoprism:preview 来测试预览版构建:
image: photoprism/photoprism:latest
## 在 PhotoPrism 配置正确并经过测试之前不要启用自动重启!
## 如果服务陷入重启循环,这表明存在内存、文件系统、网络或数据库问题:
## https://docs.photoprism.app/getting-started/troubleshooting/#fatal-server-errors
# restart: unless-stopped
stop_grace_period: 10s
depends_on:
- mariadb
security_opt:
- seccomp:unconfined
- apparmor:unconfined
ports:
- "8080:2342" # HTTP 端口(宿主机:容器)
environment:
PHOTOPRISM_ADMIN_USER: "admin" # 管理员登录用户名
PHOTOPRISM_ADMIN_PASSWORD: "insecure" # 初始管理员密码(8-72个字符)
PHOTOPRISM_AUTH_MODE: "password" # 认证模式(public,password)
PHOTOPRISM_SITE_URL: "http://localhost:2342/" # 服务器 URL 格式为 "http(s)://domain.name(:port)/(path)"
PHOTOPRISM_DISABLE_TLS: "false" # 即使网站 URL 以 https:// 开头并且可用证书也禁用 HTTPS/TLS
PHOTOPRISM_DEFAULT_TLS: "true" # 如果没有其他证书可用,默认使用自签名 HTTPS/TLS 证书
PHOTOPRISM_ORIGINALS_LIMIT: 5000 # 原始文件的大小限制,以 MB 为单位(提高高分辨率视频的限制)
PHOTOPRISM_HTTP_COMPRESSION: "gzip" # 提高传输速度和带宽利用率(none 或 gzip)
PHOTOPRISM_LOG_LEVEL: "info" # 日志级别:trace, debug, info, warning, error, fatal, 或 panic
PHOTOPRISM_READONLY: "false" # 不修改原始目录(功能减少)
PHOTOPRISM_EXPERIMENTAL: "false" # 启用实验性功能
PHOTOPRISM_DISABLE_CHOWN: "false" # 禁用在启动时通过 chmod 和 chown 更新存储权限
PHOTOPRISM_DISABLE_WEBDAV: "false" # 禁用内置的 WebDAV 服务器
PHOTOPRISM_DISABLE_SETTINGS: "false" # 禁用设置 UI 和 API
PHOTOPRISM_DISABLE_TENSORFLOW: "false" # 禁用所有依赖 TensorFlow 的功能
PHOTOPRISM_DISABLE_FACES: "false" # 禁用人脸检测和识别(需要 TensorFlow)
PHOTOPRISM_DISABLE_CLASSIFICATION: "false" # 禁用图像分类(需要 TensorFlow)
PHOTOPRISM_DISABLE_VECTORS: "false" # 禁用矢量图形支持
PHOTOPRISM_DISABLE_RAW: "false" # 禁用 RAW 图像的索引和转换
PHOTOPRISM_RAW_PRESETS: "false" # 启用在转换 RAW 图像时应用用户预设(降低性能)
PHOTOPRISM_JPEG_QUALITY: 85 # 提高 JPEG 图像和缩略图的质量和文件大小的值(25-100)
PHOTOPRISM_DETECT_NSFW: "false" # 自动将可能冒犯的照片标记为私有(需要 TensorFlow)
PHOTOPRISM_UPLOAD_NSFW: "true" # 允许上传可能冒犯的内容(没有 TensorFlow 无效)
# PHOTOPRISM_DATABASE_DRIVER: "sqlite" # SQLite 是一个不需要服务器的嵌入式数据库
PHOTOPRISM_DATABASE_DRIVER: "mysql" # 使用 MariaDB 10.5+ 或 MySQL 8+ 而不是 SQLite 以提高性能
PHOTOPRISM_DATABASE_SERVER: "mariadb:3306" # MariaDB 或 MySQL 数据库服务器(主机名:端口)
PHOTOPRISM_DATABASE_NAME: "photoprism" # MariaDB 或 MySQL 数据库架构名称
PHOTOPRISM_DATABASE_USER: "photoprism" # MariaDB 或 MySQL 数据库用户名
PHOTOPRISM_DATABASE_PASSWORD: "insecure" # MariaDB 或 MySQL 数据库用户密码
PHOTOPRISM_SITE_CAPTION: "AI-Powered Photos App"
PHOTOPRISM_SITE_DESCRIPTION: "" # 网站描述元信息
PHOTOPRISM_SITE_AUTHOR: "" # 网站作者元信息
## 视频转码(https://docs.photoprism.app/getting-started/advanced/transcoding/):
# PHOTOPRISM_FFMPEG_ENCODER: "software" # H.264/AVC 编码器(software, intel, nvidia, apple, raspberry, 或 vaapi)
# PHOTOPRISM_FFMPEG_SIZE: "1920" # 视频尺寸限制,以像素为单位(720-7680)(默认值:3840)
# PHOTOPRISM_FFMPEG_BITRATE: "32" # 视频比特率限制,以 Mbit/s 为单位(默认值:50)
## 首次启动时运行/安装(选项:update https gpu tensorflow davfs clitools clean):
# PHOTOPRISM_INIT: "https gpu tensorflow"
## 初始化后以非 root 用户身份运行(支持:0, 33, 50-99, 500-600, 以及 900-1200):
# PHOTOPRISM_UID: 1000
# PHOTOPRISM_GID: 1000
# PHOTOPRISM_UMASK: 0000
## 在初始化之前以非 root 用户身份启动(支持:0, 33, 50-99, 500-600, 以及 900-1200):
# user: "1000:1000"
## 与 FFmpeg 和 TensorFlow 共享硬件设备(可选):
# devices:
# - "/dev/dri:/dev/dri" # Intel QSV
# - "/dev/nvidia0:/dev/nvidia0" # Nvidia CUDA
# - "/dev/nvidiactl:/dev/nvidiactl"
# - "/dev/nvidia-modeset:/dev/nvidia-modeset"
# - "/dev/nvidia-nvswitchctl:/dev/nvidia-nvswitchctl"
# - "/dev/nvidia-uvm:/dev/nvidia-uvm"
# - "/dev/nvidia-uvm-tools:/dev/nvidia-uvm-tools"
# - "/dev/video11:/dev/video11" # Video4Linux 视频编码设备 (h264_v4l2m2m)
working_dir: "/photoprism" # 不要更改或移除
## 存储文件夹:"~" 是您家目录的快捷方式,"." 是当前目录
volumes:
# "/host/folder:/photoprism/folder" # 示例
- "~/Pictures:/photoprism/originals" # 原始媒体文件(不要移除)
# - "/example/family:/photoprism/originals/family" # 可以像这样挂载*额外的*媒体文件夹
# - "~/Import:/photoprism/import" # *可选*可以从中将文件导入到原始文件的基础文件夹
- "./storage:/photoprism/storage" # *可写的*存储文件夹,用于缓存、数据库和旁路文件(不要移除)
## 数据库服务器(推荐)
## 参见 https://docs.photoprism.app/getting-started/faq/#should-i-use-sqlite-mariadb-or-mysql
mariadb:
image: mariadb:10.11
## 如果 MariaDB 陷入重启循环,这表明存在内存或文件系统问题:
## https://docs.photoprism.app/getting-started/troubleshooting/#fatal-server-errors
restart: unless-stopped
stop_grace_period: 5s
security_opt: # 参见 https://github.com/MariaDB/mariadb-docker/issues/434#issuecomment-1136151239
- seccomp:unconfined
- apparmor:unconfined
command: mariadbd --innodb-buffer-pool-size=512M --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
## 永远不要将数据库文件存储在不可靠的设备上,如 USB 闪存盘、SD卡或共享网络文件夹:
volumes:
- "./database:/var/lib/mysql" # 不要移除
environment:
MARIADB_AUTO_UPGRADE: "1"
MARIADB_INITDB_SKIP_TZINFO: "1"
MARIADB_DATABASE: "photoprism"
MARIADB_USER: "photoprism"
MARIADB_PASSWORD: "insecure"
MARIADB_ROOT_PASSWORD: "insecure"
## Watchtower 自动升级服务(可选)
## 参见 https://docs.photoprism.app/getting-started/updates/#watchtower
## 通过 "COMPOSE_PROFILES=update docker compose up -d" 激活
watchtower:
restart: unless-stopped
image: containrrr/watchtower
profiles: ["update"]
environment:
WATCHTOWER_CLEANUP: "true"
WATCHTOWER_POLL_INTERVAL: 7200 # 每两小时检查一次更新
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "~/.docker/config.json:/config.json" # 可选,如果您有 Docker Hub 账户用于认证

17、Excalidraw:风靡硅谷的白板工具

Excalidraw 是近两年新起的一款画图工具,主要包含白板、流程图的功能,它简单好用,有画图界的 Markdown 之称。

相关地址

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
version: "3.8"

services:
excalidraw:
build:
context: .
args:
- NODE_ENV=development
container_name: excalidraw
ports:
- "8099:80" # 可以更改8099端口为自己想要的端口
restart: on-failure
stdin_open: true
healthcheck:
disable: true
environment:
- NODE_ENV=development
volumes:
- ./:/opt/node_app/app:delegated
- ./package.json:/opt/node_app/package.json
- ./yarn.lock:/opt/node_app/yarn.lock
- notused:/opt/node_app/app/node_modules

volumes:
notused:

18、SearXNG——自建一个属于自己的免费搜索引擎平台!尊重隐私、完全开源!

系统特色

尊重隐私、可定制的元搜索引擎。

SearXNG是searx的一个分支。(原因是内部对项目发展的想法不一)

以下是一些特性:

  • 桌面、平板和手机上自适应显示
  • 支持暗夜模式(你可以在首选项中选择)
  • 支持从右到左的语言
  • 查看屏幕截图
  • 支持Docker部署,还可以为ARM64和ARM/v7架构构建镜像(树莓派也能安装)

相关地址

2023年11月29日更新补充:

第三方镜像地址:https://hub.docker.com/r/paulgoio/searxng
(据说官方镜像有小问题,这个是改良版本,来源:https://hostloc.com/thread-1241206-1-2.html)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
version: '3.7'

services:
# 我们注释掉caddy的内容
# caddy:
# container_name: caddy
# image: caddy:2-alpine
# network_mode: host
# volumes:
# - ./Caddyfile:/etc/caddy/Caddyfile:ro
# - caddy-data:/data:rw
# - caddy-config:/config:rw
# environment:
# - SEARXNG_HOSTNAME=${SEARXNG_HOSTNAME:-http://localhost:80}
# - SEARXNG_TLS=${LETSENCRYPT_EMAIL:-internal}
# cap_drop:
# - ALL
# cap_add:
# - NET_BIND_SERVICE
# - DAC_OVERRIDE

redis:
container_name: redis
image: "redis:alpine"
command: redis-server --save "" --appendonly "no"
networks:
- searxng
tmpfs:
- /var/lib/redis
cap_drop:
- ALL
cap_add:
- SETGID
- SETUID
- DAC_OVERRIDE

searxng:
container_name: searxng
image: searxng/searxng:latest
networks:
- searxng
ports:
- "8180:8080" # 这个冒号左边的端口可以更改,右边的不要改
volumes:
- ./searxng:/etc/searxng:rw
environment:
- SEARXNG_BASE_URL=https://${SEARXNG_HOSTNAME:-https://你的域名}/
cap_drop:
- ALL
cap_add:
- CHOWN
- SETGID
- SETUID
- DAC_OVERRIDE
logging:
driver: "json-file"
options:
max-size: "1m"
max-file: "1"
networks:
searxng:
ipam:
driver: default

#volumes:
#caddy-data:
#caddy-config:

19、Wiki.js:最强大、可扩展性最强的Wiki软件

1.1 特点

  • 可以自建的开源项目(GitHub 15.7k star)
  • 支持多平台部署(Docker、Heroku、Linux、macOS、Windows)
  • 支持多用户
  • 易部署,易管理(Docker一下即可)
  • 权限管理功能丰富
  • 支持外部存储
  • 性能好(基于Node.js)
  • 搜索功能强大,支持全局、按关键字搜索
  • 支持标签功能,可按标签浏览
  • 简洁的web页面
  • 支持多语言,支持中文
  • 拥有多种编辑器,目前有code(可编写html页面),markdown(在编辑页面可看到页面效果),visual editor(功能强大的文本编辑器,所见即所得)
  • 团队维护更新积极
  1. 项目展示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
---
version: "2.1"
services:
wikijs:
image: lscr.io/linuxserver/wikijs
container_name: wikijs
environment:
- PUID=1000 # 如何查看当前用户的PUID和PGID,直接命令行输入id就行
- PGID=1000
- TZ=Asia/Shanghai
volumes:
- /root/data/docker_data/wikijs/config:/config # 配置文件映射到本地,数据不会因为Docker停止而丢失
- /root/data/docker_data/wikijs/data:/data # 数据映射到本地,数据不会因为Docker停止而丢失
ports:
- 8080:3000 # 左边的8080可以自己调整端口号,右边的3000不要改
restart: unless-stopped

20、Navidrome:完全自由的音乐播放软件——— 随时随地!想听就听!

听歌,多平台版权收紧,难听到自己喜欢的歌,不如自己建服务,如果有几个大型PT站,资源方面不成问题,于是乎就又想着自建一个类似云音乐的服务,这样随时随地在任何地方都能播放我想听的任何歌曲,再也不用担心歌曲被下架了。

优点:

  • 几乎可以播放任何音频格式

  • 多用户,每个用户都有自己的播放次数、播放列表、收藏夹等。

  • 资源使用率非常低。例如:300GB的资料库(约29000首歌曲),使用不到50MB的内存。(@小z反馈待机状态40Mb左右)

  • 界面简洁,支持中文

  • 支持Subsonic API,也就是说Subsonic能用的客户端,Navidrome都能用

    iOS: play:Sub, substreamer, Amperfy, iSub

    Android: DSub, Subtracks, subreamer, Ultrasonic, Audinaut

    网页端: Subplayer, Airsonic Refix, Aurial, Jamstash, Subfire

    桌面端: Sublime Music(Linux)和Sonixd(Windows/Linux/MacOS)

    命令行: Jellycli(Windows/Linux)和STMP(Linux/MacOS)

桌面版本强烈推荐:sonixd,下载地址:https://github.com/jeffvli/sonixd/releases

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
version: "3"
services:
navidrome:
image: deluan/navidrome:latest
ports:
- "4533:4533" # 左边可以改成自己服务器未被占用的端口
environment:
# Optional: put your config options customization here. Examples(这些都是可选的):
ND_SCANSCHEDULE: 1m
ND_LASTFM_ENABLED:
ND_LASTFM_APIKEY: eabdf1d50c0e912487521b154a8es1fda694 # 修改成自己的APIKEY
ND_LASTFM_SECRET: a67666ca4as89d7231cf9fc990ef8a2ae6d # 修改成自己的SECRET
ND_SPOTIFY_ID: 4cd036bsqd1594bd0b41bc8f94c46846d # 修改成自己的ID
ND_SPOTIFY_SECRET: 249ca01a48be46fcb084523a6b267661bb1 # 修改成自己的SECRET
ND_LASTFM_LANGUAGE: zh
ND_LOGLEVEL: info
ND_SESSIONTIMEOUT: 24h
ND_BASEURL: ""
volumes:
- "./data:/data"
- "/root/data/docker_data/qbittorrent/music:/music:ro" # 冒号左边修改成自己本地的音乐文件夹路径

miniserve:
image: svenstaro/miniserve:latest
depends_on:
- navidrome
ports:
- "4534:8080"
volumes:
- "/root/data/docker_data/qbittorrent/music:/downloads" # 冒号左边修改成自己本地的音乐文件夹路径
command: "-r -z -u -q -p 8080 -a imgugugege:szwl2080! /downloads" # imgugugege:szwl2080! 修改成自己的账号:密码
restart: unless-stopped

21、qbittorrent:个人专属的下载神器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
version: "2"
services:
qbittorrent:
image: linuxserver/qbittorrent
container_name: qbittorrent
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai # 你的时区
- UMASK_SET=022
- WEBUI_PORT=8081 # 将此处修改成你欲使用的 WEB 管理平台端口
volumes:
- ./config:/config # 绝对路径请修改为自己的config文件夹
- ./downloads:/downloads # 绝对路径请修改为自己的downloads文件夹
ports:
# 要使用的映射下载端口与内部下载端口,可保持默认,安装完成后在管理页面仍然可以改成其他端口。
- 6881:6881
- 6881:6881/udp
# 此处WEB UI 目标端口与内部端口务必保证相同,见问题1
- 8081:8081
restart: unless-stopped

访问ip:port,进入 WebUI 管理界面。

默认账号admin,默认密码adminadmin

22、Trilium:超高自由度的个人知识库,个人笔记系统

希望笔记软件对开发者友好,必须有Markdown编辑器和富文本编辑器,界面简洁美观,跨平台,版本回滚及备份,高效可靠云同步,传输和存储的加密功能。而Trilium Notes完全满足笔者上述的需求。

1.特点

  • 笔记可以排列成任意深的树。单个笔记可以放在树中的多个位置(请参阅克隆)
  • 丰富的所见即所得笔记编辑功能,包括带有markdown自动格式化功能的表格,图像和数学
  • 支持编辑使用源代码的笔记,包括语法高亮显示
  • 笔记之间快速导航,全文搜索和笔记挂起
  • 无缝笔记版本控制
  • 笔记属性可用于笔记组织,查询和高级脚本编写
  • 同步与自托管同步服务器
  • 具有按笔记粒度的强大的笔记加密
  • 关系图和链接图,用于可视化笔记及其关系
  • 脚本-请参阅高级展示
  • 可用性和性能均能很好地扩展至超过10万个笔记
  • 针对智能手机和平板电脑进行触摸优化的移动前端
  • 夜间主题
  • Evernote和Markdown导入导出
  • Web Clipper可轻松保存Web内容
  1. 项目展示

docker-compose.yaml:

1
2
3
4
5
6
7
8
9
10
11
12
13
version: '3'
services:
trilium-cn:
image: nriver/trilium-cn
restart: always
ports:
- "8080:8080"
volumes:
# 把同文件夹下的 trilium-data 目录映射到容器内
- ./trilium-data:/root/trilium-data
environment:
# 环境变量表示容器内笔记数据的存储路径
- TRILIUM_DATA_DIR=/root/trilium-data

17、

1
2
3
4
5
6
7
8
9
10
11
12
13
version: '3.8'

services:
domain-admin:
image: mouday/domain-admin:latest
container_name: domain-admin
ports:
- "8000:8000"
volumes:
- ./database:/app/database
- ./logs:/app/logs
restart: always # Ensures the container restarts on failure, optional
#detach: true # Corresponds to `-d`

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com

×

喜欢就点赞,疼爱就打赏