{"id":38368927,"url":"https://github.com/igorplebanczyk/image-processing-service","last_synced_at":"2026-01-17T03:26:08.766Z","repository":{"id":260775328,"uuid":"882296046","full_name":"igorplebanczyk/image-processing-service","owner":"igorplebanczyk","description":"API for an image processing service built in Go.","archived":false,"fork":false,"pushed_at":"2025-11-25T13:11:25.000Z","size":490,"stargazers_count":9,"open_issues_count":8,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-11-28T18:41:15.416Z","etag":null,"topics":["api","go","image-processing"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/igorplebanczyk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-11-02T12:47:26.000Z","updated_at":"2025-11-26T10:33:49.000Z","dependencies_parsed_at":"2024-12-01T14:19:09.520Z","dependency_job_id":"fd35bfde-62d8-413b-b2c9-1c5657d7d544","html_url":"https://github.com/igorplebanczyk/image-processing-service","commit_stats":null,"previous_names":["igorplebanczyk/image-processing-service"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/igorplebanczyk/image-processing-service","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorplebanczyk%2Fimage-processing-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorplebanczyk%2Fimage-processing-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorplebanczyk%2Fimage-processing-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorplebanczyk%2Fimage-processing-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/igorplebanczyk","download_url":"https://codeload.github.com/igorplebanczyk/image-processing-service/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igorplebanczyk%2Fimage-processing-service/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28492928,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T02:39:23.645Z","status":"ssl_error","status_checked_at":"2026-01-17T02:34:19.649Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","go","image-processing"],"created_at":"2026-01-17T03:26:08.684Z","updated_at":"2026-01-17T03:26:08.751Z","avatar_url":"https://github.com/igorplebanczyk.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Image Processing Service\nThis 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.\n\n## Features\n* User registration and basic account management\n* Two-factor authentication using JWTs and TOTPs\n* Image uploading and downloading to and from Azure Blob Storage\n* Image transformation using the [imaging](https://github.com/disintegration/imaging) package\n* Image preview generation\n* Email verification, password reset and 2FA using TOTPs\n* Observability using Loki, Prometheus, and Grafana\n* Reverse proxy using Traefik\n* PostgreSQL and Redis for data storage\n* Terraform IaC for Azure resources, including Azure Container Apps\n* Docker Compose for container management\n* CI/CD using GitHub Actions\n\n## Installation\n1. Clone the repository\n2. Configure the environment variables in the `.env` file; see the `.env.example` file for reference\n3. Make sure Docker is installed\n4. Run `docker-compose up --build` to start the service\n5. The API can now be accessed at `localhost:80`\n\n## Usage\nThe API is documented [here](https://www.postman.com/science-meteorologist-78724576/image-processing-service/api/5b6b7130-04d2-4788-9c26-babd4d9dfbd4) using Postman.\n\n## Dependencies\n\n### Go packages\n* [azblob](https://github.com/Azure/azure-sdk-for-go)\n* [imaging](https://github.com/disintegration/imaging)\n* [redis](https://github.com/go-redis/redis)\n* [jwt](https://github.com/golang-jwt/jwt)\n* [uuid](https://github.com/google/uuid)\n* [pq](https://github.com/lib/pq)\n* [otp](https://github.com/pquerna/otp)\n* [prometheus](https://github.com/prometheus/client_golang)\n* [go-mail](https://github.com/wneessen/go-mail)\n* [x/crypto](https://golang.org/x/crypto)\n\n### External services\n* [PostgreSQL](https://www.postgresql.org/)\n* [Redis](https://redis.io/)\n* [Loki](https://grafana.com/oss/loki/)\n* [Prometheus](https://prometheus.io/)\n* [Grafana](https://grafana.com/)\n* [Traefik](https://traefik.io/)\n* [Azure Blob Storage](https://azure.microsoft.com/en-us/products/storage/blobs)\n\n## License\nThis project is licensed under the MIT License - see [LICENSE](https://github.com/igorplebanczyk/image-processing-service/blob/main/LICENSE).\n\n## Notes\n* 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.\n* The project is my [boot.dev Capstone Project](https://www.boot.dev/courses/build-capstone-project) and my solution to the [roadmap.sh project](https://roadmap.sh/projects/image-processing-service).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figorplebanczyk%2Fimage-processing-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Figorplebanczyk%2Fimage-processing-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figorplebanczyk%2Fimage-processing-service/lists"}