How to run YouTrack 6 and TeamCity 8 on same system? WAR / JAR / MSI

I previously used the WAR file distributions of YT5 and TC8. I ran the MSI installer for TeamCity which created a Tomcat server, and used the WAR file for TC and YT, so they were distributed as http://computer/youtrack and http://comptuer/teamcity.

Well, now that YT6 doesn't have a WAR file and only JAR, MSI, and ZIP, I guess I can't run it on the Tomcat server? I can't run Jetty and Tomcat on the same server unless they're different ports being used.

How am I expected to use both of these products? With WAR files, it was so easy to set up since I just dumped the war file and then the relative path would be the name of the folder that was created. With the YT6 MSI install, I don't even see where I can set the base URL.

I really need to figure out how to get TC and YT to install and run on the same system. YT moved to Jetty, but TC still wants me to use Tomcat. So, which is it? How do I do this?
11 comments
Comment actions Permalink
The Upgrade Instructions aren't particular helpful since it simply states that the WAR distribution isn't supported and to use another one, but no mention of which one to use, how to do an upgrade if you have Team City, etc.

https://confluence.jetbrains.com/display/YTD6/Upgrade+Instructions

I remember reading somewhere that there was a plan to package YT and TC together. This seems more important than ever, but presumably is impossible or at least non-trivial given that they want to use different servers.

This is supposed to be an upgrade, but it's so unlike any other upgrade. I upgraded from YT 2 to 5 without anything like this.
0
Comment actions Permalink
I really need to figure out how to get TC and YT to install and run on the same system. YT moved to Jetty, but TC still wants me to use Tomcat. So, which is it? How do I do this?


As of 6.0 you can archive this by installing a reverse proxy (Nginx, Apache) in front of separate TeamCity and YouTrack servers.

With the YT6 MSI install, I don't even see where I can set the base URL.

Baseurl can be set on /settings page, as usual. Alternatively, there's a java start parameter jetbrains.youtrack.baseUrl available. Please refer to https://confluence.jetbrains.com/display/YTD6/Providing+Java+Start+Parameters if not sure how to set it up.

I remember reading somewhere that there was a plan to package YT and TC together.

Believe it or not, all these changes are a step towards the joint distribution packages for Jetbrains products, including TC + YT bundle.
0
Comment actions Permalink
As of 6.0 you can archive this by installing a reverse proxy (Nginx, Apache) in front of separate TeamCity and YouTrack servers.


That's a pretty big requirement to levy on us paying customers who run our systems standalone. It's not fair to assume that we have the ability to set one of these up. Most people work in very locked down environments where we can't just install whatever we want to.

We can't just install something like a reverse proxy. You're asking us to add a lot of IT infrastructure here. When we buy licenses, we're under the impression that any future upgrades we get will not require significant changes to how we do this. This has been the case of YT 2, 3, 4, 5. I simply backed up my DB, threw in the new WAR file, and away we went.

