主要是为了记录一些好玩的,方便自己用的,顺便分享一下使用到的代码。

本文的都是docker的部分。

 

alist github:https://github.com/Xhofe/alist

alist docker:https://hub.docker.com/r/xhofe/alist

Panindex github:https://github.com/libsgh/PanIndex

Panindex docker:https://hub.docker.com/r/iicm/pan-index

SRS:https://github.com/ossrs/srs

更多内容看下面内容吧

 

正常安装宝塔面板,去宝塔面板的应用商店安装docker就行,当然aaPanel也可以

如果aaPanel的docker出现这个错误 Currently not installed docker or docker-compose, click install

终端执行

ls -al /usr/local/bin/docker-compose /usr/bin/docker-compose /usr/libexec/docker/cli-plugins/docker-compose

然后用终端执行下面的命令就行

 

alist

alist默认账号:admin

默认密码首次安装会在终端上出现,如果没看到可以手动运行

docker exec -it alist ./alist admin

3.25.0以上版本将密码改成加密方式存储的hash值,无法直接反算出密码,如果忘记了密码只能通过重新 随机生成 或者 手动设置

# 随机生成一个密码
docker exec -it alist ./alist admin random
# 手动设置一个密码,`NEW_PASSWORD`是指你需要设置的密码
docker exec -it alist ./alist admin set NEW_PASSWORD

安装命令

docker pull xhofe/alist-aria2
sudo docker run -d --restart=always -v /etc/alist:/opt/alist/data -p 5244:5244 -e PUID=0 -e PGID=0 -e UMASK=022 --name="alist" xhofe/alist-aria2:latest

 

docker安装的alist挂载本地存储的命令,是多加一个 -v,以及后面加上实际位置和挂载位置

比如我打算把 /www/wwwroot/cloud 这个真实目录,挂载到/cloud上,命令大概如下

sudo docker run -d --restart=always -v /etc/alist:/opt/alist/data -v  /www/wwwroot/cloud:/cloud -p 5244:5244 -e PUID=0 -e PGID=0 -e UMASK=022 --name="alist" xhofe/alist-aria2:latest

之后,去alist里面,添加挂载本地存储的时候,目录写 /cloud 就行了

 

更新方法

docker stop alist
docker rm alist
docker pull xhofe/alist-aria2
sudo docker run -d --restart=always -v /etc/alist:/opt/alist/data -p 5244:5244 -e PUID=0 -e PGID=0 -e UMASK=022 --name="alist" xhofe/alist-aria2:latest

 

Panindex

默认账号:admin

密码:PanIndex

后续更新只需要下面的那段就行

docker pull iicm/pan-index
docker pull iicm/pan-index:latest
docker stop PanIndex
docker rm PanIndex
docker run -itd \
 --restart=always \
 --name PanIndex \
 -p 5238:5238 \
 -v /home/single/data/docker/data/PanIndex/data:/app/data \
 -e PORT="5238" \
 iicm/pan-index:latest

 

最后在宝塔面板添加网站,然后给网站设置里面添加反代理就行

分别是 http://127.0.0.1:5244 和 http://127.0.0.1:5238

看上面代码的端口号就懂了。

 

加一个emby的命令

docker pull emby/embyserver
docker run -d \
    --name embyserver \
    --volume /path/to/programdata:/config \
    --volume /path/to/share1:/mnt/share1 \
    --volume /path/to/share2:/mnt/share2 \
    --net=host \
    --publish 8096:8096 \
    --publish 8920:8920 \
    --env UID=1000 \
    --env GID=100 \
    --env GIDLIST=100 \
    emby/embyserver:latest

emby是反代理8096

上面的 --volume /path/to/share2:/mnt/share2 \ 是文件夹挂载点

可以修改前面的路径为你网盘路径,后面的不用管,然后去emby里设置媒体库添加后面的就行了。

 

建议添加反代理后,删掉默认的配置信息,用这个

#PROXY-START/
location ~* \.(gif|png|jpg|css|js|woff|woff2)$
{
    proxy_pass http://127.0.0.1:8096;
    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;
    expires 12h;
}
client_max_body_size 10000M;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For '$proxy_add_x_forwarded_for';
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Sec-WebSocket-Extensions $http_sec_websocket_extensions;
    proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key;
    proxy_set_header Sec-WebSocket-Version $http_sec_websocket_version;
    proxy_cache off;
    proxy_redirect off;
    proxy_buffering off;
location / {
        proxy_pass http://127.0.0.1:8096;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_ssl_verify off;
        proxy_http_version 1.1;
        proxy_set_header Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 86400;
    }

#PROXY-END/

 

顺便加一个docker版的NextCloud网盘安装

docker pull nextcloud
docker run -d --restart=always -p 5757:80 -v /mnt/sde/nextcloud:/var/www/html  --name nextcloud nextcloud

然后新建域名反代理就行了,如果app登录提示不允许http登录什么的,打开 /mnt/sde/nextcloud/config ,编辑 config.php

在合适的位置添加一句这个,然后去docker里面,重载和重启一下nextcloud

'overwriteprotocol' => 'https',

 

