A small tool to view real-world ActivityPub objects as JSON! Enter a URL
or username from Mastodon or a similar service below, and we'll send a
request with
the right
Accept
header
to the server to view the underlying object.
{
"@context": [
"https://join-lemmy.org/context.json",
"https://www.w3.org/ns/activitystreams"
],
"type": "OrderedCollection",
"id": "https://linux.community/c/linux/outbox",
"totalItems": 32,
"orderedItems": [
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/9224d75e-494c-4e92-b1d8-fd33a5a2d06d",
"actor": "https://friendica.opensocial.space/profile/jeff",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://friendica.opensocial.space/objects/8ffdf77c-8167-41bb-d310-f57332923686",
"attributedTo": "https://friendica.opensocial.space/profile/jeff",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "Welcher Matrix-Client?",
"cc": [],
"content": "<p><strong>Welcher Matrix-Client?</strong><br />\nHallo Matrix-User, welche Desktop- / Web- / Mobile - Clients könnt ihr für den Messenger empfehlen? Es gibt ja verflixt viele zur Auswahl … Welche sind eure Favoriten? Und wenn ja, warum?</p>\n<p><a href=\"https://friendica.opensocial.space/search?tag=Matrix\" rel=\"nofollow\">#Matrix</a> <a href=\"https://friendica.opensocial.space/search?tag=synapse\" rel=\"nofollow\">#synapse</a> <a href=\"https://friendica.opensocial.space/search?tag=Element\" rel=\"nofollow\">#Element</a> <a href=\"https://friendica.opensocial.space/search?tag=messenger\" rel=\"nofollow\">#messenger</a> <a href=\"https://friendica.opensocial.space/search?tag=Messenger-Matrix\" rel=\"nofollow\">#Messenger-Matrix</a> <a href=\"https://friendica.opensocial.space/search?tag=chat\" rel=\"nofollow\">#chat</a> <a href=\"https://friendica.opensocial.space/search?tag=OpenSource\" rel=\"nofollow\">#OpenSource</a> <a href=\"https://linux.community/c/linux\" rel=\"nofollow\">@linux</a> <a href=\"https://feddit.de/c/linux\" rel=\"nofollow\">@linux</a> <a href=\"https://friendica.opensocial.space/search?tag=FragDasFediverse\" rel=\"nofollow\">#FragDasFediverse</a> <a href=\"https://friendica.opensocial.space/search?tag=linux\" rel=\"nofollow\">#linux</a> <a href=\"https://friendica.opensocial.space/search?tag=schildi\" rel=\"nofollow\">#schildi</a> <a href=\"https://friendica.opensocial.space/search?tag=fluffychat\" rel=\"nofollow\">#fluffychat</a> <a href=\"https://friendica.opensocial.space/search?tag=commet\" rel=\"nofollow\">#commet</a> <a href=\"https://friendica.opensocial.space/search?tag=Cinny\" rel=\"nofollow\">#Cinny</a> <a href=\"https://friendica.opensocial.space/search?tag=conduit\" rel=\"nofollow\">#conduit</a> <a href=\"https://friendica.opensocial.space/search?tag=dendrite\" rel=\"nofollow\">#dendrite</a></p>\n",
"mediaType": "text/html",
"source": {
"content": "**Welcher Matrix-Client?** \nHallo Matrix-User, welche Desktop- / Web- / Mobile - Clients könnt ihr für den Messenger empfehlen? Es gibt ja verflixt viele zur Auswahl ... Welche sind eure Favoriten? Und wenn ja, warum?\n\n[\\#Matrix](https://friendica.opensocial.space/search?tag=Matrix) [#synapse](https://friendica.opensocial.space/search?tag=synapse) [#Element](https://friendica.opensocial.space/search?tag=Element) [#messenger](https://friendica.opensocial.space/search?tag=messenger) [#Messenger-Matrix](https://friendica.opensocial.space/search?tag=Messenger-Matrix) [#chat](https://friendica.opensocial.space/search?tag=chat) [#OpenSource](https://friendica.opensocial.space/search?tag=OpenSource) [@linux](https://linux.community/c/linux) [@linux](https://feddit.de/c/linux) [#FragDasFediverse](https://friendica.opensocial.space/search?tag=FragDasFediverse) [#linux](https://friendica.opensocial.space/search?tag=linux) [#schildi](https://friendica.opensocial.space/search?tag=schildi) [#fluffychat](https://friendica.opensocial.space/search?tag=fluffychat) [#commet](https://friendica.opensocial.space/search?tag=commet) [#Cinny](https://friendica.opensocial.space/search?tag=Cinny) [#conduit](https://friendica.opensocial.space/search?tag=conduit) [#dendrite](https://friendica.opensocial.space/search?tag=dendrite)",
"mediaType": "text/markdown"
},
"attachment": [],
"sensitive": false,
"published": "2024-11-23T11:26:11Z",
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://friendica.opensocial.space/objects/8ffdf77c-8167-41bb-d310-f57332923686",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/2bcca5fe-5af7-4f0f-84b7-f0b9d28c7388"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/4150a93e-6161-46aa-8fa0-c3778a63fcfd",
"actor": "https://lemmy.ca/u/Sunshine",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://lemmy.ca/post/33041601",
"attributedTo": "https://lemmy.ca/u/Sunshine",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "Intel Core Ultra 7 256V Lunar Lake With ASUS Zenbook Performing Better After New Linux Patch",
"cc": [],
"mediaType": "text/html",
"attachment": [
{
"href": "https://www.phoronix.com/review/intel-lunar-lake-aipt-xe2",
"mediaType": "text/html; charset=utf-8",
"type": "Link"
}
],
"image": {
"type": "Image",
"url": "https://linux.community/api/v3/image_proxy?url=https%3A%2F%2Fwww.phoronix.net%2Fimage.php%3Fid%3Dintel-lunar-lake-aipt-xe2%26image%3Dlunar_lake_aipt"
},
"sensitive": false,
"published": "2024-11-15T14:10:13.700460Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://lemmy.ca/post/33041601",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/8e4ddfcc-1211-4700-bc9a-ab39a5424d6d"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/3b6d5f7a-fe4f-4244-aa56-bc301948f2d0",
"actor": "https://lemmy.ca/u/Sunshine",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://lemmy.ca/post/33041600",
"attributedTo": "https://lemmy.ca/u/Sunshine",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "NVIDIA's Open-Source Linux Kernel Driver Performing At Parity To Proprietary Driver Review",
"cc": [],
"mediaType": "text/html",
"attachment": [
{
"href": "https://www.phoronix.com/review/nvidia-555-open",
"mediaType": "text/html; charset=utf-8",
"type": "Link"
}
],
"image": {
"type": "Image",
"url": "https://linux.community/api/v3/image_proxy?url=https%3A%2F%2Fwww.phoronix.net%2Fimage.php%3Fid%3Dnvidia-555-open%26image%3Dnvidia_ada_kernel"
},
"sensitive": false,
"published": "2024-11-15T14:09:59.621383Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://lemmy.ca/post/33041600",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/f74e1e97-f317-4bc1-a818-32243de56ee0"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/152dac2e-1a21-4c8a-963e-0530ca47b47d",
"actor": "https://lemmy.ca/u/Sunshine",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://lemmy.ca/post/33041594",
"attributedTo": "https://lemmy.ca/u/Sunshine",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "RADV vs. AMDVLK Radeon Vulkan Ray-Tracing Performance For Mid-2024",
"cc": [],
"mediaType": "text/html",
"attachment": [
{
"href": "https://www.phoronix.com/review/amdvlk-radv-rt",
"mediaType": "text/html; charset=utf-8",
"type": "Link"
}
],
"image": {
"type": "Image",
"url": "https://linux.community/api/v3/image_proxy?url=https%3A%2F%2Fwww.phoronix.net%2Fimage.php%3Fid%3Dbreaking-limit-rt-linux%26image%3Dbreaking_limit_2"
},
"sensitive": false,
"published": "2024-11-15T14:09:44.261894Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://lemmy.ca/post/33041594",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/ee3e0be8-c939-4492-838f-db2983a9ee8f"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/afbd7f7a-67c0-466a-b1a1-ee08acbdf6af",
"actor": "https://lemmy.ca/u/Sunshine",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://lemmy.ca/post/33041543",
"attributedTo": "https://lemmy.ca/u/Sunshine",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "AMD vs. NVIDIA Vulkan Ray-Tracing Performance On Linux With Breaking Limit",
"cc": [],
"mediaType": "text/html",
"attachment": [
{
"href": "https://www.phoronix.com/review/breaking-limit-rt-linux",
"mediaType": "text/html; charset=utf-8",
"type": "Link"
}
],
"image": {
"type": "Image",
"url": "https://linux.community/api/v3/image_proxy?url=https%3A%2F%2Fwww.phoronix.net%2Fimage.php%3Fid%3Dbreaking-limit-rt-linux%26image%3Dbreaking_limit_1"
},
"sensitive": false,
"published": "2024-11-15T14:09:29.039018Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://lemmy.ca/post/33041543",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/6fb1549e-0645-4e7f-876b-dfa7fa5024f9"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/ff2770e3-9258-4ccf-bfac-7eaa30944480",
"actor": "https://lemmy.ca/u/Sunshine",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://lemmy.ca/post/33041540",
"attributedTo": "https://lemmy.ca/u/Sunshine",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "AMD Quietly Funded A Drop-In CUDA Implementation Built On ROCm: It's Now Open-Source",
"cc": [],
"mediaType": "text/html",
"attachment": [
{
"href": "https://www.phoronix.com/review/radeon-cuda-zluda",
"mediaType": "text/html; charset=utf-8",
"type": "Link"
}
],
"image": {
"type": "Image",
"url": "https://linux.community/api/v3/image_proxy?url=https%3A%2F%2Fwww.phoronix.net%2Fimage.php%3Fid%3Dradeon-cuda-zluda%26image%3Dradeon_cuda_1"
},
"sensitive": false,
"published": "2024-11-15T14:09:14.234316Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://lemmy.ca/post/33041540",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/61011c3c-088c-4bb2-86a4-a4f8ee3ffa35"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/ddd971a2-3326-4c19-a908-409b6b897cd8",
"actor": "https://lemmy.ca/u/Sunshine",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://lemmy.ca/post/33041539",
"attributedTo": "https://lemmy.ca/u/Sunshine",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "Intel's Open-Source Compute Runtime Performing Increasingly Well Against NVIDIA's Proprietary Linux Driver",
"cc": [],
"mediaType": "text/html",
"attachment": [
{
"href": "https://www.phoronix.com/review/intel-arc-compute-nvidia",
"mediaType": "text/html; charset=utf-8",
"type": "Link"
}
],
"image": {
"type": "Image",
"url": "https://linux.community/api/v3/image_proxy?url=https%3A%2F%2Fwww.phoronix.net%2Fimage.php%3Fid%3Dintel-arc-compute-nvidia%26image%3Dintel_arc_compute"
},
"sensitive": false,
"published": "2024-11-15T14:08:54.778479Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://lemmy.ca/post/33041539",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/5fc0ff9a-ce79-4933-9ddd-de243897f8ab"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/1fc85667-c51e-4445-8c1a-74d98f7bf008",
"actor": "https://lemmy.ca/u/Sunshine",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://lemmy.ca/post/33041536",
"attributedTo": "https://lemmy.ca/u/Sunshine",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "Linux Patches Add Support For New \"Phone Link\" Hotkey On Latest ThinkPads",
"cc": [],
"mediaType": "text/html",
"attachment": [
{
"href": "https://www.phoronix.com/news/Linux-Phone-Link-Hotkey",
"mediaType": "text/html; charset=utf-8",
"type": "Link"
}
],
"image": {
"type": "Image",
"url": "https://linux.community/api/v3/image_proxy?url=https%3A%2F%2Fwww.phoronix.net%2Fimage.php%3Fid%3D2024%26image%3Dt14_phone_link"
},
"sensitive": false,
"published": "2024-11-15T14:08:41.185868Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://lemmy.ca/post/33041536",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/c7040cd8-0135-4a96-9fe3-e0fdb7a9204b"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/779b21cb-6e46-47e3-b313-76c3bf05f163",
"actor": "https://lemmy.ca/u/Sunshine",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://lemmy.ca/post/33041485",
"attributedTo": "https://lemmy.ca/u/Sunshine",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "Red Hat Enterprise Linux 10 Enters Beta With Many New Features & Updates",
"cc": [],
"mediaType": "text/html",
"attachment": [
{
"href": "https://www.phoronix.com/news/Red-Hat-RHEL-10-Beta",
"mediaType": "text/html; charset=utf-8",
"type": "Link"
}
],
"image": {
"type": "Image",
"url": "https://linux.community/api/v3/image_proxy?url=https%3A%2F%2Fwww.phoronix.net%2Fimage.php%3Fid%3D2024%26image%3Drhel_10_beta"
},
"sensitive": false,
"published": "2024-11-15T14:08:23.175790Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://lemmy.ca/post/33041485",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/865d70f3-531a-4eb0-ac3f-9b22ae634412"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/fe4011e5-e098-4718-ba33-d34d922b53f6",
"actor": "https://lemmy.ca/u/Sunshine",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://lemmy.ca/post/33041214",
"attributedTo": "https://lemmy.ca/u/Sunshine",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "Bluefin stable stream is now based on Fedora 41",
"cc": [],
"mediaType": "text/html",
"attachment": [
{
"href": "https://universal-blue.discourse.group/t/bluefin-stable-stream-is-now-based-on-fedora-41/5061",
"mediaType": "text/html; charset=utf-8",
"type": "Link"
}
],
"image": {
"type": "Image",
"url": "https://linux.community/api/v3/image_proxy?url=https%3A%2F%2Fcanada1.discourse-cdn.com%2Ffree1%2Fuploads%2Funiveral_blue%2Foptimized%2F2X%2F1%2F1631b9fbcf6a5ff21f8e6cee9013a2431f6b5d72_2_1024x682.jpeg"
},
"sensitive": false,
"published": "2024-11-15T14:06:17.159514Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://lemmy.ca/post/33041214",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/f04470a0-cf04-4ef5-b74d-e80345e5b671"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/09305224-055c-4891-87ab-f9c080928f90",
"actor": "https://lemmy.ca/u/Sunshine",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://lemmy.ca/post/33041163",
"attributedTo": "https://lemmy.ca/u/Sunshine",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "Apple M4 Mac Mini With macOS vs. Intel / AMD With Ubuntu Linux Performance",
"cc": [],
"mediaType": "text/html",
"attachment": [
{
"href": "https://www.phoronix.com/review/apple-m4-intel-amd-linux",
"mediaType": "text/html; charset=utf-8",
"type": "Link"
}
],
"image": {
"type": "Image",
"url": "https://linux.community/api/v3/image_proxy?url=https%3A%2F%2Fwww.phoronix.net%2Fimage.php%3Fid%3Dapple-m4-intel-amd-linux%26image%3Dapple_mac_mini_m4_2"
},
"sensitive": false,
"published": "2024-11-15T14:05:47.852252Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://lemmy.ca/post/33041163",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/76a096a8-f381-439c-bef3-474142469410"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/7dfd32f2-733c-4d8c-b812-f8572dfae5ed",
"actor": "https://lemmy.ca/u/Sunshine",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://lemmy.ca/post/32915752",
"attributedTo": "https://lemmy.ca/u/Sunshine",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "DXVK 2.5 Improves Memory Management in God of War and Other Video Games",
"cc": [],
"mediaType": "text/html",
"attachment": [
{
"href": "https://9to5linux.com/dxvk-2-5-improves-memory-management-in-god-of-war-and-other-video-games",
"mediaType": "text/html; charset=utf-8",
"type": "Link"
}
],
"image": {
"type": "Image",
"url": "https://linux.community/api/v3/image_proxy?url=https%3A%2F%2F9to5linux.com%2Fwp-content%2Fuploads%2F2024%2F11%2Fdxvk25.webp"
},
"sensitive": false,
"published": "2024-11-13T15:20:25.920581Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://lemmy.ca/post/32915752",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/997a57df-26d1-4f03-b129-8baab0478425"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/09b5d20b-ec26-4364-a398-58e00da53252",
"actor": "https://lemmy.ca/u/Sunshine",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://lemmy.ca/post/32915745",
"attributedTo": "https://lemmy.ca/u/Sunshine",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "Fedora 42 to Port the Anaconda Installer to Wayland, Default to Anaconda WebUI",
"cc": [],
"mediaType": "text/html",
"attachment": [
{
"href": "https://9to5linux.com/fedora-42-to-port-the-anaconda-installer-to-wayland-default-to-anaconda-webui",
"mediaType": "text/html; charset=utf-8",
"type": "Link"
}
],
"image": {
"type": "Image",
"url": "https://linux.community/api/v3/image_proxy?url=https%3A%2F%2F9to5linux.com%2Fwp-content%2Fuploads%2F2024%2F11%2Ff42rwh.webp"
},
"sensitive": false,
"published": "2024-11-13T15:20:07.042665Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://lemmy.ca/post/32915745",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/0565bd65-2c94-425b-bb62-0695cce620ac"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/e9054442-43bf-47c4-b317-6592e2db7159",
"actor": "https://lemmy.ca/u/Sunshine",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://lemmy.ca/post/32915709",
"attributedTo": "https://lemmy.ca/u/Sunshine",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "9to5Linux Weekly Roundup: November 10th, 2024",
"cc": [],
"mediaType": "text/html",
"attachment": [
{
"href": "https://9to5linux.com/9to5linux-weekly-roundup-november-10th-2024",
"mediaType": "text/html; charset=utf-8",
"type": "Link"
}
],
"image": {
"type": "Image",
"url": "https://linux.community/api/v3/image_proxy?url=https%3A%2F%2F9to5linux.com%2Fwp-content%2Fuploads%2F2024%2F11%2Fwr213.webp"
},
"sensitive": false,
"published": "2024-11-13T15:19:41.024497Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://lemmy.ca/post/32915709",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/fd8c4282-4767-4399-97fb-f66a4fb59eda"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/25d8ed3c-cc87-48d7-8495-be5430374759",
"actor": "https://lemmy.ca/u/Sunshine",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://lemmy.ca/post/32907008",
"attributedTo": "https://lemmy.ca/u/Sunshine",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "Red Hat & NxtGen will work jointly to empower ISVs to deliver managed open source services through SpeedCloud",
"cc": [],
"mediaType": "text/html",
"attachment": [
{
"href": "https://www.crn.in/interviews/red-hat-nxtgen-will-work-jointly-to-empower-isvs-to-deliver-managed-open-source-services-through-speedcloud/",
"mediaType": "text/html; charset=utf-8",
"type": "Link"
}
],
"image": {
"type": "Image",
"url": "https://linux.community/api/v3/image_proxy?url=https%3A%2F%2Fcdn.crn.in%2Fwp-content%2Fuploads%2F2024%2F11%2F13115416%2FCRN_Stefnie_Chiras_AS_RajGopal_696.jpg"
},
"sensitive": false,
"published": "2024-11-13T13:09:21.430218Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://lemmy.ca/post/32907008",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/ab524f98-b462-4512-add3-d0e0aec88207"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/6dfef266-36d8-42b5-a93e-f3dfaa5f3a89",
"actor": "https://lemmy.ca/u/Sunshine",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://lemmy.ca/post/32906904",
"attributedTo": "https://lemmy.ca/u/Sunshine",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "In Switzerland, GNU/Linux Reaches Record Highs, But What About the Corruption?",
"cc": [],
"mediaType": "text/html",
"attachment": [
{
"href": "https://techrights.org/n/2024/11/13/In_Switzerland_GNU_Linux_Reaches_Record_Highs_But_What_About_th.shtml",
"mediaType": "text/html; charset=utf-8",
"type": "Link"
}
],
"sensitive": false,
"published": "2024-11-13T13:08:43.413747Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://lemmy.ca/post/32906904",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/efa60c68-8fa4-420a-9dc7-2367c2650a13"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/dc110814-15cb-4ddd-a8a5-f935b87f2a87",
"actor": "https://monero.town/u/maltfield",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://monero.town/post/4199546",
"attributedTo": "https://monero.town/u/maltfield",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "How to wget/curl files from OCI registries (docker, github packages)",
"cc": [],
"content": "<p>This article will describe <a href=\"https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget\" rel=\"nofollow\">how to download an image from a (docker) container registry</a>.</p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:center\"><a href=\"https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget\" rel=\"nofollow\"><img src=\"https://linux.community/api/v3/image_proxy?url=https%3A%2F%2Ftech.michaelaltfield.net%2Fwp-content%2Fuploads%2Fsites%2F5%2Fcontainer-download-curl-wget_featuredImage1.jpg\" alt=\"Manual Download of Container Images with wget and curl\" /></a></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:center\">Manual <a href=\"https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget\" rel=\"nofollow\">Download of Container Images</a> with wget and curl</td>\n</tr>\n</tbody>\n</table>\n<h1>Intro</h1>\n<p>Remember the good `'ol days when you could just download software by visiting a website and click “download”?</p>\n<p>Even <code>apt</code> and <code>yum</code> repositories were just simple HTTP servers that you could just <code>curl</code> (or <code>wget</code>) from. Using the package manager was, of course, more secure and convenient – but you could always just download packages manually, if you wanted.</p>\n<p>But <strong>have you ever tried to <code>curl</code> an image from a container registry</strong>, such as docker? Well friends, I have tried. And I have the <a href=\"https://github.com/BusKill/buskill-app/issues/78#issuecomment-1987374445\" rel=\"nofollow\">scars</a> to prove it.</p>\n<p>It was a remarkably complex process that took me weeks to figure-out. Lucky you, this article will break it down.</p>\n<h2>Examples</h2>\n<p>Specifically, we’ll look at how to download files from two OCI registries.</p>\n<ol>\n<li><a href=\"https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget#docker-hub\" rel=\"nofollow\">Docker Hub</a></li>\n<li><a href=\"https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget#github-packages\" rel=\"nofollow\">GitHub Packages</a></li>\n</ol>\n<h2>Terms</h2>\n<p>First, here’s some terminology used by OCI</p>\n<ol>\n<li>OCI - <a href=\"https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget#what-oci\" rel=\"nofollow\">Open Container Initiative</a></li>\n<li>blob - A “blob” in the OCI spec just means a file</li>\n<li>manifest - A “manifest” in the OCI spec means a list of files</li>\n</ol>\n<h2>Prerequisites</h2>\n<p>This guide was written in 2024, and it uses the following software and versions:</p>\n<ol>\n<li>debian 12 (bookworm)</li>\n<li>curl 7.88.1</li>\n<li>OCI Distribution Spec v1.1.0 (which, unintuitively, uses the ‘<a href=\"https://github.com/distribution/distribution/blob/5e75227fb213162564bab74b146300ffed9f0bbd/docs/content/spec/api.md\" rel=\"nofollow\">/v2/</a>’ endpoint)</li>\n</ol>\n<p>Of course, you’ll need ‘<code>curl</code>’ installed. And, to parse json, ‘<code>jq</code>’ too.</p>\n<pre style=\"background-color:#ffffff;\">\n<span style=\"color:#323232;\">sudo apt-get install curl jq\n</span></pre>\n<h2>What is OCI?</h2>\n<p>OCI stands for Open Container Initiative.</p>\n<p>OCI was <a href=\"https://opencontainers.org/about/overview/\" rel=\"nofollow\">originally formed</a> in June 2015 for Docker and CoreOS. Today it’s a wider, general-purpose (and annoyingly complex) way that many projects host files (that are extremely non-trivial to download).</p>\n<p>One does not simply download a file from an OCI-complianet container registry. You must:</p>\n<ol>\n<li>Generate an authentication token for the API</li>\n<li>Make an API call to the registry, requesting to download a JSON "Manifest"</li>\n<li>Parse the JSON Manifest to figure out the hash of the file that you want</li>\n<li>Determine the download URL from the hash</li>\n<li>Download the file (which might actually be many distinct file “layers”)</li>\n</ol>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:center\"><a href=\"https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget\" rel=\"nofollow\"><img src=\"https://linux.community/api/v3/image_proxy?url=https%3A%2F%2Ftech.michaelaltfield.net%2Fwp-content%2Fuploads%2Fsites%2F5%2Fcontainer-download-curl-wget_one-does-not-simply1.jpg\" alt=\"One does not simply download from a container registry\" /></a></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:center\">One does not simply <a href=\"https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget\" rel=\"nofollow\">download from a container registry</a></td>\n</tr>\n</tbody>\n</table>\n<p>In order to figure out how to make an API call to the registry, you must first read (and understand) the OCI specs <a href=\"https://opencontainers.org/release-notices/overview/\" rel=\"nofollow\">here</a>.</p>\n<ul>\n<li><a href=\"https://opencontainers.org/release-notices/overview/\">opencontainers.org/release-notices/overview/</a></li>\n</ul>\n<h2>OCI APIs</h2>\n<p>OCI maintains three distinct specifications:</p>\n<ol>\n<li>image spec</li>\n<li>runtime spec</li>\n<li>distribution spec</li>\n</ol>\n<h3>OCI “Distribution Spec” API</h3>\n<p>To figure out how to download a file from a container registry, we’re interested in the “distribution spec”. At the time of writing, the latest “distribution spec” can be downloaded <a href=\"https://github.com/opencontainers/distribution-spec/releases/download/v1.1.0/oci-distribution-spec-v1.1.0.pdf\" rel=\"nofollow\">here</a>:</p>\n<ul>\n<li><a href=\"https://github.com/opencontainers/distribution-spec/releases/tag/v1.1.0\">github.com/opencontainers/…/v1.1.0</a></li>\n<li><a href=\"https://github.com/opencontainers/distribution-spec/releases/download/v1.1.0/oci-distribution-spec-v1.1.0.pdf\">github.com/…/oci-distribution-spec-v1.1.0.pdf</a></li>\n</ul>\n<p>The above PDF file defines a set of API endpoints that we can use to query, parse, and then figure out how to download a file from a container registry. The table from the above PDF is copied below:</p>\n<table>\n<thead>\n<tr>\n<th>ID</th>\n<th>Method</th>\n<th>API Endpoint</th>\n<th>Success</th>\n<th>Failure</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>end-1</td>\n<td><code>GET</code></td>\n<td><code>/v2/</code></td>\n<td><code>200</code></td>\n<td><code>404</code>/<code>401</code></td>\n</tr>\n<tr>\n<td>end-2</td>\n<td><code>GET</code> / <code>HEAD</code></td>\n<td><code>/v2/<name>/blobs/<digest></code></td>\n<td><code>200</code></td>\n<td><code>404</code></td>\n</tr>\n<tr>\n<td>end-3</td>\n<td><code>GET</code> / <code>HEAD</code></td>\n<td><code>/v2/<name>/manifests/<reference></code></td>\n<td><code>200</code></td>\n<td><code>404</code></td>\n</tr>\n<tr>\n<td>end-4a</td>\n<td><code>POST</code></td>\n<td><code>/v2/<name>/blobs/uploads/</code></td>\n<td><code>202</code></td>\n<td><code>404</code></td>\n</tr>\n<tr>\n<td>end-4b</td>\n<td><code>POST</code></td>\n<td><code>/v2/<name>/blobs/uploads/?digest=<digest></code></td>\n<td><code>201</code>/<code>202</code></td>\n<td><code>404</code>/<code>400</code></td>\n</tr>\n<tr>\n<td>end-5</td>\n<td><code>PATCH</code></td>\n<td><code>/v2/<name>/blobs/uploads/<reference></code></td>\n<td><code>202</code></td>\n<td><code>404</code>/<code>416</code></td>\n</tr>\n<tr>\n<td>end-6</td>\n<td><code>PUT</code></td>\n<td><code>/v2/<name>/blobs/uploads/<reference>?digest=<digest></code></td>\n<td><code>201</code></td>\n<td><code>404</code>/<code>400</code></td>\n</tr>\n<tr>\n<td>end-7</td>\n<td><code>PUT</code></td>\n<td><code>/v2/<name>/manifests/<reference></code></td>\n<td><code>201</code></td>\n<td><code>404</code></td>\n</tr>\n<tr>\n<td>end-8a</td>\n<td><code>GET</code></td>\n<td><code>/v2/<name>/tags/list</code></td>\n<td><code>200</code></td>\n<td><code>404</code></td>\n</tr>\n<tr>\n<td>end-8b</td>\n<td><code>GET</code></td>\n<td><code>/v2/<name>/tags/list?n=<integer>&last=<integer></code></td>\n<td><code>200</code></td>\n<td><code>404</code></td>\n</tr>\n<tr>\n<td>end-9</td>\n<td><code>DELETE</code></td>\n<td><code>/v2/<name>/manifests/<reference></code></td>\n<td><code>202</code></td>\n<td><code>404</code>/<code>400</code>/<code>405</code></td>\n</tr>\n<tr>\n<td>end-10</td>\n<td><code>DELETE</code></td>\n<td><code>/v2/<name>/blobs/<digest></code></td>\n<td><code>202</code></td>\n<td><code>404</code>/<code>405</code></td>\n</tr>\n<tr>\n<td>end-11</td>\n<td><code>POST</code></td>\n<td><code>/v2/<name>/blobs/uploads/?mount=<digest>&from=<other_name></code></td>\n<td><code>201</code></td>\n<td><code>404</code></td>\n</tr>\n<tr>\n<td>end-12a</td>\n<td><code>GET</code></td>\n<td><code>/v2/<name>/referrers/<digest></code></td>\n<td><code>200</code></td>\n<td><code>404</code>/<code>400</code></td>\n</tr>\n<tr>\n<td>end-12b</td>\n<td><code>GET</code></td>\n<td><code>/v2/<name>/referrers/<digest>?artifactType=<artifactType></code></td>\n<td><code>200</code></td>\n<td><code>404</code>/<code>400</code></td>\n</tr>\n<tr>\n<td>end-13</td>\n<td><code>GET</code></td>\n<td><code>/v2/<name>/blobs/uploads/<reference></code></td>\n<td><code>204</code></td>\n<td><code>404</code></td>\n</tr>\n</tbody>\n</table>\n<p>In OCI, files are (cryptically) called “<code>blobs</code>”. In order to figure out the file that we want to download, we must first reference the list of files (called a “<code>manifest</code>”).</p>\n<p>The above table shows us how we can download a list of files (manifest) and then download the actual file (blob).</p>\n<h1>Examples</h1>\n<p>Let’s look at how to download files from a couple different OCI registries:</p>\n<ol>\n<li><a href=\"https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget#docker-hub\" rel=\"nofollow\">Docker Hub</a></li>\n<li><a href=\"https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget#github-packages\" rel=\"nofollow\">GitHub Packages</a></li>\n</ol>\n<h2>Docker Hub</h2>\n<p>To see the full example of downloading images from docker hub, <a href=\"https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget#docker-hub\" rel=\"nofollow\">click here</a></p>\n<h2>GitHub Packages</h2>\n<p>To see the full example of downloading files from GitHub Packages, <a href=\"https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget#github-packages\" rel=\"nofollow\">click here</a>.</p>\n<h1>Why?</h1>\n<p>I wrote this article because many, many folks have inquired about how to manually download files from OCI registries on the Internet, but their simple queries are usually returned with a barrage of useless counter-questions: why the heck would you want to do that!?!</p>\n<p>The answer is varied.</p>\n<p>Some people need to get files onto a restricted environment. Either their org doesn’t grant them permission to install software on the machine, or the system has firewall-restricted internet access – or doesn’t have internet access at all.</p>\n<h2>3TOFU</h2>\n<p>Personally, the reason that I wanted to be able to download files from an OCI registry was for <a href=\"https://tech.michaelaltfield.net/2024/08/04/3tofu/\" rel=\"nofollow\">3TOFU</a>.</p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:center\"><a href=\"https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget\" rel=\"nofollow\"><img src=\"https://linux.community/api/v3/image_proxy?url=https%3A%2F%2Ftech.michaelaltfield.net%2Fwp-content%2Fuploads%2Fsites%2F5%2F3tofu_featuredImage.jpg\" alt=\"Verifying Unsigned Releases with 3TOFU\" /></a></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:center\">Verifying Unsigned Releases with <a href=\"https://tech.michaelaltfield.net/2024/08/04/3tofu/\" rel=\"nofollow\">3TOFU</a></td>\n</tr>\n</tbody>\n</table>\n<p>Unfortunaetly, most apps using OCI registries are <em>extremely</em> insecure. Docker, for example, will happily download malicious images. By default, <a href=\"https://security.stackexchange.com/questions/238916/how-to-pin-public-root-key-when-downloading-an-image-with-docker-pull-docker-co?noredirect=1&lq=1\" rel=\"nofollow\">it doesn’t do <em>any</em> authenticity verifications</a> on the payloads it downloaded. Even if you manually enable DCT, there’s loads of <a href=\"https://github.com/docker/cli/issues/2752\" rel=\"nofollow\">pending issues</a> with it.</p>\n<p>Likewise, the macOS package manager <a href=\"https://brew.sh/\" rel=\"nofollow\">brew</a> has this same problem: it will happily download and install malicious code, because it doesn’t use cryptography to verify the authenticity of anything that it downloads. This introduces <a href=\"https://en.wikipedia.org/wiki/Watering_hole_attack\" rel=\"nofollow\">watering hole vulnerabilities</a> when developers use brew to install dependencies in their CI pipelines.</p>\n<p>My solution to this? <a href=\"https://tech.michaelaltfield.net/2024/08/04/3tofu/\" rel=\"nofollow\">3TOFU</a>. And that requires me to be able to download the file (for verification) on three distinct linux VMs using curl or wget.</p>\n<blockquote>\n<p>⚠ NOTE: 3TOFU is an approach to harm reduction.</p>\n<p>It is not wise to download and run binaries or code whose authenticity you cannot verify using a cryptographic signature from a key stored offline. However, sometimes we cannot avoid it. If you’re going to proceed with running untrusted code, then following a <a href=\"https://tech.michaelaltfield.net/2024/08/04/3tofu/\" rel=\"nofollow\">3TOFU procedure</a> may reduce your risk, but it’s better to avoid running unauthenticated code if at all possible.</p>\n</blockquote>\n<h2>Registry (ab)use</h2>\n<p>Container registries were created in 2013 to provide a clever & complex solution to a problem: how to package and serve multiple versions of simplified sources to various consumers spanning multiple operating systems and architectures – while also packaging them into small, discrete “layers”.</p>\n<p>However, if your project is just serving simple files, then the only thing gained by uploading them to a complex system like a container registry is headaches. Why do developers do this?</p>\n<p>In the case of brew, their free hosing provider (JFrog’s Bintray) <a href=\"https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/\" rel=\"nofollow\">shutdown in 2021</a>. Brew was already hosting their code on GitHub, so I guess someone looked at “GitHub Packages” and <a href=\"https://github.com/orgs/Homebrew/discussions/691\" rel=\"nofollow\">figured it was</a> a good (read: free) replacement.</p>\n<p>Many developers using Container Registries don’t need the complexity, but – well – they’re just using it as a free place for their FOSS project to store some files, man.</p>\n",
"mediaType": "text/html",
"source": {
"content": "This article will describe [how to download an image from a (docker) container registry](https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget).\n\n| [![Manual Download of Container Images with wget and curl](https://linux.community/api/v3/image_proxy?url=https%3A%2F%2Ftech.michaelaltfield.net%2Fwp-content%2Fuploads%2Fsites%2F5%2Fcontainer-download-curl-wget_featuredImage1.jpg)](https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget) |\n|:--:| \n| Manual [Download of Container Images](https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget) with wget and curl |\n\n# Intro\n\nRemember the good `'ol days when you could just download software by visiting a website and click \"download\"?\n\nEven `apt` and `yum` repositories were just simple HTTP servers that you could just `curl` (or `wget`) from. Using the package manager was, of course, more secure and convenient -- but you could always just download packages manually, if you wanted.\n\nBut **have you ever tried to `curl` an image from a container registry**, such as docker? Well friends, I have tried. And I have the [scars](https://github.com/BusKill/buskill-app/issues/78#issuecomment-1987374445) to prove it.\n\nIt was a remarkably complex process that took me weeks to figure-out. Lucky you, this article will break it down.\n\n## Examples\n\nSpecifically, we'll look at how to download files from two OCI registries.\n\n1. [Docker Hub](https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget#docker-hub)\n2. [GitHub Packages](https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget#github-packages)\n\n## Terms\n\nFirst, here's some terminology used by OCI\n\n1. OCI - [Open Container Initiative](https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget#what-oci)\n2. blob - A \"blob\" in the OCI spec just means a file\n3. manifest - A \"manifest\" in the OCI spec means a list of files\n\n## Prerequisites\n\nThis guide was written in 2024, and it uses the following software and versions:\n\n1. debian 12 (bookworm)\n2. curl 7.88.1\n3. OCI Distribution Spec v1.1.0 (which, unintuitively, uses the '[/v2/](https://github.com/distribution/distribution/blob/5e75227fb213162564bab74b146300ffed9f0bbd/docs/content/spec/api.md)' endpoint)\n\nOf course, you'll need '`curl`' installed. And, to parse json, '`jq`' too.\n\n```\nsudo apt-get install curl jq\n```\n\n## What is OCI?\n\nOCI stands for Open Container Initiative.\n\nOCI was [originally formed](https://opencontainers.org/about/overview/) in June 2015 for Docker and CoreOS. Today it's a wider, general-purpose (and annoyingly complex) way that many projects host files (that are extremely non-trivial to download).\n\nOne does not simply download a file from an OCI-complianet container registry. You must:\n\n1. Generate an authentication token for the API\n2. Make an API call to the registry, requesting to download a JSON \"Manifest\"\n3. Parse the JSON Manifest to figure out the hash of the file that you want\n4. Determine the download URL from the hash\n5. Download the file (which might actually be many distinct file \"layers\")\n\n| [![One does not simply download from a container registry](https://linux.community/api/v3/image_proxy?url=https%3A%2F%2Ftech.michaelaltfield.net%2Fwp-content%2Fuploads%2Fsites%2F5%2Fcontainer-download-curl-wget_one-does-not-simply1.jpg)](https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget) |\n|:--:| \n| One does not simply [download from a container registry](https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget) |\n\nIn order to figure out how to make an API call to the registry, you must first read (and understand) the OCI specs [here](https://opencontainers.org/release-notices/overview/).\n\n- <https://opencontainers.org/release-notices/overview/>\n\n## OCI APIs\n\nOCI maintains three distinct specifications:\n\n1. image spec\n2. runtime spec\n3. distribution spec\n\n### OCI \"Distribution Spec\" API\n\nTo figure out how to download a file from a container registry, we're interested in the \"distribution spec\". At the time of writing, the latest \"distribution spec\" can be downloaded [here](https://github.com/opencontainers/distribution-spec/releases/download/v1.1.0/oci-distribution-spec-v1.1.0.pdf):\n\n- <https://github.com/opencontainers/distribution-spec/releases/tag/v1.1.0>\n- <https://github.com/opencontainers/distribution-spec/releases/download/v1.1.0/oci-distribution-spec-v1.1.0.pdf>\n\nThe above PDF file defines a set of API endpoints that we can use to query, parse, and then figure out how to download a file from a container registry. The table from the above PDF is copied below:\n\n| ID | Method | API Endpoint | Success | Failure |\n|------|----------|------------------------------------|--------|-----------|\n| end-1 | `GET` | `/v2/` | `200` | `404`/`401` |\n| end-2 | `GET` / `HEAD` | `/v2/<name>/blobs/<digest>` | `200` | `404` |\n| end-3 | `GET` / `HEAD` | `/v2/<name>/manifests/<reference>` | `200` | `404` |\n| end-4a | `POST` | `/v2/<name>/blobs/uploads/` | `202` | `404` |\n| end-4b | `POST` | `/v2/<name>/blobs/uploads/?digest=<digest>` | `201`/`202` | `404`/`400` |\n| end-5 | `PATCH` | `/v2/<name>/blobs/uploads/<reference>` | `202` | `404`/`416` |\n| end-6 | `PUT` | `/v2/<name>/blobs/uploads/<reference>?digest=<digest>` | `201` | `404`/`400` |\n| end-7 | `PUT` | `/v2/<name>/manifests/<reference>` | `201` | `404` |\n| end-8a | `GET` | `/v2/<name>/tags/list` | `200` | `404` |\n| end-8b | `GET` | `/v2/<name>/tags/list?n=<integer>&last=<integer>` | `200` | `404` |\n| end-9 | `DELETE` | `/v2/<name>/manifests/<reference>` | `202` | `404`/`400`/`405` |\n| end-10 | `DELETE` | `/v2/<name>/blobs/<digest>` | `202` | `404`/`405` |\n| end-11 | `POST` | `/v2/<name>/blobs/uploads/?mount=<digest>&from=<other_name>` | `201` | `404` |\n| end-12a | `GET` | `/v2/<name>/referrers/<digest>` | `200` | `404`/`400` |\n| end-12b | `GET` | `/v2/<name>/referrers/<digest>?artifactType=<artifactType>` | `200` | `404`/`400` |\n| end-13 | `GET` | `/v2/<name>/blobs/uploads/<reference>` | `204` | `404` |\n\nIn OCI, files are (cryptically) called \"`blobs`\". In order to figure out the file that we want to download, we must first reference the list of files (called a \"`manifest`\").\n\nThe above table shows us how we can download a list of files (manifest) and then download the actual file (blob).\n\n# Examples\n\nLet's look at how to download files from a couple different OCI registries:\n\n1. [Docker Hub](https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget#docker-hub)\n2. [GitHub Packages](https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget#github-packages)\n\n## Docker Hub\n\nTo see the full example of downloading images from docker hub, [click here](https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget#docker-hub)\n\n## GitHub Packages\n\nTo see the full example of downloading files from GitHub Packages, [click here](https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget#github-packages).\n\n# Why?\n\nI wrote this article because many, many folks have inquired about how to manually download files from OCI registries on the Internet, but their simple queries are usually returned with a barrage of useless counter-questions: why the heck would you want to do that!?!\n\nThe answer is varied.\n\nSome people need to get files onto a restricted environment. Either their org doesn't grant them permission to install software on the machine, or the system has firewall-restricted internet access -- or doesn't have internet access at all.\n\n## 3TOFU\n\nPersonally, the reason that I wanted to be able to download files from an OCI registry was for [3TOFU](https://tech.michaelaltfield.net/2024/08/04/3tofu/).\n\n| [![Verifying Unsigned Releases with 3TOFU](https://linux.community/api/v3/image_proxy?url=https%3A%2F%2Ftech.michaelaltfield.net%2Fwp-content%2Fuploads%2Fsites%2F5%2F3tofu_featuredImage.jpg)](https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget) |\n|:--:| \n| Verifying Unsigned Releases with [3TOFU](https://tech.michaelaltfield.net/2024/08/04/3tofu/) |\n\nUnfortunaetly, most apps using OCI registries are *extremely* insecure. Docker, for example, will happily download malicious images. By default, [it doesn't do *any* authenticity verifications](https://security.stackexchange.com/questions/238916/how-to-pin-public-root-key-when-downloading-an-image-with-docker-pull-docker-co?noredirect=1&lq=1) on the payloads it downloaded. Even if you manually enable DCT, there's loads of [pending issues](https://github.com/docker/cli/issues/2752) with it.\n\nLikewise, the macOS package manager [brew](https://brew.sh/) has this same problem: it will happily download and install malicious code, because it doesn't use cryptography to verify the authenticity of anything that it downloads. This introduces [watering hole vulnerabilities](https://en.wikipedia.org/wiki/Watering_hole_attack) when developers use brew to install dependencies in their CI pipelines.\n\nMy solution to this? [3TOFU](https://tech.michaelaltfield.net/2024/08/04/3tofu/). And that requires me to be able to download the file (for verification) on three distinct linux VMs using curl or wget.\n\n> ⚠ NOTE: 3TOFU is an approach to harm reduction.\n>\n> It is not wise to download and run binaries or code whose authenticity you cannot verify using a cryptographic signature from a key stored offline. However, sometimes we cannot avoid it. If you're going to proceed with running untrusted code, then following a [3TOFU procedure](https://tech.michaelaltfield.net/2024/08/04/3tofu/) may reduce your risk, but it's better to avoid running unauthenticated code if at all possible.\n\n## Registry (ab)use\n\nContainer registries were created in 2013 to provide a clever & complex solution to a problem: how to package and serve multiple versions of simplified sources to various consumers spanning multiple operating systems and architectures -- while also packaging them into small, discrete \"layers\".\n\nHowever, if your project is just serving simple files, then the only thing gained by uploading them to a complex system like a container registry is headaches. Why do developers do this?\n\nIn the case of brew, their free hosing provider (JFrog's Bintray) [shutdown in 2021](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/). Brew was already hosting their code on GitHub, so I guess someone looked at \"GitHub Packages\" and [figured it was](https://github.com/orgs/Homebrew/discussions/691) a good (read: free) replacement.\n\nMany developers using Container Registries don't need the complexity, but -- well -- they're just using it as a free place for their FOSS project to store some files, man.\n",
"mediaType": "text/markdown"
},
"attachment": [
{
"href": "https://tech.michaelaltfield.net/2024/09/03/container-download-curl-wget/",
"mediaType": "text/html; charset=utf-8",
"type": "Link"
}
],
"image": {
"type": "Image",
"url": "https://linux.community/api/v3/image_proxy?url=https%3A%2F%2Ftech.michaelaltfield.net%2Fwp-content%2Fuploads%2Fsites%2F5%2Fcontainer-download-curl-wget_featuredImage1.jpg"
},
"sensitive": false,
"published": "2024-09-03T18:02:52.223692Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://monero.town/post/4199546",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/e6cb3733-fc0e-40c2-be3f-cd739c8a31ec"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/12aa548e-5697-4cac-a727-60d43ee6e6b6",
"actor": "https://lemmy.world/u/ChrisG",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://lemmy.world/post/18657602",
"attributedTo": "https://lemmy.world/u/ChrisG",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "CrowdStrike Didn't Just Affect Windows But Linux Too!",
"cc": [],
"content": "<p><a href=\"https://news.itsfoss.com/crowdstrike-windows-linux/\">news.itsfoss.com/crowdstrike-windows-linux/</a></p>\n<p>#infosec</p>\n",
"mediaType": "text/html",
"source": {
"content": "\n\nhttps://news.itsfoss.com/crowdstrike-windows-linux/ \n\n#infosec ",
"mediaType": "text/markdown"
},
"attachment": [],
"sensitive": false,
"published": "2024-08-15T01:18:49.688267Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://lemmy.world/post/18657602",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/8635b116-8704-48ea-82a4-43dd20b4aa59"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/d1d0a39a-dc25-4288-a5a0-f182e40431b5",
"actor": "https://feddit.it/u/edinbruh",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://feddit.it/post/7537279",
"attributedTo": "https://feddit.it/u/edinbruh",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "Looking for testing of a driver for GPUs with Asus aura lights",
"cc": [],
"content": "<p>Do you have an AMD aura GPU? Do you also use Linux? There’s this <a href=\"https://github.com/hartmark/aura-gpu/pull/10\" rel=\"nofollow\">this</a> driver that needs to be tested.</p>\n<p>It allows you to control the lighting of the GPU using programs like <a href=\"https://openrgb.org/\" rel=\"nofollow\">openRGB</a>.</p>\n<p>I wrote that PR that should make it work for more GPUs, but I only have an RX 480 so I can only test that one. It would be useful to try it on a Vega gpu.</p>\n<p>If you have an rDNA 1/2/3 GPU, it most likely won’t work, but without the card there’s nothing I can do.</p>\n<p>On a side note, if you are interested in maintaining the driver it would be great.</p>\n",
"mediaType": "text/html",
"source": {
"content": "Do you have an AMD aura GPU? Do you also use Linux? There's this [this](https://github.com/hartmark/aura-gpu/pull/10) driver that needs to be tested.\n\nIt allows you to control the lighting of the GPU using programs like [openRGB](https://openrgb.org/).\n\nI wrote that PR that should make it work for more GPUs, but I only have an RX 480 so I can only test that one. It would be useful to try it on a Vega gpu.\n\nIf you have an rDNA 1/2/3 GPU, it most likely won't work, but without the card there's nothing I can do.\n\nOn a side note, if you are interested in maintaining the driver it would be great.",
"mediaType": "text/markdown"
},
"attachment": [],
"sensitive": false,
"published": "2024-05-01T22:25:47.260304Z",
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://feddit.it/post/7537279",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/325ed167-ec9b-4ad7-80ba-2d60c36d4d83"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/47e97c22-618d-4f83-90a6-ae1c820ec7ac",
"actor": "https://feddit.it/u/edinbruh",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://feddit.it/post/7369014",
"attributedTo": "https://feddit.it/u/edinbruh",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "Anyone else experiencing this?",
"cc": [],
"content": "<p><a href=\"https://gitlab.freedesktop.org/drm/amd/-/issues/3342\" rel=\"nofollow\">Detailed issue</a></p>\n<p>Basically Kwin and other programs (simple xdg-desktop-portal or even gimp) crash and they bork the entire screen with no recovery other than rebooting. When the program that crash is Kwin it’s particularly bad because it happens at login.</p>\n",
"mediaType": "text/html",
"source": {
"content": "[Detailed issue](https://gitlab.freedesktop.org/drm/amd/-/issues/3342)\n\nBasically Kwin and other programs (simple xdg-desktop-portal or even gimp) crash and they bork the entire screen with no recovery other than rebooting. When the program that crash is Kwin it's particularly bad because it happens at login.",
"mediaType": "text/markdown"
},
"attachment": [],
"sensitive": false,
"published": "2024-04-25T01:14:18.529882Z",
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://feddit.it/post/7369014",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/5bb4449a-8743-48ca-82e0-3db7d77c1ae7"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/8b8b220c-4cdb-46fb-be96-10d6c68ff7c5",
"actor": "https://linux.community/u/nkukard",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://linux.community/post/584300",
"attributedTo": "https://linux.community/u/nkukard",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "CachyOS February 2024 Release",
"cc": [],
"mediaType": "text/html",
"attachment": [
{
"href": "https://cachyos.org/blog/2402-february-release/",
"mediaType": null,
"type": "Link"
}
],
"image": {
"type": "Image",
"url": "https://linux.community/pictrs/image/87ca9456-4fa2-4930-9493-81edd305f1e8.webp"
},
"sensitive": false,
"published": "2024-02-24T21:11:37.049256Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://linux.community/post/584300",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/68b0fbda-996f-4c1f-a1d3-ee50adb82952"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/1848f9eb-b09c-4bff-862e-47851c31c430",
"actor": "https://linux.community/u/nkukard",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://linux.community/post/520530",
"attributedTo": "https://linux.community/u/nkukard",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "Critical vulnerability affecting most Linux distros allows for bootkits",
"cc": [],
"content": "<p>Take note of the quote in the article…</p>\n<hr />\n<p>OP/bug finder here with some clarifying information. It’s a common misconception that this issue can only be abused if you use HTTP boot. That is not the case at all, otherwise it wouldn’t be Critical. This bug can be abused locally (privileged malware can overwrite the EFI partition), from an adjacent network if PXE boot is enabled (w/ MiTM), or remotely if HTTP boot is used (w/ MiTM).</p>\n<p>More details on these scenarios:</p>\n<ol>\n<li>\n<p>A remote attacker with no privileges in a man-in-the-middle (MitM) position could leverage the issue against a victim machine that uses HTTP boot. No direct access to the victim machine is required.</p>\n</li>\n<li>\n<p>A remote attacker with privileges and code execution on the victim machine could leverage the issue to bypass Secure Boot, even if the victim does not already use HTTP boot (as long as firmware has HTTP support). How? Several ways:</p>\n</li>\n</ol>\n<ul>\n<li>\n<p>An attacker can edit the boot order variable to specify a controlled attacker server.</p>\n</li>\n<li>\n<p>An attacker can chain shim->GRUB2->shim (via HTTP). For this technique, an attacker would overwrite the boot loader in the EFI partition to a legitimate shim and GRUB2 image. The attacker would create a grub.cfg that chainloads a new shim via HTTP. This is possible because GRUB2’s device syntax allows you to specify any supported device, including HTTP (if available).</p>\n</li>\n</ul>\n<ol start=\"3\">\n<li>An adjacent attacker with no privileges in a man-in-the-middle (MitM) position could leverage the issue against a victim machine that uses PXE boot. PXE is separate from HTTP boot, but similar to the local vector, an attacker can chain together shim (via PXE)->GRUB2 (via PXE)->shim (via HTTP).</li>\n</ol>\n",
"mediaType": "text/html",
"source": {
"content": "Take note of the quote in the article...\n\n---\n\nOP/bug finder here with some clarifying information. It's a common misconception that this issue can only be abused if you use HTTP boot. That is not the case at all, otherwise it wouldn't be Critical. This bug can be abused locally (privileged malware can overwrite the EFI partition), from an adjacent network if PXE boot is enabled (w/ MiTM), or remotely if HTTP boot is used (w/ MiTM).\n\nMore details on these scenarios:\n\n1. A remote attacker with no privileges in a man-in-the-middle (MitM) position could leverage the issue against a victim machine that uses HTTP boot. No direct access to the victim machine is required.\n\n2. A remote attacker with privileges and code execution on the victim machine could leverage the issue to bypass Secure Boot, even if the victim does not already use HTTP boot (as long as firmware has HTTP support). How? Several ways:\n\n- An attacker can edit the boot order variable to specify a controlled attacker server.\n\n- An attacker can chain shim->GRUB2->shim (via HTTP). For this technique, an attacker would overwrite the boot loader in the EFI partition to a legitimate shim and GRUB2 image. The attacker would create a grub.cfg that chainloads a new shim via HTTP. This is possible because GRUB2's device syntax allows you to specify any supported device, including HTTP (if available).\n\n3. An adjacent attacker with no privileges in a man-in-the-middle (MitM) position could leverage the issue against a victim machine that uses PXE boot. PXE is separate from HTTP boot, but similar to the local vector, an attacker can chain together shim (via PXE)->GRUB2 (via PXE)->shim (via HTTP).",
"mediaType": "text/markdown"
},
"attachment": [
{
"href": "https://arstechnica.com/security/2024/02/critical-vulnerability-affecting-most-linux-distros-allows-for-bootkits/",
"mediaType": null,
"type": "Link"
}
],
"image": {
"type": "Image",
"url": "https://linux.community/pictrs/image/99f8640f-b478-4a56-99b2-81b2763e9b54.jpeg"
},
"sensitive": false,
"published": "2024-02-08T01:09:38.838488Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://linux.community/post/520530",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/c4b09605-3c04-486b-bbdd-4382f8b38438"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/d1f7029f-352a-452a-91e6-8014d36be7bd",
"actor": "https://linux.community/u/nkukard",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://linux.community/post/410932",
"attributedTo": "https://linux.community/u/nkukard",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "Plasma 6 Release Candidate 1 has landed.",
"cc": [],
"content": "<p>cross-posted from: <a href=\"https://floss.social/users/kde/statuses/111732458987994100\">floss.social/users/kde/…/111732458987994100</a></p>\n<blockquote>\n<p>Plasma 6 Release Candidate 1 has landed.</p>\n<p>We are less than 50 days away from the final version of <a href=\"https://floss.social/tags/Plasma6\" rel=\"nofollow\">#Plasma6</a>.</p>\n<p>Along with Frameworks 6 and KDE Gear 24.02, the Megarelaease on the 28th of February will be one of the biggest and more complex upgrades in KDE’s history.</p>\n<p>One more RC will be released on the 31st of January and then it will be (hopefully) clear sailing until the final release.</p>\n<p><a href=\"https://kde.org/announcements/megarelease/6/rc1/\" rel=\"nofollow\">https://kde.org/announcements/megarelease/6/rc1/</a></p>\n<p><a href=\"https://lemmy.kde.social/c/kde\" rel=\"nofollow\">@kde@lemmy.kde.social</a></p>\n</blockquote>\n",
"mediaType": "text/html",
"source": {
"content": "cross-posted from: https://floss.social/users/kde/statuses/111732458987994100\n\n> Plasma 6 Release Candidate 1 has landed.\n> \n> We are less than 50 days away from the final version of [#Plasma6](https://floss.social/tags/Plasma6).\n> \n> Along with Frameworks 6 and KDE Gear 24.02, the Megarelaease on the 28th of February will be one of the biggest and more complex upgrades in KDE's history.\n> \n> One more RC will be released on the 31st of January and then it will be (hopefully) clear sailing until the final release.\n> \n> [https://kde.org/announcements/megarelease/6/rc1/](https://kde.org/announcements/megarelease/6/rc1/)\n> \n> [@kde@lemmy.kde.social](https://lemmy.kde.social/c/kde)",
"mediaType": "text/markdown"
},
"attachment": [
{
"href": "https://cdn.masto.host/floss/media_attachments/files/111/732/448/012/807/610/original/76e332bcb8c7582a.png",
"mediaType": null,
"type": "Link"
}
],
"image": {
"type": "Image",
"url": "https://linux.community/pictrs/image/b7679860-7b90-47aa-adf9-ea15904117a5.png"
},
"sensitive": false,
"published": "2024-01-10T16:33:33.607065Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://linux.community/post/410932",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/a7489a2b-0a11-4d13-9a1d-f2bf44b6e22a"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/6a7d6e67-0ad7-40cd-b69d-a7c88b89e703",
"actor": "https://linux.community/u/Agent_Engelbert",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://linux.community/post/317586",
"attributedTo": "https://linux.community/u/Agent_Engelbert",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "Joining this community, and my first post.",
"cc": [],
"content": "<p>Hello everyone,</p>\n<p>I just joined the Linux community on Lemmy.</p>\n<p>Love Gnu/ Linux. Would love to create my own custom Linux servers and machines one day, and I’m already on that path.</p>\n<p>(Maybe only a quarter of the way though. 😁)</p>\n<p>I don’t know what else to say, other than that the goals and admirations and aspirations of Gnu/ Linux fall in line with my personal endeavours in creating a collaborative and supportive environment that drives creativity, freedom, and independence.</p>\n<p>This initiative comes from the beautiful but encouraging and supportive community that I had the chance to speak to and talk to (in matrix), which focused on the social values of providing free and opensource resources to people around the world - which is unfortunately neglected by many, if not exploited and abused, and not mentioned, around the world (or at least the society that I have been in contact with in my life, including in the academic aspect and the organisational aspect).</p>\n<p>Of course, I also listened to Linus and Richard stallman respectively (I do not endorse any of RMS’s political, religious, or ideological beliefs).</p>\n<p>The building blocks upon which helped create Gnu/ Linux what it is today. The ankle point that holds many organisations and companies around the world. The hard working and faithful people that strived in creating values in all of their forms to support such initiatives.</p>\n<p>And it reminds me of a beautiful qoute, said by [childhood] friend, Mr. Fred Rogers:</p>\n<p>“L’essentiel est invisible pour les yeux”.</p>\n<p>“What is essential is invisible to the eyes”.</p>\n<p>Originally written by good sir story writer:\nAntoine de Saint-Exupéry. (Recommend reading chapter 10).</p>\n<p>My nickname here (or username) does not reflect my real name, but I do find joy in nicknames too. You could call me Engelbert, for casually-endorsing-social-conversations’ - sake’.</p>\n<p>And I am here to learn, and exchange knowledge and experiences with others too ! Help and give advice, and seek out challenging issues the community may be facing.</p>\n<p>Talk to me about anything. Religion, culture, history, politics, some good philosophy, but mostly Gnu/ Linux, Rust, design philosophy !</p>\n<p>(If you feel that the subject is too sensitive, we may have a private council together 😀).</p>\n<p>My goal is, as a gesture of goodwill and thanksgiving, to give back to society and give back to people who helped shape and create this society the way it is today, all things regarding Gnu/ Linux and the opensource objectives.</p>\n<p>I have read more than 5 books in rust, and I’m still nowhere near perfect. I had more than 50+ projects in rust (small to medium, nothing crazy), had experience in C, C++, and C#.</p>\n<h2>On final note, I would like to mention these beautiful words by imam Ali: “Hide the good you do, and make known the good done to you !”.</h2>\n<p>Thank you for having me !</p>\n<p>Sir Engelbert.</p>\n<p>(<img src=\"https://linux.community/pictrs/image/24544c09-297a-438b-813e-1601f42ce0b4.jpeg\" alt=\"1000003524\" /></p>\n",
"mediaType": "text/html",
"source": {
"content": "Hello everyone,\n\nI just joined the Linux community on Lemmy.\n\nLove Gnu/ Linux. Would love to create my own custom Linux servers and machines one day, and I'm already on that path.\n\n(Maybe only a quarter of the way though. 😁)\n\nI don't know what else to say, other than that the goals and admirations and aspirations of Gnu/ Linux fall in line with my personal endeavours in creating a collaborative and supportive environment that drives creativity, freedom, and independence.\n\nThis initiative comes from the beautiful but encouraging and supportive community that I had the chance to speak to and talk to (in matrix), which focused on the social values of providing free and opensource resources to people around the world - which is unfortunately neglected by many, if not exploited and abused, and not mentioned, around the world (or at least the society that I have been in contact with in my life, including in the academic aspect and the organisational aspect).\n\nOf course, I also listened to Linus and Richard stallman respectively (I do not endorse any of RMS's political, religious, or ideological beliefs).\n\nThe building blocks upon which helped create Gnu/ Linux what it is today. The ankle point that holds many organisations and companies around the world. The hard working and faithful people that strived in creating values in all of their forms to support such initiatives.\n\nAnd it reminds me of a beautiful qoute, said by [childhood] friend, Mr. Fred Rogers:\n\n\"L'essentiel est invisible pour les yeux\".\n\n\"What is essential is invisible to the eyes\".\n\nOriginally written by good sir story writer: \nAntoine de Saint-Exupéry. (Recommend reading chapter 10).\n\nMy nickname here (or username) does not reflect my real name, but I do find joy in nicknames too. You could call me Engelbert, for casually-endorsing-social-conversations' - sake'.\n\nAnd I am here to learn, and exchange knowledge and experiences with others too ! Help and give advice, and seek out challenging issues the community may be facing.\n\nTalk to me about anything. Religion, culture, history, politics, some good philosophy, but mostly Gnu/ Linux, Rust, design philosophy !\n\n(If you feel that the subject is too sensitive, we may have a private council together 😀).\n\nMy goal is, as a gesture of goodwill and thanksgiving, to give back to society and give back to people who helped shape and create this society the way it is today, all things regarding Gnu/ Linux and the opensource objectives.\n\nI have read more than 5 books in rust, and I'm still nowhere near perfect. I had more than 50+ projects in rust (small to medium, nothing crazy), had experience in C, C++, and C#. \n\nOn final note, I would like to mention these beautiful words by imam Ali: \"Hide the good you do, and make known the good done to you !\".\n---\n\nThank you for having me !\n\nSir Engelbert.\n\n(![1000003524](https://linux.community/pictrs/image/24544c09-297a-438b-813e-1601f42ce0b4.jpeg)\n\n\n\n",
"mediaType": "text/markdown"
},
"attachment": [
{
"href": "https://linux.community/pictrs/image/24544c09-297a-438b-813e-1601f42ce0b4.jpeg",
"mediaType": null,
"type": "Link"
}
],
"image": {
"type": "Image",
"url": "https://linux.community/pictrs/image/c698249a-504f-4804-9dae-641275e7ab82.jpeg"
},
"sensitive": false,
"published": "2023-12-15T11:29:31.380922Z",
"updated": "2023-12-15T12:43:29.319250Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://linux.community/post/317586",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/82cdc0eb-fe7a-4394-af07-be0e8820d50b"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/b69d73c7-2a92-4524-8719-b6e62bfc69a2",
"actor": "https://linux.community/u/nkukard",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://linux.community/post/144549",
"attributedTo": "https://linux.community/u/nkukard",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "Fresh curl tomorrow will patch 'worst' security flaw in ages | TheRegister",
"cc": [],
"content": "<p>“Curl 8.4.0 will hit at around 0600 UTC (0800 CEST, 0700 BST, 0200 EST, 2300 PDT) on October 11 and deal with CVE-2023-38545, which affects both libcurl and the curl tool, and CVE-2023-38546, which only affects libcurl…”</p>\n",
"mediaType": "text/html",
"source": {
"content": "\"Curl 8.4.0 will hit at around 0600 UTC (0800 CEST, 0700 BST, 0200 EST, 2300 PDT) on October 11 and deal with CVE-2023-38545, which affects both libcurl and the curl tool, and CVE-2023-38546, which only affects libcurl....\"",
"mediaType": "text/markdown"
},
"attachment": [
{
"href": "https://www.theregister.com/2023/10/10/curl_patch_in_update/",
"mediaType": null,
"type": "Link"
}
],
"image": {
"type": "Image",
"url": "https://linux.community/pictrs/image/8e526ddc-cc4d-4ff5-be16-ac2f3a6e0e49.jpeg"
},
"sensitive": false,
"published": "2023-10-11T14:02:23.440888Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://linux.community/post/144549",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/8b3f43f2-9e12-458a-a3c2-dcf674579d38"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/998ab369-aa5f-4ddb-a461-7dd7d9c0e62f",
"actor": "https://linux.community/u/nkukard",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://linux.community/post/138252",
"attributedTo": "https://linux.community/u/nkukard",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "CVE-2023-4911: Looney Tunables - Local Privilege Escalation in the glibc’s ld.so | Qualys Security Blog",
"cc": [],
"mediaType": "text/html",
"attachment": [
{
"href": "https://blog.qualys.com/vulnerabilities-threat-research/2023/10/03/cve-2023-4911-looney-tunables-local-privilege-escalation-in-the-glibcs-ld-so",
"mediaType": null,
"type": "Link"
}
],
"image": {
"type": "Image",
"url": "https://linux.community/pictrs/image/2aaeb954-1faf-4de9-8fd7-22e921ceb520.jpeg"
},
"sensitive": false,
"published": "2023-10-07T19:30:23.177848Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://linux.community/post/138252",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/234eaf52-233a-4279-8a41-4dfa1417591f"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/fd10116c-f072-4b09-85ee-638bb36730a4",
"actor": "https://linux.community/u/nkukard",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://linux.community/post/127494",
"attributedTo": "https://linux.community/u/nkukard",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "Critical vulnerabilities in Exim threaten over 250k email servers worldwide",
"cc": [],
"content": "<p>“Remote code execution requiring no authentication fixed. 2 other RCEs remain unpatched…”</p>\n",
"mediaType": "text/html",
"source": {
"content": "\"Remote code execution requiring no authentication fixed. 2 other RCEs remain unpatched....\"",
"mediaType": "text/markdown"
},
"attachment": [
{
"href": "https://arstechnica.com/security/2023/09/critical-vulnerabilities-in-exim-threaten-over-250k-email-servers-worldwide/",
"mediaType": null,
"type": "Link"
}
],
"image": {
"type": "Image",
"url": "https://linux.community/pictrs/image/61903c22-db73-4e0b-b785-18d60732c90f.jpeg"
},
"sensitive": false,
"published": "2023-10-01T14:52:49.465586Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://linux.community/post/127494",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/c5e2b22a-431a-4d11-802d-5a9fbfd1ed68"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/9efcd6af-0d31-41f9-b01e-8e9eef72a8c0",
"actor": "https://linux.community/u/nkukard",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://linux.community/post/126263",
"attributedTo": "https://linux.community/u/nkukard",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "Temporary suspension of automatic snap registration following security incident",
"cc": [],
"content": "<p>“On September 28, 2023, the Snap Store team was notified of a potential security incident. A number of snap users reported several recently published and potentially malicious snaps…”</p>\n",
"mediaType": "text/html",
"source": {
"content": "\"On September 28, 2023, the Snap Store team was notified of a potential security incident. A number of snap users reported several recently published and potentially malicious snaps....\"",
"mediaType": "text/markdown"
},
"attachment": [
{
"href": "https://forum.snapcraft.io/t/temporary-suspension-of-automatic-snap-registration-following-security-incident/37077",
"mediaType": null,
"type": "Link"
}
],
"sensitive": false,
"published": "2023-09-30T19:06:19.022638Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://linux.community/post/126263",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/02e45a6b-89f5-445b-883f-ad6683ecb686"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/8e1889ff-b5a2-47ef-89ae-2b4fcd782fcb",
"actor": "https://linux.community/u/nkukard",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://linux.community/post/13962",
"attributedTo": "https://linux.community/u/nkukard",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "CVE-2023-38408: REMOTE CODE EXECUTION IN OPENSSH'S FORWARDED SSH-AGENT",
"cc": [],
"mediaType": "text/html",
"attachment": [
{
"href": "https://www.qualys.com/2023/07/19/cve-2023-38408/rce-openssh-forwarded-ssh-agent.txt",
"mediaType": null,
"type": "Link"
}
],
"sensitive": false,
"published": "2023-07-19T18:28:19.953177Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://linux.community/post/13962",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/dbb19955-dd7a-4f81-89d4-b664a4000d07"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/40ab24fa-c658-43ae-9f0d-0e21d38ffff2",
"actor": "https://lemmy.world/u/siderealyear",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://lemmy.world/post/1464106",
"attributedTo": "https://lemmy.world/u/siderealyear",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "YSK about Wargames",
"cc": [],
"content": "<p>Like choose your-own-ending novels and BASH? What would you do if you suddenly had ssh access to someone else’s server? This is a really fun corner of the net. Excellent resource/trainer/time-waster. When I talk to people from the DIY linux/selfhosting/FOSS communities, many folks haven’t heard of it.</p>\n<p>What other cool stuff do you know about? Think it sucks and want to tell me why?</p>\n<p>Note: I am not at all associated with this project - just think it’s a valuable stop on the good 'ole internet.</p>\n",
"mediaType": "text/html",
"source": {
"content": "Like choose your-own-ending novels and BASH? What would you do if you suddenly had ssh access to someone else's server? This is a really fun corner of the net. Excellent resource/trainer/time-waster. When I talk to people from the DIY linux/selfhosting/FOSS communities, many folks haven't heard of it.\n\nWhat other cool stuff do you know about? Think it sucks and want to tell me why?\n\nNote: I am not at all associated with this project - just think it's a valuable stop on the good 'ole internet.",
"mediaType": "text/markdown"
},
"attachment": [
{
"href": "https://overthewire.org/wargames/",
"mediaType": null,
"type": "Link"
}
],
"sensitive": false,
"published": "2023-07-14T10:15:00.237216Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://lemmy.world/post/1464106",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/ce0dd8bb-edc2-47e9-a239-973b389c5e9b"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/87e62c96-d9b1-4e79-b420-385fad1807c3",
"actor": "https://linux.community/u/WilfordGrimley",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://linux.community/post/235",
"attributedTo": "https://linux.community/u/WilfordGrimley",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "Can the Number of Federated Instances be Increased for Linux.community please?",
"cc": [],
"content": "<p>At the moment there is slim pickings for other communities to join if this instance is chosen by a user to be their home server.</p>\n<p>Presumably other instances have to approve linux.community federating with them before their subs can show up? Is it that this instance is new, or is there some other reason. u/nkukard can you chime in?</p>\n<p>EDIT: A-ha! I was searching poorly! Once a member of a instance subscribes, it pulls it into that instance for easier discovery. Neat!</p>\n",
"mediaType": "text/html",
"source": {
"content": "At the moment there is slim pickings for other communities to join if this instance is chosen by a user to be their home server.\n\nPresumably other instances have to approve linux.community federating with them before their subs can show up? Is it that this instance is new, or is there some other reason. u/nkukard can you chime in?\n\nEDIT: A-ha! I was searching poorly! Once a member of a instance subscribes, it pulls it into that instance for easier discovery. Neat!",
"mediaType": "text/markdown"
},
"attachment": [],
"sensitive": false,
"published": "2023-07-03T04:28:37.009825Z",
"updated": "2023-07-03T04:38:15.584327Z",
"language": {
"identifier": "en",
"name": "English"
},
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://linux.community/post/235",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/80ebecdf-7e6e-44aa-9e4c-93181f1b5160"
},
{
"actor": "https://linux.community/c/linux",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"id": "https://linux.community/activities/create/d60e54da-4fff-4348-b97c-0edb0dbeb111",
"actor": "https://fedia.io/u/yoasif",
"to": [
"https://www.w3.org/ns/activitystreams#Public"
],
"object": {
"type": "Page",
"id": "https://fedia.io/m/linux@linux.community/t/58759",
"attributedTo": "https://fedia.io/u/yoasif",
"to": [
"https://linux.community/c/linux",
"https://www.w3.org/ns/activitystreams#Public"
],
"name": "Unofficial Subreddit Migration List (Lemmy, Kbin)",
"cc": [],
"content": "<p>A comprehensive mapping of old subreddits to new communities.</p>\n",
"mediaType": "text/html",
"source": {
"content": "A comprehensive mapping of old subreddits to new communities.",
"mediaType": "text/markdown"
},
"attachment": [
{
"href": "https://www.quippd.com/writing/2023/06/15/unofficial-subreddit-migration-list-lemmy-kbin-etc.html",
"mediaType": null,
"type": "Link"
}
],
"sensitive": false,
"published": "2023-07-01T19:12:19Z",
"audience": "https://linux.community/c/linux",
"tag": [
{
"href": "https://fedia.io/m/linux@linux.community/t/58759",
"name": "#linux",
"type": "Hashtag"
}
]
},
"cc": [
"https://linux.community/c/linux"
],
"type": "Create",
"audience": "https://linux.community/c/linux"
},
"cc": [
"https://linux.community/c/linux/followers"
],
"type": "Announce",
"id": "https://linux.community/activities/announce/create/df658237-1f88-4818-8fc4-89c1da32eaff"
}
]
}