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