Skip to content

Latest commit

 

History

History
124 lines (96 loc) · 6.07 KB

installation.md

File metadata and controls

124 lines (96 loc) · 6.07 KB

Εγκατάσταση

ΣΗΜΕΙΩΣΗ: Οι προηγούμενες οδηγίες εγκατάστασης για MySQL αντικαταστάθηκαν από το παρόν. Αν έχεις ακολουθήσει τις παλιές οδηγίες, δες τις οδηγίες μετάβασης.

Οι οδηγίες για την εγκατάσταση και ρύθμιση της PostgreSQL έχουν βασιστεί σε αυτό το άρθρο.

Αυτόματη εγκατάσταση

Άνοιγμα του αρχείου deploy.sh για να οριστούν οι απαραίτητες παράμετροι:

# Set to "yes" to setup for development server
# Any other value sets up for release
DEBUG="yes"

# Virtual environment folder
VENV_FOLDER=".venv"
VENV="$DIR/.venv"
PIP="$VENV/bin/pip"
PYTHON="$VENV/bin/python"

# 100% secure
# CAREFUL: will destroy previous db and user with this name
# Don't change if you dont know what you are doing
DB_NAME="asoures"
DB_PASS="asoures"

# default backend superuser
SU_USER="asoures"
SU_EMAIL="[email protected]"
SU_PASS="asoures"

Και κάνε την εγκατάσταση:

$ ./deploy.sh                       # εγκατάσταση

$ source .venv/bin/activate         # ενεργοποίηση python environment
$ python manage.py populatedb 30    # εισαγωγή 30 τυχαίων προϊόντων και καταστημάτων στη βάση

Το ./deploy.sh φροντίζει αυτόματα για την εγκατάσταση όλων των απαραίτητων πακέτων, καθώς και το στήσιμο της βάσης και του environment. Για την έναρξη του server, βλέπε Χρήση.

Χειροκίνητα

  1. Εγκατάσταση των απαραίτητων requirements (για Ubuntu):

    $ sudo apt-get update
    $ sudo apt-get install git postgresql postgresql-contrib postgis python3 python3-pip
    $ sudo apt-get install apache2 apache2-dev libapache2-mod-wsgi
    $ pip3 install virtualenv   # οχι sudo
    
  2. Το PostgreSQL θα δημιουργήσει αυτόματα έναν χρήστη postgres στο σύστημά σου με δικαιώματα superuser, μέσω του οποίου θα εκτελείς τις root εντολές που αφορούν τη βάση. Για τις ανάγκες της εφαρμογής, θα πρέπει αρχικά να φτιάξεις έναν νέο χρήστη asoures:

    $ sudo -u postgres createuser --superuser -P asoures
    

    Όρισε ένα password της επιλογής σου για τον χρήστη. Ο χρήστης ορίζεται ως superuser ώστε να μπορεί να δημιουργεί νέες βάσεις και να ενεργοποιεί extensions (όπως το PostGIS).

  3. Φτιάξε μια βάση PostgreSQL με όνομα asoures. Επειδή έχει ίδιο όνομα με τον χρήστη, ο χρήστης θα έχει αυτόματα δικαιώματα σε αυτήν:

    $ sudo -u postgres createdb asoures
    
  4. Δημιούργησε και έναν χρήστη συστήματος με το ίδιο όνομα asoures και κωδικό της επιλογής σου:

    $ sudo useradd -M -s /usr/sbin/nologin asoures
    $ sudo passwd asoures
    
  5. Απενεργοποίησε τη ρύθμιση forced SSL του PostgreSQL:

    $ sudo vi /etc/postgresql/<version>/main/postgresql.conf
    

    Όπου <version> βάλε τον αριθμό έκδοσης του PostgreSQL που εγκατέστησες. Την ώρα συγγραφής του παρόντος η έκδοση είναι 10. Αντικατάστησε τη γραμμή ssl = on με ssl = off.

  6. Κάνε clone το repository στον υπολογιστή σου. Από δω και έπειτα, όλες οι εντολές πρέπει να εκτελούνται μέσα στο φάκελο asoures. Άλλαξε το USERNAME με το όνομα χρήστη σου στο github (OXI το email).

    $ git clone https://[email protected]/tdiam/asoures
    $ cd asoures
    
  7. Αντίγραψε το αρχείο etc/pre-commit στο .git/hooks/pre-commit και κάν'το εκτελέσιμο.

    $ cp etc/pre-commit .git/hooks/pre-commit
    $ chmod +x .git/hooks/pre-commit
    
  8. Δημιούργησε ένα νέο virtual environment, στον φάκελο asoures/.venv

    $ ~/.local/bin/virtualenv .venv
    $ ls -al                    # πρέπει να φαίνεται ένας φάκελος .venv
    
  9. Κάνε αντιγραφή το env.sample στο .env και επεξεργάσου το για να προσαρμόσεις τις ρυθμίσεις στο τοπικό σου περιβάλλον (διόρθωσε τον κωδικό για τη σύνδεση στη βάση). Περισσότερα για το DATABASE_URL εδώ:

    $ cp env.sample .env
    $ vi .env
    
  10. Ενεργοποίησε το virtual environment που μόλις δημιούργησες. Αυτό πρέπει να γίνεται κάθε φορά που ανοίγεις καινούριο terminal:

    $ source .venv/bin/activate    # θα αλλάξει και το prompt
    
  11. Εγκατάστησε το django και τα άλλα dependencies του project.

    $ pip install -e .[dev]
    
  12. Τρέξε τα migrations. Αν όλα έχουν γινει σωστά, θα δεις μήνυμα επιτυχίας.

    $ python manage.py migrate
    
  13. Ενημέρωσε τα hosts

    # ρυθμιση του hostfile, δεν χρειαζεται καθε φορα
    sudo sh -- sh -c "echo '127.0.0.1 asoures.gr' >> /etc/hosts"