Namespace
m1k1o
Image / Tag
neko:vivaldi
Content Digest
sha256:784d2e1b43e63d452d9a9b94d924289210093602a56fd1cfaa62c7b772517a88
Details
Created

2026-03-09 03:41:57 UTC

Size

667 MB

Content Digest
Labels
  • net.m1k1o.neko.api-version
    3
  • org.opencontainers.image.created
    2026-03-09T03:41:24.917Z
  • org.opencontainers.image.description
    A self hosted virtual browser that runs in docker and uses WebRTC.
  • org.opencontainers.image.licenses
    Apache-2.0
  • org.opencontainers.image.revision
    f84740f6da0524cf480a0a0121b16905d9e70947
  • org.opencontainers.image.source
    https://github.com/m1k1o/neko
  • org.opencontainers.image.title
    neko
  • org.opencontainers.image.url
    https://github.com/m1k1o/neko
  • org.opencontainers.image.version
    vivaldi

Environment
DEBIAN_FRONTEND

noninteractive

DISPLAY

:99.0

NEKO_PLUGINS_DIR

/etc/neko/plugins/

NEKO_PLUGINS_ENABLED

true

NEKO_SERVER_BIND

:8080

PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PULSE_SERVER

unix:/tmp/pulseaudio.socket

USER

neko

XDG_RUNTIME_DIR

/tmp/runtime-neko


Layers

