Installing on Windows

Before you begin, please read before installing section.

Before installing ManicTime Server

If you will use PostgreSQL or MS SQL for database, install the database server first.

If you already have one of these installed and are using it for other services, you can use it for ManicTime Server as well.

Download ManicTime Server

We suggest you download ManicTime Server Setup (.msi), it is easier to upgrade. Use .zip file only if you want to control where ManicTime files are. You can download it here.

Install ManicTime Server

Run the .msi file and follow the setup.

If you used the .zip file, extract to some folder, then run setup.exe to run the setup.

Database

By default, ManicTime Server will use SQLite database, which we recommend you use only for testing or for personal server. If you want to use PostgreSQL or MS SQL, then you need to install chosen database engine before you run ManicTime Server installer. Which database to choose?

Administrators

During install you will have an option to create administrators. We suggest you create at least one, so that you can then connect to ManicTime Server and make other changes to default settings.

Run ManicTime Server

When setup ends, it will automatically run the server and open a browser with a link to the server.

[Optional] Using HTTPS

During setup you will have an option to chose a a certificate which is used for HTTPS. Setup will list all certificates, which are in Control panel, Certificates store, under Personal and they have a private key. You can also set a certificate manually, at any time after installation (this also works if you wish to change/update the certificate): Run cmd, as admin, then write

netsh http add sslcert appid="{4780cfe6-2b27-4089-901f-e7762c8ea68f}" ipport=0.0.0.0:<manictime server port number> certhash=<certificate thumbprint>

There are two important things:

  • port number - whatever you are using, by default 8080
  • certificate hash - you can get it in certificate details

How to get the hash:

[Optional] Changing other server settings

Server has many settings, you can see them all in file

c:\Program files\ManicTime Server\Docs\ManicTimeServerSettings.Sample.json

This is just a sample file, the real configuration file is in folder

c:\ProgramData\ManicTime\Server\ManicTimeServerSettings.json

You can add settings to it like they are shown in the sample file, but the ManicTimeServerSettings.json file needs to be a valid JSON file.

Connecting ManicTime clients

Chances are, you installed ManicTime Server on a machine within your network somewhere. So any device on the network can now connect to it. Local network addresses usually start with 192.16*... Just use the correct IP:port and it should be accessible from any device on the same network.

If you want to connect from a device which is outside of your network, then you need to configure port forwarding or use some other way, so that the machine is visible outside of your network. (try googling "port forward < router model>" to see how to enable port forwarding on your router).

Making a connection from ManicTime

Before you try connecting from any ManicTime Client, first open a browser on that device and try to open a ManicTime Server web page. Once you have successfully connected to ManicTime Server, proceed with creating a connection from ManicTime Client.

On Windows, you can also deploy ManicTime via Group policy

How to deploy ManicTime with pre-configured settings

Running ManicTime Server as a service under dedicated user

Running the ManicTime Server as a service under a dedicated user account is a best practice for enhancing security and managing permissions effectively. By using a dedicated user, you limit the access rights of the service, ensuring that it only has the permissions necessary to operate, reducing the potential impact of security vulnerabilities.

1. Granting Full Access to the ManicTime Server Directory

The ManicTime Server requires full access to its directory to function correctly. To grant this access, follow these steps:

  1. Navigate to the Directory: The server files are typically located in C:\ProgramData\ManicTime\Server\.

  2. Assign Permissions: Ensure that the dedicated user has full control over this directory. This includes read, write, execute, and modify permissions.

2. Configuring URL Reservation for the ManicTime Server

To allow the ManicTime Server to listen on a specific port (e.g., 8080), you must reserve a URL for the server under the dedicated user.

How to configure the URL reservation:

  1. Open Command Prompt as Administrator: To make the necessary changes, you need to run the command prompt with administrative privileges.

  2. Execute the URL Reservation Command: Use the following command to reserve the URL for the ManicTime Server. Replace <username> with the name of the dedicated user account you created for running the service.

    netsh http add urlacl url=http://+:8080/ user=<username>