Skip to content

igorplebanczyk/image-processing-service

Repository files navigation

Image Processing Service

This is an API for a simple image processing service. It allows users to upload images, transform them, and store them in the cloud. Written in Go.

Features

  • User registration and basic account management
  • Two-factor authentication using JWTs and TOTPs
  • Image uploading and downloading to and from Azure Blob Storage
  • Image transformation using the imaging package
  • Image preview generation
  • Email verification, password reset and 2FA using TOTPs
  • Observability using Loki, Prometheus, and Grafana
  • Reverse proxy using Traefik
  • PostgreSQL and Redis for data storage
  • Terraform IaC for Azure resources, including Azure Container Apps
  • Docker Compose for container management
  • CI/CD using GitHub Actions

Installation

  1. Clone the repository
  2. Configure the environment variables in the .env file; see the .env.example file for reference
  3. Make sure Docker is installed
  4. Run docker-compose up --build to start the service
  5. The API can now be accessed at localhost:80

Usage

The API is documented here using Postman.

Dependencies

Go packages

External services

License

This project is licensed under the MIT License - see LICENSE.

Notes

  • This project is primarily a learning exercise and is not intended for production use, though I did my best to make it at least somewhat viable for small-scale deployment.
  • The project is my boot.dev Capstone Project and my solution to the roadmap.sh project.

About

API for an image processing service built in Go.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages