# Nuovo Sito PHC
Repo del server del nuovo sito per il PHC.
## Dipendenze
- **Golang**
- `github.com/alecthomas/chroma`
- `github.com/alecthomas/repr`
- `github.com/go-chi/chi/v5`
- `github.com/joho/godotenv`
- `github.com/litao91/goldmark-mathjax`
- `github.com/yuin/goldmark`
- `github.com/yuin/goldmark-highlighting`
- `gopkg.in/yaml.v3`
- **NodeJS**
- AlpineJS
- FuseJS
## Setup
Per ottenere il progetto basta fare
```bash
$ git clone https://git.phc.dm.unipi.it/phc/website
$ cd frontend/
frontend/ $ npm install
frontend/ $ cd ..
$ make js
```
## Development
### Setup
Copiare il file `.env.dev` in `.env` per dire al server di lavorare in modalità di development e su quale indirizzo servire il sito, poi avviare il server.
```bash shell
$ cp .env.dev .env
$ go run .
```
### Server
Un comando comodo in fase di development che usa [`entr` ](https://github.com/eradman/entr ) è
```bash shell
$ find . -type f -name '*.go' | entr -r go run .
# O anche con fd...
$ fd -e go | entr -r go run .
```
### Frontend
Se si sta anche modificando codice dentro `frontend/` , in contemporanea serve anche fare
```bash shell
$ make js
# O anche con un watcher...
$ fd -e js | entr make js
```
### Environment Variables
- `MODE`
Può essere `production` (default) o `development` .
- `HOST`
Indirizzo (locale) sul quale servire il sito, di default è `localhost:8000` .
- `MAIL`
Indirizzo di posta elettronica per contattare gli ammistratori del sito,
che compare nel footer di ogni pagina.
- `<SERVIZIO>_URL`
Rappresentano link ad altri servizi forniti, è comodo impostarli per testare tutto in locale su varie porte (e poi in produzione i vari url diventano link a sotto-domini del sito principale).
Per ora ci sono `GIT_URL` , `CHAT_URL` e `USER_PAGES_BASE_URL` .