[#000] sha256:34f0642d22440b5813561cd4375937013bfb556bec8ff3b0e208699b786282a7 - 4.32% (28.9 MB)

[#001] sha256:f5354207d2179bb79ffb99d4db595d813d90579a95cd23f6c52972b9fce30dc7 - 47.82% (319 MB)

[#002] sha256:fe06f229d8e079bebd45d2bf8b1e90b2b418c5bd819d0657b51f130c8646e85a - 0.0% (185 Bytes)

[#003] sha256:d4eb6c1f06d79d63c1a31b24173a9414bbf94c166c53b1dddca86ad908fb39c4 - 0.0% (274 Bytes)

[#004] sha256:1d908a938e3c6d70c91d883ff40771209f309869fedcb95910dce8d87e5e5b61 - 0.0% (516 Bytes)

[#005] sha256:beb81850d156df98774b620f2ba173cb1a1f122d27b2e044f23d62efd475d80c - 0.0% (677 Bytes)

[#006] sha256:916824e8e408d0e2057b0f9c693cecc15e2fff47a138ea17f040f99e840c0bb3 - 0.0% (324 Bytes)

[#007] sha256:64729c2645d5ca3674927eaf7053e13862277a8a56eebf4c6f8afb02c344d51f - 0.0% (1.77 KB)

[#008] sha256:a0e89a0fd1612ae83a6232d33efa815caa26a2e436d90515f3eee61e7d7d0940 - 0.0% (196 Bytes)

[#009] sha256:2a1f0e1d815b24423e7fc50646033616ad99e56b8601861b120dec7a5230fe90 - 0.0% (694 Bytes)

[#010] sha256:15c4b16a9d2439a9798233620e09074eeb0b8fbe88c8b41d20e7f137f130b6bf - 0.0% (197 Bytes)

[#011] sha256:731b59324a1a723eee1a4b51a6984d82a3451eb800bbd34dd2a0495a92355d11 - 0.0% (138 Bytes)

[#012] sha256:3ffcd87908120be13cf371eafc807ee1b8f53447f32d62b7bd40b21005c75ad1 - 1.45% (9.7 MB)

[#013] sha256:0f84ed0a8fc2acdfc1feea0f03efee550ca82b6f652dfae0d0f99f3ee85c156e - 0.8% (5.34 MB)

[#014] sha256:806f823e6be8e6cdef072895d7c55fdafc5d9aa793b9e201a980a63b71bbeccd - 0.01% (65.4 KB)

[#015] sha256:b514f2368f2aea0ac13a520b6df557d985540560b4239a1fa0d30fb03d730bfc - 0.0% (25.1 KB)

[#016] sha256:fd0dbf83b9f5e6ce9ff8a0249e2c2146e3a7cdd04c15a0ccf9cc22cf446eb82c - 0.0% (361 Bytes)

[#017] sha256:5309af1ad686405e00fd19283e8cfe57dad5bdcba282266d838af67e04487c62 - 45.58% (304 MB)

[#018] sha256:e067bec7539dfc6d9453dc3b4a28c2c52b8ec0f189d6afcd572445d5d9e743c9 - 0.0% (564 Bytes)

[#019] sha256:9636fd20ee6e725c1f2e657bb2a38ba9644f41132314e541075cf4f9b45d5553 - 0.0% (2.38 KB)

[#020] sha256:7e6d5c3d8e09b7dc80eb72786d62812a040a79dcfdbb4708cedfa5ac40b7c9e4 - 0.0% (681 Bytes)

[#021] sha256:a007c4ecab15a806f01ff0de9efc42b20998b213e357714d77837bc0ad313139 - 0.0% (5.5 KB)


History
2026-02-23 00:00:00 UTC (debuerreotype 0.17)

# debian.sh --arch 'amd64' out/ 'bullseye' '@1771804800'

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

ARG USERNAME=neko

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

ARG USER_UID=1000

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

ARG USER_GID=1000

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

ENV DEBIAN_FRONTEND=noninteractive

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

RUN |3 USERNAME=neko USER_UID=1000 USER_GID=1000 /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends wget ca-certificates python2 supervisor pulseaudio dbus-x11 xserver-xorg-video-dummy libcairo2 libxcb1 libxrandr2 libxv1 libopus0 libvpx6 zip curl xdotool xclip libgtk-3-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-pulseaudio gstreamer1.0-omx; ARCH=$(dpkg --print-architecture); wget http://ftp.de.debian.org/debian/pool/main/libx/libxcvt/libxcvt0_0.1.2-1_${ARCH}.deb; apt-get install --no-install-recommends ./libxcvt0_0.1.2-1_${ARCH}.deb; rm ./libxcvt0_0.1.2-1_${ARCH}.deb; groupadd --gid $USER_GID $USERNAME; useradd --uid $USER_UID --gid $USERNAME --shell /bin/bash --create-home $USERNAME; adduser $USERNAME audio; adduser $USERNAME video; adduser $USERNAME pulse; mkdir /tmp/.X11-unix; chmod 1777 /tmp/.X11-unix; chown $USERNAME /tmp/.X11-unix/; mkdir -p /etc/neko /var/www /var/log/neko /tmp/runtime-$USERNAME /home/$USERNAME/.config/pulse /home/$USERNAME/.local/share/xorg; chmod 1777 /var/log/neko; chown $USERNAME /var/log/neko/ /tmp/runtime-$USERNAME; chown -R $USERNAME:$USERNAME /home/$USERNAME; apt-get install -y --no-install-recommends fonts-noto-color-emoji fonts-arphic-ukai fonts-arphic-uming fonts-wqy-zenhei xfonts-intl-chinese xfonts-wqy fonts-ipafont-mincho fonts-ipafont-gothic fonts-takao-mincho fonts-unfonts-core fonts-wqy-microhei fonts-indic; apt-get clean -y; rm -rf /var/lib/apt/lists/* /var/cache/apt/* # buildkit

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

COPY --chown=neko:neko runtime/.Xresources /home/neko/.Xresources # buildkit

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

COPY runtime/dbus /usr/bin/dbus # buildkit

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

COPY runtime/default.pa /etc/pulse/default.pa # buildkit

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

COPY runtime/supervisord.conf /etc/neko/supervisord.conf # buildkit

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

COPY runtime/supervisord.dbus.conf /etc/neko/supervisord.dbus.conf # buildkit

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

COPY runtime/xorg.conf /etc/neko/xorg.conf # buildkit

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

COPY --chown=neko:neko runtime/icon-theme /home/neko/.icons/default # buildkit

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

COPY runtime/fontconfig/* /etc/fonts/conf.d/ # buildkit

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

COPY runtime/fonts /usr/local/share/fonts # buildkit

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

ENV USER=neko

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

ENV DISPLAY=:99.0

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

ENV PULSE_SERVER=unix:/tmp/pulseaudio.socket

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

ENV XDG_RUNTIME_DIR=/tmp/runtime-neko

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

ENV NEKO_SERVER_BIND=:8080

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

ENV NEKO_PLUGINS_ENABLED=true

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

ENV NEKO_PLUGINS_DIR=/etc/neko/plugins/

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

HEALTHCHECK &{["CMD-SHELL" "wget -O - http://localhost:${NEKO_SERVER_BIND#*:}/health || wget --no-check-certificate -O - https://localhost:${NEKO_SERVER_BIND#*:}/health || exit 1"] "10s" "5s" "0s" "0s" '\b'}

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

CMD ["/usr/bin/supervisord" "-c" "/etc/neko/supervisord.conf"]

2026-03-09 03:36:51 UTC (buildkit.dockerfile.v0)

LABEL net.m1k1o.neko.api-version=3

2026-03-09 03:37:15 UTC (buildkit.dockerfile.v0)

COPY /src/bin/plugins/ /etc/neko/plugins/ # buildkit

2026-03-09 03:37:15 UTC (buildkit.dockerfile.v0)

COPY /src/bin/neko /usr/bin/neko # buildkit

2026-03-09 03:37:21 UTC (buildkit.dockerfile.v0)

COPY /src/dist/ /var/www # buildkit

2026-03-09 03:37:21 UTC (buildkit.dockerfile.v0)

COPY /usr/local/lib/xorg/modules/drivers/dummy_drv.so /usr/lib/xorg/modules/drivers/dummy_drv.so # buildkit

2026-03-09 03:37:21 UTC (buildkit.dockerfile.v0)

COPY /usr/local/lib/xorg/modules/input/neko_drv.so /usr/lib/xorg/modules/input/neko_drv.so # buildkit

2026-03-09 03:37:21 UTC (buildkit.dockerfile.v0)

COPY config.yml /etc/neko/neko.yaml # buildkit

2026-03-09 03:41:57 UTC (buildkit.dockerfile.v0)

SHELL [/bin/bash -c]

2026-03-09 03:41:57 UTC (buildkit.dockerfile.v0)

RUN /bin/bash -c set -eux; apt-get update; ARCH=$(dpkg --print-architecture); wget -O /tmp/vivaldi.deb "https://downloads.vivaldi.com/stable/vivaldi-stable_${ARCH}.deb"; apt-get install -y --no-install-recommends wget unzip xz-utils jq openbox; apt install -y --no-install-recommends /tmp/vivaldi.deb; EXTENSIONS_DIR="/usr/share/chromium/extensions"; EXTENSIONS=( cjpalhdlnbpafiamejdnhcphjbkeiagm mnjggcdmjocbbbhaepdhchncahnbgone ); mkdir -p "${EXTENSIONS_DIR}"; for EXT_ID in "${EXTENSIONS[@]}"; do EXT_URL="https://clients2.google.com/service/update2/crx?response=redirect&prodversion=100&acceptformat=crx2,crx3&x=id%3D${EXT_ID}%26installsource%3Dondemand%26uc"; EXT_PATH="${EXTENSIONS_DIR}/${EXT_ID}.crx"; wget -O "${EXT_PATH}" "${EXT_URL}"; EXT_VERSION="$(unzip -p "${EXT_PATH}" manifest.json 2>/dev/null | jq -r ".version")"; echo -e "{\n \"external_crx\": \"${EXT_PATH}\",\n \"external_version\": \"${EXT_VERSION}\"\n}" > "${EXTENSIONS_DIR}"/"${EXT_ID}".json; done; apt-get --purge autoremove -y xz-utils jq; apt-get clean -y; rm -rf /var/lib/apt/lists/* /var/cache/apt/* # buildkit

2026-03-09 03:41:57 UTC (buildkit.dockerfile.v0)

COPY supervisord.conf /etc/neko/supervisord/vivaldi-browser.conf # buildkit

2026-03-09 03:41:57 UTC (buildkit.dockerfile.v0)

COPY --chown=neko preferences.json /home/neko/.config/vivaldi/Default/Preferences # buildkit

2026-03-09 03:41:57 UTC (buildkit.dockerfile.v0)

COPY policies.json /etc/opt/vivaldi/policies/managed/policies.json # buildkit

2026-03-09 03:41:57 UTC (buildkit.dockerfile.v0)

COPY openbox.xml /etc/neko/openbox.xml # buildkit

Danger Zone
Delete Tag

Please be careful as this will not just delete the reference but also the actual content!

For example when you have latest and v1.2.3 both pointing to the same image
the deletion of latest will also permanently remove v1.2.3.

Delete