[http://naviserver.sourceforge.net/ns_logobig.gif] [NaviServer%|%Main%|%] ✸ http://bitbucket.org/naviserver/naviserver/%|%Source Code %|% ✸ http://sourceforge.net/project/showfiles.php?group_id=130646%|%Downloads %|% ✸ http://naviserver.sourceforge.net/n/toc.html%|%API Documentation %|% ✸ http://sourceforge.net/mail/?group_id=130646%|%Mailing Lists%|% ✸ http://sourceforge.net/tracker/?group_id=130646&atid=719006%|%Bugs %|% ✸ https://www.ohloh.net/p/naviserver/contributors%|%Developers %|% ---- '''NaviServer''' is a programmable web server written in C and Tcl. It offers many features for building custom web sites. The implementation is high performance, but the interface is easy to use, at both the C and Tcl level. [http://www.ohloh.net/p/naviserver/analyses/latest/commits_spark.png] Features include: * Hybrid multi-threaded / async architecture for easy programmer interface ''and'' high performance * Threads isolated from each other with own Tcl interpreters [http://naviserver.sourceforge.net/n/naviserver/files/ns_ictl.html] * Shares data between threads easily with protected variables and caches[http://naviserver.sourceforge.net/n/naviserver/files/ns_cache.html] * Pooled database connections[http://naviserver.sourceforge.net/n/nsdb/files/ns_db.html] ''(also: [nsdbi])'' * Dynamic Pages in TCL [http://naviserver.sourceforge.net/n/naviserver/files/ns_register.html#1] (PHP- and ASP-like syntax) * Built-in cron-like scheduling * [Watchdog] for restarting server * Efficient handling for large up- and downloads (spooling and writer threads) * Optional non-blocking log file writing (to avoid file system latencies, since 4.99.4) * Fully async drivers for HTTP and SSL (based on poll(), supporting several 1000 file descriptors, since 4.99.4) * Gzipped delivery of dynamic and static content (since 4.99.5) * Support for IPv6 (since 4.99.11) * Integrated support for HTTPs (since 4.99.12, was an extra module called [nsssl] before) * Native crypto support based on OpenSSL (since 4.99.12, including HMAC, message digests, HOTP (RFC 6238 one time passwords), TOTP (RFC 6238 time based one time passwords) * Reverse proxy (since 4.99.14, via modules [revproxy]) * Dynamic thread pool mapping (since 4.99.15) * Caching with transaction semantics, rollback changes in cache when e.g. DB rollbacks occur (since 4.99.16) * Tcl configuration file[http://naviserver.sourceforge.net/n/naviserver/files/ns_config.html] * ''and much, much more..!'' Runs (and is tested regularly) on: [Linux], [Solaris], [MacOS X]. Also runs on [FreeBSD] and Windows[http://sourceforge.net/project/showfiles.php?group_id=130646&package_id=266633]. ---- '''Modules''' (documented ''so far'' on this wiki) * [nsdbi] database interface, and drivers: [nsdbipg], [nsdbimy], [nsdbilite]. * database drivers for the original nsdb interface: [nsdbpg], [nsdbtds], [nsdbmysql], [nsdbsqlite], [nsdbdbd] * protocol drivers to extend naviserver's capabilities beyond the web: [nsudp], [nsicmp], [nssnmp], [nsdns], [nssyslogd], [nsimap], [nsldapd], [nssnmtpd], [nsradiusd], [nsdhcpd], [nswebsocket], [revproxy] * service modules: [nsstats], [nsmemcache], [msauthpam], [nsaccess], [nsexpat], [nsgdchart], [nsphp], [nsvfs], [nszlib] * ''(complete list of [http://bitbucket.org/naviserver/%|%modules %|%], and here [http://naviserver.sourceforge.net/n/toc.html%|%modules with documentation %|%])'' ---- '''Configuration Examples''' * [Minimal Config%|%Minimal Configuration%|%] - the bare minimum. * [Virtual Hosts] - listen on the same IP and port for several hostnames. * [CGI Configuration] * [A simple tcl script using Tcl Library%|%Tcl Library Configuration%|%] ** [init.tcl script] * [Configuration with PostgreSQL] ** [Example of database connection] ** [Example of database connection using ns_db 1row] ** [Example of database connection using ns_db 0or1row] ** [Example of database connection using ns_db dml] * [Complete Config File] - reference for all config params. ---- '''HowTo''' * Porting to NaviServer: [NaviServer AOLserver Differences] * [NaviServer Command Mode] - for exploration and testing * [NaviServer Testing] - running tests and using the debugger * [Complete Config File] reference for all config params. * Running [PHP inside NaviServer] * [What you should be aware of when Running NaviServer] * [NaviServer Control Port] * [NaviServer inside Chroot Environment] * [NaviServer Running as Root] * [NaviServer Log Files] * Support for [.tcl-style dynamic pages] * Managing [TCL interpreter initialization] * Startup: [NaviServer rc-script Template] * You may want to compile your Tcl with the [vtmalloc] memory allocator * ... ---- '''Ancient History''' The code was originally [http://bitbucket.org/naviserver/naviserver/changeset/8e130eec8fbc/%|%(Feb 2005) %|%] forked from the [AOLserver] 4.10 branch, but has seen many independent [http://bitbucket.org/naviserver/naviserver/src/tip/NEWS%|%changes %|%] since then, and many back-ports of subsequent AOLserver 4.5 features. The current state of the code: [https://www.ohloh.net/p/naviserver/analyses/434088/codehistory?height=120&width=500&type=img.png] The two large spikes are imports of the entire Tcl codebase, from back in the day when AOLserver needed to patch it for thread safety. Here is the [https://www.ohloh.net/p/compare?metric=Activity&project_0=AOLserver&project_1=NaviServer%|%commit activity %|%] (green), compared to [AOLserver] (red): [https://www.ohloh.net/p/compare_chart?metric=Activity&project_0=AOLserver&project_1=NaviServer&tclwiki=img.png] Interestingly, AOLserver was originally called ''Naviserver'' before ''AOL'' bought the startup ''NaviSoft''. NaviSoft is mentioned in Charles Ferguson's book ''High Stakes, No Prisoners: A Winner's Tale of Greed and Glory in the Internet Wars''[http://www.amazon.com/High-Stakes-No-Prisoners-Internet/dp/0812931432], the story of his company Vermeer which developed FrontPage and he sold to Microsoft. ---- '''Comments''' [RLH] - According to the downloads page...not updated since February 2006? Old SF download system is not used because of constant development efforts, everybody is encourages to use repository. Recently the latest version is put into SF download area. [gavino] 21oct2011 More here http://www.crystalballinc.com/vlad/software/naviserver/ ---- [ARR] 2013-07-30 Is there anybody using NaviServer on Windows who managed ns_proxy to work? Nice to hear from you. [AntonioPisano] 2017-02-28 Support for Naviserver on Windows is currently provided by a company called SpazioIT. More info here [http://www.openacs.org/xowiki/openacs-system-install-windows-server] <>Category NaviServer | Category Webserver | Category Internet | Category Application | Category Threads