{"id":31752059,"url":"https://github.com/ysdragon/distromap","last_synced_at":"2025-10-29T17:05:20.462Z","repository":{"id":318219070,"uuid":"1070380714","full_name":"ysdragon/DistroMap","owner":"ysdragon","description":"A lightweight web API server built with Ring programming language that provides Linux distribution and release information based on codenames.","archived":false,"fork":false,"pushed_at":"2025-10-05T20:46:10.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-05T22:21:11.968Z","etag":null,"topics":["linux","restful-api","ring-programming-language"],"latest_commit_sha":null,"homepage":"","language":"Ring","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/ysdragon.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":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-10-05T20:06:11.000Z","updated_at":"2025-10-05T20:46:13.000Z","dependencies_parsed_at":"2025-10-05T22:21:14.147Z","dependency_job_id":"998bbfc7-a544-4eaa-a86d-915c4bfc5272","html_url":"https://github.com/ysdragon/DistroMap","commit_stats":null,"previous_names":["ysdragon/distromap"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ysdragon/DistroMap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysdragon%2FDistroMap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysdragon%2FDistroMap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysdragon%2FDistroMap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysdragon%2FDistroMap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ysdragon","download_url":"https://codeload.github.com/ysdragon/DistroMap/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysdragon%2FDistroMap/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279001778,"owners_count":26083173,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"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":["linux","restful-api","ring-programming-language"],"created_at":"2025-10-09T16:55:06.088Z","updated_at":"2025-10-09T16:55:08.061Z","avatar_url":"https://github.com/ysdragon.png","language":"Ring","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DistroMap API\r\n\r\n[![Ring](https://img.shields.io/badge/Made%20with%20❤️%20Using-Ring-2D54CB)](https://ring-lang.net/)\r\n\r\nA lightweight web API server that provides Linux distribution and release information based on codenames. Built with the Ring programming language, this API allows you to look up Linux distro versions by providing a product name and codename.\r\n\r\n## Overview\r\n\r\nDistroMap API is designed as a quick lookup service for Linux distribution information. You can query it with endpoints like `/distro/ubuntu/noble` and receive detailed version information and release data in return.\r\n\r\n## API Endpoints\r\n\r\n### Get Distribution Information\r\n```\r\nGET /distro/{product}/{codename}\r\n```\r\n\r\n**Parameters:**\r\n- `product` - The Linux distribution/product name (e.g., \"ubuntu\", \"debian\")\r\n- `codename` - The release codename OR version number (e.g., \"noble\", \"jammy\", \"22.04\", \"11\")\r\n\r\n**Example Requests:**\r\n```bash\r\n# Using codename\r\ncurl http://localhost:8080/distro/ubuntu/noble\r\n\r\n# Using version number\r\ncurl http://localhost:8080/distro/ubuntu/24.04\r\n```\r\n\r\n**Example Response:**\r\n```json\r\n{\r\n  \"name\": \"24.04\",\r\n  \"codename\": \"Noble Numbat\",\r\n  \"label\": \"24.04 'Noble Numbat' (LTS)\",\r\n  \"releaseDate\": \"2024-04-25\",\r\n  \"isLts\": 1,\r\n  \"ltsFrom\": null,\r\n  \"isEoas\": 0,\r\n  \"eoasFrom\": \"2029-04-25\",\r\n  \"isEol\": 0,\r\n  \"eolFrom\": \"2029-04-25\",\r\n  \"isEoes\": 0,\r\n  \"eoesFrom\": \"2036-04-25\",\r\n  \"isMaintained\": 1,\r\n  \"latest\": {\r\n    \"name\": \"24.04.3\",\r\n    \"date\": \"2025-08-07\",\r\n    \"link\": \"https://wiki.ubuntu.com/NobleNumbat/ReleaseNotes/\"\r\n  },\r\n  \"custom\": null\r\n}\r\n```\r\n\r\n### Health Check\r\n```\r\nGET /health\r\n```\r\n\r\n**Example Response:**\r\n```json\r\n{\r\n  \"status\": \"healthy\",\r\n  \"version\": \"1.0.0\",\r\n  \"timestamp\": \"2025-10-05 22:40:59\",\r\n  \"database\": {\r\n    \"loaded\": 1,\r\n    \"product_count\": 419,\r\n    \"last_update\": \"2025-10-05 22:37:44\",\r\n    \"update_count\": 1\r\n  }\r\n}\r\n```\r\n\r\n## Installation \u0026 Setup\r\n\r\n### Prerequisites\r\n\r\n- **[Ring Programming Language](https://ring-lang.net/download.html)** (version 1.24 or higher)\r\n\r\n### Installation Methods\r\n\r\n#### Using Ring Package Manager (Recommended)\r\n\r\nYou can install DistroMap using the Ring Package Manager with the following command:\r\n\r\n```bash\r\nringpm install distromap from ysdragon\r\n```\r\n\r\n#### Manual Installation\r\n\r\n1. **Clone or download** the project files\r\n2. **Start the server:**\r\n   ```bash\r\n   ring main.ring\r\n   ```\r\n\r\n3. **Verify it's running:**\r\n   ```bash\r\n   curl http://localhost:8080/health\r\n   ```\r\n\r\nThe server will start on `0.0.0.0:8080` by default and begin loading the product database from endoflife.date.\r\n\r\n## Configuration\r\n\r\nConfigure the application using environment variables:\r\n\r\n| Variable | Default | Description |\r\n|----------|---------|-------------|\r\n| `SERVER_HOST` | `0.0.0.0` | Server bind address |\r\n| `SERVER_PORT` | `8080` | Server port |\r\n| `UPDATE_INTERVAL` | `6` | Database update interval (hours) |\r\n| `SSL_VERIFY_PEER` | `false` | Enable SSL certificate verification |\r\n\r\n## Contributing\r\n\r\n1. Fork the repository\r\n2. Create a feature branch\r\n3. Make your changes\r\n4. Test thoroughly\r\n5. Submit a pull request\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fysdragon%2Fdistromap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fysdragon%2Fdistromap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fysdragon%2Fdistromap/lists"}