views:

157

answers:

1

I would like to set up an SVN Repository on this Old machine I have at home and make it available over the net. This Computer is quite old, so I want to use Ubuntu Linux.

I browsed around for some time, looking for certain combinations, and have now made up my mind as to what I want, but I cant find anything that implements it all, and as a result I have gotten VERY confused by the Different Configurations.

I would like to use (tell me if you have any suggestions about this setup)

  • Ubuntu 9.04 Server (for the speed, I'm still looking for a light GUI that I can start on demand, just in case; but that's not topic of my question)

  • Apache 2

  • Something to Secure the connection (but Not SSL - I tried that and I Mozilla tried to frighten me away from my Server - Maybe OpenSSH, that sounds quite good? I read about svn+ssh://)

I want only people with password to be able to see, no anonymous reading/browsing. The time isn't ripe for my projects to go open source. Some will say a local repository is good, But I have collaborators from all over the country who need to check in and out from it.

Since I dont want to buy a Domain they will have to phone/chat and ask for IP all the time, but thats ok with me. This leads to another problem - How do I tell the router that If someone comes to call at this IP on Port So-and-so to redirect him to the Apache Server? I read about DMZ or something but honestly I have no clue.

So:

  1. What packages to install?
  2. What to Put into the Configuration files?

P.S. - I want to host multiple repositories on this server - Something to do with SVNParentPath instead of SVNPath ?

Thanks to anyone who is willing to help!

+2  A: 

All you need is openssh and subversion packages.

This will allow you to use svn+ssh://[email protected]/full/path/to/repo

Using SSH is great because you get all the benefits of SSH as well, including the security.

You will need to use the svnadmin command to create a repository then access it using svn+ssh.

So if you decide to create your repository like this:

svnadmin create --fs-type fsfs /home/user/mynewrepo

Then you can use this uri to access your repo:

svn+ssh://[email protected]/home/user/mynewrepo

Your svn client must support svn+ssh which the command line does in Linux, and TortoiseSVN does also.

You can give each user the same account to use, or create individual accounts for each dev and apply standard linux permissions to the repository to allow all of them to read and write to the repository.

Kekoa
Really, thats IT? no Apache? I'm going to try right now. Thanks for the prompt Response.
wsd
Yes, make sure you start up your sshd process, that is what you'll connect to. run this command to start it: /etc/init.d/sshd start
Kekoa
You can go with a more complicated apache setup if you want to make the repository public, but you can access the same repository multiple ways in the end. I normally don't require public acess.
Kekoa
Thanks. I have one problem at the moment - I cant find the openssh package in my Synaptic, even with all sources enabled. Do I have to download this seperately?
wsd
I assume you're hosting this at your home, and that you have a dynamically assigned public IP. You might look into Dynamic DNS - it can give you a predictable domain name even though your IP address changes. http://en.wikipedia.org/wiki/Dynamic_DNS
The Digital Gabeg
Hmm... i see what you mean with Dynamic DNS, but my problem is actually that I am behind a router, And while I have the tools to find out the external IP of the router, I cant yet access anything hosted on a network computer. I need something to get through from the router to the PC inside the home network. Preferably, so "normal" internet traffic doesnt get disturbed the develoeprs would type something like "svn+ssh://255.255.255.255:255/svn/Repo1" and end up here, with a password prompt. Any way to fix this?
wsd