Home > LiNuX (based on debian), SVN Server > Create SVN Server and Browsing Repository from WebServer (https)

Create SVN Server and Browsing Repository from WebServer (https)

Salah satu kegunaan SVN (subversion) adalah untuk mempermudah programmer dalam me-manage source code yang dibuatnya. SVN membantu kita utk melakukan update source code, rollback to specific version, membuat branch, dll.
Tutorial ini menjelaskan step-by-step proses instalasi SVN server, serta browsing melalui web server (https) pada webserver apache. Pada dasarnya tanpa membuat koneksi https kita juga sdh bisa mem-browsing isi SVN server melalui web server tetapi pada disini sengaja saya gunakan HTTPS karena kita menggunakan web-based authentikasi, yang tentunya username & password yg ada tidak kita harapkan untuk di-sniff oleh kawan2 kita yg cukup “pintar”. 🙂

Instalasi

  1. Install paket yang diperlukan
  2. root@external-disk:~# apt-get install apache2 libapache2-svn subversion subversion-tool

  3. Membuat direktori yg akan menampung file2 SVN
  4. root@external-disk:~# mkdir /home/repos

  5. Initialisasi direktori utk project baru
  6. dilakukan pada setiap project

    root@external-disk:~# svnadmin create /home/repos/projectHelloWorld
    root@external-disk:~# chown -R www-data:www-data /home/repos/

Konfigurasi webserver utk bisa browsing file SVN via https

  1. Enable module yang diperlukan
  2. root@external-disk:~# a2enmod authz_user
    root@external-disk:~# a2enmod ssl
    root@external-disk:~# a2enmod dav_svn

  3. Edit file /etc/apache2/mods-enabled/dav_svn.conf
  4. root@external-disk:~# vim /etc/apache2/mods-enabled/dav_svn.conf
    <Location /svn>
    DAV svn
    SVNParentPath /home/repos
    SVNListParentPath on

    AuthType Basic
    AuthName “Testing Subversion Repository”
    AuthUserFile /etc/apache2/dav_svn.passwd
    SSLRequireSSL

    <LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
    </LimitExcept>

    </Location>

  5. Buat symbolic link yg diperlukan
  6. root@external-disk:~# ln -s /etc/apache2/sites-available/default-ssl /etc/apache2/sites-enabled/000-default-ssl

  7. Membuat file /etc/apache2/dav_svn.passwd utk authentikasi pengguna
  8. root@external-disk:~/tmp# htpasswd -c /etc/apache2/dav_svn.passwd lqman
    New password: [password lqman]
    Re-type new password: [password lqman]
    Adding password for user lqman

    Parameter -c hanya digunakan sekali karena fungsinya untuk membuat file baru. Apabila anda ingin menambahkan user kedua, ketiga, dst maka tidak perlu menggunakan parameter -c lagi, sebagaimana contoh dibawah ini.

    root@external-disk:~/tmp# htpasswd /etc/apache2/dav_svn.passwd kholis
    New password: [password kholis]
    Re-type new password: [password kholis]
    Adding password for user kholis

  9. Check konfigurasi lalu restart web server
  10. root@gw-blacknet:/etc/apache2/mods-enabled# apache2ctl configtest
    Syntax OK

    pastikan tidak ada error, baru lanjutkan dengan restart web server

    root@gw-blacknet:/etc/apache2/mods-enabled# apache2ctl restart

Test Browsing

  1. Menggunakan Browser
  2. Buka URL melalui browser kesayangan anda 😛
    Jika ada warning spt pada firefox saya, maka buatlah exception.
    Klik “I Understand the Risks” -> “Add Exception” -> “Get Certificate” -> “Confirm Security Exception”



    Jika anda buka / klik, tentu saja direktori diatas masih kosong karena belum ada file yg di-import-kan ke SVN server.

  3. Menggunakan SVN Client
  4. Saya menyukai rapidsvn pada linux, ataupun tortoisesvn pada windows.

    Isikan URL repository anda

    Buka / klik bookmark yg baru, jika ada pertanyaan ttg SSL Certificate, pilih “Permanently”

    tentu saja bookmark tsb masih kosong karena belum ada file yg di-import-kan ke SVN server.

Happy Subversioning 😀

References

  1. http://www.howtoforge.com/debian_subversion_websvn
  2. http://trikks.wordpress.com/2010/06/15/setup-a-subversion-svn-server-in-debian/
  3. http://stackoverflow.com/questions/60736/how-to-setup-a-subversion-svn-server-on-gnu-linux-ubuntu
Advertisements
  1. arifkhumaidi
    12 May 2012 at 6:17 am

    wah ganti template..
    *akhirnya penasaranku tentang svn terjawab 😀

  2. 13 May 2012 at 8:09 am

    Penasaran opo ambek SVN mek?
    *ganti template soale wis bosen 😀

  3. arifkhumaidi
    13 May 2012 at 9:25 am

    gak ngerti svn iku apa, kok sepertinya kok banyak file2 geje yang ikut di share di svn, buatnya juga gak ngerti,

    tutorial https e mantap iki :p

  4. 13 May 2012 at 4:03 pm

    Oalah gak paham maksute SVN ta, nek ngono baca2 ini dulu aja.

    Banyak file yg di share melalui SVN di internet, adalah (mungkin) karena developernya membebaskan kita utk mengambil versi yg mana saja yg kita inginkan. Selain itu juga dr sisi developer lebih gampang mengupdate source code, klo ada perubahan tinggal umumkan aja ke khalayak ramai bahwa ada perubahan ini dan itu, maka silakan checked-out versi sekian, beres.

    Enak tooh, bebas tooh, flexibel tooh 😀

  5. kholis
    13 May 2012 at 5:14 pm

    saiki wes jamane git gan 😀

  6. 14 May 2012 at 8:22 am

    Tenang lis, mengko ditulis pisan (nek sempet nyoba2 maneh)…

  7. 11 July 2012 at 6:37 pm

    accswiftura :
    gan, ane dah ngikutin petunjuk di atas. pas buka browser kok keluarnya:
    Forbidden
    You don’t have permission to access /svn on this server.
    kurang apa ya kira2?

    ralat koment ane gan, ternyata masalahnya ane harus ketik lengkap:
    https://ipadress/svn.
    klo cuman ngetik http://ipadress/svn pasti keluar error Forbiden….
    thx ya Gan penyerahannya…

  8. 17 July 2012 at 2:32 pm

    Siiplah alhamdulillah klo sdh solved…

  9. 27 July 2012 at 7:00 am

    wah wes suwe ga ngoding gaaannn…

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: