超级好用的Docker项目收藏

超级好用的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

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,登录 Vault­war­den 管理后台,登陆密码为自己设置的 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,是多重要素验证中的一个特例,使用两种不同的元素,基于时间随机生成一串验证码用于和服务器验证的技术,来确认用户的身份。(类似之前网易的将军令和银行的电子令牌)

相关地址

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 之称。

相关地址

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架构构建镜像(树莓派也能安装)

相关地址

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:开源远程桌面服务,远程控制系统

  1. 介绍

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

搭建

2.特点

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

  • 用Rust编写

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

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

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

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

  1. 项目展示

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(功能强大的文本编辑器,所见即所得)
  • 团队维护更新积极
  1. 项目展示

---
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站,资源方面不成问题,于是乎就又想着自建一个类似云音乐的服务,这样随时随地在任何地方都能播放我想听的任何歌曲,再也不用担心歌曲被下架了。

优点:

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

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

  • 资源使用率非常低。例如: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内容
  1. 项目展示

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

×

喜欢就点赞,疼爱就打赏

github