HTTP Server
The Everything HTTP server allows you to search and access your files from a web browser on another computer, phone, or tablet on your local network.
Download
Start the HTTP server
Access the HTTP server
Change username and password
Different indexes
Options
Disable file downloading
Security
URL query string
Customize the HTTP server
Run the HTTP server as a service
Troubleshooting
See also
Download
The HTTP server is available as a separate plugin for Everything.
HTTP Server Plugin
Everything 1.4 includes the HTTP server by default.
Start the HTTP server
The HTTP server is disabled by default.
To start the HTTP server:
- In Everything, from the Tools menu, click Options.
- Click the HTTP Server tab on the left.
- Check Enable HTTP server.
- Optionally, set a username and password.
- Click OK.
- When prompted, allow Everything through the Windows Firewall.
Access the HTTP server
To access the HTTP server from a device on the same network:
- In your web browser address bar, enter
http://host or http://ip-address. Replace host with the computer name running Everything (for example: http://DESKTOP-XXXXXX), or ip-address with its local IP address (for example: http://192.168.1.100).
If a custom HTTP server port is configured, append
:port to the URL (for example:
http://DESKTOP-XXXXXX:8080).
Change username and password
To change the HTTP server username and password:
- In Everything, from the Tools menu, click Options.
- Click the HTTP Server tab on the left.
- Set the Username.
- Set the Password.
- Click OK.
If both the username and password fields are empty, no authentication is required to access the HTTP server.
For more information, see
Security.
Different indexes
The HTTP server can run in a separate Everything instance with its own custom index.
For example, you can run your main Everything instance with full access to all indexed volumes, while running a separate HTTP server instance configured to share only selected folders or NTFS volumes over the network.
For more information, see
Multiple Instances.
Options
Configure settings for the HTTP server.
To change the HTTP server settings:
- In Everything, from the Tools menu, click Options.
- Click the HTTP Server tab on the left.
- Enable HTTP server
- Enables or disables the HTTP server.
- Bind to interfaces
- Bind the listening socket to the specified interfaces.
Leave empty to bind to all available network interfaces.
Use 127.0.0.1 to restrict access strictly to the local machine.
- Listen on port
- Sets the port number for incoming connections.
To connect from a web browser when using a non-default port (other than 80), append :port to the address (for example: http://DESKTOP-XXXXXX:8080).
- Username
- The username required for HTTP Basic authentication.
Leave both username and password empty to disable authentication.
- Password
- The password required for HTTP Basic authentication.
Leave both username and password empty to disable authentication.
- Enable logging
- Enables logging of HTTP requests and server events.
- Log file
- The path and file name of the log file.
Click Select to choose the log file.
- Maximum size
- The maximum size of the log file in KB.
When the log exceeds this limit, older entries are automatically trimmed from the beginning of the file.
- Serve pages from
- The folder containing custom web files to serve.
Leave empty to load files from %APPDATA%\Everything\HTTP Server (or the HTTP Server folder in the same location as Everything.exe if Store settings and data in %APPDATA%\Everything is disabled).
- Default page
- The default page displayed when opening the root URL.
Leave empty to display the default search interface and drive list.
- Allow file download
- Allows users to download files from search results.
When disabled, users can browse and search file listings, but cannot download files.
Disable file downloading
To prevent files from being downloaded from the HTTP server:
- In Everything, from the Tools menu, click Options.
- Click the HTTP Server tab on the left.
- Uncheck Allow file download.
- Click OK.
Web browsers can still search and browse the Everything index.
File names, paths, sizes, and dates remain visible.
Security
Consider the following before making the HTTP server reachable from an untrusted network.
Any web browser that can authenticate can search every file and folder in your Everything index.
Files can also be downloaded unless file downloading is disabled.
To disable file downloading, see
Disable file downloading.
The HTTP server uses HTTP Basic authentication.
The username and password are sent using Base64 encoding.
Anyone able to observe an unencrypted connection can recover them.
The HTTP server does not support TLS.
Leaving both the username and password empty disables authentication.
To reduce exposure:
- Use Bind to interfaces to limit the server to a specific interface, or to
127.0.0.1 for local connections only.
- Restrict access to the listening port with the Windows Firewall.
- Limit the index to only the files and folders you intend to share. See Different indexes.
- Uncheck Allow file download if clients only need to search and browse.
- Do not expose an HTTP server directly to the internet. Use a VPN or an SSH tunnel instead.
URL query string
The HTTP server accepts search options and result settings as URL query string parameters.
Each parameter uses the
key=value format.
Parameters can be combined and omitted when not required.
For example, to search for
ABC and
123, return the first 100 results, and sort the results by size in descending order:
http://localhost/?search=ABC+123&offset=0&count=100&sort=size&ascending=0
Keys:
- search
- s
- q
- The search text.
- offset
- o
- Start displaying results at the specified offset.
- count
- c
- Return no more than the specified number of results.
- json
- j
- Return results as a JSON object if the value is nonzero.
- case
- i
- Match case if the value is nonzero.
- diacritics
- m
- Match diacritics if the value is nonzero.
- wholeword
- w
- Match whole words if the value is nonzero.
- path
- p
- Search full paths if the value is nonzero.
- prefix
- Match prefix if the value is nonzero.
- suffix
- Match suffix if the value is nonzero.
- ignore_punctuation
- Ignore punctuation if the value is nonzero.
- ignore_whitespace
- Ignore whitespace if the value is nonzero.
- regex
- r
- Perform a regular expression search if the value is nonzero.
- path_column
- Include the result path in the JSON object if the value is nonzero.
- size_column
- Include the result size in the JSON object if the value is nonzero.
- date_modified_column
- Include the result modified date in the JSON object if the value is nonzero.
- sort
- Sort results by one of the following:
| Sort name | Description |
| name | Sort by name. |
| path | Sort by path. |
| date_modified | Sort by date modified. |
| size | Sort by size. |
- ascending
- Sort in ascending order if the value is nonzero.
Default query string values:
| Key | Value |
| search | |
| offset | 0 |
| count | 32 |
| json | 0 |
| case | 0 |
| diacritics | 0 |
| wholeword | 0 |
| path | 0 |
| prefix | 0 |
| suffix | 0 |
| ignore_punctuation | 0 |
| ignore_whitespace | 0 |
| regex | 0 |
| sort | name |
| ascending | 1 |
Default JSON query string values:
| Key | Value |
| search | |
| offset | 0 |
| count | 4294967295 |
| json | 1 |
| case | 0 |
| diacritics | 0 |
| wholeword | 0 |
| path | 0 |
| prefix | 0 |
| suffix | 0 |
| ignore_punctuation | 0 |
| ignore_whitespace | 0 |
| regex | 0 |
| path_column | 0 |
| size_column | 0 |
| date_modified_column | 0 |
| sort | name |
| ascending | 1 |
Customize the HTTP server
Customize the HTML, CSS, and image files used by the Everything HTTP server.
To customize the CSS and image files:
Everything will serve these files instead of the built-in default files.
To view your changes in a browser, hold
Shift and click the browser reload button to bypass cached files.
Change the default HTTP server page
To change the default HTTP server page:
- In Everything, from the Tools menu, click Options.
- Click the HTTP Server tab on the left.
- Set the Default page to your custom HTML page.
- Click OK.
Customize the HTTP server HTML
To customize the HTTP server HTML:
- In Everything, from the File menu, click Exit.
- Download the HTTP server strings template.
- Create a folder named
C:\EverythingHTTPServer.
- Extract
http_server_strings.ini to the C:\EverythingHTTPServer folder.
- Edit
C:\EverythingHTTPServer\http_server_strings.ini to customize the HTTP server HTML.
- Open your Plugins.ini file.
- Under the HTTP server plugin section ([http_server32.dll], [http_server64.dll], [http_serverARM.dll], or [http_serverARM64.dll]), set strings_filename to:
C:\EverythingHTTPServer\http_server_strings.ini
- Save and close
Plugins.ini.
- Restart Everything.
Run the HTTP server as a service
Use the Everything client service to run the HTTP server without having a user logged in.
To run the HTTP server as an Everything client service:
To make changes to the HTTP server:
To uninstall the Everything client service:
Troubleshooting
- Unable to start HTTP server: bind failed 10048
- The HTTP server port is already in use.
Make sure no other web server or application is using the same port, or change the HTTP server port.
To change the HTTP server port:
- In Everything, from the Tools menu, click Options.
- Click the HTTP Server tab on the left.
- Change the Listen on port to:
8080
- Click OK.
Use the same port when accessing the HTTP server.
- The web browser cannot connect to the server
- Check that the HTTP server is enabled on the server.
Check that the address bar includes the correct port if it is different from port 80.
Check Bind to interfaces is empty, or set to an interface the web browser can reach.
Check that the Windows Firewall allows Everything to accept connections on the listening port.
- No results are returned
- Check that the files and folders you expect are included in the index on the server.
If the HTTP server runs as a client service, check that the service is using the expected settings and index.
See also