Use the real apps.json format

Re #2
This commit is contained in:
3wc 2021-04-25 15:25:25 +02:00
parent dd00190dc3
commit c38a53870b
4 changed files with 202 additions and 1848 deletions

File diff suppressed because it is too large Load Diff

View File

@ -4,11 +4,11 @@
"category": "", "category": "",
"repository": "https://git.autonomic.zone/coop-cloud/workadventure.git", "repository": "https://git.autonomic.zone/coop-cloud/workadventure.git",
"default_branch": "main", "default_branch": "main",
"description": "A collaborative web application (virtual office) presented as a 16-bit RPG video game • https://github.com/thecodingmachine/workadventure", "description": "A collaborative web application (virtual office) presented as a 16-bit RPG video game",
"website": "", "website": "https://github.com/thecodingmachine/workadventure",
"features": {}, "features": {},
"versions": {}, "versions": {},
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/216-026252fa27a35dd45297be91be3608a7"
}, },
"renovate-bot": { "renovate-bot": {
"name": "Renovate Bot", "name": "Renovate Bot",
@ -19,7 +19,7 @@
"website": "", "website": "",
"features": { "features": {
"category": "Development", "category": "Development",
"status": "?", "status": 5,
"image": { "image": {
"image": "renovate/renovate", "image": "renovate/renovate",
"url": "https://hub.docker.com/r/renovate/renovate", "url": "https://hub.docker.com/r/renovate/renovate",
@ -48,10 +48,10 @@
"repository": "https://git.autonomic.zone/coop-cloud/drone.git", "repository": "https://git.autonomic.zone/coop-cloud/drone.git",
"default_branch": "master", "default_branch": "master",
"description": "Self-service Continuous Delivery platform", "description": "Self-service Continuous Delivery platform",
"website": "", "website": "https://github.com/drone/drone",
"features": { "features": {
"category": "Development", "category": "Development",
"status": "?", "status": 5,
"image": { "image": {
"image": "drone/drone", "image": "drone/drone",
"url": "https://hub.docker.com/r/drone/drone", "url": "https://hub.docker.com/r/drone/drone",
@ -72,18 +72,18 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/79-afe617425a579f946049e1537b6e55ea"
}, },
"kutt": { "kutt": {
"name": "Kutt", "name": "Kutt",
"category": "Apps", "category": "Apps",
"repository": "https://git.autonomic.zone/coop-cloud/kutt.git", "repository": "https://git.autonomic.zone/coop-cloud/kutt.git",
"default_branch": "main", "default_branch": "main",
"description": "Free Modern URL Shortener • https://github.com/thedevs-network/kutt", "description": "Free Modern URL Shortener",
"website": "", "website": "https://github.com/thedevs-network/kutt",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "❸🍎", "status": 3,
"image": { "image": {
"image": "kutt/kutt", "image": "kutt/kutt",
"url": "https://hub.docker.com/r/kutt/kutt", "url": "https://hub.docker.com/r/kutt/kutt",
@ -114,18 +114,18 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/164-4659ecee09385b430bc0b9f5f178e9d6"
}, },
"pelican": { "pelican": {
"name": "Pelican", "name": "Pelican",
"category": "Apps", "category": "Apps",
"repository": "https://git.autonomic.zone/coop-cloud/pelican.git", "repository": "https://git.autonomic.zone/coop-cloud/pelican.git",
"default_branch": "main", "default_branch": "main",
"description": " Static site generator • https://github.com/getpelican/pelican/", "description": " Static site generator",
"website": "", "website": "https://github.com/getpelican/pelican/",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "❷💛", "status": 2,
"image": { "image": {
"image": "3wordchant/pelican", "image": "3wordchant/pelican",
"url": "https://hub.docker.com/r/3wordchant/pelican", "url": "https://hub.docker.com/r/3wordchant/pelican",
@ -151,18 +151,18 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/142-741e890256209ea86a4540c170e6f7e7"
}, },
"phpservermon": { "phpservermon": {
"name": "PHPServerMon", "name": "PHPServerMon",
"category": "Graveyard", "category": "Graveyard",
"repository": "https://git.autonomic.zone/coop-cloud/phpservermon.git", "repository": "https://git.autonomic.zone/coop-cloud/phpservermon.git",
"default_branch": "main", "default_branch": "main",
"description": "Server monitor • https://github.com/phpservermon/phpservermon", "description": "Server monitor",
"website": "", "website": "https://github.com/phpservermon/phpservermon",
"features": { "features": {
"category": "Graveyard", "category": "Graveyard",
"status": "❹💣", "status": 4,
"image": { "image": {
"image": "benoitpodwinski/phpservermon", "image": "benoitpodwinski/phpservermon",
"url": "https://hub.docker.com/r/benoitpodwinski/phpservermon", "url": "https://hub.docker.com/r/benoitpodwinski/phpservermon",
@ -195,11 +195,11 @@
"category": "App", "category": "App",
"repository": "https://git.autonomic.zone/coop-cloud/osticket.git", "repository": "https://git.autonomic.zone/coop-cloud/osticket.git",
"default_branch": "main", "default_branch": "main",
"description": "", "description": "Open source ticketing system",
"website": "", "website": "https://github.com/osTicket/osTicket",
"features": { "features": {
"category": "App", "category": "App",
"status": "❹💣", "status": 4,
"image": { "image": {
"image": "osticket", "image": "osticket",
"url": "https://hub.docker.com/r/osticket/osticket", "url": "https://hub.docker.com/r/osticket/osticket",
@ -212,18 +212,18 @@
"tests": "" "tests": ""
}, },
"versions": {}, "versions": {},
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/209-c4305ac069e3834fa1b45128c4087485"
}, },
"adapt_authoring": { "adapt_authoring": {
"name": "Adapt Authoring Tool", "name": "Adapt Authoring Tool",
"category": "Apps", "category": "Apps",
"repository": "https://git.autonomic.zone/coop-cloud/adapt_authoring.git", "repository": "https://git.autonomic.zone/coop-cloud/adapt_authoring.git",
"default_branch": "main", "default_branch": "main",
"description": "User interface for authoring eLearning courses using the Adapt framework • https://github.com/adaptlearning/adapt_authoring", "description": "User interface for authoring eLearning courses using the Adapt framework",
"website": "", "website": "https://github.com/adaptlearning/adapt_authoring",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "❸🍎", "status": 3,
"image": { "image": {
"image": "3wordchant/adaptauthoring", "image": "3wordchant/adaptauthoring",
"url": "https://hub.docker.com/r/3wordchant/adaptauthoring", "url": "https://hub.docker.com/r/3wordchant/adaptauthoring",
@ -261,18 +261,18 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/131-d4307a953c8e5c84f59286d6ba82eda7"
}, },
"selfoss": { "selfoss": {
"name": "Selfoss", "name": "Selfoss",
"category": "Apps", "category": "Apps",
"repository": "https://git.autonomic.zone/coop-cloud/selfoss.git", "repository": "https://git.autonomic.zone/coop-cloud/selfoss.git",
"default_branch": "main", "default_branch": "main",
"description": "The multipurpose rss reader, live stream, mashup, aggregation web application • https://selfoss.aditu.de/", "description": "The multipurpose rss reader, live stream, mashup, aggregation web application",
"website": "", "website": "https://selfoss.aditu.de/",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "❸🍎", "status": 3,
"image": { "image": {
"image": "akito13/selfoss", "image": "akito13/selfoss",
"url": "https://hub.docker.com/r/akito13/selfoss", "url": "https://hub.docker.com/r/akito13/selfoss",
@ -298,7 +298,7 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/118-ba1aa91d110e9095652d68cd37b267c0"
}, },
"gitea": { "gitea": {
"name": "Gitea", "name": "Gitea",
@ -309,7 +309,7 @@
"website": "", "website": "",
"features": { "features": {
"category": "Development", "category": "Development",
"status": "❷💛", "status": 2,
"image": { "image": {
"image": "gitea/gitea", "image": "gitea/gitea",
"url": "https://hub.docker.com/gitea/gitea", "url": "https://hub.docker.com/gitea/gitea",
@ -381,6 +381,18 @@
"tag": "10.5", "tag": "10.5",
"digest": "9c681cef" "digest": "9c681cef"
} }
},
"ls": {
"app": {
"image": "gitea/gitea",
"tag": "1.14.1-rootless",
"digest": "6244e9fc"
},
"db": {
"image": "mariadb",
"tag": "10.5",
"digest": "36288c67"
}
} }
}, },
"icon": "https://git.autonomic.zone/repo-avatars/75-2b3abe26c149aeace0b8834c09345d91" "icon": "https://git.autonomic.zone/repo-avatars/75-2b3abe26c149aeace0b8834c09345d91"
@ -391,10 +403,10 @@
"repository": "https://git.autonomic.zone/coop-cloud/mediawiki.git", "repository": "https://git.autonomic.zone/coop-cloud/mediawiki.git",
"default_branch": "main", "default_branch": "main",
"description": "The collaborative editing software that runs Wikipedia", "description": "The collaborative editing software that runs Wikipedia",
"website": "", "website": "https://gerrit.wikimedia.org/g/mediawiki/core",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "❸🍎", "status": 3,
"image": { "image": {
"image": "mediawiki", "image": "mediawiki",
"url": "https://hub.docker.com/_/mediawiki", "url": "https://hub.docker.com/_/mediawiki",
@ -452,18 +464,18 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/106-edbae2382ae756c2d3e4bed2bee8a0a4"
}, },
"swarmpit": { "swarmpit": {
"name": "Swarmpit", "name": "Swarmpit",
"category": "Utilities", "category": "Utilities",
"repository": "https://git.autonomic.zone/coop-cloud/swarmpit.git", "repository": "https://git.autonomic.zone/coop-cloud/swarmpit.git",
"default_branch": "main", "default_branch": "main",
"description": "Lightweight mobile-friendly Docker Swarm management UI • https://swarmpit.io", "description": "Lightweight mobile-friendly Docker Swarm management UI",
"website": "", "website": "https://swarmpit.io",
"features": { "features": {
"category": "Utilities", "category": "Utilities",
"status": "❷💛", "status": 2,
"image": { "image": {
"image": "swarmpit", "image": "swarmpit",
"url": "https://hub.docker.com/_/swarmpit", "url": "https://hub.docker.com/_/swarmpit",
@ -499,18 +511,18 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/110-0e3fc70194d15a6016a9bd47f3d22fdb"
}, },
"rocketchat": { "rocketchat": {
"name": "Rocket.chat", "name": "Rocket.chat",
"category": "Apps", "category": "Apps",
"repository": "https://git.autonomic.zone/coop-cloud/rocketchat.git", "repository": "https://git.autonomic.zone/coop-cloud/rocketchat.git",
"default_branch": "main", "default_branch": "main",
"description": "The ultimate Free Open Source Solution for team communications • https://github.com/RocketChat/Rocket.Chat", "description": "The ultimate Free Open Source Solution for team communications",
"website": "", "website": "https://github.com/RocketChat/Rocket.Chat",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "❷💛", "status": 2,
"image": { "image": {
"image": "rocketchat/rocket.chat", "image": "rocketchat/rocket.chat",
"url": "https://hub.docker.com/r/rocketchat/rocket.chat/", "url": "https://hub.docker.com/r/rocketchat/rocket.chat/",
@ -575,7 +587,7 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/122-8b5e6496337dc3d6ac55cab7eb82c862"
}, },
"matrix-synapse": { "matrix-synapse": {
"name": "Matrix (Synapse)", "name": "Matrix (Synapse)",
@ -583,10 +595,10 @@
"repository": "https://git.autonomic.zone/coop-cloud/matrix-synapse.git", "repository": "https://git.autonomic.zone/coop-cloud/matrix-synapse.git",
"default_branch": "main", "default_branch": "main",
"description": "Open, interoperable, decentralised real-time communication reference Matrix homeserver", "description": "Open, interoperable, decentralised real-time communication reference Matrix homeserver",
"website": "", "website": "https://github.com/matrix-org/synapse/",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "❹💣", "status": 4,
"image": { "image": {
"image": "matrixdotorg/synapse", "image": "matrixdotorg/synapse",
"url": "https://hub.docker.com/r/matrixdotorg/synapse", "url": "https://hub.docker.com/r/matrixdotorg/synapse",
@ -607,18 +619,18 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/109-71d1b483b01101c87e48bf1ea5ee24d5"
}, },
"traefik": { "traefik": {
"name": "Traefik", "name": "Traefik",
"category": "Utilities", "category": "Utilities",
"repository": "https://git.autonomic.zone/coop-cloud/traefik.git", "repository": "https://git.autonomic.zone/coop-cloud/traefik.git",
"default_branch": "master", "default_branch": "master",
"description": "Edge router that makes publishing your services a fun and easy experience • https://github.com/traefik/traefik", "description": "Edge router that makes publishing your services a fun and easy experience",
"website": "", "website": "https://github.com/traefik/traefik",
"features": { "features": {
"category": "Utilities", "category": "Utilities",
"status": "?", "status": 5,
"image": { "image": {
"image": "traefik", "image": "traefik",
"url": "https://hub.docker.com/_/traefik", "url": "https://hub.docker.com/_/traefik",
@ -639,18 +651,18 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/76-2677dfde60e1666d8665d2a045918d2e"
}, },
"strapi": { "strapi": {
"name": "Strapi", "name": "Strapi",
"category": "Development", "category": "Development",
"repository": "https://git.autonomic.zone/coop-cloud/strapi.git", "repository": "https://git.autonomic.zone/coop-cloud/strapi.git",
"default_branch": "main", "default_branch": "main",
"description": "Open source Node.js Headless CMS to easily build customisable APIs • https://github.com/strapi/strapi", "description": "Open source Node.js Headless CMS to easily build customisable APIs",
"website": "", "website": "https://github.com/strapi/strapi",
"features": { "features": {
"category": "Development", "category": "Development",
"status": "❸🍎", "status": 3,
"image": { "image": {
"image": "strapi/strapi", "image": "strapi/strapi",
"url": "https://hub.docker.com/r/strapi/strapi", "url": "https://hub.docker.com/r/strapi/strapi",
@ -676,18 +688,18 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/130-f4cdbe10a84d2fa9025f800c3467bf3e"
}, },
"statuspal": { "statuspal": {
"name": "Statuspal", "name": "Statuspal",
"category": "Graveyard", "category": "Graveyard",
"repository": "https://git.autonomic.zone/coop-cloud/statuspal.git", "repository": "https://git.autonomic.zone/coop-cloud/statuspal.git",
"default_branch": "main", "default_branch": "main",
"description": "Statuspal lets you communicate your web apps/services status • https://github.com/statuspal/statuspal/", "description": "Statuspal lets you communicate your web apps/services status",
"website": "", "website": "https://github.com/statuspal/statuspal/",
"features": { "features": {
"category": "Graveyard", "category": "Graveyard",
"status": "❹💣", "status": 4,
"image": { "image": {
"image": "statuspal/statuspal", "image": "statuspal/statuspal",
"url": "https://hub.docker.com/r/statuspal/statuspal", "url": "https://hub.docker.com/r/statuspal/statuspal",
@ -713,7 +725,7 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/162-533dee894ac13daf7f3df11286d4f250"
}, },
"invoiceninja": { "invoiceninja": {
"name": "Invoiceninja", "name": "Invoiceninja",
@ -721,10 +733,10 @@
"repository": "https://git.autonomic.zone/coop-cloud/invoiceninja.git", "repository": "https://git.autonomic.zone/coop-cloud/invoiceninja.git",
"default_branch": "master", "default_branch": "master",
"description": "Free open-source invoicing", "description": "Free open-source invoicing",
"website": "", "website": "https://github.com/invoiceninja/invoiceninja",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "❹💣", "status": 4,
"image": { "image": {
"image": "invoiceninja/invoiceninja", "image": "invoiceninja/invoiceninja",
"url": "https://hub.docker.com/r/invoiceninja/invoiceninja", "url": "https://hub.docker.com/r/invoiceninja/invoiceninja",
@ -789,18 +801,18 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/78-29c99f17dcab6ccc3adeba8c20275505"
}, },
"statping": { "statping": {
"name": "Statping", "name": "Statping",
"category": "Apps", "category": "Apps",
"repository": "https://git.autonomic.zone/coop-cloud/statping.git", "repository": "https://git.autonomic.zone/coop-cloud/statping.git",
"default_branch": "main", "default_branch": "main",
"description": "Status Page for monitoring your websites and applications with beautiful graphs, analytics, and plugins • https://github.com/statping/statping", "description": "Status Page for monitoring your websites and applications with beautiful graphs, analytics, and plugins",
"website": "", "website": "https://github.com/statping/statping",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "❸🍎", "status": 3,
"image": { "image": {
"image": "statping/statping", "image": "statping/statping",
"url": "https://hub.docker.com/r/statping/statping", "url": "https://hub.docker.com/r/statping/statping",
@ -821,18 +833,18 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/179-3614ed95881f3698505020229a242aa5"
}, },
"kimai": { "kimai": {
"name": "Kimai", "name": "Kimai",
"category": "Apps", "category": "Apps",
"repository": "https://git.autonomic.zone/coop-cloud/kimai.git", "repository": "https://git.autonomic.zone/coop-cloud/kimai.git",
"default_branch": "main", "default_branch": "main",
"description": "Web-based multiuser time-tracking application • https://github.com/kevinpapst/kimai2", "description": "Web-based multiuser time-tracking application",
"website": "", "website": "https://github.com/kevinpapst/kimai2",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "?", "status": 5,
"image": { "image": {
"image": "kimai/kimai2", "image": "kimai/kimai2",
"url": "https://hub.docker.com/kimai/kimai2", "url": "https://hub.docker.com/kimai/kimai2",
@ -858,7 +870,7 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/121-63207e715b9e6f90d292ab20867b4f5b"
}, },
"keycloak": { "keycloak": {
"name": "keycloak", "name": "keycloak",
@ -866,10 +878,10 @@
"repository": "https://git.autonomic.zone/coop-cloud/keycloak.git", "repository": "https://git.autonomic.zone/coop-cloud/keycloak.git",
"default_branch": "master", "default_branch": "master",
"description": "Open source identity and access management", "description": "Open source identity and access management",
"website": "", "website": "https://github.com/keycloak/keycloak",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "❷💛", "status": 2,
"image": { "image": {
"image": "jboss/keycloak", "image": "jboss/keycloak",
"url": "https://hub.docker.com/r/jboss/keycloak", "url": "https://hub.docker.com/r/jboss/keycloak",
@ -895,7 +907,7 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/81-7f1c73644f4a243e234a38be4b02a87b"
}, },
"h5ai": { "h5ai": {
"name": "H5ai", "name": "H5ai",
@ -906,7 +918,7 @@
"website": "", "website": "",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "❸🍎", "status": 3,
"image": { "image": {
"image": "michaeljefferys/docker-h5ai", "image": "michaeljefferys/docker-h5ai",
"url": "https://hub.docker.com/r/michaeljefferys/docker-h5ai", "url": "https://hub.docker.com/r/michaeljefferys/docker-h5ai",
@ -926,11 +938,11 @@
"category": "Apps", "category": "Apps",
"repository": "https://git.autonomic.zone/coop-cloud/wallabag.git", "repository": "https://git.autonomic.zone/coop-cloud/wallabag.git",
"default_branch": "main", "default_branch": "main",
"description": "Self hostable application for saving web pages • https://github.com/wallabag/wallabag", "description": "Self hostable application for saving web pages",
"website": "", "website": "https://github.com/wallabag/wallabag",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "❸🍎", "status": 3,
"image": { "image": {
"image": "wallabag/wallabag", "image": "wallabag/wallabag",
"url": "https://hub.docker.com/r/wallabag/wallabag", "url": "https://hub.docker.com/r/wallabag/wallabag",
@ -961,18 +973,18 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/136-0e3f598ecf62e71b4884fe9e823f7df8"
}, },
"radicale": { "radicale": {
"name": "Radicale", "name": "Radicale",
"category": "Apps", "category": "Apps",
"repository": "https://git.autonomic.zone/coop-cloud/radicale.git", "repository": "https://git.autonomic.zone/coop-cloud/radicale.git",
"default_branch": "main", "default_branch": "main",
"description": "A simple CalDAV (calendar) and CardDAV (contact) server • https://github.com/Kozea/Radicale", "description": "A simple CalDAV (calendar) and CardDAV (contact) server",
"website": "", "website": "https://github.com/Kozea/Radicale",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "❹💣", "status": 4,
"image": { "image": {
"image": "tomsquest/radicale", "image": "tomsquest/radicale",
"url": "https://hub.docker.com/r/tomsquest/radicale", "url": "https://hub.docker.com/r/tomsquest/radicale",
@ -993,29 +1005,29 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/208-a1ecce2144ee538446c04499b36cd2aa"
}, },
"penpot": { "penpot": {
"name": "", "name": "",
"category": "", "category": "",
"repository": "https://git.autonomic.zone/coop-cloud/penpot.git", "repository": "https://git.autonomic.zone/coop-cloud/penpot.git",
"default_branch": "main", "default_branch": "main",
"description": "The Open-Source design & prototyping platform • https://github.com/penpot/penpot", "description": "The Open-Source design & prototyping platform",
"website": "", "website": "https://github.com/penpot/penpot",
"features": {}, "features": {},
"versions": {}, "versions": {},
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/235-2d649ef2cac767f666190ee583a35de5"
}, },
"keyoxide": { "keyoxide": {
"name": "Keyoxide", "name": "Keyoxide",
"category": "Apps", "category": "Apps",
"repository": "https://git.autonomic.zone/coop-cloud/keyoxide.git", "repository": "https://git.autonomic.zone/coop-cloud/keyoxide.git",
"default_branch": "main", "default_branch": "main",
"description": "A modern, secure and privacy-friendly platform to establish your decentralized online identity • https://codeberg.org/keyoxide/web", "description": "A modern, secure and privacy-friendly platform to establish your decentralized online identity",
"website": "", "website": "https://codeberg.org/keyoxide/web",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "❷💛", "status": 2,
"image": { "image": {
"image": "keyoxide/keyoxide", "image": "keyoxide/keyoxide",
"url": "https://hub.docker.com/r/keyoxide/keyoxide", "url": "https://hub.docker.com/r/keyoxide/keyoxide",
@ -1043,18 +1055,18 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/186-86a30915fd46fce2d7e35709d9373da4"
}, },
"filerun": { "filerun": {
"name": "Filerun", "name": "Filerun",
"category": "Graveyard", "category": "Graveyard",
"repository": "", "repository": "https://git.autonomic.zone/coop-cloud/filerun.git",
"default_branch": "", "default_branch": "main",
"description": "", "description": "Self-hosted Google Drive/Photos/Music alternative",
"website": "", "website": "https://github.com/filerun/docker",
"features": { "features": {
"category": "Graveyard", "category": "Graveyard",
"status": "❹💣", "status": 4,
"image": { "image": {
"image": "afian/filerun", "image": "afian/filerun",
"url": "https://hub.docker.com/r/afian/filerun", "url": "https://hub.docker.com/r/afian/filerun",
@ -1067,18 +1079,18 @@
"tests": "No" "tests": "No"
}, },
"versions": {}, "versions": {},
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/203-15089f83295d915f00099a0c8d9a45a6"
}, },
"projectsend": { "projectsend": {
"name": "Projectsend", "name": "Projectsend",
"category": "Graveyard", "category": "Graveyard",
"repository": "https://git.autonomic.zone/coop-cloud/projectsend.git", "repository": "https://git.autonomic.zone/coop-cloud/projectsend.git",
"default_branch": "main", "default_branch": "main",
"description": "Share files with your clients, focused on ease of use and privacy • https://github.com/projectsend/projectsend", "description": "Share files with your clients, focused on ease of use and privacy",
"website": "", "website": "https://github.com/projectsend/projectsend",
"features": { "features": {
"category": "Graveyard", "category": "Graveyard",
"status": "❹💣", "status": 4,
"image": { "image": {
"image": "linuxserver/projectsend", "image": "linuxserver/projectsend",
"url": "https://hub.docker.com/r/linuxserver/projectsend", "url": "https://hub.docker.com/r/linuxserver/projectsend",
@ -1104,18 +1116,18 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/201-d8447785c1cbbc599c395d14732591a8"
}, },
"znc": { "znc": {
"name": "ZNC", "name": "ZNC",
"category": "Apps", "category": "Apps",
"repository": "https://git.autonomic.zone/coop-cloud/znc.git", "repository": "https://git.autonomic.zone/coop-cloud/znc.git",
"default_branch": "main", "default_branch": "main",
"description": "IRC bouncer • https://github.com/znc/znc", "description": "IRC bouncer",
"website": "", "website": "https://github.com/znc/znc",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "❹💣", "status": 4,
"image": { "image": {
"image": "linuxserver/znc", "image": "linuxserver/znc",
"url": "https://hub.docker.com/r/linuxserver/znc", "url": "https://hub.docker.com/r/linuxserver/znc",
@ -1136,7 +1148,7 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/214-b6089b954d6c6e4672ecfa101bda547b"
}, },
"traefik-forward-auth": { "traefik-forward-auth": {
"name": "traefik-forward-auth", "name": "traefik-forward-auth",
@ -1147,7 +1159,7 @@
"website": "https://github.com/thomseddon/traefik-forward-auth", "website": "https://github.com/thomseddon/traefik-forward-auth",
"features": { "features": {
"category": "Utilities", "category": "Utilities",
"status": "?", "status": 5,
"image": { "image": {
"image": "crazymax/swarm-cronjob", "image": "crazymax/swarm-cronjob",
"url": "https://hub.docker.com/r/crazymax/swarm-cronjob/", "url": "https://hub.docker.com/r/crazymax/swarm-cronjob/",
@ -1179,7 +1191,7 @@
"website": "", "website": "",
"features": { "features": {
"category": "Utilities", "category": "Utilities",
"status": "?", "status": 5,
"image": { "image": {
"image": "crazymax/swarm-cronjob", "image": "crazymax/swarm-cronjob",
"url": "https://hub.docker.com/r/crazymax/swarm-cronjob/", "url": "https://hub.docker.com/r/crazymax/swarm-cronjob/",
@ -1208,7 +1220,7 @@
"repository": "https://git.autonomic.zone/coop-cloud/civicrm-backdrop.git", "repository": "https://git.autonomic.zone/coop-cloud/civicrm-backdrop.git",
"default_branch": "main", "default_branch": "main",
"description": "CiviCRM with Backdrop CMS", "description": "CiviCRM with Backdrop CMS",
"website": "", "website": "https://civicrm.org/backdrop",
"features": {}, "features": {},
"versions": { "versions": {
"1.19.2": { "1.19.2": {
@ -1219,7 +1231,7 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/165-dae3948b12efa0ac5dac6670fcc84f7e"
}, },
"distribution": { "distribution": {
"name": "distribution", "name": "distribution",
@ -1230,7 +1242,7 @@
"website": "", "website": "",
"features": { "features": {
"category": "Development", "category": "Development",
"status": "❹💣", "status": 4,
"image": { "image": {
"image": "registry", "image": "registry",
"url": "https://hub.docker.com/_/registry/", "url": "https://hub.docker.com/_/registry/",
@ -1265,7 +1277,7 @@
"website": "", "website": "",
"features": { "features": {
"category": "Development", "category": "Development",
"status": "❹💣", "status": 4,
"image": { "image": {
"image": "drone/drone-docker-runner", "image": "drone/drone-docker-runner",
"url": "https://hub.docker.com/r/drone/drone-docker-runner/", "url": "https://hub.docker.com/r/drone/drone-docker-runner/",
@ -1293,11 +1305,11 @@
"category": "Apps", "category": "Apps",
"repository": "https://git.autonomic.zone/coop-cloud/codimd.git", "repository": "https://git.autonomic.zone/coop-cloud/codimd.git",
"default_branch": "main", "default_branch": "main",
"description": "Realtime collaborative markdown notes on all platforms • https://github.com/hackmdio/codimd", "description": "Realtime collaborative markdown notes on all platforms",
"website": "", "website": "https://github.com/hackmdio/codimd",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "❷💛", "status": 2,
"image": { "image": {
"image": "hackmdio/hackmd", "image": "hackmdio/hackmd",
"url": "https://hub.docker.com/r/hackmdio/hackmd/", "url": "https://hub.docker.com/r/hackmdio/hackmd/",
@ -1334,7 +1346,7 @@
"website": "", "website": "",
"features": { "features": {
"category": "Utilities", "category": "Utilities",
"status": "❷💛", "status": 2,
"image": { "image": {
"image": "boky/postfix", "image": "boky/postfix",
"url": "https://hub.docker.com/r/boky/postfix/", "url": "https://hub.docker.com/r/boky/postfix/",
@ -1366,7 +1378,7 @@
"website": "", "website": "",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "❷💛", "status": 2,
"image": { "image": {
"image": "nginx", "image": "nginx",
"url": "https://hub.docker.com/_/nginx", "url": "https://hub.docker.com/_/nginx",
@ -1394,11 +1406,11 @@
"category": "Apps", "category": "Apps",
"repository": "https://git.autonomic.zone/coop-cloud/matomo.git", "repository": "https://git.autonomic.zone/coop-cloud/matomo.git",
"default_branch": "main", "default_branch": "main",
"description": "Liberating Web Analytics • https://github.com/matomo-org/matomo", "description": "Liberating Web Analytics",
"website": "", "website": "https://github.com/matomo-org/matomo",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "❸🍎", "status": 3,
"image": { "image": {
"image": "matomo", "image": "matomo",
"url": "https://hub.docker.com/_/matomo", "url": "https://hub.docker.com/_/matomo",
@ -1424,18 +1436,18 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/119-67650a157731e1d3c13f73612360c6f6"
}, },
"wordpress": { "wordpress": {
"name": "Wordpress", "name": "Wordpress",
"category": "Apps", "category": "Apps",
"repository": "https://git.autonomic.zone/coop-cloud/wordpress.git", "repository": "https://git.autonomic.zone/coop-cloud/wordpress.git",
"default_branch": "master", "default_branch": "master",
"description": "Open source software you can use to create a beautiful website, blog, or app • https://github.com/wordpress/wordpress", "description": "Open source software you can use to create a beautiful website, blog, or app",
"website": "", "website": "https://github.com/wordpress/wordpress",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "❶💚", "status": 1,
"image": { "image": {
"image": "wordpress", "image": "wordpress",
"url": "https://hub.docker.com/_/wordpress", "url": "https://hub.docker.com/_/wordpress",
@ -1473,7 +1485,7 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/56-c42ad450f8d08fb7e5ab945e4147dc5c"
}, },
"portainer": { "portainer": {
"name": "portainer", "name": "portainer",
@ -1481,10 +1493,10 @@
"repository": "https://git.autonomic.zone/coop-cloud/portainer.git", "repository": "https://git.autonomic.zone/coop-cloud/portainer.git",
"default_branch": "master", "default_branch": "master",
"description": "Making Docker management easy", "description": "Making Docker management easy",
"website": "", "website": "https://github.com/portainer/portainer",
"features": { "features": {
"category": "Utilities", "category": "Utilities",
"status": "?", "status": 5,
"image": { "image": {
"image": "portainer/portainer", "image": "portainer/portainer",
"url": "https://hub.docker.com/r/portainer/portainer", "url": "https://hub.docker.com/r/portainer/portainer",
@ -1510,18 +1522,18 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/52-80027578bf816e79303ccc652e1b0a9f"
}, },
"mailu": { "mailu": {
"name": "Mailu", "name": "Mailu",
"category": "Apps", "category": "Apps",
"repository": "https://git.autonomic.zone/coop-cloud/mailu.git", "repository": "https://git.autonomic.zone/coop-cloud/mailu.git",
"default_branch": "main", "default_branch": "main",
"description": "Insular email distribution - mail server as Docker images • https://github.com/Mailu/Mailu", "description": "Insular email distribution - mail server as Docker images",
"website": "", "website": "https://github.com/Mailu/Mailu",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "❸🍎", "status": 3,
"image": { "image": {
"image": "mailu/*", "image": "mailu/*",
"url": "https://hub.docker.com/r/mailu/", "url": "https://hub.docker.com/r/mailu/",
@ -1534,7 +1546,7 @@
"tests": "No" "tests": "No"
}, },
"versions": {}, "versions": {},
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/133-c56b07895555d12e73f3c0a7bdc4ecdc"
}, },
"nextcloud": { "nextcloud": {
"name": "Nextcloud", "name": "Nextcloud",
@ -1542,10 +1554,10 @@
"repository": "https://git.autonomic.zone/coop-cloud/nextcloud.git", "repository": "https://git.autonomic.zone/coop-cloud/nextcloud.git",
"default_branch": "main", "default_branch": "main",
"description": "Nextcloud Server, a safe home for all your data ", "description": "Nextcloud Server, a safe home for all your data ",
"website": "", "website": "https://github.com/nextcloud/server",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "❷💛", "status": 2,
"image": { "image": {
"image": "nextcloud", "image": "nextcloud",
"url": "https://hub.docker.com/_/nextcloud", "url": "https://hub.docker.com/_/nextcloud",
@ -1571,7 +1583,7 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/108-ca8b5ae4e3d07df9f3254d66483c2fcb"
}, },
"go-neb": { "go-neb": {
"name": "go-neb", "name": "go-neb",
@ -1582,7 +1594,7 @@
"website": "", "website": "",
"features": { "features": {
"category": "Utilities", "category": "Utilities",
"status": "❹💣", "status": 4,
"image": { "image": {
"image": "go-neb", "image": "go-neb",
"url": "https://hub.docker.com/r/go-neb/go-neb", "url": "https://hub.docker.com/r/go-neb/go-neb",
@ -1602,11 +1614,11 @@
"category": "Apps", "category": "Apps",
"repository": "https://git.autonomic.zone/coop-cloud/filestash.git", "repository": "https://git.autonomic.zone/coop-cloud/filestash.git",
"default_branch": "main", "default_branch": "main",
"description": "A modern web client for SFTP, S3, FTP, WebDAV, Git, Minio, LDAP, CalDAV, CardDAV, Mysql, Backblaze • https://github.com/mickael-kerjean/filestash", "description": "A modern web client for SFTP, S3, FTP, WebDAV, Git, Minio, LDAP, CalDAV, CardDAV, Mysql, Backblaze",
"website": "", "website": "https://github.com/mickael-kerjean/filestash",
"features": { "features": {
"category": "Apps", "category": "Apps",
"status": "❹💣", "status": 4,
"image": { "image": {
"image": "machines/filestash", "image": "machines/filestash",
"url": "https://hub.docker.com/r/machines/filestash/", "url": "https://hub.docker.com/r/machines/filestash/",
@ -1627,6 +1639,6 @@
} }
} }
}, },
"icon": "" "icon": "https://git.autonomic.zone/repo-avatars/202-f9d552bccf48bda03295d64863f35a3b"
} }
} }

View File

@ -42,7 +42,6 @@ type alias App =
, website : Maybe String , website : Maybe String
} }
type alias Model = type alias Model =
{ url : Url Params { url : Url Params
, status : Status , status : Status
@ -94,8 +93,12 @@ update msg model =
Just item -> Just item ->
( { model | status = Success (item) }, loadREADME item) ( { model | status = Success (item) }, loadREADME item)
Err _ -> Err err ->
( { model | status = Failure }, Cmd.none ) let
_ =
Debug.log "Something failed" err
in
( { model | status = Failure } , Cmd.none )
GotText result -> GotText result ->
case result of case result of
@ -109,8 +112,12 @@ update msg model =
in in
( { model | readme = Regex.replace regex (\_ -> "") content }, Cmd.none ) ( { model | readme = Regex.replace regex (\_ -> "") content }, Cmd.none )
Err _ -> Err err ->
( { model | status = Failure }, Cmd.none ) let
_ =
Debug.log "Something failed" err
in
( { model | status = Failure } , Cmd.none )
@ -241,10 +248,8 @@ viewApp app readme =
loadApp : Cmd Msg loadApp : Cmd Msg
loadApp = loadApp =
-- fetch app JSON and README in parallel
Http.get Http.get
-- FIXME: change to absolute URL, if this works? { url = "/abra-apps.json"
{ url = "/abra-apps-list.json"
, expect = Http.expectJson GotApps appListDecoder } , expect = Http.expectJson GotApps appListDecoder }
@ -260,12 +265,13 @@ loadREADME app =
Nothing -> Nothing ->
text "" text ""
in in
Http.get Http.get
-- FIXME use live Gitea link -- FIXME use live Gitea link
{ url = "https://cors-container.herokuapp.com/https://git.autonomic.zone/coop-cloud/" ++ app.slug ++ "/raw/branch/" ++ app.default_branch ++ "/README.md" { url = "https://cors-container.herokuapp.com/https://git.autonomic.zone/coop-cloud/" ++ app.slug ++ "/raw/branch/" ++ app.default_branch ++ "/README.md"
, expect = Http.expectString GotText } , expect = Http.expectString GotText }
featuresDecoder : Decode.Decoder String
featuresDecoder = featuresDecoder =
-- get features.status if it's there -- get features.status if it's there
(Decode.oneOf (Decode.oneOf
@ -284,11 +290,17 @@ appDecoder =
|> andMap (Decode.succeed Nothing) |> andMap (Decode.succeed Nothing)
|> andMap (Decode.maybe (Decode.field "icon" Decode.string)) |> andMap (Decode.maybe (Decode.field "icon" Decode.string))
|> andMap (Decode.at [ "features" ] featuresDecoder) |> andMap (Decode.at [ "features" ] featuresDecoder)
|> andMap (Decode.field "slug" Decode.string) |> andMap (Decode.succeed "")
|> andMap (Decode.field "default_branch" Decode.string) |> andMap (Decode.field "default_branch" Decode.string)
|> andMap (Decode.maybe (Decode.field "website" Decode.string)) |> andMap (Decode.maybe (Decode.field "website" Decode.string))
appListDecoder : Decode.Decoder (List App) appListDecoder : Decode.Decoder (List App)
appListDecoder = appListDecoder =
Decode.list appDecoder Decode.keyValuePairs appDecoder
|> Decode.map buildApp
buildApp : List (String, App) -> (List App)
buildApp apps =
List.map (\(slug, app) -> { app | slug = slug}) apps

View File

@ -108,7 +108,7 @@ appScore app =
2 2
"3" -> "3" ->
3 3
"4" -> "4" ->
4 4
_ -> _ ->
5 5
@ -124,18 +124,18 @@ viewStatusBadge app =
"badge-info" "badge-info"
"3" -> "3" ->
"badge-warning" "badge-warning"
"4" -> "4" ->
"badge-danger" "badge-danger"
_ -> _ ->
"badge-dark" "badge-dark"
status_score = status_score =
case app.status of case app.status of
"" -> "" ->
"?" "?"
score -> score ->
score score
in in
span [ class ("card-link badge " ++ status_class) ] span [ class ("card-link badge " ++ status_class) ]
[ text ("Score: " ++ status_score) ] [ text ("Score: " ++ status_score) ]
viewApp : App -> Html Msg viewApp : App -> Html Msg
@ -149,40 +149,40 @@ viewApp app =
i i
Nothing -> Nothing ->
default_image default_image
repository_link = repository_link =
case app.repository of case app.repository of
Just link -> Just link ->
a [ class "card-link", href link ] a [ class "card-link", href link ]
[ [
i [ class "fab fa-git-alt" ] [] i [ class "fab fa-git-alt" ] []
, text "code" , text "code"
] ]
Nothing -> Nothing ->
text "" text ""
website_link = website_link =
case app.website of case app.website of
Just link -> Just link ->
case link of case link of
"" -> "" ->
text "" text ""
_ -> _ ->
a [ class "card-link", href link ] a [ class "card-link", href link ]
[ i [ class "fas fa-home" ] [] [ i [ class "fas fa-home" ] []
, text "homepage" ] , text "homepage" ]
Nothing -> Nothing ->
text "" text ""
app_href = Route.toString <| Route.App_String { app = app.slug } app_href = Route.toString <| Route.App_String { app = app.slug }
in in
div [ class "col-md-4 mb-3 col-sm-12" ] div [ class "col-md-4 mb-3 col-sm-12" ]
[ div [ class "card" ] [ div [ class "card" ]
[ img [ class "card-img-top", src icon_url, alt ("icon for " ++ app.name) ] [] [ img [ class "card-img-top", src icon_url, alt ("icon for " ++ app.name) ] []
, div [ class "card-body" ] , div [ class "card-body" ]
[ h5 [ class "card-title" ] [ h5 [ class "card-title" ]
[ a [ href app_href ] [ text app.name ] ] [ a [ href app_href ] [ text app.name ] ]
, repository_link , repository_link
, website_link , website_link
, a [ class "card-link", href app_href ] , a [ class "card-link", href app_href ]
[ i [ class "fas fa-book" ] [] [ i [ class "fas fa-book" ] []
, text "docs" ] , text "docs" ]
] ]
, div [ class "card-footer" ] , div [ class "card-footer" ]
@ -210,8 +210,8 @@ viewApps model =
Success apps -> Success apps ->
div [] div []
[ div [ class "row" ] [ div [ class "row" ]
(List.map viewApp (apps |> List.sortWith (List.map viewApp (apps |> List.sortWith
(by appScore ASC (by appScore ASC
|> andThen .name ASC)) |> andThen .name ASC))
) )
] ]
@ -222,7 +222,7 @@ viewApps model =
loadApps : Cmd Msg loadApps : Cmd Msg
loadApps = loadApps =
Http.get Http.get
{ url = "/abra-apps-list.json" { url = "/abra-apps.json"
, expect = Http.expectJson GotApps appListDecoder , expect = Http.expectJson GotApps appListDecoder
} }
@ -244,9 +244,16 @@ appDecoder =
(Decode.succeed Nothing) (Decode.succeed Nothing)
(Decode.maybe (Decode.field "icon" Decode.string)) (Decode.maybe (Decode.field "icon" Decode.string))
(Decode.at [ "features" ] featuresDecoder) (Decode.at [ "features" ] featuresDecoder)
(Decode.field "slug" Decode.string) (Decode.succeed "")
(Decode.maybe (Decode.field "website" Decode.string)) (Decode.maybe (Decode.field "website" Decode.string))
appListDecoder : Decode.Decoder (List App) appListDecoder : Decode.Decoder (List App)
appListDecoder = appListDecoder =
Decode.list appDecoder Decode.keyValuePairs appDecoder
|> Decode.map buildApp
buildApp : List (String, App) -> (List App)
buildApp apps =
List.map (\(slug, app) -> { app | slug = slug}) apps