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?
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?
Please sign in to leave a comment.
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.
As of 6.0 you can archive this by installing a reverse proxy (Nginx, Apache) in front of separate TeamCity and YouTrack servers.
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.
Believe it or not, all these changes are a step towards the joint distribution packages for Jetbrains products, including TC + YT bundle.
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.
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...
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.
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.
https://confluence.jetbrains.com/display/YTD6/Upgrade+Instructions
Should have a link to
http://confluence.jetbrains.com/display/YTD6/YouTrack+Start+Java+Parameters
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.