使用 Docker Compose 安装 LinkStack 指南

使用 Docker Compose 安装 LinkStack 指南

目录

  1. LinkStack 简介
  2. 前置条件
  3. Docker Compose 安装步骤
  4. 配置选项说明
  5. 持久化存储
  6. 反向代理设置
  7. 更新 LinkStack
  8. 常见问题解答

LinkStack 简介

LinkStack 是一个高度可自定义的链接分享平台,具有直观、易用的用户界面。它允许您创建个人资料页面,在一个站点上放置多个可点击的链接。与只允许一个链接的社交媒体平台不同,LinkStack 让您可以在一个页面上展示所有您想要分享的链接。

LinkStack Docker 版本基于 Alpine Linux,运行 Apache2 网络服务器和 PHP 8.2,提供高兼容性和性能。

前置条件

在开始之前,请确保您的系统上已安装以下软件:

  • Docker (版本 19.03.0+)
  • Docker Compose (版本 1.27.0+)

您可以使用以下命令检查版本:

docker --version
docker-compose --version

Docker Compose 安装步骤

1. 创建项目目录

mkdir linkstack
cd linkstack

2. 创建 docker-compose.yml 文件

使用您喜欢的文本编辑器创建一个 docker-compose.yml 文件:

nano docker-compose.yml

3. 添加以下配置到文件中

version: "3.8"

services:
  linkstack:
    hostname: 'linkstack'
    image: 'linkstackorg/linkstack:latest'
    environment:
      TZ: 'Asia/Shanghai'  # 设置为您的时区
      SERVER_ADMIN: '[email protected]'  # 设置管理员邮箱
      HTTP_SERVER_NAME: 'example.com'  # 设置您的域名
      HTTPS_SERVER_NAME: 'example.com'  # 设置您的域名
      LOG_LEVEL: 'info'
      PHP_MEMORY_LIMIT: '256M'
      UPLOAD_MAX_FILESIZE: '8M'
    volumes:
      - 'linkstack_data:/htdocs'
    ports:
      - '80:80'  # HTTP 端口映射
      - '443:443'  # HTTPS 端口映射
    restart: unless-stopped

volumes:
  linkstack_data:  # 定义持久化存储卷

4. 启动 LinkStack 容器

保存文件后,运行以下命令启动容器:

docker-compose up -d

-d 参数使容器在后台运行。

5. 访问 LinkStack

现在您可以通过浏览器访问 http://localhosthttps://localhost(如果您在服务器上部署,则使用服务器的 IP 地址或域名)。

首次访问时,您将进入安装向导,按照指示完成 LinkStack 的设置。

配置选项说明

docker-compose.yml 文件中,您可以自定义以下环境变量:

  • TZ: 时区设置(默认为 UTC)
  • SERVER_ADMIN: 管理员邮箱地址(默认为 [email protected]
  • HTTP_SERVER_NAME: HTTP 服务器名称(默认为 localhost)
  • HTTPS_SERVER_NAME: HTTPS 服务器名称(默认为 localhost)
  • LOG_LEVEL: 日志级别(默认为 info)
  • PHP_MEMORY_LIMIT: PHP 内存限制(默认为 256M)
  • UPLOAD_MAX_FILESIZE: 上传文件大小限制(默认为 8M)

持久化存储

LinkStack 的所有重要文件都存储在容器内的 /htdocs 目录中。通过使用 Docker 卷,这些数据会在容器重启或删除后保留。

docker-compose.yml 中,我们已经配置了名为 linkstack_data 的卷,它会自动映射到容器的 /htdocs 目录。

您可以使用以下命令查看卷的详细信息:

docker volume inspect linkstack_data

反向代理设置

如果您想使用 NGINX 作为反向代理,以下是一个配置示例:

server {
  listen        443 ssl;
  listen        [::]:443 ssl;
  listen        80;
  listen        [::]:80;
  server_name   your.domain.name;  # 替换为您的域名

  # SSL 证书配置
  ssl_certificate     /path/to/your/certificate.crt;
  ssl_certificate_key /path/to/your/private.key;

  location / {
    # 将下面的 IP 地址和端口替换为您的 Docker 容器的地址和端口
    proxy_pass                          https://127.0.0.1:443;
    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 X-Forwarded-Proto  https;
    proxy_set_header X-VerifiedViaNginx yes;
    proxy_read_timeout                  60;
    proxy_connect_timeout               60;
    proxy_redirect                      off;

    # Websocket 支持配置
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_cache_bypass $http_upgrade;
    proxy_set_header X-Forwarded-Proto $scheme;
    
    # 修复混合内容错误
    add_header 'Content-Security-Policy' 'upgrade-insecure-requests';
  }
}

请确保使用 HTTPS 访问您的容器,以避免混合内容错误。

更新 LinkStack

当新版本发布时,您将在管理面板上收到更新通知。

自动一键更新器

LinkStack 提供了一键更新功能:

  1. 点击管理面板上的更新通知
  2. 点击"自动更新"按钮,更新程序将处理剩下的事项

手动更新 Docker 容器

如果您想手动更新 Docker 容器,可以执行以下命令:

cd linkstack
docker-compose pull  # 拉取最新的镜像
docker-compose down  # 停止当前容器
docker-compose up -d  # 使用新镜像启动容器

常见问题解答

Q: 如何查看容器日志?

docker-compose logs -f linkstack

Q: 如何备份 LinkStack 数据?

您可以备份 Docker 卷中的数据:

docker run --rm -v linkstack_data:/source -v $(pwd):/backup alpine sh -c "tar -czf /backup/linkstack_backup_$(date +%Y%m%d).tar.gz -C /source ."

Q: 如何恢复备份?

docker run --rm -v linkstack_data:/target -v $(pwd):/backup alpine sh -c "tar -xzf /backup/your_backup_file.tar.gz -C /target"

Q: 修改环境变量后如何使其生效?

修改 docker-compose.yml 文件后,运行以下命令重启容器:

docker-compose down
docker-compose up -d