Log In     Register    

Super Simple Server
The best way to create your web site.


Configuration Files
Settings that affect overall server operation or specify defaults for all sites are defined by the files in config/0_settings.  Site-specific settings are generally in config/mysite.example/0_site/settings.  Unless otherwise noted, each setting occupies one line, and follows the id:value format.

When the program is running, most configuration files are reloaded on intervals of 2-6 minutes, allowing you to make changes to the files directly without the need to restart the program or force a reload.


General Server Operation


config/0_settings/server.txt
config/mysite.example/0_site/settings/server.txt

ipmode
This controls whether to listen for incoming traffic on IPv4 and/or IPv6 networks.  Use 4, 46, 64, or 6.  The default is 46.

upnp
Set this to 0 or 1 to disable/enable the built-in UPNP/NAT-PMP client.  It will attempt to forward incoming ports as needed for HTTP, HTTPS, and DNS protocols.  The default is 1.

listen
Specify the exact addresses to listen on for incoming HTTP/HTTPS connections.  Separate multiple addresses with a comma.  This will override the ipmode setting.

http_port
The port number for incoming HTTP connections.  The default is 80.  When this setting has a non-default port, links to the web site will have a colon and the port number appended to the host name.

https_port
The port number for incoming HTTPS connections.  The default is 443.  When this setting has a non-default port, links to the web site will have a colon and the port number appended to the host name.

http_listen_port
The port number for incoming HTTP connections.  The default is 80.  This setting only affects the actual TCP listening address.  It does not affect the formatting of site links within the program.  This can be useful for situations where a forwarding proxy is used in front of the server.

https_listen_port
The port number for incoming HTTPS connections.  The default is 443.  This can be useful for situations where a forwarding proxy is used in front of the server.

https_cert_no_sni
Set this to 1 if you want this site's HTTPS certificate (if any) to be presented to clients that do no support Server Name Indication.

https_cert_fallback
Set this to 1 if you want this site's HTTPS certificate (if any) to be presented to clients that specify an unmatched host for Server Name Indication.

out_internet_client
Use proxy/tor/default/none.  The Tor option for clearnet addresses is currently not supported but will be in an upcoming release.  If this setting is not specified, the default is proxy if one is configured, otherwise default, which will use the regular OS networking functions to make the outgoing connection.

out_onion_client
Use proxy/tor/none.  If this setting is not specified, the default is proxy if one is configured, otherwise tor, which will use the built-in Tor client.

out_ipmode
This controls whether outgoing connections will be made on IPv4 and/or IPv6 networks.  Use 4, 46, 64, or 6.  The default is to use the ipmode setting documented above, which itself defaults to 46.

out_addr_4  /  out_addr_6
Binds all outgoing IPv4 / IPv6 connections to a specific local interface address.

proxy_proto
Sets all outgoing connections to use a proxy.  Supported protocols are socks4, socks5, http, https.

proxy_ssl
Set this to 1 and all outgoing proxy connections will use SSL/TLS encryption.  The proxy server must support this.

proxy_address
The IP address or host name of the proxy server.

proxy_port
The port number for the proxy.

proxy_login
The login for the proxy server.

proxy_password
The password for the proxy server.

cookie_domain
If specified, will add a domain parameter to the Set-Cookie HTTP response header.  This can be useful if you are sharing sessions between subdomains.

session_ttl
Seconds to allow a session to idle before expiring (ie. auto-logout).  Defaults to 1 day.

use_x_forwarded_for
When logging IP for page changes or forum posts, use the x-forwarded-for HTML header field to determine the actual source IP address, not the source address of the connection.  This is useful when requests are being routed through a reverse-proxy or other front-end server.

disable_remote_login
Disallow users from other sites to login.

https_redir
Redirect HTTP traffic to HTTPS if available.  Defaults to 1.

upload_max
Maximum upload file size.  Defaults to 20 MB.

upload_large_max
Maximum upload file size for users that meet the current upload_large protection threshold.  Defaults to 10 GB.

log
Can be set to common or combined.  Will log all requests for the site in either of the standard formats.

log_file
The full path for the request log output.  The default path is config/yoursite.example/0_site/logs.

