diff --git a/README.md b/README.md index 2a7d71c..977fd74 100644 --- a/README.md +++ b/README.md @@ -3,19 +3,17 @@ DaNode - A secure, small footprint web server written in D master: [![D](https://github.com/DannyArends/DaNode/actions/workflows/d.yml/badge.svg?branch=master)](https://github.com/DannyArends/DaNode/actions/workflows/d.yml) licence: [![license](https://img.shields.io/github/license/DannyArends/DaNode.svg?style=flat)](https://github.com/DannyArends/DaNode/blob/master/LICENSE.txt) -DaNode is a web server written in the [D programming language](https://dlang.org/) that hosts websites written in **ANY** language that can output to *stdout*. It supports multiple domains, SSL via [ImportC](https://dlang.org/spec/importc.html) with support for [Server Name Indication](https://en.wikipedia.org/wiki/Server_Name_Indication) (SNI) and [ACME](https://en.wikipedia.org/wiki/Automatic_Certificate_Management_Environment) automatic certificate renewal. +DaNode is a web server written in the [D programming language](https://dlang.org/) that can host websites in **ANY** language that can output to *stdout*. It supports multiple domains, SSL via [ImportC](https://dlang.org/spec/importc.html) with support for [Server Name Indication](https://en.wikipedia.org/wiki/Server_Name_Indication) (SNI) and [ACME](https://en.wikipedia.org/wiki/Automatic_Certificate_Management_Environment) automatic certificate renewal. *Battle tested in production for over 12 years, including hosting my own [personal website](https://www.dannyarends.nl/).* ### Main features -- Host websites in **ANY** language that writes to *stdout* -- HTTPS: SNI, TLS 1.2+, ACME auto-renewing certificates via [OpenSSL](https://www.openssl.org/) -- Minimal Code, CPU, and RAM footprint -- Static file serving: ETag, gzip, range requests, SSE, keep-alive, conditional GET -- Streaming multipart uploads - large files written directly to disk -- Per-domain config: CGI control, redirects, directory access -- Per-IP rate limiting and configurable request/upload size limits +- Host websites in **ANY** language that has a *stdout* +- Minimal footprint - code, CPU and RAM +- HTTPS with SNI, TLS 1.2+ and ACME auto-renew +- Static files support ETag, gzip and range requests +- Streams large file uploads directly to disk - Native APIs: PHP, Python, D, R - or [add your own](api/) ### Get DaNode @@ -93,12 +91,13 @@ nohup authbind danode/server -b 100 -v 0 > server.log 2>&1 & Start the server with a backlog (-b) of 100 simultaneous connection (per port), and less log output (-v 0). ``` ---port -p # HTTP port to listen on (integer) ---backlog -b # Backlog of clients supported simultaneously per port (integer) ---certDir # Location of folder with SSL certificates (string) ---keyFile # Server private key location (string) ---wwwRoot # Server www root folder holding website domains (string) ---verbose -v # Verbose level, logs on STDOUT (integer) +--port -p # HTTP port to listen on (integer) +--backlog -b # Backlog of clients supported simultaneously per port (integer) +--ssl # Location of SSL certificates folder (string) +--sslKey # Server private key filename (string) +--accountKey # Let's Encrypt account key filename (string) +--wwwRoot # Server www root folder holding website domains (string) +--verbose -v # Verbose level, logs on STDOUT (integer) ``` ### server.config @@ -140,13 +139,13 @@ touch www/domain.xxx/web.config ``` Add the following configuration settings to the web.config file, if you want to use scripting languages such as PHP, you have to manually allow the execution of cgi file. -Add the following lines in your web.cofig file to redirect to the index.php file, and +Add the following lines in your web.config file to redirect to the index.php file, and allow the webserver to execute the php script, and redirect the incomming requests to the index.php page: ``` -allowcgi = yes -redirecturl = index.php +allowcgi = yes +redirect = index.php ``` ### Update the hosts file @@ -166,12 +165,6 @@ Then add the following lines to this hostfile using your favourite editor: Save the file with these lines added, then open a browser and navigate to: http://www.domain.xxx, you should now see the content of your php / html file. -### Supported back-end languages - -Languages with supported APIs: PHP, PYTHON, D, R - -See: [api/README.md](api/README.md) - ### Contributing Want to contribute? Great! Contribute to this repo by starring ⭐ or forking 🍴, and feel