README.md
April 10, 2026 ยท View on GitHub
Software Catalog API
Software Catalog API is a RESTful API for public software catalogs. It powers national open source catalogs for public administrations:
- ๐ฎ๐น developers.italia.it
- ๐จ๐ญ swiss/oss-catalog
Requirements
- Golang 1.25+
- PostgreSQL
Development
The application uses Air for live-reloading in the development environment.
To start developing:
-
Clone the repo
-
Build and start the containers
docker compose up
Docker Compose will bring up the app and PostgreSQL containers.
Wait until the Docker logs explicitly say the API is up and you can use its
endpoints at http://localhost:3000/v1/.
The application will automatically reload when a change is made.
Configuration
You can configure the API with environment variables:
-
DATABASE_DSN: the URI used to connect to the database, fepostgres://user:password@host:5432/dbname. Supports PostgreSQL and SQLite. -
PASETO_KEY(optional): Base64 encoded 32 bytes key used to check the PASETO authentication tokens. You can generate a key and a token with the built-in subcommand:developers-italia-api token createPass
--keyto use an existing key,--subto identify the caller, and--expiryto set a custom duration (default: 1 year,0= never expires).If not set, the API will run in read only mode.
-
ENVIRONMENT(optional): possible valuestest,development,production. Defaultproduction. -
MAX_REQUESTS(optional): number of requests per minute after which responses will be ratelimited. Default: no limit.
Contributing
This project exists also thanks to your contributions! Here is a list of people who already contributed to this repository:
License
Copyright ยฉ 2022-present Presidenza del Consiglio dei Ministri
The source code is released under the AGPL version 3.