Icon

You are viewing the documentation of TeamCity 10.x and 2017.x, which is not the most recently released version of TeamCity.
View this page in TeamCity 2018.1 documentation or refer to the listing to choose the documentation corresponding to your TeamCity version.

 

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

After you obtained the TeamCity installation package, proceed with corresponding installation instructions:

  • Windows .exe distribution - the executable which provides the installation wizard for Windows platforms and allows installing the server as a Windows service;
  • .tar.gz distribution - the archive with a "portable" version suitable for all platforms;
  • Docker image - check the instructions at the image page;
  • .war distribution - for experienced users who want to run TeamCity in a separately installed Web application server. Please consider using .tar.gz distribution instead. .war is not recommended to use unless really required (please let us know the reasons).

...

  • include a Tomcat version which TeamCity is tested with, so it is known to be a working combination. This might not be the case with an external Tomcat.
  • define additional JRE options which are usually recommended for running the server
  • have the teamcity-server startup script which provides several convenience options (e.g. separate environment variable for memory settings) and configures TeamCity correctly (e.g. log4j configuration)
  • (at least under Windows) provide better error reporting for some cases (like a missing Java installation)
  • under Windows, allow running TeamCity as a service with the ability to use the same configuration as if run from the console
  • come bundled with a build agent distribution and single startup script which allows for easy TeamCity server evaluation with one agent
  • come bundled with the devPackage for TeamCity plugin development.
  • may provide more convenience features in the future

...

If you cannot access the TeamCity web UI after successful installation, please refer to the #Troubleshooting TeamCity Installation Issues section.

Panel

(info) The build server and one build agent will be installed by default for Windows, Linux or MacOS X. If you need more build agents, refer to the Installing Additional Build Agents section.

Panel

(warning) During the server setup you can select either an internal database or an existing external database. By default, TeamCity uses an HSQLDB database that does not require configuring. This database suites the purposes of testing and evaluating the system.
For production purposes, using a standalone external database is recommended.

...

If you opted to install the services, use the standard Windows Services applet to manage the service.
Otherwise, use standard scripts.

If you did not change the default port (80) during the installation, the TeamCity web UI can be accessed via "http://localhost/" address in a web browser running on the same machine where the server is installed. Please note that port 80 can be used by other programs (e.g. Skype, or other web servers like IIS). In this case you can specify another port during the installation and use "http://localhost:<port>/" address in the browser.

...

It is not recommended to use .war distribution. Use the TeamCity .tar.gz distribution (bundled with Tomcat web server) instead. If you have important reasons to deploy TeamCity into existing web server and want to use .war distribution, please let us know the reasons.

  1. Make sure your web application server is stopped.
  2. Copy the downloaded TeamCity<version number>.war file into the web applications directory of your J2EE container under the TeamCity.war name (the name of the file is generally used as a part of the URL) or deploy the .war following the documentation of the web server. Please make sure there is no other version of TeamCity deployed (e.g. do not preserve the old TeamCity web application directory under the web server applications directory).
  3. Ensure the TeamCity web application gets sufficient amount of memory. Please increase the memory accordingly if you have other web applications running in the same JVM.
  4. If you are deploying TeamCity to the Tomcat container, please add useBodyEncodingForURI="true" attribute to the main Connector tag for the server in the Tomcat/conf/server.xml file.
  5. If you are deploying TeamCity to Jetty container version >7.5.5 (including 8.x.x), please make sure the system property org.apache.jasper.compiler.disablejsr199 is set to true
  6. Ensure that the servlet container is configured to unpack the deployed war files. Though for most servlet containers it is the default behavior, for some it is not (e.g. Jetty version >7.0.2) and should be explicitly configured. TeamCity is not able to work from a packed .war: if started this way, there will be a note on this the logs and UI .
  7. Configure the appropriate TeamCity Data Directory to be used by TeamCity. 

    Note

    Note that it is recommended to start with an empty TeamCity Data Directory. After completing the installation and performing the first TeamCity server start, the required data (e.g. database settings file) can be moved to the directory.

  8. Check/configure the TeamCity logging properties by specifying the log4j.configuration and teamcity_logs internal properties.
  9. Restart the server or deploy the application via the servlet container administration interface and access http://server:port/TeamCity/, where "TeamCity" is the name of the war file.

...

Typically, you will need to unpack it and make the script perform the steps noted in Configuring Server for Production Use section.

If you want to get a pre-configured server right away, put files from a previously configured server into the Data Directory. For each new server you will need to ensure it points to a new database (configured in <Data Directory>\config\database.properties) and change <Data Directory>\config\main-config.xml file not to have "uuid" attribute in the root XML element (so new one can be generated) and setting appropriate value for "rootURL" attribute.

...

If you want to use another version of Tomcat web server instead of the one bundled in .tar.gz and .exe distributions), you have the choices of whether to use the .war TeamCity distribution (not recommended) or perform the Tomcat upgrade/patch for TeamCity installed from the .exe or .tar.gz distributions.
For the latter, you might want to:

...

By default, TeamCity runs on http://localhost:8111/ and has one registered build agent that runs on the same computer.

See the information below for changing the server port.

...

