Dockerでデプロイ
HolloはGitHub Packagesで公式のDockerイメージを提供しています。 そのイメージをローカルマシンでHolloをデプロイできます:
docker pull ghcr.io/fedify-dev/hollo:latest
Holloを実行するには、PostgreSQLのデータベースとメディアを保存するためのS3互換のオブジェクトストレージが必要です。 PostgreSQLの公式のDockerイメージとS3互換のオブジェクトストレージであるMinIOを使うことができます。 またはAWSのRDS、ElastiCache、S3などのマネージドサービスを使用することもできます。
Holloにこれらのサービスを組み合わせるには、
docker run
コマンドの-e
/--env
オプションまたは--env-file
オプションを使用して
環境変数を設定する必要があります。
Holloがサポートする環境変数のリストは環境変数章で確認できます。
Docker Compose
PostgreSQLとS3互換のオブジェクトストレージなどをHolloに接続してデプロイするために、 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 ASSET_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 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