Back to articles
Technology Insight

Building a Self-Hosted 'Edge Asset Optimization' Solution: Leveraging Fly.io and Benthos with Central VPS

May 30, 2026

Introduction

In the modern digital landscape, user experience is directly tied to performance. Fast loading times, seamless media delivery, and intelligent asset manipulation at the network edge have transitioned from luxury features to baseline operational requirements. Traditionally, organizations have relied on enterprise Content Delivery Networks (CDNs) to handle Edge Asset Optimization—tasks such as dynamic image resizing, format conversion, and real-time data filtering. However, as data volumes grow, the egress fees and rigid configurations of proprietary vendors can become significant bottlenecks.

This technical guide explores an innovative, self-hosted architectural pattern that achieves enterprise-grade edge processing without vendor lock-in. By coupling the global edge infrastructure of Fly.io with the ultra-lightweight data-streaming engine, Benthos (now widely integrated into the BlobStream ecosystem), and anchoring them to a cost-effective, centralized Virtual Private Server (VPS), you can build a resilient, low-latency asset optimization pipeline tailored precisely to your business needs.

---

The Architectural Blueprint: Edge-to-Core Synergy

Before diving into the implementation details, it is crucial to understand the structural relationship between the components of this self-hosted ecosystem. The architecture operates on a Hub-and-Spoke model:

  • The Spoke (The Edge - Fly.io): Fly.io allows us to run lightweight Docker containers in micro-regions physically close to our global users. These edge nodes act as the first line of reception, accepting asset requests, performing initial structural validations, handling TLS termination, and caching frequently accessed static content.
  • The Engine (Data Processing - Benthos/BlobStream): Embedded within our infrastructure, Benthos serves as a declarative, high-performance service companion. It intercepts asset streams, applies real-time transformations (such as compression, metadata stripping, or header modification), and routes them dynamically based on user context.
  • The Hub (Storage & Truth - Central VPS): A heavyweight, centralized VPS (provisioned via providers like Hetzner, DigitalOcean, or AWS) acts as the single source of truth. It hosts the primary asset storage (e.g., MinIO or localized S3-compatible blocks), heavy-duty database instances, and advanced analytics engines.

By segregating duties this way, we minimize data transit costs. The edge only pulls what it needs, transforms it on the fly, and caches the result, while the central VPS ensures long-term data integrity and durable storage capacity.

---

Why Fly.io and Benthos?

Choosing the right toolchain is paramount for operational reliability and developer velocity. Let us break down why this specific combination outperforms traditional stacks.

Fly.io: Infrastructure without the Cloud Overhead

Fly.io treats servers like application processes. By transforming standard Docker containers into micro-VMs that run on physical hardware globally, it provides the low-latency benefits of serverless edge workers (like Cloudflare Workers or AWS CloudFront Functions) but without their strict runtime limitations, restricted memory allocations, or proprietary APIs. If your container runs locally, it will run at the edge on Fly.io.

Benthos: Streamlining the Asset Pipeline

"Benthos is a dull problem solver; it is a single-binary stream processor that handles complex data manipulation through simple, declarative YAML configurations."

When dealing with asset optimization, treating assets as binary streams rather than static disk files avoids high I/O latency. Benthos excels here. It allows engineers to define complex data mapping, format adjustments, and error-handling mechanisms without writing custom, boilerplate-heavy backend code. It is memory-efficient, cloud-native, and features an extensive suite of built-in processors.

---

Step-by-Step Implementation Guide

Step 1: Preparing the Central VPS Storage Hub

First, we must establish our centralized storage engine on our core VPS. For this demonstration, we will deploy an instance of MinIO, an open-source, high-performance object storage server that mimics the AWS S3 API. Ensure your firewall allows secure communication only from authorized Fly.io IP ranges via WireGuard or tight security groups.

# Start MinIO on your central VPS via Docker
docker run -d -p 9000:9000 -p 9001:9001 \
  --name central-asset-hub \
  -v /mnt/data:/data \
  -e "MINIO_ROOT_USER=admin-assets" \
  -e "MINIO_ROOT_PASSWORD=super-secure-password" \
  minio/minio server /data --console-address ":9001"

Create a bucket named raw-assets where your high-resolution media, uncompressed files, and primary datasets will reside.

Step 2: Configuring the Benthos Transformation Layer

Next, we write the Benthos configuration file (benthos.yaml). This file dictates how our edge nodes pull from the central hub, transform the asset, and deliver it back to the client. In this example, we configure an input that fetches from our central VPS MinIO, applies a compression filter, and surfaces it over an HTTP server interface.

input:
  aws_s3:
    bucket: raw-assets
    endpoint: https://your-central-vps-ip:9000
    credentials:
      id: admin-assets
      secret: super-secure-password
    region: us-east-1

pipeline:
  processors:
    - label: optimize_asset
      mapping: |
        # Strip unnecessary metadata metadata and optimize payload
        root = this
        meta user_agent = metadata("http_server_user_agent")

output:
  http_server:
    path: /assets/{filename}
    allowed_verbs: [ GET ]

Step 3: Deploying to the Fly.io Edge Network

With our configuration finalized, we containerize Benthos and push it globally using Fly.io. Create a basic Dockerfile in your project directory:

FROM jeffail/benthos:latest
COPY ./benthos.yaml /benthos.yaml
ENTRYPOINT ["benthos", "-c", "/benthos.yaml"]

Now, initialize and launch your application globally across Fly.io's regional clusters using their CLI tool:

fly launch --name edge-asset-optimizer --region hkg
fly scale count 3 --max-per-region 1

By scaling your count across regions like hkg (Hong Kong), fra (Frankfurt), and iad (Virginia), your Benthos asset pipeline is instantly instantiated within milliseconds of your global user base.

---

Performance, Caching, and Cost Optimization Strategies

Deploying the infrastructure is only half the battle. To unlock its full business value, you must implement strict caching and traffic management protocols.

Layering Edge Caching

While Benthos processes streams at lightning speeds, executing transformations repeatedly on identical assets wastes compute cycles. To counter this, introduce an edge caching layer using Fly.io's local volume mounts. By attaching a small, fast NVMe-backed volume to each Fly.io micro-VM, Benthos can check the local disk cache before establishing a network connection back to the central VPS.

Minimizing Egress and Maximizing Bandwidth

One of the hidden financial traps of modern cloud architecture is egress fees. By pointing your Fly.io edge application directly to your central VPS via a private WireGuard VPN tunnel (which Fly.io supports natively), you completely bypass public internet routing. This dramatically enhances data security, reduces latency spikes, and leverages the flat-rate bandwidth pricing models typical of dedicated VPS providers.

---

Conclusion

Building a self-hosted Edge Asset Optimization solution by marrying Fly.io, Benthos, and a central VPS delivers the best of both worlds: the localized speed and responsiveness of a global CDN network, combined with the pricing predictability and control of open-source private infrastructure.

By abstracting your transformation logic into clean declarative configurations and running them inside highly scalable edge micro-VMs, your engineering team can deliver elite-level user experiences without inflating corporate cloud expenditures. As your media demands scale, this architecture stands ready to evolve alongside your business roadmap.

Building a Self-Hosted 'Edge Asset Optimization' Solution: Leveraging Fly.io and Benthos with Central VPS | DPTCloud