add anchor to docker images in the table.

This commit is contained in:
Miroslav Šedivý
2025-03-30 22:48:17 +02:00
parent cab1e14b2b
commit 5ce4820ef8
4 changed files with 33 additions and 19 deletions
+18 -16
View File
@@ -2,6 +2,8 @@
description: List of available Neko Docker images and their flavors.
---
import { AppIcon } from '@site/src/components/AppIcon';
# Docker Images
Neko as a standalone streaming server is available as a Docker image. But that is rarely interesting for general use. The real power of Neko is in its ability to accommodate custom applications in the virtual desktop environment. This is where the various flavors of Neko Docker images come in.
@@ -34,17 +36,17 @@ You should always prefer the GHCR registry with the ability to use flavors and s
The following applications are available as Neko Docker images:
### Firefox-based browsers {#firefox}
### Firefox-based browsers {#firefox-based}
In comparison to Chromium-based browsers, Firefox-based browsers do not require additional capabilities or a bigger shared memory size to not crash.
| Icon | Name | Docker Image |
| ---- | ---- | ------------ |
| <img src="/img/icons/firefox.svg" width="60" height="60" /> | [Firefox](https://www.mozilla.org/firefox/) <br /> The open-source browser from Mozilla. | [`ghcr.io/m1k1o/neko/firefox`](https://ghcr.io/m1k1o/neko/firefox) |
| <img src="/img/icons/tor-browser.svg" width="60" height="60" /> | [Tor Browser](https://www.torproject.org/) <br /> A browser designed to access the Tor network for enhanced privacy. | [`ghcr.io/m1k1o/neko/tor-browser`](https://ghcr.io/m1k1o/neko/tor-browser) |
| <img src="/img/icons/waterfox.svg" width="60" height="60" /> | [Waterfox](https://www.waterfox.net/) <br /> A privacy-focused browser based on Firefox. | [`ghcr.io/m1k1o/neko/waterfox`](https://ghcr.io/m1k1o/neko/waterfox) |
| <AppIcon id="firefox" /> | [Firefox](https://www.mozilla.org/firefox/) <br /> The open-source browser from Mozilla. | [`ghcr.io/m1k1o/neko/firefox`](https://ghcr.io/m1k1o/neko/firefox) |
| <AppIcon id="tor-browser" /> | [Tor Browser](https://www.torproject.org/) <br /> A browser designed to access the Tor network for enhanced privacy. | [`ghcr.io/m1k1o/neko/tor-browser`](https://ghcr.io/m1k1o/neko/tor-browser) |
| <AppIcon id="waterfox" /> | [Waterfox](https://www.waterfox.net/) <br /> A privacy-focused browser based on Firefox. | [`ghcr.io/m1k1o/neko/waterfox`](https://ghcr.io/m1k1o/neko/waterfox) |
### Chromium-based browsers {#chromium}
### Chromium-based browsers {#chromium-based}
There are multiple flavors of Chromium-based browsers available as Neko Docker images.
@@ -78,13 +80,13 @@ import TabItem from '@theme/TabItem';
| Icon | Name | Docker Image |
| ---- | ---- | ------------ |
| <img src="/img/icons/chromium.svg" width="60" height="60" /> | [Chromium](https://www.chromium.org/chromium-projects/) <br /> The open-source project behind Google Chrome. | [`ghcr.io/m1k1o/neko/chromium`](https://ghcr.io/m1k1o/neko/chromium) |
| <img src="/img/icons/google-chrome.svg" width="60" height="60" /> | [Google Chrome](https://www.google.com/chrome/) <br /> The most popular browser in the world. | [`ghcr.io/m1k1o/neko/google-chrome`](https://ghcr.io/m1k1o/neko/google-chrome) |
| <img src="/img/icons/ungoogled-chromium.svg" width="60" height="60" /> | [Ungoogled Chromium](https://ungoogled-software.github.io/) <br /> A fork of Chromium without Google integration. | [`ghcr.io/m1k1o/neko/ungoogled-chromium`](https://ghcr.io/m1k1o/neko/ungoogled-chromium) |
| <img src="/img/icons/microsoft-edge.svg" width="60" height="60" /> | [Microsoft Edge](https://www.microsoft.com/edge) <br/> The new Microsoft Edge is based on Chromium. | [`ghcr.io/m1k1o/neko/microsoft-edge`](https://ghcr.io/m1k1o/neko/microsoft-edge) |
| <img src="/img/icons/brave.svg" width="60" height="60" /> | [Brave](https://brave.com/) <br /> A privacy-focused browser. | [`ghcr.io/m1k1o/neko/brave`](https://ghcr.io/m1k1o/neko/brave) |
| <img src="/img/icons/vivaldi.svg" width="60" height="60" /> | [Vivaldi](https://vivaldi.com/) <br /> A highly customizable browser. | [`ghcr.io/m1k1o/neko/vivaldi`](https://ghcr.io/m1k1o/neko/vivaldi) |
| <img src="/img/icons/opera.svg" width="60" height="60" /> | [Opera](https://www.opera.com/)* <br /> A fast and secure browser. | [`ghcr.io/m1k1o/neko/opera`](https://ghcr.io/m1k1o/neko/opera) |
| <AppIcon id="chromium" /> | [Chromium](https://www.chromium.org/chromium-projects/) <br /> The open-source project behind Google Chrome. | [`ghcr.io/m1k1o/neko/chromium`](https://ghcr.io/m1k1o/neko/chromium) |
| <AppIcon id="google-chrome" /> | [Google Chrome](https://www.google.com/chrome/) <br /> The most popular browser in the world. | [`ghcr.io/m1k1o/neko/google-chrome`](https://ghcr.io/m1k1o/neko/google-chrome) |
| <AppIcon id="ungoogled-chromium" /> | [Ungoogled Chromium](https://ungoogled-software.github.io/) <br /> A fork of Chromium without Google integration. | [`ghcr.io/m1k1o/neko/ungoogled-chromium`](https://ghcr.io/m1k1o/neko/ungoogled-chromium) |
| <AppIcon id="microsoft-edge" /> | [Microsoft Edge](https://www.microsoft.com/edge) <br/> The new Microsoft Edge is based on Chromium. | [`ghcr.io/m1k1o/neko/microsoft-edge`](https://ghcr.io/m1k1o/neko/microsoft-edge) |
| <AppIcon id="brave" /> | [Brave](https://brave.com/) <br /> A privacy-focused browser. | [`ghcr.io/m1k1o/neko/brave`](https://ghcr.io/m1k1o/neko/brave) |
| <AppIcon id="vivaldi" /> | [Vivaldi](https://vivaldi.com/) <br /> A highly customizable browser. | [`ghcr.io/m1k1o/neko/vivaldi`](https://ghcr.io/m1k1o/neko/vivaldi) |
| <AppIcon id="opera" /> | [Opera](https://www.opera.com/)* <br /> A fast and secure browser. | [`ghcr.io/m1k1o/neko/opera`](https://ghcr.io/m1k1o/neko/opera) |
\* requires extra steps to enable DRM, see instructions [here](https://www.reddit.com/r/operabrowser/wiki/opera/linux_widevine_config/). `libffmpeg` is already configured.
@@ -94,8 +96,8 @@ These images feature a full desktop environment where you can install and run mu
| Icon | Name | Docker Image |
| ---- | ---- | ------------ |
| <img src="/img/icons/xfce.svg" width="60" height="60" /> | [Xfce](https://xfce.org/) <br /> A lightweight desktop environment. | [`ghcr.io/m1k1o/neko/xfce`](https://ghcr.io/m1k1o/neko/xfce) |
| <img src="/img/icons/kde.svg" width="60" height="60" /> | [KDE Plasma](https://kde.org/plasma-desktop) <br /> A feature-rich desktop environment. | [`ghcr.io/m1k1o/neko/kde`](https://ghcr.io/m1k1o/neko/kde) |
| <AppIcon id="xfce" /> | [Xfce](https://xfce.org/) <br /> A lightweight desktop environment. | [`ghcr.io/m1k1o/neko/xfce`](https://ghcr.io/m1k1o/neko/xfce) |
| <AppIcon id="kde" /> | [KDE Plasma](https://kde.org/plasma-desktop) <br /> A feature-rich desktop environment. | [`ghcr.io/m1k1o/neko/kde`](https://ghcr.io/m1k1o/neko/kde) |
### Other Applications {#other}
@@ -103,8 +105,8 @@ As it would be impossible to include all possible applications in the repository
| Icon | Name | Docker Image |
| ---- | ---- | ------------ |
| <img src="/img/icons/remmina.svg" width="60" height="60" /> | [Remmina](https://remmina.org/) <br /> A remote desktop client. | [`ghcr.io/m1k1o/neko/remmina`](https://ghcr.io/m1k1o/neko/remmina) |
| <img src="/img/icons/vlc.svg" width="60" height="60" /> | [VLC](https://www.videolan.org/vlc/) <br /> A media player. | [`ghcr.io/m1k1o/neko/vlc`](https://ghcr.io/m1k1o/neko/vlc) |
| <AppIcon id="remmina" /> | [Remmina](https://remmina.org/) <br /> A remote desktop client. | [`ghcr.io/m1k1o/neko/remmina`](https://ghcr.io/m1k1o/neko/remmina) |
| <AppIcon id="vlc" /> | [VLC](https://www.videolan.org/vlc/) <br /> A media player. | [`ghcr.io/m1k1o/neko/vlc`](https://ghcr.io/m1k1o/neko/vlc) |
#### Remmina Configuration {#remmina}
+3 -3
View File
@@ -3,7 +3,7 @@ import React from 'react';
export function Anchor(props: {id: string}) {
useBrokenLinks().collectAnchor(props.id);
return <span style={{scrollMarginTop: "var(--ifm-navbar-height)"}} {...props}/>;
return <span className="anchorOffset" {...props}/>;
}
// <Def id="cookie.http_only" /> -> <a href="#cookie.http_only"><code id="cookie.http_only">http_only</code></a>
@@ -14,7 +14,7 @@ export function Def({id, code, ...props}: {id: string, code?: string}) {
}
useBrokenLinks().collectAnchor(id);
// get current heading id
return <a href={`#${id}`} {...props}><code id={id} title={id} style={{scrollMarginTop: "var(--ifm-navbar-height)"}}>{code}</code></a>;
return <a href={`#${id}`} {...props}><code id={id} title={id} className="anchorOffset">{code}</code></a>;
}
// <Opt id="cookie.http_only" /> -> <a href="#cookie.http_only"><code>http_only</code></a>
@@ -24,5 +24,5 @@ export function Opt({id, code, ...props}: {id: string, code?: string}) {
code = id.split('.').pop();
}
// get current heading id
return <a href={`#${id}`} {...props}><code title={id} style={{scrollMarginTop: "var(--ifm-navbar-height)"}}>{code}</code></a>;
return <a href={`#${id}`} {...props}><code title={id} className="anchorOffset">{code}</code></a>;
}
+8
View File
@@ -0,0 +1,8 @@
import useBrokenLinks from '@docusaurus/useBrokenLinks';
export function AppIcon({id, ...props}: {id: string}) {
useBrokenLinks().collectAnchor(id);
return <a href={`#${id}`} {...props}>
<img src={`/img/icons/${id}.svg`} id={id} title={id} className="anchorOffset" width="60" height="60" />
</a>
}
+4
View File
@@ -29,6 +29,10 @@
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
}
.anchorOffset {
scroll-margin-top: calc(var(--ifm-navbar-height) + 0.5rem)
}
/*
* Custom CSS for OpenAPI documentation
*/