侧边栏壁纸
博主头像
少年听雨的博客博主等级

天地本宽,而鄙者自隘。

  • 累计撰写 33 篇文章
  • 累计创建 1 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

安装Alist管理多个云盘

少年听雨歌楼上
2024-07-25 / 0 评论 / 0 点赞 / 43 阅读 / 9469 字

这是一个支持多种云盘的文件列表程序,基本上囊括了国内的所有云盘,使用它就可以访问所有的云盘,并且支持上传和下载。

Github链接:alist-org/alist: 🗂️A file list/WebDAV program that supports multiple storages, powered by Gin and Solidjs. / 一个支持多存储的文件列表/WebDAV程序,使用 Gin 和 Solidjs。 (github.com)

官网:Home | AList文档 (nn.ci)

安装Alist

创建并跳转到Alist文件夹

mkdir -p /root/data/docker_data/alist
cd /root/data/docker_data/alist

创建docker-compose.yml文件

vim docker-compose.yml

按i粘贴以下docker-compose内容

version: '3.3'
services:
    alist:
        image: 'xhofe/alist:latest'
        container_name: alist
        volumes:
            - ./alist:/opt/alist/data # 按你所需映射到对应的文件夹。
            - /root:/root
        ports:
            - '5244:5244'
        environment:
            - PUID=0
            - PGID=0
            - UMASK=022
            - TZ=Asia/Shanghai  # 设置时区为中国
        restart: unless-stopped

按下ESC,输入 :wq 退出并保存文件。

运行容器

docker-compose up -d

稍等片刻即可在浏览器输入 ip:5244,即可访问到alist。

账号密码

账号:admin

此时输入以下命令即可查看密码

docker exec -it alist ./alist admin

如果显示没有密码,第一次需要自己设置,可以输入以下命令添加。

docker exec -it alist /bin/sh 

# 手动设置一个密码,`NEW_PASSWORD`是指你需要设置的密码
./alist admin set NEW_PASSWORD

添加云盘

添加存储可以查看官方文档:本地存储 | AList文档 (nn.ci)

美化

进入后台,点击设置=全局,在自定义内容可以写入css来实现美化。


这里贴下自用css美化代码:

