ngi-nix / ngipkgs

Nix packages and services for projects supported through the NGI program
https://ngi-nix.github.io/ngipkgs
MIT License
36 stars 18 forks source link

Static site that lists all available projects #165

Closed fricklerhandwerk closed 7 months ago

fricklerhandwerk commented 7 months ago

Render a static site that lists all NLnet projects that are somehow accessible through this repo, including packages (derivations), the executables they produce, NixOS modules, sample configurations, and some metadata such as the project website.

The general approach we had discussed with @lorenzleutgeb would be

  1. Equip derivations and modules with a metadata field that corresponds to the project key on nlnet.nl/project. Related: https://github.com/ngi-nix/ngipkgs/issues/74
  2. Write a transformation in the Nix language that will convert all information in the monorepo to a suitable data structure, and then to an HTML document.
  3. That HTML document can be checked into a branch and served via GitHub pages as a first step.

Anything fancy, such as skins, dynamic search, etc. can be added later. What's important is that there is a human-readable overview of what exists.

lorenzleutgeb commented 7 months ago

Still hoping to get to this. My state is in plist.

You get "all" options already, via nix build .#options && jq -r '. | keys | .[]' < result:

services.flarum.adminEmail
services.flarum.adminUser
services.flarum.baseUrl
services.flarum.createDatabaseLocally
services.flarum.database
services.flarum.domain
services.flarum.enable
services.flarum.forumTitle
services.flarum.group
services.flarum.initialAdminPassword
services.flarum.package
services.flarum.stateDir
services.flarum.user
services.kbin.domain
services.kbin.enable
services.kbin.group
services.kbin.package
services.kbin.secrets
services.kbin.secrets.APP_SECRET
services.kbin.secrets.MERCURE_JWT_SECRET
services.kbin.secrets.OAUTH_ENCRYPTION_KEY
services.kbin.secrets.OAUTH_PASSPHRASE
services.kbin.secrets.POSTGRES_PASSWORD
services.kbin.secrets.RABBITMQ_PASSWORD
services.kbin.secrets.REDIS_PASSWORD
services.kbin.settings
services.kbin.user
services.mcaptcha.captcha.saltFile
services.mcaptcha.database.createLocally
services.mcaptcha.database.passwordFile
services.mcaptcha.enable
services.mcaptcha.group
services.mcaptcha.package
services.mcaptcha.redis.createLocally
services.mcaptcha.redis.host
services.mcaptcha.redis.passwordFile
services.mcaptcha.redis.port
services.mcaptcha.redis.user
services.mcaptcha.server.cookieSecretFile
services.mcaptcha.settings
services.mcaptcha.settings.database.hostname
services.mcaptcha.settings.database.name
services.mcaptcha.settings.database.port
services.mcaptcha.settings.database.username
services.mcaptcha.settings.server.domain
services.mcaptcha.settings.server.ip
services.mcaptcha.settings.server.port
services.mcaptcha.user
services.pretalx.celery.backendFile
services.pretalx.celery.brokerFile
services.pretalx.celery.enable
services.pretalx.celery.extraArgs
services.pretalx.database.backend
services.pretalx.database.host
services.pretalx.database.name
services.pretalx.database.passwordFile
services.pretalx.database.port
services.pretalx.database.user
services.pretalx.enable
services.pretalx.extraConfig
services.pretalx.filesystem.data
services.pretalx.filesystem.logs
services.pretalx.filesystem.media
services.pretalx.filesystem.static
services.pretalx.group
services.pretalx.gunicorn.extraArgs
services.pretalx.init.admin.email
services.pretalx.init.admin.passwordFile
services.pretalx.init.organiser.name
services.pretalx.init.organiser.slug
services.pretalx.locale.language_code
services.pretalx.locale.time_zone
services.pretalx.logging.email
services.pretalx.logging.email_level
services.pretalx.logging.enable
services.pretalx.mail.enable
services.pretalx.mail.from
services.pretalx.mail.host
services.pretalx.mail.passwordFile
services.pretalx.mail.port
services.pretalx.mail.ssl
services.pretalx.mail.tls
services.pretalx.mail.user
services.pretalx.nginx
services.pretalx.nginx.acmeFallbackHost
services.pretalx.nginx.acmeRoot
services.pretalx.nginx.addSSL
services.pretalx.nginx.basicAuth
services.pretalx.nginx.basicAuthFile
services.pretalx.nginx.default
services.pretalx.nginx.enableACME
services.pretalx.nginx.extraConfig
services.pretalx.nginx.forceSSL
services.pretalx.nginx.globalRedirect
services.pretalx.nginx.http2
services.pretalx.nginx.http3
services.pretalx.nginx.http3_hq
services.pretalx.nginx.kTLS
services.pretalx.nginx.listen
services.pretalx.nginx.listen.*.addr
services.pretalx.nginx.listen.*.extraParameters
services.pretalx.nginx.listen.*.port
services.pretalx.nginx.listen.*.proxyProtocol
services.pretalx.nginx.listen.*.ssl
services.pretalx.nginx.listenAddresses
services.pretalx.nginx.locations
services.pretalx.nginx.locations..alias
services.pretalx.nginx.locations..basicAuth
services.pretalx.nginx.locations..basicAuthFile
services.pretalx.nginx.locations..extraConfig
services.pretalx.nginx.locations..fastcgiParams
services.pretalx.nginx.locations..index
services.pretalx.nginx.locations..priority
services.pretalx.nginx.locations..proxyPass
services.pretalx.nginx.locations..proxyWebsockets
services.pretalx.nginx.locations..recommendedProxySettings
services.pretalx.nginx.locations..return
services.pretalx.nginx.locations..root
services.pretalx.nginx.locations..tryFiles
services.pretalx.nginx.onlySSL
services.pretalx.nginx.quic
services.pretalx.nginx.redirectCode
services.pretalx.nginx.rejectSSL
services.pretalx.nginx.reuseport
services.pretalx.nginx.root
services.pretalx.nginx.serverAliases
services.pretalx.nginx.serverName
services.pretalx.nginx.sslCertificate
services.pretalx.nginx.sslCertificateKey
services.pretalx.nginx.sslTrustedCertificate
services.pretalx.nginx.useACMEHost
services.pretalx.package
services.pretalx.redis.enable
services.pretalx.redis.locationFile
services.pretalx.redis.session
services.pretalx.site.csp
services.pretalx.site.csp_form
services.pretalx.site.csp_img
services.pretalx.site.csp_script
services.pretalx.site.csp_style
services.pretalx.site.media
services.pretalx.site.secretFile
services.pretalx.site.static
services.pretalx.site.url
services.pretalx.user