---
version: "3.8"

services:
  app:
    image: decentral1se/beta.lumbung.space:latest
    networks:
      - proxy
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:1313"]
      interval: 10s
      timeout: 10s
      retries: 10
      start_period: 15s
    volumes:
      - content:/src/content
    command: |
      server
      --appendPort='false'
      --bind 0.0.0.0
      --baseUrl='https://lumbung.space'
      --port='1313'
      --buildFuture
      --disableFastRender
      --minify
      --watch
    deploy:
      update_config:
        failure_action: rollback
        order: start-first
      labels:
        - "traefik.enable=true"
        - "traefik.http.routers.coop-cloud-site.rule=Host(`lumbung.space`)"
        - "traefik.http.routers.coop-cloud-site.entrypoints=web-secure"
        - "traefik.http.services.coop-cloud-site.loadbalancer.server.port=1313"
        - "traefik.http.routers.coop-cloud-site.tls.certresolver=production"

  tv:
    image: decentral1se/beta.lumbung.space-scripts:latest
    volumes:
      - content:/src/content
    environment:
      OUTPUT_DIR: /src/content/tv
    command: |
      bash -c "
        while true
        do
          echo 'generating tv posts...'
          /usr/local/bin/lumbunglib-vid
          sleep 300
        done
      "

  calendar:
    image: decentral1se/beta.lumbung.space-scripts:latest
    volumes:
      - content:/src/content
    environment:
      OUTPUT_DIR: /src/content/calendar
      CALENDAR_URL: "https://cloud.lumbung.space/remote.php/dav/public-calendars/WbnHM8YdCkKT6bcT?export"
    command: |
      bash -c "
        while true
        do
          echo 'generating calendar posts...'
          /usr/local/bin/lumbunglib-cal
          sleep 400
        done
      "

  shouts:
    image: decentral1se/beta.lumbung.space-scripts:latest
    volumes:
      - content:/src/content
    configs:
      - source: feeds_list
        target: /src/feeds_list.txt
    environment:
      OUTPUT_DIR: /src/content/shouts
    command: |
      bash -c "
        while true
        do
          echo 'generating shouts posts...'
          /usr/local/bin/lumbunglib-feed
          sleep 500
        done
      "

  pen:
    image: decentral1se/beta.lumbung.space-scripts:latest
    volumes:
      - content:/src/content
    configs:
      - source: feeds_list_pen
        target: /src/feeds_list.txt
    environment:
      OUTPUT_DIR: /src/content/pen
    command: |
      bash -c "
        while true
        do
          echo 'generating pen posts...'
          /usr/local/bin/lumbunglib-feed
          sleep 600
        done
      "

  social:
    image: decentral1se/beta.lumbung.space-scripts:latest
    volumes:
      - content:/src/content/
    secrets:
      - masto_key
    environment:
      OUTPUT_DIR: /src/content/social
    command: |
      bash -c "
        export MASTODON_AUTH_TOKEN=`cat /run/secrets/masto_key`;
        while true
        do
          echo 'generating social posts...'
          /usr/local/bin/lumbunglib-hash
          sleep 700
        done
      "

volumes:
  content:

networks:
  proxy:
    external: true

configs:
  feeds_list:
    name: beta_lumbung_space_feeds_list_v2
    file: feeds_list.txt
  feeds_list_pen:
    name: beta_lumbung_space_feeds_list_pen_v1
    file: feeds_list_pen.txt

secrets:
  masto_key:
    name: beta_lumbung_space_masto_key_v1
    external: true