If TeamCity is installed into an existing web server (.war distribution), start the server according to its documentation. Make sure you configure TeamCity-specific logging-related properties and pass suitable memory options.

Autostart TeamCity server on Mac OS X

...

  1. Install TeamCity and make sure it works if started from the command line with bin/teamcity-server.sh start. We'll assume that TeamCity is installed in the /Library/TeamCity folder
  2. Create the /Library/LaunchDaemons/jetbrains.teamcity.server.plist file with the following content:

    Code Block
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    	<key>WorkingDirectory</key>
    	<string>/Library/TeamCity</string>
    	<key>Debug</key>
    	<false/>
    	<key>Label</key>
    	<string>jetbrains.teamcity.server</string>
    	<key>OnDemand</key>
    	<false/>
    	<key>KeepAlive</key>
    	<true/>
    	<key>ProgramArguments</key>
    	<array>
    		        <string>/bin/bash</string>
            <string>--login</string>
            <string>-c</string>
            <string>bin/teamcity-server.sh</string>
    		<string>run<sh run</string>
    	<    </array>
    	<key>RunAtLoad</key>
    	<true/>
    	<key>StandardErrorPath</key>
    	<string>logs/launchd.err.log</string>
    	<key>StandardOutPath</key>
    	<string>logs/launchd.out.log</string>
    </dict>
    </plist>
    
  3. Test your file by running launchctl load /Library/LaunchDaemons/jetbrains.teamcity.server.plist . This command should start the TeamCity server (you can see this from logs/teamcity-server.log and in your browser). 

  4. If you don't want TeamCity to start under the root permissions, specify the UserName key in the plist file, e.g.:

    Code Block
        <key>UserName</key>
    	<string>teamcity_user</string>
    

...

The TeamCity server will now start automatically when the machine starts.  To configure automatic start of a TeamCity Build Agent, see the dedicated section.

Setting PATH variable on OS X

Sometimes you may need to make sure that a program is located in PATH to be visible in the TeamCity server (p4, git). To set PATH path variable for the server started from jetbrains.teamcity.server.plist file, follows steps from this article

Installation Configuration

...

One of the most common issues with the server installation is using a port that is already used by another program. See below on changing the default port.

...

The TeamCity server requires JRE 1.8 to operate (download page), the agent can run with Java 1.6-1.8, but Java 1.8 is recommended. Recommended Oracle download is Java SE JDK.
It is recommended to use the 32-bit installation unless you need to dedicate more memory to TeamCity server. Please check the 64-bit Java notes before upgrade.
If you configured any native libraries for use with TeamCity (like a .dll for using Microsoft SQL database Integrated Security option), you need to update the libraries to match the JVM x86/x64 platform.

...

TeamCity server can run under both the 32- and 64-bit JVM.
It is recommended to use the 32-bit JVM unless you need to dedicate more than 1.2Gb of memory (via -Xmx JVM option) to the TeamCity process (see details) or your database requirements are different.

If you choose to use the 64-bit JVM, note that the memory usage is almost doubled when switching from the 32- to 64-bit JVM, so please make sure you specify at least twice as much memory as for 32-bit JVM, see #Setting Up Memory settings for TeamCity Server.

To update to the 64-bit Java:

  • update Java to be used by the server
  • set JVM memory options. It is recommended to set the following options for the 64-bit JVM: -Xmx4g -XX:ReservedCodeCacheSize=350m

...

Once you start using TeamCity for production purposes or you want to load the server during evaluation, you should manually set the appropriate memory settings for the TeamCity server.

...

  • minimum setting (the 32-bit Java should be used (bundled in .exe distribution)): -Xmx750m 
  • recommended setting for medium server use (the 32-bit Java should be used): -Xmx1024m.  Greater settings with the 32-bit Java can cause an OutOfMemoryError with "Native memory allocation (malloc) failed" JVM crashes or "unable to create new native thread" messages

  • recommended setting for large server use (64-bit Java should be used): -Xmx4g -XX:ReservedCodeCacheSize=350m.  These settings should be suitable for an installation with up to two hundreds of agents and thousands of build configurations. Custom plugins installed might require increasing the values defined via the Xmx parameter.
  • maximum settings for large-scale server use (64-bit Java should be used): -Xmx10g -XX:ReservedCodeCacheSize=512m. Greater values can be used for larger TeamCity installations. However, generally it is not recommended to use values greater than 10g without consulting TeamCity support.

...

Out-of-the-box TeamCity server installation is suitable for evaluation purposes. For production use you will need to perform additional configuration which typically includes:

  • Configuring correct server port (and access via https)
  • Make sure server URL, email and (optionally) Jabber server settings are specified and are correct
  • Configuring the server process for OS-dependent autostart on machine reboot
  • Using reliable storage for TeamCity Data Directory
  • Using external database
  • Configuring recommended memory settings, use "maximum settings" for active or growing servers
  • Planning for regular backups
  • Planning for regular upgrades to the latest TeamCity releases
  • (since TeamCity 10.0.3) Consider adding the "teamcity.installation.completed=true" line into the <TeamCity Home Directory>\conf\teamcity-startup.properties file - this will prevent the server from creating an administrator user if no such user is found

    hidden-data
     See https://youtrack.jetbrains.com/issue/TW-20027 for details

...