# 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 frontend ``` ## 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 frontend # O anche con un watcher... $ fd -e js | entr make frontend ``` ### 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 amministratori del sito, che compare nel footer di ogni pagina. - `_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`. ## Altri Servizi Questo servizio dipende dal servizio di autenticazione per permettere agli utenti di autenticarsi usando vari meccanismi. Il servizio di autenticazione di default girerà su `localhost:3535` ed è documentato [sulla repo auth-service](https://git.phc.dm.unipi.it/phc/auth-service/)