The really annoying part is that you provide something like an MSI to help streaminline the install process for Windows, but it doesn't even integrate at all with your own products (TeamCity). Why is it that when I install TeamCity through an installer, I can specify the path URl and such within the installer, but with YouTrack 6, I have to do something else. You say that I can set the base URL on the settings page? That just governs the E-Mails sent, I thought. When I run YT5 on Tomcat, the base url is the directory that got generated in the webapps folder, e.g. I renamed the Youtrack5.x.y.z.jar to youtrack.jar, so it made the URL http://mymachine/youtrack/ Simple. Now, I can't do this since I don't see how to set the base URL in a configuration file, nor how to set a Java Start Param in Jetty. Again, the instructions assume we're familiar with Jetty. Some people probably are, but I got to know Tomcat, and now we can't use that for YT, but have to use it for TeamCity.
0
Comment actions Permalink
It looks like that link is missing the big page of java start parameters (here: http://confluence.jetbrains.com/display/YTD6/YouTrack+Start+Java+Parameters)
0
Comment actions Permalink
Yeah I can't get a proxy working with httpd in order to get youtrack working in a different context.

I currently have a reverse proxy setup working with jenkins, which is another .jar running on port 11100:
ProxyPass        /jenkins http://localhost:11100/jenkins nocanon
ProxyPassReverse /jenkins http://localhost:11100/jenkins

<Proxy *>
    AddDefaultCharset off
    Order deny,allow
    Allow from all
</Proxy>


Runs fine, however you'll note there that I have to pass a '–prefix' parameter to jenkins when running to get it to work on http://localhost:11100/jenkins.

For youtrack I've tried the following:
ProxyPass        /youtrack http://localhost:11101
ProxyPassReverse /youtrack http://localhost:11101
(with and without 'nocanon' on ProxyPass)

And for my baseURL within youtracks settings I'm using the following:
http://host.ip/youtrack
Note this is without the '11101' port number.

Now when you first start the app it doesn't seem to do anything until a user goes to the site. When I go here:
http://host.ip/youtrack
I can see that the log suddenly starts showing some activity (ran jar with '&> /var/log/console.log). I assume this means that the httpd part is forwarding the stuff from /youtrack to localhost:11101.

However in the browser it seems that youtrack is trying to redirect to here:
http://host.ip/rootGo
Which gives me a 404 since httpd doesn't have a /rootGo/index.html page to show.

If I use http://host.ip/youtrack/dashboard it just shows text saying 'Loading...' and doesn't do anything.
If I use curl to get this same page from the host machine: curl -iL http://localhost/youtrack/dashboard
I see that all the references in the html are relative.

How do I get youtrack to respect the host.ip/youtrack address? Or is this a httpd problem? I really don't know how to diagnose this sort of stuff...
0
Comment actions Permalink
I agree. I'm extremely unhappy that I can't continue to deploy YouTrack on my tomcat server as I've done in the past. We have lots of tools deployed on our tomcat server. It is a big burden to choose and deploy an alternative method. (In addition, I find the installation and upgrade instructions for JAR and ZIP version to be inadequate and confusing. At minimum, why is there no description of the differences, advantages, and disadvantage between the JAR and ZIP version? I have no idea what the difference is. Surely there is some significant difference, isn't there? If not, then why the two different versions?)
0
Comment actions Permalink
I am pretty annoyed that, as a paying customer, I'm not being given a solution to my issue. I am attempting to run YT and TC on the same server and don't have a reasonable way to do so. Please help, Jet Brains? What's the point of paying for a license to get upgrades for a year if I can't upgrade?
0
Comment actions Permalink
Hi All,

Sorry for not replying to your thoughts earlier.

@Zombie Swan,

You're provided with the instructions here.
Jetty doesn't seem the point, and we had new option- installing YouTrack jar with context path, instructions.
Let me know if need any further assistance with this.

@devin, could you please clarify what missing parameters you meant here?

Thank you.
0
Comment actions Permalink
Alright, well, the new method you linked is a little better, I suppose. At least I can specify the URL / path. I'm still limited to either running this on a different computer, or a different port than TeamCity.

But, will I ever be able to run TC and YT in one web server together?

Also, when running a JAR file like this via command line, what is the recommended approach for running it as a service, or, at least in some way such that it will always run when the system starts. Should a Scheduled Task be used for this? Also, when running as a JAR like this, where do the log files go and where is the YouTrack data directory? Thanks.
0
Comment actions Permalink
The Upgrade Instructions should have a link to the java start parameters page to make it easy to figure out what the parameters should be.

https://confluence.jetbrains.com/display/YTD6/Upgrade+Instructions
Should have a link to
http://confluence.jetbrains.com/display/YTD6/YouTrack+Start+Java+Parameters
0
Comment actions Permalink
It's fine to run the different processes on different ports, this is generally recommended for different apps anyways.

You can use apache ProxyPass and ProxyPassReverse to do the proxy setup. This is what I do to get jenkins, gitblit, opengrok, and now youtrack to all run under the same base address.
0

Please sign in to leave a comment.