no_cache
This will prevent all "304 Not Modified" replies from the server if set to 1.  The default is 0.

httpserver_compression
Allow compression for response bodies if the browser requests it.  Defaults to 1.  If set to 0, there will be no compression regardless of other settings.  Compression settings can only be used in the program-wide configuration file config/0_settings/server.txt and can not be configured per-site.

httpserver_compression_br
Allow Brotli compression for response bodies.  Defaults to 1.

httpserver_compression_gzip
Allow GZip compression for response bodies.  Defaults to 1.

httpserver_compression_deflate
Allow Deflate compression for response bodies.  Defaults to 1.

httpserver_compression_br_level
Sets the Brotli compression level for response bodies.  Can be from 0 to 11.  Defaults to 8.

httpserver_compression_gzip_level
Sets the GZip compression level for response bodies.  Can be from 0 to 9.  Defaults to 7.

httpserver_compression_deflate_level
Sets the Deflate compression level for response bodies.  Can be from 0 to 9.  Defaults to 7.

httpserver_compression_br_mimetypes
httpserver_compression_gzip_mimetypes
httpserver_compression_deflate_mimetypes
Sets the mime types eligible for compression.  Defaults to application/atom+xml application/javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype application/x-font-ttf application/x-javascript application/xhtml+xml application/xml font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon image/x-icon image/x-win-bitmap text/css text/html text/javascript text/plain text/xml


config/0_settings/bandwidth.txt

This file controls the server-wide bandwidth throttle, which is documented in the bandwidth reference.


config/mysite.example/0_site/https/public.pem
config/mysite.example/0_site/https/private.pem

The optional X509 certificate and private key to use for HTTPS connections.  The public.pem certificate must contain the full cert chain that is presented to the browser.  If these files are not present, HTTPS will not be served for this site.  If no site requires HTTPS, the port will not be listened on.

Note that HTTPS can be setup automatically using the built-in ACME client and popular services such as Let's Encrypt.  Read more in Creating A New Site.


Site Layout


config/0_settings/layout.txt
config/mysite.example/0_site/settings/layout.txt

def_img_style
Sets the default style= attribute for [img] tags.  See the tag reference for a list of styles.

def_img_pos
Sets the default pos= attribute for [img] tags.  See the tag reference for a list of positions.

def_video_style
Sets the default style= attribute for [video] tags.  See the tag reference for a list of styles.

def_video_pos
Sets the default pos= attribute for [video] tags.  See the tag reference for a list of positions.

def_audio_style
Sets the default style= attribute for [audio] tags.  See the tag reference for a list of styles.

def_audio_pos
Sets the default pos= attribute for [audio] tags.  See the tag reference for a list of positions.

link_protocols
Comma separated list of protocol prefixes that will be auto-linked in content.  Defaults to http, https, fopnu, magnet, email.

log_lines_per_page
Used when rendering the change log for any page, using ?log at the end of the URL.

files_per_page
Used when rending a directory of files.

messages_per_page
Messages per page when viewing a topic in a forum.

topics_per_page
Topics per page when listing topics in a forum.

versions_per_page
Entries per page when viewing a page history.

users_per_page
Used when rendering /admin/users.

reduced_bandwidth
Set this to 1 if the site should use lower-quality images and no embedded media.


config/mysite.example/0_site/settings/redirects.txt

This allows HTTP redirects to be setup from any internal URL to any other URL.  Advanced URL matching options are available.  See the redirects reference page.


config/mysite.example/0_site/settings/forward.txt

This allows connections to be forwarded from any internal URL to any other URL, which can be on another server.  See the forwarding reference page.


Content Control


config/mysite.example/0_site/captchas

This directory contains all captcha images and answers.  Captcha image file names must end in .png, .jpg, .jpeg, .gif, or .svg.  The answer files must have the exact same file name as the captcha image, with the addition of .answer.txt.  Multiple answers can be allowed by specifying each on it's own line.


config/0_settings/protection.txt
config/mysite.example/0_site/settings/protection.txt

The protection file contains the various access levels that are required for various activities on a site.  This is documented in the protection levels reference.


