diff --git a/.docker/files/base/Dockerfile b/.docker/files/base/Dockerfile index 0eb51c9..4342880 100644 --- a/.docker/files/base/Dockerfile +++ b/.docker/files/base/Dockerfile @@ -11,7 +11,7 @@ ARG USER_GID=$USER_UID # # install neko dependencies RUN set -eux; apt-get update; \ - apt-get install -y --no-install-recommends wget ca-certificates; \ + apt-get install -y --no-install-recommends wget ca-certificates supervisor; \ # # create a non-root user groupadd --gid $USER_GID $USERNAME; \ @@ -45,12 +45,9 @@ ENV NEKO_BIND=:8080 # # neko config -COPY .docker/files/dbus /usr/bin/dbus -COPY .docker/files/openbox.xml /etc/neko/openbox.xml -COPY .docker/files/supervisord.conf /etc/neko/supervisord.conf -COPY .docker/files/xorg.conf /etc/neko/xorg.conf -COPY .docker/files/default.pa /etc/pulse/default.pa -COPY .docker/files/neko/supervisord.conf /etc/neko/supervisord/neko.conf +COPY .docker/files/base/supervisord.conf /etc/neko/supervisord.conf +COPY .docker/files/base/xorg.conf /etc/neko/xorg.conf +COPY .docker/files/base/neko.conf /etc/neko/supervisord/neko.conf # # neko dist diff --git a/.docker/files/base/neko.conf b/.docker/files/base/neko.conf new file mode 100644 index 0000000..e51a15b --- /dev/null +++ b/.docker/files/base/neko.conf @@ -0,0 +1,11 @@ + +[program:neko] +environment=HOME="/home/%(ENV_USER)s",USER="%(ENV_USER)s",DISPLAY="%(ENV_DISPLAY)s" +command=/usr/bin/neko serve -d --static "/var/www" +autorestart=true +priority=800 +user=%(ENV_USER)s +stdout_logfile=/var/log/neko/neko.log +stdout_logfile_maxbytes=100MB +stdout_logfile_backups=10 +redirect_stderr=true \ No newline at end of file diff --git a/.docker/files/base/supervisord.conf b/.docker/files/base/supervisord.conf new file mode 100644 index 0000000..d33de54 --- /dev/null +++ b/.docker/files/base/supervisord.conf @@ -0,0 +1,42 @@ +[supervisord] +nodaemon=true +pidfile=/var/run/supervisord.pid +logfile=/dev/null +logfile_maxbytes=0 +loglevel=debug + +[include] +files=/etc/neko/supervisord/*.conf + +[program:dbus] +environment=HOME="/root",USER="root" +command=/usr/bin/dbus +autorestart=true +priority=100 +user=root +stdout_logfile=/var/log/neko/dbus.log +stdout_logfile_maxbytes=100MB +stdout_logfile_backups=10 +redirect_stderr=true + +[program:x-server] +environment=HOME="/home/%(ENV_USER)s",USER="%(ENV_USER)s" +command=/usr/bin/X -config /etc/neko/xorg.conf %(ENV_DISPLAY)s +autorestart=true +priority=300 +user=%(ENV_USER)s +stdout_logfile=/var/log/neko/xorg.log +stdout_logfile_maxbytes=100MB +stdout_logfile_backups=10 +redirect_stderr=true + +[program:pulseaudio] +environment=HOME="/home/%(ENV_USER)s",USER="%(ENV_USER)s",DISPLAY="%(ENV_DISPLAY)s" +command=/usr/bin/pulseaudio --disallow-module-loading -vvvv --disallow-exit --exit-idle-time=-1 +autorestart=true +priority=300 +user=%(ENV_USER)s +stdout_logfile=/var/log/neko/pulseaudio.log +stdout_logfile_maxbytes=100MB +stdout_logfile_backups=10 +redirect_stderr=true \ No newline at end of file diff --git a/.docker/files/base/xorg.conf b/.docker/files/base/xorg.conf new file mode 100644 index 0000000..c803041 --- /dev/null +++ b/.docker/files/base/xorg.conf @@ -0,0 +1,88 @@ +# This xorg configuration file is meant to be used by xpra +# to start a dummy X11 server. +# For details, please see: +# https://xpra.org/trac/wiki/Xdummy + +Section "ServerFlags" + Option "DontVTSwitch" "true" + Option "AllowMouseOpenFail" "true" + Option "PciForceNone" "true" + Option "AutoEnableDevices" "false" + Option "AutoAddDevices" "false" +EndSection + +Section "InputDevice" + Identifier "dummy_mouse" + Option "CorePointer" "true" + Driver "void" +EndSection + +Section "InputDevice" + Identifier "dummy_keyboard" + Option "CoreKeyboard" "true" + Driver "void" +EndSection + +Section "Device" + Identifier "dummy_videocard" + Driver "dummy" + Option "ConstantDPI" "true" + #VideoRam 4096000 + #VideoRam 256000 + VideoRam 192000 +EndSection + +Section "Monitor" + Identifier "dummy_monitor" + HorizSync 5.0 - 1000.0 + VertRefresh 5.0 - 200.0 + #This can be used to get a specific DPI, but only for the default resolution: + #DisplaySize 508 317 + #NOTE: the highest modes will not work without increasing the VideoRam + # for the dummy video card. + # https://arachnoid.com/modelines/ + + # 1280x720 @ 30.00 Hz (GTF) hsync: 21.99 kHz; pclk: 33.78 MHz + Modeline "1280x720_30.00" 33.78 1280 1288 1408 1536 720 721 724 733 -HSync +Vsync + + # 1280x720 @ 60.00 Hz (GTF) hsync: 44.76 kHz; pclk: 74.48 MHz + Modeline "1280x720_60.00" 74.48 1280 1336 1472 1664 720 721 724 746 -HSync +Vsync + # 1152x648 @ 60.00 Hz (GTF) hsync: 40.26 kHz; pclk: 59.91 MHz + Modeline "1152x648_60.00" 59.91 1152 1200 1320 1488 648 649 652 671 -HSync +Vsync + # 1024x576 @ 60.00 Hz (GTF) hsync: 35.82 kHz; pclk: 47.00 MHz + Modeline "1024x576_60.00" 47.00 1024 1064 1168 1312 576 577 580 597 -HSync +Vsync + # 960x720 @ 60.00 Hz (GTF) hsync: 44.76 kHz; pclk: 55.86 MHz + Modeline "960x720_60.00" 55.86 960 1008 1104 1248 720 721 724 746 -HSync +Vsync + # 800x600 @ 60.00 Hz (GTF) hsync: 37.32 kHz; pclk: 38.22 MHz + Modeline "800x600_60.00" 38.22 800 832 912 1024 600 601 604 622 -HSync +Vsync + + # 1920x1080 @ 30.00 Hz (GTF) hsync: 32.97 kHz; pclk: 80.18 MHz + Modeline "1920x1080_30.00" 80.18 1920 1984 2176 2432 1080 1081 1084 1099 -HSync +Vsync + # 1152x648 @ 30.00 Hz (GTF) hsync: 19.80 kHz; pclk: 26.93 MHz + Modeline "1152x648_30.00" 26.93 1152 1144 1256 1360 648 649 652 660 -HSync +Vsync + # 1024x576 @ 30.00 Hz (GTF) hsync: 17.61 kHz; pclk: 20.85 MHz + Modeline "1024x576_30.00" 20.85 1024 1008 1104 1184 576 577 580 587 -HSync +Vsync + # 960x720 @ 30.00 Hz (GTF) hsync: 21.99 kHz; pclk: 25.33 MHz + Modeline "960x720_30.00" 25.33 960 960 1056 1152 720 721 724 733 -HSync +Vsync + # 800x600 @ 30.00 Hz (GTF) hsync: 18.33 kHz; pclk: 17.01 MHz + Modeline "800x600_30.00" 17.01 800 792 864 928 600 601 604 611 -HSync +Vsync +EndSection + +Section "Screen" + Identifier "dummy_screen" + Device "dummy_videocard" + Monitor "dummy_monitor" + DefaultDepth 24 + SubSection "Display" + Viewport 0 0 + Depth 24 + Modes "1280x720_30.00" "1920x1080_60.00" "1280x720_60.00" "1152x648_60.00" "1024x576_60.00" "960x720_60.00" "800x600_60.00" "1920x1080_30.00" "1152x648_30.00" "1024x576_30.00" "960x720_30.00" "800x600_30.00" + EndSubSection +EndSection + +Section "ServerLayout" + Identifier "dummy_layout" + Screen "dummy_screen" + InputDevice "dummy_mouse" + InputDevice "dummy_keyboard" +EndSection \ No newline at end of file