这个是Jellyfin的,也是反代理就行

docker pull jellyfin/jellyfin
docker run -d -p 8096:8096 -v /jellyfin/config:/config -v /jellyfin/media:/media jellyfin/jellyfin

 

顺便补一个直播工具owncast的docker

owncast:https://github.com/owncast

docker pull gabekangas/owncast:latest
docker run -v `pwd`/data:/app/data -p 8080:8080 -p 1935:1935 -it gabekangas/owncast:latest

默认账号 admin  密码 abc123

当然升级则是

docker stop owncast
docker rm owncast
docker pull gabekangas/owncast:latest
docker run -v `pwd`/data:/app/data -p 8080:8080 -p 1935:1935 -it gabekangas/owncast:latest

 

SRS Cloud,算是个人版的直播平台吧,还是转发什么的,高级功能还可以搞视频会议什么的,主要还是搭建个人直播平台用,和上面的owncast有相似功能地方。

不过我这里用的是srs的,加上网页的版本的,比原版的SRS功能多点。

docker:https://hub.docker.com/r/ossrs/srs-cloud

docker run --rm -it -p 2022:2022 -p 1935:1935/tcp -p 1985:1985/tcp \
  -p 8080:8080/tcp -p 8000:8000/udp -p 10080:10080/udp -v $HOME/db:/data \
  --name srs-cloud ossrs/srs-cloud:5

之后可以用 http://你的ip地址:2022/mgmt 打开后台,第一打开可以设置密码。

至于绑定域名什么的,可以点这里的教程:https://ossrs.net/lts/zh-cn/faq-srs-stack

 

ChatGPT-Next-Web

一个免费的GPT的UI,有各种系统的客户端,作者好像推荐用vercel的方法,具体可以看github,这里只说一下docker的方法。

github:https://github.com/Yidadaa/ChatGPT-Next-Web

docker pull yidadaa/chatgpt-next-web

docker run -d -p 3000:3000 \
   -e OPENAI_API_KEY=sk-xxxx \
   -e CODE=your-password \
   yidadaa/chatgpt-next-web

 

Mattermost

一个聊天工具,既像一个企业OA,又像discord之类的频道样式,还可以安装插件之类的,总之可以试着玩玩。

github上star蛮多,docker版的好像是预览版,当然不排除后期也有正式版什么的,可以打开github看看,如果喜欢可以选择其他方式安装下。

这是docker的安装代码

docker run --name mattermost-preview -d --publish 8065:8065 mattermost/mattermost-preview

 

Pandora

一个多平台的工具,为了能让你更加顺畅的使用GPT。

很多平台和系统都有,比如windows版的,安卓版的,python版的之类的,这里只说docker的。

github:https://github.com/pengzhile/pandora

更多说明和使用方法:https://github.com/pengzhile/pandora/blob/master/doc/wiki.md

docker run -it -d --rm -e PANDORA_CLOUD=pandora-cloud -e PANDORA_SERVER=0.0.0.0:8018 -p 8018:8018 pengzhile/pandora

 

olive

一个用来自动检测主播是否开播,以及开播后自动录制的工具

国内的直播平台用可以装到NAS上,国外的直播平台就搞个国外大硬盘的VPS吧。

github:https://github.com/go-olive/olive

这里说一下,如果只安装核心工具,那么就需要使用终端,以及终端后台命令来检测是否开播,不太适合萌新

所以有一个网页版的,稍微适合萌新一点,这是附带网页端的方法

新建一个文件,起名为 docker-compose.yaml

内容为下面内容,可能后续有更新,可以点这里查看最新版本:https://go-olive.github.io/docs/guide/web/

总之,新建一个文件,内容如下

version: "3.8"

services:
  olive-db:
    image: postgres:14-alpine
    container_name: olive-db
    restart: always
    ports:
      - 127.0.0.1:5432:5432
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
    volumes:
      - ./pgdata:/var/lib/postgresql/data
    networks:
      - olive-network

  olive-server:
    image: luxcgo/olive:latest
    container_name: olive-server
    depends_on:
      - olive-db
    ports:
      - 127.0.0.1:3000:3000
      - 127.0.0.1:4000:4000
    command:
      [
        "./olive",
        "server",
        "--db-host",
        "olive-db:5432",
        "-l",
        "/downloads",
        "-s",
        "/downloads",
      ]
    volumes:
      - "/etc/timezone:/etc/timezone:ro"
      - "/etc/localtime:/etc/localtime:ro"
      - ./downloads:/downloads
      - ./config:/config
    networks:
      - olive-network

  olive-portal:
    image: luxcgo/olive-portal:latest
    container_name: olive-portal
    depends_on:
      - olive-server
    ports:
      - "8080:8080"
    # volumes:
    #   - ./config/default.conf:/etc/nginx/conf.d/default.conf
    networks:
      - olive-network

networks:
  olive-network:

 

之后用终端在文件的目录执行

docker-compose up -d olive-db
docker-compose up -d olive-server
docker-compose up -d olive-portal

 

之后用8080端口就可以打开网页端了,默认账号密码都是olive,记得更改密码

