La projekto komenciĝis en 1974 kiel eta jarlibro, kaj ekde 2009 daŭras ankaŭ kiel retejo (unue surbaze de Drupalo kaj nuntempe sur Dĵango). En tiu ĉi deponejo kolektiĝas la kodo kiu ruligas la retejon pasportaservo.org.
Ĉu vi trovis cimon? Nepre kreu novan atentindaĵon.
Ĉu vi havas ideon kiel plibonigi la retejon? Kontrolu ĉe Diskutoj ĉu iu jam eble proponis ion similan – se jes, voĉdonu por tiu ideo; se ne, komencu novan fadenon.
Ubuntu 16.10 / Debian Stretch:
sudo apt install git python3-dev python3-pip python3-venv libjpeg-dev zlib1g-dev \
postgresql-contrib postgresql-server-dev-all postgresql-10-postgis libgdal-dev gcc-c++ gdal
Fedora 27:
sudo dnf install git python3-devel python3-crypto redhat-rpm-config zlib-devel libjpeg-devel libzip-devel \
postgresql-server postgresql-contrib postgresql-devel gcc-c++ gdal
Se vi estas sub Fedora:
sudo postgresql-setup --initdb --unit postgresql
sudo systemctl enable postgresql
sudo systemctl start postgresql
Por ĉiuj:
sudo -u postgres createuser --interactive # Enigu vian uzantnomon kaj poste 'y'
createdb via-uzantnomo
createdb pasportaservo
Iru al la projektpaĝo ĉe GitHub kaj forku la deponejon. Poste, vi povas kloni ĝin:
git clone https://github.com/{via-uzantnomo}/pasportaservo.git
Instalu ĉiujn necesajn pakaĵojn kaj pretigu la datumbazon (ne forgesu tion fari ene de virtuala medio):
cd pasportaservo
pip install wheel
pip install -r requirements/dev.txt
echo 'from .dev import *' > pasportaservo/settings/__init__.py
./manage.py migrate
./manage.py createsuperuser # Nur la uzantnomo kaj pasvorto estas deviga
Fine, kurigu la lokan WSGI-servilon:
./manage.py runserver
Ĉu bone? Vidu http://localhost:8000.
Dum disvolvigo, estas praktika uzi MailDump por provadi sendi retmesaĝojn. Ekster la env virtuala medio, kun Pitono:
pip install --user maildump
maildump
La mesaĝoj estos kolektataj en ĉion-kaptan poŝtkeston videblan ĉe http://localhost:1080.
unrecognized option --interactive
Se la komando sudo -u postgres createuser --interactive
malsukcesas
(ekz., vi ricevas eraron "unrecognized option --interactive"), provu:
$ sudo -u postgres psql
psql (9.6.6)
Type "help" for help.
postgres=# CREATE ROLE {via-uzantonomo} WITH LOGIN CREATEDB CREATEROLE;
postgres=# \q
$ sudo -u postgres psql
psql (9.5.4)
Type "help" for help.
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
---------------+----------+----------+-------------+-------------+-----------------------
pasportaservo | {uzanto} | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
postgres=# \q
Se vi vidas tabelon kiel ĉi-supre, ĉio glate paŝis.
Could not set locale eo.UTF-8: make sure that it is enabled on the system
Tia eraro indikas ke la Esperanta lokaĵaro ne estas aktivigita. Uzu la jenajn komandojn:
sudo locale-gen eo.UTF-8
sudo update-locale
locale -a
Se vi vidas eo.utf8
en la listo, la ĝusta lokaĵaro estas nun aktiva.
Kaj ene de la diversaj Dĵango-aplikaĵoj (ekz. hosting
, pages
, links
…):
Laboru en branĉoj:
Efektivigu viajn ŝanĝojn en tiucelaj, laŭtemaj branĉoj:
git checkout master
git checkout -b {nomo-de-nova-branĉo}
Ĉefa risurco por lerni git (la versiadministra sistemo): https://git-scm.com/docs/git.
Utiligu helpilojn por kod-kvalito:
isort -rc .
)python -m flake8
)Verku testojn:
Testoj estas gravaj por certigi ke partoj de la retejo funkcias tiele kiel oni planis, kaj kapti cimojn antaŭ ol ili trafos uzantojn. Testoj ankaŭ helpas certiĝi ke novenkondukitaj ŝanĝoj ne rompas ekzistantajn funkciojn. La testoj kolektiĝas sub tests/. Risurcoj:
Testu sur realaj aparatoj:
Laŭdefaŭlte, la disvolviga WSGI-servilo estas kurigita izolite sur via maŝino kaj atingeblas nur per la loka inverscikla adreso 127.0.0.1 (aŭ ĝia sinonimo http://localhost). Tiam vi povas uzi la retumilojn haveblajn sur via maŝino por testadi la retejon. Tamen, Dĵango efektive subtenas kurigon sur ajna reta interfaco; uzante la komandon
python ./manage.py runserver {IP-adreso-en-loka-reto}:8000
vi povas videbligi la retejon ene de via loka reto (LAN / Wifi) kaj aliri ĝin per ajna aparato konektita
al la sama reto. Tiamaniere vi povas testi la ĝustan funkciadon de la retejo sur pli diversaj aparatoj
(ekz., ankaŭ per poŝtelefonoj).
Tion ebligas agordo settings/dev.py/ALLOWED_HOSTS
– dum lanĉo, la servilo provas eltrovi la lokaretan
IP-adreson de la maŝino kaj permesi ties uzon.