Neko a self-hosted virtual browser that runs in Docker and uses WebRTC technology.
https://neko.m1k1o.net/
Here is my Container Manager exported settings.
{
"CapAdd" : [ "SYS_ADMIN" ],
"CapDrop" : [],
"cmd" : "/usr/bin/supervisord -c /etc/neko/supervisord.conf",
"cpu_priority" : 50,
"enable_publish_all_ports" : false,
"enable_restart_policy" : false,
"enable_service_portal" : null,
"enabled" : true,
"env_variables" : [
{
"key" : "PATH",
"value" : "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
},
{
"key" : "DEBIAN_FRONTEND",
"value" : "noninteractive"
},
{
"key" : "USER",
"value" : "neko"
},
{
"key" : "DISPLAY",
"value" : ":99.0"
},
{
"key" : "PULSE_SERVER",
"value" : "unix:/tmp/pulseaudio.socket"
},
{
"key" : "XDG_RUNTIME_DIR",
"value" : "/tmp/runtime-neko"
},
{
"key" : "NEKO_PASSWORD",
"value" : "neko"
},
{
"key" : "NEKO_PASSWORD_ADMIN",
"value" : "admin"
},
{
"key" : "NEKO_BIND",
"value" : ":8080"
},
{
"key" : "NEKO_USERNAME",
"value" : "neko"
},
{
"key" : "NEKO_EPR",
"value" : "59000-59005"
},
{
"key" : "NEKO_NAT1TO1",
"value" : "192.168.11.5"
},
{
"key" : "NEKO_FILE_TRANSFER_ENABLED",
"value" : "true"
}
],
"exporting" : false,
"id" : "a09751d176c47a3e471d4d520f85655fc08f73fe67c432c1690103763b6b3f96",
"image" : "m1k1o/neko:chromium",
"is_ddsm" : false,
"is_package" : false,
"labels" : {},
"links" : [],
"memory_limit" : 2147483648,
"name" : "neko-chromium",
"network" : [
{
"driver" : "bridge",
"name" : "bridge"
}
],
"network_mode" : "bridge",
"port_bindings" : [
{
"container_port" : 59000,
"host_port" : 59000,
"type" : "udp"
},
{
"container_port" : 59001,
"host_port" : 59001,
"type" : "udp"
},
{
"container_port" : 59002,
"host_port" : 59002,
"type" : "udp"
},
{
"container_port" : 59003,
"host_port" : 59003,
"type" : "udp"
},
{
"container_port" : 59004,
"host_port" : 59004,
"type" : "udp"
},
{
"container_port" : 59005,
"host_port" : 59005,
"type" : "udp"
},
{
"container_port" : 8080,
"host_port" : 8181,
"type" : "tcp"
}
],
"privileged" : false,
"service_portals" : [],
"shortcut" : {
"enable_shortcut" : false,
"enable_status_page" : false,
"enable_web_page" : false,
"web_page_url" : ""
},
"use_host_network" : false,
"version" : 2,
"volume_bindings" : [
{
"host_volume_file" : "/docker/neko-chromium",
"is_directory" : true,
"mount_point" : "/home/neko/Downloads",
"type" : "rw"
},
{
"host_volume_file" : "/docker/neko-chromium/chromium-policys.json",
"is_directory" : false,
"mount_point" : "/etc/chromium/policies/managed/policies.json",
"type" : "ro"
}
]
}
According to this, Here is the policies for chromium.
chromium-policys.json
{
"DownloadRestrictions": 0,
"AllowFileSelectionDialogs": true,
"URLAllowlist": [
"file:///home/neko/Downloads"
]
}
And then change download folder permission to 777
, in my case is /volume1/docker/neko-chromium