最后就是在网页端内添加需要想要检测并录制的直播间就行了。

 

kplayer

一个用来推流视频到直播平台的工具,比较适合用在NAS上,给NAS的视频循环推流到直播平台。

推荐NAS,因为可以用核显。

这里就基本介绍NAS的方法,以群晖为例,其他的系统方式基本也差不多。

给群晖去套件中心安装docker,然后去docker的注册表里搜索 kplayer

因为某些原因,可能会提示注册表搜索失败什么的,所以你可以用你的办法去下载安装,不管是给群晖临时加个局域网代理,又或者直接使用国内的镜像源,都可以,此处不多说。

github:https://github.com/bytelang/kplayer-go

总之,找到这个的,安装就行。

之后就是给这个添加一些文件映射什么的,大概这样

其中,上面提到的 /docker/kplayer/config.json 实际路径的文件,需要自己新建,文件内容大概如下

{
    "version":"2.0.0",
    "resource":{
        "lists":[
            "/video/67373/2023/20230722.mp4",
            "/video/67373/2021/20210206.mp4",
            "/video/67373/2021/20210320.mp4",
            "/video/67373/Onlysongs/20230130songs.mp4"
        ],
        "extensions":[
            "mp4"
        ]
    },
    "play":{
        "play_model":"random",
        "encode":{
            "video_width":960,
            "video_height":540,
            "video_fps":25,
            "audio_channel_layout":3,
            "audio_sample_rate":44100,
            "bit_rate":3500000,
            "avg_quality":0
        }
    },
    "output":{
        "reconnect_internal":30,
        "lists":[
            {
                "path":"rtmps://yourmtpserver/yourkeys",
                "unique":"ChatCYF"
            }
        ]
    },
    "plugin":{
        "lists":[
            {
                "path":"show-filename",
                "unique":"my_plugin",
                "params":{
                    "fontcolor":"red"
                }
            }
        ]
    }
}

 

上面的内容,视频内容可以自己添加,下面的推流地址记得改,此配置设置的是随机播放,可以自行添加修改视频,以及推流视频的分辨率以及帧数。

推流的视频越高清,用的上传带宽和硬件消耗越大。

 

既然说到了NAS,就随便推荐一个破解版的emby,还是老样子,在注册表里搜索 emby,找到这一个

启动也是开始设置端口,以及文件夹映射什么的,基本就是把你存电影的文件夹映射过去就行了。

可以参考这里:https://www.mfpud.com/topics/11079/

 

Restreamer

一个跟直播流有关的工具,简单说,大概用途是,可以搭建一个RTMP流媒体服务器,并且可以把自己推流转发到其他直播平台,多转也可以。

还可以直接把流媒体直接盗播给另外的平台什么的,自己研究吧。

github:https://github.com/datarhei/restreamer

docker 代码

docker run -d --restart=always --name restreamer \
-v /opt/restreamer/config:/core/config \
-v /opt/restreamer/data:/core/data \
-p 8080:8080 -p 8181:8181 \
-p 1935:1935 -p 1936:1936 \
-p 6000:6000/udp \
datarhei/restreamer:latest

安装之后,用域名反代理 8080 端口,这里8080 是http的,8181是https的,这个https的基本也不用,直接用域名转发了。

第一次打开后,点击下面唯一的链接,就可以创建账号和密码了。

 

Icecast

一个网络电台,如果用的debian或者ubuntu系统,可以直接通过终端安装,详情点这里:https://www.mfpud.com/topics/12913/

这里说一下宝塔docker的安装方式,先拉取镜像

docker pull pltnk/icecast2

之后需要手动去 /path/to/your/ 这个目录,手动新建一个 icecast.xml 文件

之后运行

docker run --name icecast2 -d --restart=always \
--publish 1354:1354 \
--volume /path/to/your/icecast.xml:/etc/icecast2/icecast.xml \
pltnk/icecast2

接下来去docker的容器的path里面,找到 /etc/icecast2/icecast.xml 这个文件,修改好端口以及密码后保存,再手动和/path/to/your/icecast.xml的文件进行内容复制,或者文件覆盖。

之后去docker的容器里面,把icecast2重启一下。

 

bililive-go

一个录制多个直播平台直播的工具,B站抖音什么的都支持。

github:https://github.com/hr3lxphr6j/bililive-go

Docker安装命令,使用方法看github的

docker run -d \
    --name bililive-go \
    --restart unless-stopped  \
    -v /www/wwwroot/bililive:/srv/bililive \
    -p 8080:8080 \
    chigusa/bililive-go

 

幻兽帕鲁 Palworld 的服务器端Docker版搭建

来自:https://hub.docker.com/r/pasharp/pal_server

sudo docker run -d --restart=always  -u game  -v /data:/opt/palworld/Pal/Saved  -p 8211:8211/udp  pasharp/pal_server  /home/game/Steam/steamapps/common/PalServer/PalServer.sh

 

几个Docker面板

https://github.com/portainer/portainer

https://github.com/gohutool/docker.ui

https://www.docker.com/products/docker-desktop/