config/0_settings/url_whitelist.txt
config/mysite.example/0_site/settings/url_whitelist.txt

When a user posts new content, like a page edit or forum message, all external URLs in the content are checked against this list.  If there are any URLs that are not on the list, the content is flagged for moderation.  Users that meet the urlfilter_whitelist_bypass protection level are not subject to URL moderation.

The list should contain one URL per line.  A match will happen if the URL being checked begins with an entry on the whitelist.  Both http and https protocols are treated equivalently.


config/0_settings/content_blacklist.txt
config/mysite.example/0_site/settings/content_blacklist.txt

When a user posts new content, it is scanned for each line in the blacklist.  If there are any matches, the content is flagged for moderation.  Users that meet the urlfilter_blacklist_bypass protection level are not subject to the blacklist moderation rules.


Specialized Protocols


config/0_settings/dns.txt
config/mysite.example/0_site/settings/dns.txt

The dns.txt file uses terms separated by only spaces.  Do not separate terms with a colon like the other config files.

listenaddress ...

Specifies the exact local addresses to listen for DNS queries on.

domaindomainaddress ...

This will setup a zone and default address records for a domain.  This also becomes the default domain until the end of the current file.  The address parameters are optional, and will default to the local interface addresses.  Multiple addresses can be used, separated by a space.  Use the address default to add the current default addresses.  Use the address auto to auto-detect the machine's IPs.

subdomainsub.domainaddress ...

Same as domain, but will not set up an independent zone with it's own SOA.

defaultaddress ...

Sets the default addresses used for domains and subdomains that don't specify an address, or specify default as an address.  This can be set to auto to auto-detect the machine's IPs, and this is the initial default.

ttlseconds

Sets the time-to-live for any records defined past this point to the end of the file.

soaauto
soanameserveremailserialrefreshretryexpireminimum

Sets the "statement of authority" record for the current domain.  If auto is used, which is the default mode, all following domains will also be auto by default.  The SOA records are generally inconsequential to site operation.


config/0_settings/ddns.txt
config/mysite.example/0_site/settings/ddns.txt

update_urlupdate_url_4update_url_6

These URLs will be sent a request upon startup and when your IP changes.  Separate IPv4/6 URLs can be provided, otherwise the common one will work for both.  For more information, see the Creating A New Site guide.

update_min_interval

Minimum seconds between updates.  Defaults to 4 minutes.

update_max_interval

Maximum seconds between updates, even if your IP doesn't change.  Defaults to 30 minutes.

ip_check_urlip_check_url_4ip_check_url_6

The URLs will be queried more frequently to determine the local IP in order to detect changes and trigger a full update.  The separate IPv4/6 URLs can be provided, or use the common one for both.

ip_check_interval

How many seconds between checks for IP changes.  Defaults to 2 minutes.


config/0_settings/acme.txt
config/mysite.example/0_site/settings/acme.txt

server_url
Enter any ACMEv2 directory URL.  For more information, see the Creating A New Site guide.

contact_email
Enter the contact email to be used for the ACMEv2 account creation.  This is optional.


Custom HTML / CSS


config/mysite.example/0_site/custom/example.txt

Files within the custom directory are inserted where the [custom=example/] tag appears.  See the complete format tag reference for more details.

config/mysite.example/0_site/custom/inline.css

Use this file to insert custom rules into the style header of any generated output.


Other Non-Editable Configuration Files


config/mysite.example/0_site/logs

Includes the site change log, ACME log, and various others.

config/mysite.example/0_site/storage

Temporary storage for various program components.

config/mysite.example/0_site/sessions

Temporary storage for all logged-in user sessions.  If you delete these files, all users get logged out.

config/mysite.example/0_site/trash

If the operating system does not have a trash or recycle-bin for deleting files, they will be placed in this folder, within their original folder structure.  You must manually delete all the files within this folder from time to time, to reclaim disk space.

config/mysite.example/0_site/users

User account storage.  Each file contains details such as the account creation date, access level, and password hash.

config/0_gui

For the GUI version of Super Simple Server only.  These files keep track of things like window positions and display colors.




© 2022 Tixati Software Inc.