使用 Docker 部署
Hollo 在 GitHub Packages 上提供了官方的 Docker 映像檔。您可以使用這些映像檔在您的伺服器或本機上部署 Hollo:
docker pull ghcr.io/fedify-dev/hollo:latest要執行 Hollo,您需要設定一個 PostgreSQL 資料庫和一個用於媒體儲存的 S3 相容物件儲存。您可以使用 PostgreSQL 的官方 Docker 映像檔,也可以使用 MinIO 作為 S3 相容物件儲存。或者,您也可以使用其他託管服務,如 AWS 的 RDS、ElastiCache 和 S3。
要將 Hollo 連接到這些服務,您需要透過 docker run 指令的 -e/--env 選項或 --env-file 選項 設定環境變數。要查看 Hollo 支援的環境變數,請參閱 環境變數 章節。
Docker Compose
Section titled “Docker Compose”要連接這些服務,您可以使用 Docker Compose。以下是一個範例 compose.yaml 檔案:
services: hollo: image: ghcr.io/fedify-dev/hollo:canary ports: - "3000:3000" environment: DATABASE_URL: "postgres://user:password@postgres:5432/database" SECRET_KEY: "${SECRET_KEY}" LOG_LEVEL: "${LOG_LEVEL}" BEHIND_PROXY: "${BEHIND_PROXY}" DRIVE_DISK: s3 STORAGE_URL_BASE: http://localhost:9000/hollo/ S3_REGION: us-east-1 S3_BUCKET: hollo S3_ENDPOINT_URL: http://minio:9000 S3_FORCE_PATH_STYLE: "true" AWS_ACCESS_KEY_ID: minioadmin AWS_SECRET_ACCESS_KEY: minioadmin # MEDIA_PROXY: off # or "proxy" / "cache" — see docs/install/env # REMOTE_MEDIA_THUMBNAILS: "on" # set to "off" to skip local thumbnails depends_on: - postgres - minio - create-bucket restart: unless-stopped
postgres: image: postgres:17 environment: POSTGRES_USER: user POSTGRES_PASSWORD: password POSTGRES_DB: database volumes: - postgres_data:/var/lib/postgresql/data restart: unless-stopped
minio: image: minio/minio:RELEASE.2024-09-13T20-26-02Z ports: - "9000:9000" environment: MINIO_ROOT_USER: minioadmin MINIO_ROOT_PASSWORD: minioadmin volumes: - minio_data:/data command: ["server", "/data", "--console-address", ":9001"]
create-bucket: image: minio/mc:RELEASE.2024-09-16T17-43-14Z depends_on: - minio entrypoint: | /bin/sh -c " /usr/bin/mc alias set minio http://minio:9000 minioadmin minioadmin; /usr/bin/mc mb minio/hollo; /usr/bin/mc anonymous set public minio/hollo; exit 0; "
volumes: postgres_data: minio_data:將此檔案儲存為 compose.yaml 到您的工作目錄中,然後執行以下指令:
docker compose up -d