{"id":50719308,"url":"https://github.com/novaardiansyah/nova-cdn","last_synced_at":"2026-06-09T22:01:56.601Z","repository":{"id":331299143,"uuid":"1124676316","full_name":"novaardiansyah/nova-cdn","owner":"novaardiansyah","description":"Nova CDN Service","archived":false,"fork":false,"pushed_at":"2026-02-14T04:10:27.000Z","size":167,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-14T12:50:36.039Z","etag":null,"topics":["cdn","golang","rest-api"],"latest_commit_sha":null,"homepage":"https://cdn.novadev.my.id","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/novaardiansyah.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"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":"2025-12-29T12:25:13.000Z","updated_at":"2026-02-14T04:10:30.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/novaardiansyah/nova-cdn","commit_stats":null,"previous_names":["novaardiansyah/nova-cdn"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/novaardiansyah/nova-cdn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novaardiansyah%2Fnova-cdn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novaardiansyah%2Fnova-cdn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novaardiansyah%2Fnova-cdn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novaardiansyah%2Fnova-cdn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/novaardiansyah","download_url":"https://codeload.github.com/novaardiansyah/nova-cdn/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novaardiansyah%2Fnova-cdn/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34127345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["cdn","golang","rest-api"],"created_at":"2026-06-09T22:01:56.309Z","updated_at":"2026-06-09T22:01:56.594Z","avatar_url":"https://github.com/novaardiansyah.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nova CDN Service\n\nHi Future Developer,\n\nWelcome to the **Nova CDN Service**! This project is an open-source Content Delivery Network (CDN) and asset management service built with the Go programming language, designed to be the central hub for storing and serving public assets.\n\nThis service was born out of a shared necessity across several other projects, including [golang-api](https://github.com/novaardiansyah/golang-api), [personal-v4](https://github.com/novaardiansyah/personal-v4), [NovaApp](https://github.com/novaardiansyah/NovaApp), and [ocr-server](https://github.com/novaardiansyah/ocr-server). Each of these applications requires a seamless way to manage and serve public assets like images and documents. To streamline this process, Nova CDN was built as a high-performance central hub to handle all asset delivery needs. The service is accessible at [https://cdn.novadev.my.id](https://cdn.novadev.my.id).\n\n## Dazzling Tech Stack! ⚡\n\n- [Go (Golang)](https://go.dev/) - Fast, statically typed, compiled programming language\n- [Fiber](https://gofiber.io/) - Express-inspired web framework for Go\n- [GORM](https://gorm.io/) - Fantastic ORM library for Golang\n- [MySQL](https://www.mysql.com/) - Database Management\n- [GoValidator](https://github.com/thedevsaddam/govalidator) - Request validation\n- [NFNT Resize](https://github.com/nfnt/resize) - Pure golang image resizing\n\n## Project Structure 🌟\n\nThis project follows a clean directory structure to maintain a clear separation of concerns:\n\n- `cmd/api/main.go` - Application entry point and server initialization.\n- `internal/config/` - Configuration logic and environment variable management.\n- `internal/controllers/` - HTTP request handlers.\n- `internal/models/` - Database schemas and GORM models.\n- `internal/repositories/` - Data access layer implementing the logic for database operations.\n- `internal/routes/` - API route definitions.\n- `internal/middleware/` - Custom middleware for logging, CORS, and security.\n- `pkg/utils/` - Shared utility functions and response helpers.\n\n## Key Features 🚀\n\n- ✅ **Centralized Asset Management**: Single source for images, files, and public assets.\n- ✅ **Image Processing**: On-the-fly resizing and optimization support.\n- ✅ **RESTful API**: Standardized operations for file uploads and management.\n- ✅ **Soft Deletes**: Native support via GORM for data safety.\n- ✅ **Standardized Responses**: Consistent JSON output across all endpoints.\n- ✅ **Security**: Endpoint protection with Laravel Sanctum token validation.\n\n## API Documentation 📚\n\nThis project includes **integrated API documentation** powered by [Swaggo](https://github.com/swaggo/swag). Access it at: [Official Documentation](https://cdn.novadev.my.id/api/documentation)\n\n\u003cimg src=\"public/markdown/preview-1.png\" width=\"550\" alt=\"API Documentation Preview\" /\u003e\n\n## Credentials \u0026 Environment 🔐\n\nWhile this repository is public, please note that all forms of credentials, API keys (including `.env`), and environment configurations are **not provided for the public**. Access to production secrets remains restricted for security reasons.\n\nTo get started locally:\n1. Copy `.env.example` to `.env`.\n2. Configure your local MySQL database settings.\n3. Run `go mod tidy` to install dependencies.\n4. Run `go run cmd/api/main.go` to start the server.\n\n## API Status 🌐\n\nYou can check the API status by visiting the health check endpoint:\n- [https://cdn.novadev.my.id/api/health](https://cdn.novadev.my.id/api/health)\n\n## Let's Connect! 📞\n\nNeed to chat? Feel free to drop me a line via [Email](mailto:novaardiansyah78@gmail.com) or hit me up on [WhatsApp](https://wa.me/6289506668480?text=Hi%20Nova,%20I%20have%20a%20question%20about%20your%20project%20on%20GitHub:%20https://github.com/novaardiansyah/nova-cdn). I'm just a message away, ready to groove with you! 📩\n\n## Project Status 🚀\n\n![stages](https://img.shields.io/badge/stages-development-informational)\n![Go](https://img.shields.io/badge/Go-1.25+-blue)\n![Fiber](https://img.shields.io/badge/Fiber-v2-blue)\n![GORM](https://img.shields.io/badge/GORM-v1-blue)\n![MySQL](https://img.shields.io/badge/MySQL-^8.0-blue)\n![size](https://img.shields.io/github/repo-size/novaardiansyah/nova-cdn?label=size\u0026color=informational)\n[![license](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![last commit](https://img.shields.io/github/last-commit/novaardiansyah/nova-cdn?label=last%20commit\u0026color=informational)](commits/main)\n\n## Code of Conduct 🤝\n\nWe believe in fostering a welcoming and inclusive environment for everyone. Please be respectful, considerate, and constructive in all interactions. By participating in this project, you agree to uphold our [Code of Conduct](CODE_OF_CONDUCT.md). Let's collaborate and make this community awesome together!\n\n## Licensing Groove 🕺\n\nExciting news! This project is grooving to the rhythm of the [MIT License](LICENSE).\n\nFeel free to use, modify, and share it with the world. Just remember to keep the original license intact. Let's spread the joy of coding together! 🚀\n\n---\n\n**Happy coding and collaborating!**\n— Nova Ardiansyah\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovaardiansyah%2Fnova-cdn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnovaardiansyah%2Fnova-cdn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovaardiansyah%2Fnova-cdn/lists"}