Merge branch 'server-demo' into 'master'

Add server demo and add more server packages to CI

See merge request redox-os/redox!1646
This commit is contained in:
Wildan Mubarok 2025-09-26 23:11:42 +00:00
commit a4e3901d3f
3 changed files with 223 additions and 2 deletions

View File

@ -162,6 +162,12 @@ data = ""
directory = true
mode = 0o755
[[files]]
path = "/var/run"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/var/tmp"
data = ""

View File

@ -27,6 +27,7 @@ base-initfs = {}
bash = {}
binutils = {}
bootloader = {}
bzip2 = {}
ca-certificates = {}
cairo = {}
#cairodemo = {} # linking errors
@ -34,6 +35,7 @@ cairo = {}
cargo = {}
cleye = {}
#cmatrix = {} # needs ncursesw now
composer = {}
contain = {}
coreutils = {}
cosmic-edit = {}
@ -94,22 +96,29 @@ kernel = {}
kibi = {}
lci = {}
libc-bench = {}
libavif = {}
libedit = {}
libffi = {}
libgcc = {}
libgmp = {}
libiconv = {}
libicu = {}
libjpeg = {}
libogg = {}
libonig = {}
liborbital = {}
libpng = {}
libstdcxx = {}
libsodium = {}
libvorbis = {}
libwebp = {}
libxkbcommon = {}
libuuid = {}
libxml2 = {}
llvm18 = {}
lsd = {}
lua54 = {}
lz4 = {}
#mdp = {} # gcc hangs
mednafen = {}
mesa = {}
@ -128,10 +137,13 @@ neverball = {}
#newlib = {} # obsolete
#newlibtest = {} # obsolete
nghttp2 = {}
nginx = {}
#nushell = {} # needs cargo update
onefetch = {}
openjazz = {}
openssh = {}
openssl1 = {}
openssl3 = {}
openttd = {}
openttd-opengfx = {}
openttd-openmsx = {}
@ -154,6 +166,7 @@ patchelf = {}
pcre = {}
perg = {}
periodictable = {}
php84 = {}
#perl5 = {} # ctermid, tempnam, ttyname
pixelcannon = {}
#pixman = {} # depends on glib which does not build
@ -164,7 +177,7 @@ pop-icon-theme = {}
#powerline = {} # dirs
prboom = {}
procedural-wallpapers-rs = {}
#python37 = {} # getaddrinfo
python312 = {}
#qemu = {} # can be built, but not working
readline = {}
redoxerd = {}
@ -179,6 +192,7 @@ resist = {}
ripgrep = {}
rodioplay = {}
rs-nes = {}
rsync = {}
rust = {}
rust64 = {}
#rust-cairo = {} # linking errors
@ -207,7 +221,7 @@ simple-http-server = {}
smith = {}
sodium = {}
sopwith = {}
#openssh = {}
sqlite3 = {}
strace = {}
#syobonaction = {} # linking errors
terminfo = {}
@ -224,5 +238,7 @@ vttest = {}
#webrender = {} # unwind
#wesnoth = {}
winit = {}
xxhash = {}
xz = {}
zlib = {}
zstd = {}

View File

@ -0,0 +1,199 @@
# Configuration for server stack demonstration
include = ["../server.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 4096
# Package settings
[packages]
# Daemons
openssh = {}
nginx = {}
# Backends
php84 = {}
composer = {}
luajit = {}
python312 = {}
# go = {}
# zig = {}
# Tools
nano = {}
neovim = {}
rsync = {}
vim = {}
sqlite3 = {}
# tmux = {}
# htop = {}
# Content
website = {}
[[files]]
path = "/home/user/public_html/index.php"
data = """
<?php
echo "Hello from PHP on Redox!";
"""
[[files]]
path = "/home/user/public_html/phpinfo.php"
data = """
<?php phpinfo();
"""
[[files]]
path = "/home/user/public_html/README"
data = """
This is a demonstration into PHP server.
At the moment to run composer you have to run it like:
> php /bin/composer install
"""
[[files]]
postinstall = true
data = ""
path = "/etc/nginx/conf.d"
directory = true
[[files]]
postinstall = true
path = "/etc/nginx/nginx.conf"
data = """
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
include mime.types;
include fastcgi.conf;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
}
"""
[[files]]
postinstall = true
path = "/etc/nginx/conf.d/localhost.conf"
data = """
server {
listen 80;
server_name localhost;
root /usr/share/website;
location / {
index index.html index.htm;
}
}
"""
[[files]]
postinstall = true
path = "/etc/nginx/conf.d/php-www.conf"
data = """
server {
listen 8081;
server_name localhost;
root /home/user/public_html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \\.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
"""
[[files]]
postinstall = true
path = "/etc/php/84/php-fpm.conf"
data = """
include=/etc/php/84/php-fpm.d/*.conf
"""
[[files]]
postinstall = true
path = "/etc/php/84/php-fpm.d/www.conf"
data = """
[www]
user = user
group = user
listen = 127.0.0.1:9000
pm = static
pm.max_children = 1
"""
[[files]]
postinstall = true
path = "/etc/ssh/sshd_config"
data = """
Port 22
AddressFamily inet
AuthorizedKeysFile .ssh/authorized_keys
PermitRootLogin yes
PasswordAuthentication yes
PermitEmptyPasswords yes
Subsystem sftp /usr/libexec/sftp-server
"""
[users.nobody]
password = ""
shell = "/usr/bin/ion" #TODO: nologin?
[users.nginx]
password = ""
shell = "/usr/bin/ion" #TODO: nologin?
[[files]]
path = "/home/user/server.sh"
data = """
#!/usr/bin/env bash
/bin/sshd -D &
nginx -g "daemon off;" &
php-fpm --nodaemonize &
"""
[[files]]
path = "/home/user/Welcome.txt"
data = """
##############################################################################
# Welcome to Redox Server Demo!
#
# This is a quick demonstration of Redox used as server stack.
# At the moment we support SSH, NGINX, Python, PHP. There's more to come
#
# This server demo is insecure by design, we encourage you to get familiar into
# basics of server security if you wish to use this as a production server.
#
# To start the daemon, run
# > sudo bash server.sh
#
# The server will start port 22 (ssh), 80 (static web) and 8080 (php)
##############################################################################
"""