<!--引入所需的JavaScript和CSS文件-->
<script src="https://polyfill.io/v3/polyfill.min.js?features=String.prototype.replaceAll"></script> <!--Alist V3建议添加的,已经默认添加了,如果你的没有建议加上-->
<link rel="stylesheet" href="https://npm.elemecdn.com/[email protected]/lxgwwenkai-regular.css" /> <!--引入字体,全局字体使用-->
<script src='https://unpkg.com/valine/dist/Valine.min.js'></script> <!--评论系统使用的js-->
<script async src="https://busuanzi.icodeq.com/busuanzi.pure.mini.js"></script> <!--不蒜子计数器-->
<link type='text/css' rel="stylesheet" href="https://npm.elemecdn.com/[email protected]/css/fontawesome.min.css" media='all'> <!-- Font6,自定义底部使用和看板娘使用的图标和字体文件-->
<link href="https://npm.elemecdn.com/[email protected]/css/all.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://npm.elemecdn.com/[email protected]/dist/APlayer.min.css"> <!--音乐播放器所用的文件-->
<script src="https://npm.elemecdn.com/[email protected]/dist/APlayer.min.js"></script>
<script src="https://npm.elemecdn.com/[email protected]/dist/Meting.min.js"></script>
<style>
  /* 去除通知栏右上角的 X 按钮 */
  .notify-render .hope-close-button {
    display: none;
  }

  /* 图片API使用说明 
  樱花:https://www.dmoe.cc
  夏沫:https://cdn.seovx.com
  搏天:https://api.btstu.cn/doc/sjbz.php
  姬长信:https://github.com/insoxin/API
  小歪:https://api.ixiaowai.cn/
  保罗:https://api.paugram.com
  墨天逸:https://api.mtyqx.cn
  岁月小筑:https://img.xjh.me
  东方Project:https://img.paulzzh.com
  */

  /* 白天背景图 */
  .hope-ui-light {
    background-image: url("https://r2-img.snty.de/2024/07/23/669f43520e078.jpg") !important;
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
    background-position-x: center;
  }

  /* 夜间背景图 */
  .hope-ui-dark {
    background-image: url("https://r2-img.snty.de/2024/07/23/669f34c3a3b11.jpg") !important;
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
    background-position-x: center;
  }

  /* 主列表夜间模式透明,50%为透明度 */
  .obj-box.hope-stack.hope-c-dhzjXW.hope-c-PJLV.hope-c-PJLV-iigjoxS-css {
    background-color: rgb(0 0 0 / 50%) !important;
  }

  /* readme夜间模式透明,50%为透明度 */
  .hope-c-PJLV.hope-c-PJLV-iiuDLME-css {
    background-color: rgb(0 0 0 / 50%) !important;
  }

  /* 主列表透明 */
  .obj-box.hope-stack.hope-c-dhzjXW.hope-c-PJLV.hope-c-PJLV-igScBhH-css {
    background-color: rgba(255, 255, 255, 0.5) !important;
  }

  /* readme透明 */
  .hope-c-PJLV.hope-c-PJLV-ikSuVsl-css {
    background-color: rgba(255, 255, 255, 0.5) !important;
  }

  /* 顶部右上角切换按钮透明 */
  .hope-c-ivMHWx-hZistB-cv.hope-icon-button {
    background-color: rgba(255, 255, 255, 0.3) !important;
  }

  /* 右下角侧边栏按钮透明 */
  .hope-c-PJLV-ijgzmFG-css {
    background-color: rgba(255, 255, 255, 0.5) !important;
  }

  /* 白天模式代码块透明 */
  .hope-ui-light pre {
    background-color: rgba(255, 255, 255, 0.1) !important;
  }

  /* 夜间模式代码块透明 */
  .hope-ui-dark pre {
    background-color: rgba(255, 255, 255, 0) !important;
  }

  /* 底部CSS,.App .table这三个一起的 */
  dibu {
    border-top: 0px;
    position: absolute;
    bottom: 0;
    width: 100%;
    margin: 0px;
    padding: 0px;
  }

  .App {
    min-height: 85vh;
  }

  .table {
    margin: auto;
  }

  /* 去掉底部 */
  .footer {
    display: none !important;
  }

  /* 全局字体 */
  * {
    font-family: LXGW WenKai;
  }

  * {
    font-weight: bold;
  }

  body {
    font-family: LXGW WenKai;
  }

  /* 评论系统专用 */
  /* 适配大小契合度 */
  .newValine {
    width: min(96%, 940px);
    flex-direction: column;
    row-gap: var(--hope-space-2);
    border-radius: var(--hope-radii-xl);
    padding: var(--hope-space-2);
    box-shadow: var(--hope-shadows-lg);
  }

  /* 评论区 - 白天模式透明度 */
  .hope-ui-light .newValine {
    background-color: rgba(255, 255, 255, 0.8) !important;
  }

  /* 评论区 - 夜间模式透明度 */
  .hope-ui-dark .newValine {
    background-color: rgb(0 0 0 / 80%) !important;
  }

  /* 输入栏里面跳舞的小人背景图 */
  .vedit {
    background-image: url(https://cdn.jsdelivr.net/gh/anwen-anyi/imgAnwen/images/OuNiJiang.gif);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: right bottom;
    transition: all 0.25s ease-in-out 0s;
  }

  textarea#comment-textarea:focus {
    background-position-y: 120px;
    transition: all 0.25s ease-in-out 0s;
  }

  /* 渐变背景CSS */
  #canvas-basic {
    position: fixed;
    display: block;
    width: 100%;
    height: 100%;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: -999;
  }
</style>
<!--鼠标点击效果-->
<script src="https://cdn.jsdelivr.net/gh/TRHX/[email protected]/js/maodian.js"></script>

<!-- 右上角天气 -->
 
<iframe allowtransparency="true" frameborder="0" width="290" height="96" scrolling="no" src="//tianqi.2345.com/plugin/widget/index.htm?s=1&z=1&t=0&v=0&d=2&bd=0&k=&f=&ltf=009944&htf=cc0000&q=1&e=1&a=1&c=54511&w=290&h=96&align=center"></iframe>


<!--备案信息-->

</style>
<link href="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
<div id="customize" style="display:none; text-align:center;">
    <br />
    <div style="font-size:15px; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;">
        <span class="nav-item">
            <a class="nav-link" href="https://blog.snty.de/" target="_blank">
                <i class="fa fa-user-secret" style="color:#ffffff;" aria-hidden="true"></i>
                我的博客 |
            </a>
        </span>
		<span class="nav-item">
            <a class="nav-link" href="https://imgs.snty.de/" target="_blank">
                <i class="fa fa-box-archive" style="color:#ffffff;" aria-hidden="true"></i>
                我的图床 |
            </a>
        </span>
        <span class="nav-item" style="margin-bottom: 5px;">
            <a class="nav-link" href="/@manage" target="_blank">
                <i class="fa fa-gears" style="color:#ffffff;" aria-hidden="true"></i>
                管理后台
            </a>
        </span>
		    <div style="line-height: 20px; font-size: 9pt; font-weight: bold;">
        <span>
            <span style="color:#ffffff); font-weight: bold; font-size: 15px;" id="hitokoto">
                <a href="#" id="hitokoto_text">
                    "天地本宽,而鄙者自隘。"
                </a>
            </span>
        </span>
    </div>
    <br />
</div>

<script>
    let interval = setInterval(() => {
        if (document.querySelector(".footer")) {
            document.querySelector("#customize").style.display = "";
            clearInterval(interval);
        }
    }, 200);
</script>

0

评论区