A 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.
DistroMap 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.
GET /distro/{product}/{codename}
Parameters:
product- The Linux distribution/product name (e.g., "ubuntu", "debian")codename- The release codename OR version number (e.g., "noble", "jammy", "22.04", "11")
Example Requests:
# Using codename
curl http://localhost:8080/distro/ubuntu/noble
# Using version number
curl http://localhost:8080/distro/ubuntu/24.04Example Response:
{
"name": "24.04",
"codename": "Noble Numbat",
"label": "24.04 'Noble Numbat' (LTS)",
"releaseDate": "2024-04-25",
"isLts": 1,
"ltsFrom": null,
"isEoas": 0,
"eoasFrom": "2029-04-25",
"isEol": 0,
"eolFrom": "2029-04-25",
"isEoes": 0,
"eoesFrom": "2036-04-25",
"isMaintained": 1,
"latest": {
"name": "24.04.3",
"date": "2025-08-07",
"link": "https://wiki.ubuntu.com/NobleNumbat/ReleaseNotes/"
},
"custom": null
}GET /health
Example Response:
{
"status": "healthy",
"version": "1.0.0",
"timestamp": "2025-10-05 22:40:59",
"database": {
"loaded": 1,
"product_count": 419,
"last_update": "2025-10-05 22:37:44",
"update_count": 1
}
}- Ring Programming Language (version 1.24 or higher)
You can install DistroMap using the Ring Package Manager with the following command:
ringpm install distromap from ysdragon-
Clone or download the project files
-
Start the server:
ring main.ring
-
Verify it's running:
curl http://localhost:8080/health
The server will start on 0.0.0.0:8080 by default and begin loading the product database from endoflife.date.
Configure the application using environment variables:
| Variable | Default | Description |
|---|---|---|
SERVER_HOST |
0.0.0.0 |
Server bind address |
SERVER_PORT |
8080 |
Server port |
UPDATE_INTERVAL |
6 |
Database update interval (hours) |
SSL_VERIFY_PEER |
false |
Enable SSL certificate verification |
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.