Wersja zdokeryzowana
--------------------
Zrobić database_data.py z ustawieniem 'HOST': 'db' (gdzie db jest nazwą dockera z bazą zadaną w docker-compose). Zbudować obrazy:
docker compose up -d --build
Załadować backup bazy danych:
docker cp kuznia-backup.2026.03.05.dump $(docker compose ps -q db):/tmp/stara_baza.dump
docker exec -it $(docker compose ps -q db) pg_restore -U sgjp -d sgjp --no-owner --no-acl -j 10 /tmp/stara_baza.dump
docker exec -it $(docker compose ps -q db) rm /tmp/stara_baza.dump
docker compose restart web
Można sprawdzić, czy nie ma czegoś złego w logach:
docker compose logs -f web
docker compose logs -f db
Ale generalnie aplikacja powinna już działać na localhost:8000.
Zależności
----------
python2.7
python-dev
postgresql (wersja co najmniej 9.2)
postgresql-server-dev-?.?
gettext
Oprócz tego są zależności pythonowe wymienione w pliku requirements.text.
Instalujemy je przez virtualenv:
$ virtualenv venv
$ source venv/bin/activate
$ pip install -r requirements.txt
Polecenia z manage.py należy uruchamiać będąc w aktywnym środowisku virtualenv. Wyjść ze środowiska można poleceniem deactivate.
Odpalenie serwera deweloperskiego
---------------------------------
Przede wszystkim trzeba skonfigurować bazę. W tym celu należy zmienić nazwę pliku database_data.py.example w głównym katalogu projektu na database_data.py i uzupełnić w nim parametry bazy.
Konfiguracja postgresa
----------------------
$ sudo su postgres
# psql
# create user kuznia with password 'kuznia';
# create database kuznia;
# grant all privileges on database kuznia to kuznia;
Ctrl+D
Ctrl+D
Baza oczywiście na początku jest pusta. Aktualnie jedyną możliwością jest wgranie gotowego zrzutu. Zrzuty w formacie .sql.gz ładujemy poleceniem:
$ zcat zrzut.sql.gz | ./manage.py dbshell
Po załadowaniu zrzutu należy zmigrować bazę:
$ ./manage.py migrate
(wszystkie polecenia mają być wykonywane w głównym katalogu projektu, o ile nie wskazano inaczej)
Odpalenie serwera
-----------------
Odpalamy lokalny serwer:
$ ./manage.py runserver
Możemy połączyć się z nim przez http://localhost:8000/.
Nazwy użytkowników łatwo sprawdzić np. przez interfejs bazy (kolumna username w tabeli auth_user). Do potrzeby testów można ujednolicić hasła poleceniem:
$ ./manage.py set_fake_passwords --password=blaba
Kompilowanie lokalizacji
------------------------
$ ./manage.py compilemessages
Aktualizacja
------------
W celu aktualizacji repozytorium do najnowszej wersji należy wykonać następujące polecenia:
$ hg pull -u
$ ./manage.py migrate
$ ./manage.py update_permissions
$ ./manage.py compilemessages
Problemy
--------
Klawisze PageUp/PageDown działają (aktualnie przewijają na sztywno o 10, to można zmienić), ale przy włączonym zaznaczeniu i szybkim naciskaniu powodują, że czasem zaznaczenie ucieka. (okazuje się, że nawet całkiem często)