# Serwer Gryzaka

Pierwsza wersja strony domowego serwera we Flasku.

## Uruchomienie lokalne

### Windows

W PowerShell albo CMD, w katalogu projektu:

```bat
setup_windows.bat
run_windows.bat
```

Windowsowe srodowisko wirtualne tworzy sie w katalogu `venv-win`, zeby nie mieszalo sie z linuxowym `venv`.

Jesli komenda `py` nie dziala, zainstaluj Pythona z https://www.python.org/downloads/ i zaznacz opcje `Add Python to PATH`.

### Linux

```bash
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python app.py
```

Przy pierwszym starcie tworzy sie baza `instance/site.db` oraz konto admina.
Haslo startowe jest w pliku:

```bash
instance/initial_admin_password.txt
```

Login admina: `Gryzak`.

## Apache mod_wsgi

Przyklad konfiguracji VirtualHost:

```apache
<VirtualHost *:80>
    ServerName twoja-domena.local
    WSGIDaemonProcess gryzak python-home=/sciezka/do/projektu/venv python-path="/sciezka/do/projektu"
    WSGIProcessGroup gryzak
    WSGIScriptAlias / "/sciezka/do/projektu/wsgi.py"

    <Directory "/sciezka/do/projektu">
        Require all granted
    </Directory>

    Alias /static "/sciezka/do/projektu/static"
    <Directory "/sciezka/do/projektu/static">
        Require all granted
    </Directory>
</VirtualHost>
```

Na Debian/Ubuntu zwykle potrzebne sa pakiety `apache2`, `libapache2-mod-wsgi-py3`, `python3-venv`.

## Uprawnienia

- `Ports` widzi tylko zalogowany uzytkownik.
- `Offer` jest publiczne.
- `Gryzak` jest chronionym adminem.
- Edytor moze tworzyc newsy i edytowac tylko swoje.
- Admin moze edytowac/usuwac wszystkie newsy i komentarze.
- Obrazy uploadowane przez edytor sa zapisywane w `static/uploads/` i sprawdzane po rozszerzeniu oraz sygnaturze pliku.
