Whitepaper: ueo.ventures - a single page static website hosted at DownToZero

This whitepaper will illustrate how DownToZero is used to host a static website. We will provide insights into how the website was build as well as give some real-world data how it is used and how that reflects in DownToZero usage and therefore cost.

What Is ueo.ventures?

ueo.ventures is a static site providing credentials to external entities. The site is very minimal and only consists of 2 static pages. It includes:

  • index page - stating the name of the company
  • impressum page - stating the legal requirements fo a private company

How is it build?

As previously stated, the website only contains 2 pages. Those pages are static files in a github repository. To make this available to DownToZero, we need to package those two files as docker container.

Here is the full Dockerfile used to package the website.

FROM alpine AS runner
RUN apk add --update --no-cache lighttpd && rm -rf /var/cache/apk/*
ADD index.html /var/www/localhost/htdocs/
ADD impressum.html /var/www/localhost/htdocs/
CMD ["/usr/sbin/lighttpd", "-D", "-f", "/etc/lighttpd/lighttpd.conf"]

And the pipeline we use to build and deploy the most up-to-date version.

name: website
on:
  push:
  workflow_dispatch:
  schedule:
    - cron: '30 5 25 * *'
jobs:
  build-website:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: build website
      run: |
        docker build -t xb35e5d0.cr.dtz.dev/ueo-ventures .
    - name: Login to xb35e5d0.cr.dtz.dev
      uses: docker/login-action@v3
      with:
        registry: xb35e5d0.cr.dtz.dev
        username: apikey
        password: ${{ secrets.DTZ_API_KEY }}
    - name: uploading image to xb35e5d0.cr.dtz.dev
      run: |
        docker push xb35e5d0.cr.dtz.dev/ueo-ventures:latest
    - name: Resolve image digest
      id: resolve_digest
      run: |
        DIGEST=$(docker inspect --format='{{index .RepoDigests 0}}' xb35e5d0.cr.dtz.dev/ueo-ventures:latest)
        echo "IMAGE_URL=$DIGEST" >> $GITHUB_ENV
    - name: Deploy latest image to service
      uses: DownToZero-Cloud/containers-service-update@main
      with:
        container_image: ${{ env.IMAGE_URL }}
        api_key: ${{ secrets.DTZ_API_KEY }}
        service_id: service-e1d1efd8
    - name: Publish image URL to summary
      run: |
        echo "## Deployed image" >> $GITHUB_STEP_SUMMARY
        echo "" >> $GITHUB_STEP_SUMMARY
        echo "${IMAGE_URL}" >> $GITHUB_STEP_SUMMARY

How much is it used?

requests

The number of requests going to this page is rather low. So we will see a lot of unoptimized cold-starts. The overall volume per day averages at about 200 requests per day.

Here a short sample set

day requests
2025-09-12 147
2025-09-13 116
2025-09-14 118
2025-09-15 121
2025-09-16 200
2025-09-17 169
2025-09-18 157
2025-09-19 268
2025-09-20 524
2025-09-21 496
2025-09-22 228
2025-09-23 246
2025-09-24 123
2025-09-25 79
2025-09-26 60

splitting the request by cold-starts

Cold starts are starts where nothing is present on the executing host. Warm starts are when the image is already loaded on the executing host, but the container needs to be started. Host starts are when the container is already up and running.

day cold starts warm starts hot starts
2025-09-12 63 48 14
2025-09-13 70 3 21
2025-09-14 61 3 22
2025-09-15 68 0 31
2025-09-16 84 3 27
2025-09-17 53 3 25
2025-09-18 72 2 27
2025-09-19 48 2 19
2025-09-20 501 2 10
2025-09-21 474 3 1
2025-09-22 199 3 2
2025-09-23 201 3 27
2025-09-24 71 5 31
2025-09-25 51 3 20

response times

While the difference between hot and cold-starts seem significant in relative values, the overall cold-start time does not go under 3ms.

Latency Percentiles in ms

state p50 p90 p95 p99
cold 0.536 1.003 2.0888 3.2584
hot 0 0 0.001 0.001

Power Consumption

All this translates to a certain usage type and pattern. Our metric to determine usage is Watt. We measure the power consumption for all that activity an provide detailed statistics over time.

| day | power consumption (in Wh) | | — | ———– :| | 2025-09-12 | 1.88 | | 2025-09-13 | 2.00 | | 2025-09-14 | 0.96 | | 2025-09-15 | 1.76 | | 2025-09-16 | 3.14 | | 2025-09-17 | 0.43 | | 2025-09-18 | 1.90 | | 2025-09-19 | 1.06 | | 2025-09-20 | 4.74 | | 2025-09-21 | 4.51 | | 2025-09-22 | 1.62 | | 2025-09-23 | 6.51 | | 2025-09-24 | 3.85 | | 2025-09-25 | 3.29 | | 2025-09-26 | 2.81 |

Pricing & Cost Efficiency

DownToZero bills compute purely by energy consumed. Current rates are:

  • Compute: 0.010 EUR per Watt-Hour (Wh) in normal mode; 0.005 EUR/Wh in ecoMode.
  • Storage: hot storage - 0.0013 EUR / GB / day; cold stoorage - 0.0007 EUR / GB / day

Based on the measured usage of this ueo.ventures service:

  • Requests: ~203 requests/day on average over the sample period (peak 524; low 60).
  • Energy: ~2.40 Wh/day on average (min 0.43 Wh; max 6.51 Wh).

Estimated compute cost at current rates:

  • Normal mode: ~0.024 EUR/day (~0.72 EUR per 30-day month); daily range ≈ 0.004–0.065 EUR.
  • ecoMode: ~0.012 EUR/day (~0.36 EUR per 30-day month); daily range ≈ 0.002–0.033 EUR.

Because you pay per watt, there is direct incentive to keep images lean, avoid unnecessary work on cold starts, and opt into ecoMode where practical. Over time this can reduce both spend and energy use.

Trade-offs: ecoMode may involve different performance characteristics (e.g., startup latency, scheduling); costs can vary with usage spikes. Monitor consumption and adjust as needed.