Duck API

A simple yet functional Flask-based REST API that returns random duck images from a collection. This project demonstrates API design, Python best practices, and containerized deployment.

Last updated:

Overview

Duck API is a minimalist REST API service that returns random duck images. While simple in concept, it serves as a clean example of API design principles and containerized deployment.

The API is live and accessible at duck.ziegel.me, making it a fully deployed project suitable for portfolio demonstration.

Key Features

  • Random Duck Image Endpoint: Returns a random duck image from the collection
  • Lightweight and Fast: Minimal dependencies, quick startup time
  • Containerized Deployment: Full Docker support for easy deployment
  • REST API Best Practices: Proper HTTP methods and status codes
  • Image Serving: Efficient image storage and serving mechanism

Technical Implementation

Built with Flask, this API demonstrates:

  • Framework: Flask microframework for lightweight HTTP handling
  • Image Storage: Static or database-backed image collection
  • Containerization: Docker for consistent deployment across environments
  • Hosting: Deployed on a VPS with proper reverse proxy configuration

The API follows RESTful principles with clean endpoint design and proper HTTP semantics.

Architecture

Client Request
    ↓
Flask Application
    ↓
Image Repository
    ↓
HTTP Response (Image + Metadata)

Deployment

  • Container: Docker image for portable deployment
  • Hosting: Deployed at duck.ziegel.me on personal infrastructure
  • Reverse Proxy: Traefik for HTTPS/SSL termination
  • Uptime: Monitored via homelab monitoring stack

Skills Demonstrated

  • Python development and Flask framework
  • REST API design and implementation
  • Docker containerization and deployment
  • Backend service architecture
  • Image handling and serving
  • DNS and domain configuration

Status

Fully functional and live in production

This project demonstrates the ability to take a simple idea through to production deployment with proper containerization and infrastructure management.