Launch offer — 40% off every tier for a limited time. Prices shown are already reduced.
Stacks / Code / Hearth / docker-compose.yml
docker-compose.yml 71 lines · 1820 B · yaml
# Hearth - generated stack
# Copy .env.example to .env first.
name: hearth

services:
  umami:
    image: ghcr.io/umami-software/umami:${UMAMI_TAG:-latest}
    container_name: hearth-umami
    ports: ["3000:3000"]
    volumes: ["umami_data:/app/data"]
    restart: unless-stopped
    environment:
      - DATABASE_URL=postgresql://umami:umami@hearth-umami-db:5432/umami

  gitea:
    image: gitea/gitea:${GITEA_TAG:-latest}
    container_name: hearth-gitea
    ports: ["3001:3000"]
    volumes: ["gitea_data:/data"]
    restart: unless-stopped

  woodpecker:
    image: woodpeckerci/woodpecker-server:${WOODPECKER_TAG:-latest}
    container_name: hearth-woodpecker
    ports: ["8000:8000"]
    volumes: ["woodpecker_data:/var/lib/woodpecker"]
    restart: unless-stopped
    environment:
      - WOODPECKER_OPEN=true
      - WOODPECKER_HOST=http://localhost:8000

  appwrite:
    image: appwrite/appwrite:${APPWRITE_TAG:-latest}
    container_name: hearth-appwrite
    ports: ["8082:80"]
    volumes: ["appwrite_data:/storage"]
    restart: unless-stopped

  ghost:
    image: ghost:${GHOST_TAG:-latest}
    container_name: hearth-ghost
    ports: ["2368:2368"]
    volumes: ["ghost_data:/var/lib/ghost/content"]
    restart: unless-stopped

  saleor:
    image: ghcr.io/saleor/saleor:${SALEOR_TAG:-latest}
    container_name: hearth-saleor
    ports: ["8001:8000"]
    volumes: ["saleor_data:/app/media"]
    restart: unless-stopped

  umami-db:
    image: postgres:16-alpine
    container_name: hearth-umami-db
    restart: unless-stopped
    environment:
      - POSTGRES_USER=umami
      - POSTGRES_PASSWORD=umami
      - POSTGRES_DB=umami
    volumes: ["umami_db_data:/var/lib/postgresql/data"]

volumes:
  umami_data:
  gitea_data:
  woodpecker_data:
  appwrite_data:
  ghost_data:
  saleor_data:
  umami_db_data: