Αν είστε εξοικειωμένοι με το σύστημα ελέγχου αναθεώρησης Git, πιθανότατα έχετε ακούσει τους ιστότοπους κοινωνικού λογισμικού που χρησιμοποιούν το Git, όπως το GitHub, το Gitorious και το Sourceforge. Αυτοί οι ιστότοποι είναι εξαιρετικοί για συνεργασία, αλλά τι γίνεται αν θέλετε να φιλοξενήσετε έναν ιδιωτικό χώρο αποθήκευσης Git στον προσωπικό σας ιστότοπο;

Το GitList είναι ένα πρόχειρο PHP για το Git που αποπνέει και απλοποιεί την περιήγηση στα αποθετήρια Git και μπορείτε να το φιλοξενήσετε οπουδήποτε θέλετε. Πείτε αντίο σε υπερβολικές αμοιβές για τη φιλοξενία του ιδιωτικού αποθετηρίου σας. Το GitList είναι απολύτως δωρεάν και εξαιτίας των ελάχιστων εξαρτήσεων του, μπορείτε να το εκτελέσετε και σε (μερικά) κοινά σχέδια φιλοξενίας ιστοσελίδων.

Η διεπαφή σίγουρα σας δείχνει εξοικειωμένοι με τους χρήστες του GitHub εκεί έξω! Είναι αρκετά κλασικό και σύγχρονο, σε σύγκριση με τη διεπαφή clunkier του Gitweb, προεπιλεγμένο Web frontend του Git, και έρχεται γεμάτο με φιλικά προς το χρήστη χαρακτηριστικά. Ορισμένα από αυτά περιλαμβάνουν:

  • Υποστήριξη για περιήγηση σε πολλά αποθετήρια
  • Υποστήριξη πολλών υποκαταστημάτων και ετικετών
  • Τροφοδοσίες RSS
  • Σύνταξη επισημάνσεων
  • Στατιστικά στοιχεία για τα αποθετήρια σας
  • Ευκολία εγκατάστασης σε σύγκριση με άλλα διεπαφές Git που βασίζονται στο Web

Απαιτήσεις

Όπως προαναφέρθηκε, μπορείτε να εγκαταστήσετε το GitList σε μερικά κοινά σχέδια φιλοξενίας ιστοσελίδων. Χρειάζεστε δύο πράγματα στον απομακρυσμένο διακομιστή σας, που δεν προσφέρουν όλα τα προγράμματα κοινής χρήσης φιλοξενίας:

  • Git
  • Πρόσβαση SSH

Σημειώστε ότι η πρόσβαση SSH δεν απαιτείται για την εγκατάσταση του ίδιου του GitList, αλλά θα χρειαστεί να δημιουργήσει και να διαχειριστεί τα απομακρυσμένα αποθετήρια Git από τη γραμμή εντολών.

Εκτός από αυτά τα δύο στοιχεία, θα χρειαστείτε:

  • Apache με mod_rewrite ενεργοποιημένη ή Nginx στον απομακρυσμένο διακομιστή σας
  • PHP 5.3.3 στον απομακρυσμένο διακομιστή σας
  • Git στο τοπικό σας μηχάνημα

Εγκατάσταση

Πιάσε ένα tarball του κώδικα GitList από την κύρια σελίδα στο GitList.org. Μπορείτε να επιλέξετε μεταξύ της τελευταίας σταθερής απελευθέρωσης, η οποία κατά τη στιγμή της γραφής είναι 0, 3, ή η δημιουργία ανάπτυξης. Επέλεξα την ανάπτυξη ανάπτυξης, αλλά μπορείτε να ακολουθήσετε τις ίδιες οδηγίες εγκατάστασης και στις δύο περιπτώσεις.

Εξαγάγετε το tarball στον κατάλογο στον ιστότοπό του στον οποίο θέλετε να εγκαταστήσετε το GitList - για να μην συγχέεται με τον κατάλογο που είναι εγκατεστημένοι οι υπάρχοντες χώροι αποθήκευσης Git, στους οποίους θα φτάσουμε λίγο.

Από εδώ και πέρα, οι οδηγίες σε αυτό το άρθρο θα υποθέσουν ότι είστε συνδεδεμένοι στο site σας μέσω SSH. Εισαγάγετε τον κατάλογο GitList και ορίστε 777 δικαιώματα στον υποκατάλογο "cache" (δημιουργήστε τον αν δεν υπάρχει ήδη):

 [μνήμη ckdir] chmod 777 cache 

Μετακινήστε τώρα το αρχείο config.ini-example στο config.ini:

 mv config.ini-παράδειγμα config.ini 

Ανοίξτε το config.ini για επεξεργασία σε έναν από τους επεξεργαστές κειμένου που είναι διαθέσιμος στον απομακρυσμένο διακομιστή σας. Για παράδειγμα:

 vi config.ini 

Για αυτό το μέρος, πρέπει ήδη να έχετε αποθηκεύσει ένα ή περισσότερα αποθετήρια Git κάπου στον server σας. Εάν δεν το κάνετε, διαβάστε την επόμενη ενότητα και έπειτα επιστρέψτε εδώ.

Συμπληρώστε την ενότητα repositories στον κώδικα με την πλήρη διαδρομή του καταλόγου έργου Git. Εάν δεν γνωρίζετε την πλήρη διαδρομή, μπορείτε να κάνετε cd σε αυτόν τον κατάλογο και να εισάγετε pwd . η έξοδος είναι η πλήρης διαδρομή. Σε αυτή την περίπτωση, ο κατάλογος των έργων μου Git ονομάστηκε "gitprojects" και έζησε κάτω από τον υποκατάλογο "git" του κύριου ιστότοπού μου, οπότε έγραψα στη διαδρομή μου ανάλογα.

Λήψη ενός καταστήματος Git στον διακομιστή σας

Συνεχίστε και παραλείψτε αυτήν την ενότητα εάν έχετε ήδη ρυθμίσει τα απομακρυσμένα αποθετήρια. Αν όχι, εδώ είναι ένας τρόπος να το κάνετε.

Αρχικά προετοιμάστε ένα αποθετήριο Git στο τοπικό σας μηχάνημα. Μπορείτε να δημιουργήσετε ένα αποθετήριο από οποιονδήποτε κατάλογο. Για παράδειγμα, ας πούμε ότι έχετε ένα φάκελο που ονομάζεται "χελώνες" με μερικά αρχεία σε αυτό:

 cd χελώνες git init # αυτό αρχικοποιεί το χώρο αποθήκευσης git add * # αυτό προκαλεί την παρακολούθηση όλων των αρχείων στον κατάλογο για τις αναθεωρήσεις git commit -m "Δημιούργησε το repo μου" * # δεσμεύει τα αρχεία και προσθέτει ένα σχόλιο 

Τώρα SSH στον απομακρυσμένο διακομιστή σας για να δημιουργήσετε και να προετοιμάσετε ένα γυμνό αποθετήριο:

 mkdir turtles.git && cd χελώνες.git git - bare init 

Επιστρέψτε στο τοπικό σας μηχάνημα και προσθέστε έναν απομακρυσμένο κλάδο. Είναι συνηθισμένο να το ονομάζετε "προέλευση", αλλά μπορείτε να χρησιμοποιήσετε όποιο όνομα επιθυμείτε (χρησιμοποιώντας άλλα ονόματα έρχονται χρήσιμα αν μοιράζεστε τα ίδια αρχεία με πολλά απομακρυσμένα αποθετήρια). Ακολουθήστε τη μορφή αυτού του παραδείγματος αλλά αλλάξτε κατάλληλα τις διαδρομές αρχείου:

 git απομακρυσμένη προσθήκη προέλευσης ssh: //[email protected]/home/yourusername/public_html/gitprojects/turtles.git 

Τώρα πιέστε τα αρχεία σας στον απομακρυσμένο διακομιστή:

 git push - απόλυτη προέλευση 

Ta-da! Τώρα έχετε ένα απομακρυσμένο αντίγραφο του αποθετηρίου Git που μπορείτε να περιηγηθείτε στο GitList. Μην ξεχάσετε να τοποθετήσετε την διαδρομή του γονικού καταλόγου στον config.ini πρώτα.

Εξασφάλιση του χώρου αποθήκευσης

Αν ανησυχείτε για τη διατήρηση του αποθετηρίου σας μακριά από αδιάκριτα μάτια, λυπάμαι που σας λέω ότι το GitList δεν παρέχει ενσωματωμένη μέθοδο επαλήθευσης ταυτότητας χρήστη. Ωστόσο, στις περισσότερες περιπτώσεις μπορείτε να προστατεύσετε έναν κατάλογο απευθείας από τον πίνακα ελέγχου του ιστοτόπου σας. Στην cPanel, είναι εδώ στην ενότητα "Ασφάλεια":

Εναλλακτικά, μπορείτε να διαμορφώσετε με μη αυτόματο τρόπο τον διακομιστή Apache για να περιορίσετε την πρόσβαση σε συγκεκριμένους χρήστες.

συμπέρασμα

Φιλοξενία των δικών σας αποθετηρίων μπορεί να είναι τόσο ενδυνάμωση όσο και εξοικονόμηση προϋπολογισμού. Είτε χρησιμοποιείτε το Git για λίγο είτε είστε στα αρχικά στάδια της περιέργειας για το πώς μπορείτε να επωφεληθείτε από τον έλεγχο έκδοσης, σας παροτρύνω να δώσετε στον εαυτό σας τη φιλοξενία και το GitList μια δοκιμή - εκτός αν φυσικά είστε πλήρη περιεχόμενο αφήνοντας τον έλεγχο του περιεχομένου σας σε τρίτους.