超级好用的Docker项目收藏
利用docker来安装一些非常好用的项目,绿色无污染,部署容易。通常喜欢用docker-compose的方式部署
命令:
sudo docker-compose up -d
sudo docker-compose down
sudo docker-compose pull
sudo docker-compose stop
sudo docker-compose restart
1、ScreeGo:开源、可自托管,在线多人屏幕分享工具
DEMO: https://app.screego.net/
用户只需要使用浏览器,即可分享电脑屏幕,软件窗口,或浏览器标签页,通过 WebRTC 安全传输数据,响应迅速。
如何创建自己的 ScreeGo
作为开源项目,ScreeGo 提供了 Docker 与二进制两种方式,看起来都很简单。官方文档页面也放出了即开即用指南,跟着做就行了。
Docker:
sudo docker run --net=host -e SCREEGO_EXTERNAL_IP=YOUREXTERNALIP screego/server:1.5.1
# on Linux $ ./screego # on windows $ screego.exe
2、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:
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
3、mblog:一个类似微信朋友圈的项目,适合记录生活
docker-compose.yaml:
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
4、Stirling PDF:10分钟搭建一个PDF工具箱,满足你的所有PDF需求
这是一个强大的本地托管的基于docker的基于web的PDF操作工具,可以让你对PDF文件进行各种操作,如拆分、合并、转换、重新组织、添加图片、旋转、压缩等等。这个本地托管的web应用程序最初是由100%的ChatGPT制作的应用程序,并已发展成为包含各种功能以满足你所有的PDF需求。
官方GitHub地址:https://github.com/Stirling-Tools/Stirling-PDF
docker-compose.yml:
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
5、Jitsi:腾讯会议替代品,一个开源视频会议项目
官方GitHub地址:https://github.com/jitsi/jitsi-meet
部署教程:https://blog.laoda.de/archives/docker-compose-install-jitsi
6、PhotoPrism:搭建属于自己的个人相册
官方GitHub地址:https://github.com/photoprism/photoprism/
官方Demo:https://demo-zh.photoprism.app/
官方文档:https://docs.photoprism.app/getting-started
点击查看代码
```yaml 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 账户用于认证 ```7、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
,登录 Vaultwarden 管理后台,登陆密码为自己设置的 ADMIN_TOKEN
GitHub: ghcr.io/dani-garcia/vaultwarden
Docker Hub: docker.io/vaultwarden/server
Quay: quay.io/vaultwarden/server
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:
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:
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
8、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:
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
9、Memos:碎片化知识卡片管理工具——备忘
一个开源的、支持私有化部署的碎片化知识卡片管理工具——Memos
官方Demo:https://demo.usememos.com/
GitHub地址:https://github.com/usememos/memos (543 Star)
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
10、Excalidraw:风靡硅谷的白板工具
Excalidraw 是近两年新起的一款画图工具,主要包含白板、流程图的功能,它简单好用,有画图界的 Markdown 之称。
相关地址
- 官网地址:https://plus.excalidraw.com/
- GitHub地址:https://github.com/excalidraw/excalidraw (32.4k star)
- discord地址:https://discord.gg/UexuTaE
- demo:https://excalidraw.com/ (可能被墙了)
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:
11、SearXNG——自建一个属于自己的免费搜索引擎平台!尊重隐私、完全开源!
系统特色
尊重隐私、可定制的元搜索引擎。
SearXNG是searx的一个分支。(原因是内部对项目发展的想法不一)
以下是一些特性:
- 桌面、平板和手机上自适应显示
- 支持暗夜模式(你可以在首选项中选择)
- 支持从右到左的语言
- 查看屏幕截图
- 支持Docker部署,还可以为ARM64和ARM/v7架构构建镜像(树莓派也能安装)
相关地址
- 官方Demo:https://searx.space/
- 咕咕的Demo:http://search.gugu.ge/ (可以用咕咕的这个,不过还是建议自建)
- 文档地址:https://docs.searxng.org/
- GitHub地址:https://github.com/searxng/searxng (2.6K Star)
- Docker仓库地址:https://github.com/searxng/searxng-docker
2023年11月29日更新补充:
第三方镜像地址:https://hub.docker.com/r/paulgoio/searxng
(据说官方镜像有小问题,这个是改良版本,来源:https://hostloc.com/thread-1241206-1-2.html)
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:
12、RustDesk:开源远程桌面服务,远程控制系统
一个非常好用的远程桌面软件。
搭建
2.特点
简单在网上抄搜集了一些特点,供大家参考:
用Rust编写
开箱即用,不需要复杂的配置
你可以完全控制你的数据,而不用担心安全问题
你可以使用官方的rendezvous/relay服务器,也可以建立你自己的rendezvous/relay服务器。
当然我们今天就是和大家分享一下如何搭建。
- GitHub原项目地址(感谢作者的付出):https://github.com/rustdesk/rustdesk(23.2k star)
- Docker镜像地址:https://hub.docker.com/r/rustdesk/rustdesk-server/tags
- 官网地址:https://rustdesk.com
- 文档地址:https://rustdesk.com/docs/zh-cn/self-host/
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
13、Wiki.js:最强大、可扩展性最强的Wiki软件
1.1 特点
- 可以自建的开源项目(GitHub 15.7k star)
- 支持多平台部署(Docker、Heroku、Linux、macOS、Windows)
- 支持多用户
- 易部署,易管理(Docker一下即可)
- 权限管理功能丰富
- 支持外部存储
- 性能好(基于Node.js)
- 搜索功能强大,支持全局、按关键字搜索
- 支持标签功能,可按标签浏览
- 简洁的web页面
- 支持多语言,支持中文
- 拥有多种编辑器,目前有code(可编写html页面),markdown(在编辑页面可看到页面效果),visual editor(功能强大的文本编辑器,所见即所得)
- 团队维护更新积极
- GitHub原项目地址:https://github.com/Requarks/wiki
- 官网地址:https://js.wiki/
- 官方文档地址:https://docs.requarks.io/
- 本教程用的镜像:https://hub.docker.com/r/linuxserver/wikijs
- Demo:https://docs.requarks.io/
---
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
14、Navidrome:完全自由的音乐播放软件——— 随时随地!想听就听!
听歌,多平台版权收紧,难听到自己喜欢的歌,不如自己建服务,如果有几个大型PT站,资源方面不成问题,于是乎就又想着自建一个类似云音乐的服务,这样随时随地在任何地方都能播放我想听的任何歌曲,再也不用担心歌曲被下架了。
Navidrome优缺点
优点:
几乎可以播放任何音频格式
多用户,每个用户都有自己的播放次数、播放列表、收藏夹等。
资源使用率非常低。例如: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
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
15、qbittorrent:个人专属的下载神器
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
16、Trilium:超高自由度的个人知识库,个人笔记系统
希望笔记软件对开发者友好,必须有Markdown编辑器和富文本编辑器,界面简洁美观,跨平台,版本回滚及备份,高效可靠云同步,传输和存储的加密功能。而Trilium Notes完全满足笔者上述的需求。
1.特点
- 笔记可以排列成任意深的树。单个笔记可以放在树中的多个位置(请参阅克隆)
- 丰富的所见即所得笔记编辑功能,包括带有markdown自动格式化功能的表格,图像和数学
- 支持编辑使用源代码的笔记,包括语法高亮显示
- 笔记之间快速导航,全文搜索和笔记挂起
- 无缝笔记版本控制
- 笔记属性可用于笔记组织,查询和高级脚本编写
- 同步与自托管同步服务器
- 具有按笔记粒度的强大的笔记加密
- 关系图和链接图,用于可视化笔记及其关系
- 脚本-请参阅高级展示
- 可用性和性能均能很好地扩展至超过10万个笔记
- 针对智能手机和平板电脑进行触摸优化的移动前端
- 夜间主题
- Evernote和Markdown导入导出
- Web Clipper可轻松保存Web内容
- GitHub原项目地址:https://github.com/zadam/trilium
- 英文版本客户端下载地址:https://github.com/zadam/trilium/releases
- GitHub项目中文版本地址:https://github.com/Nriver/trilium-translation
- 中文版本客户端下载地址:https://github.com/Nriver/trilium-translation/releases
- 项目截图地址:https://github.com/zadam/trilium/wiki/Screenshot-tour
- 中文文档地址:https://github.com/zadam/trilium/blob/master/README-ZH_CN.md
docker-compose.yaml:
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
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 vault@coolxy.cn