forked from dbroqua/MusicTopus
Co-authored-by: dbroqua <contact@darkou.fr> Reviewed-on: https://git.darkou.fr/dbroqua/MusicTopus/pulls/24 Co-authored-by: Damien Broqua <dbroqua@noreply.localhost> Co-committed-by: Damien Broqua <dbroqua@noreply.localhost>
This commit is contained in:
parent
7f526eefee
commit
cf63d8b6d8
28 changed files with 687 additions and 104 deletions
59
README.md
59
README.md
|
@ -1,12 +1,12 @@
|
|||
# My Music Library
|
||||
# MusicTopus
|
||||
|
||||
My Music Library est une application Web (que vous pouvez auto-héberger) et un site Web (sur lequel vous pouvez créer un compte) permettant de gérer votre liste des CDs et Vinyles et de l'utiliser facilement n'importe où.
|
||||
MusicTopus est une application Web (que vous pouvez auto-héberger) et un site Web (sur lequel vous pouvez créer un compte) permettant de gérer votre liste des CDs et Vinyles et de l'utiliser facilement n'importe où.
|
||||
|
||||
Le code source est publié sous licence libre [GNU GPL-3.0-or-later](LICENSE) et est disponible sur [git.darkou.fr](https://git.darkou.fr/dbroqua/MyMusicLibrary).
|
||||
Le code source est publié sous licence libre [GNU GPL-3.0-or-later](LICENSE) et est disponible sur [git.darkou.fr](https://git.darkou.fr/dbroqua/MusicTopus).
|
||||
|
||||
## Utilisation
|
||||
|
||||
Vous pouvez librement utiliser le service en vous inscrivant sur [https://mml.darkou.fr](https://mml.darkou.fr).
|
||||
Vous pouvez librement utiliser le service en vous inscrivant sur [https://www.musictopus.fr/](https://www.musictopus.fr/).
|
||||
|
||||
Une fois inscrit vous pourrez saisir vos CDs et Vinyles sur votre espace personnel le tout gratuitement, sans tracker et sans utilisation de vos données personnelles !
|
||||
|
||||
|
@ -29,7 +29,7 @@ En mode standalone il vous faudra :
|
|||
Quelque que soit la méthode, la première étape est de cloner le projet :
|
||||
|
||||
```bash
|
||||
git clone https://git.darkou.fr/dbroqua/MyMusicLibrary.git
|
||||
git clone https://git.darkou.fr/dbroqua/MusicTopus.git
|
||||
```
|
||||
|
||||
### Installation
|
||||
|
@ -39,7 +39,7 @@ git clone https://git.darkou.fr/dbroqua/MyMusicLibrary.git
|
|||
Une fois le projet cloné rendez-vous dans son dossier,
|
||||
|
||||
```bash
|
||||
cd ./MyMusicLibrary
|
||||
cd ./MusicTopus
|
||||
```
|
||||
|
||||
puis créez le fichier `.env` qui contiendra les variables d'environnement nécessaire au bon fonctionnement du projet ([voir à la fin pour la liste des variables](#env-file)).
|
||||
|
@ -92,7 +92,7 @@ Le site est accessible sur [http://localhost:3001](http://localhost:3001).
|
|||
|
||||
### Aller plus loin
|
||||
|
||||
My Music Library est maintenant accessible en http sur un port custom (3001 par défaut) de votre serveur.
|
||||
MusicTopus est maintenant accessible en http sur un port custom (3001 par défaut) de votre serveur.
|
||||
|
||||
Nous allons voir comment rendre accessible en https avec un certificat [Let's Encrypt](https://letsencrypt.org/fr/). Pour le reverse proxy nous utiliserons [NGINX](https://nginx.org/).
|
||||
|
||||
|
@ -101,26 +101,26 @@ Pour la suite je pars du principe que vous êtes un minimum familier avec Nginx
|
|||
#### Obtenir le certificat
|
||||
|
||||
```bash
|
||||
certbot certonly --nginx -d mml.darkou.fr
|
||||
certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email votre@email.tld -d musictopus.fr
|
||||
```
|
||||
|
||||
#### Créer le vhost
|
||||
|
||||
Pour ma part j'aime bien créer un fichier dans `/etc/nginx/sites-available` qui comporte le nom du site, ici par exemple `mml.darkou.fr`.
|
||||
Pour ma part j'aime bien créer un fichier dans `/etc/nginx/sites-available` qui comporte le nom du site, ici par exemple `musictopus.fr`.
|
||||
|
||||
En voici son contenu :
|
||||
|
||||
```
|
||||
upstream mml-env {
|
||||
upstream musictopus-proxy {
|
||||
server 0.0.0.0:3001;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
server_name mml.darkou.fr;
|
||||
server_name musictopus.fr;
|
||||
|
||||
if ($host = mml.darkou.fr) {
|
||||
if ($host = musictopus.fr) {
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
||||
root /dev/null;
|
||||
|
@ -132,11 +132,11 @@ server {
|
|||
server {
|
||||
listen 443 ssl http2;
|
||||
|
||||
server_name mml.darkou.fr;
|
||||
root /dev/null;
|
||||
server_name musictopus.fr;
|
||||
root /srv/MusicTopus/public;
|
||||
|
||||
access_log /var/log/nginx/mml.darkou.fr-access.log;
|
||||
error_log /var/log/nginx/mml.darkou.fr-error.log;
|
||||
access_log /var/log/nginx/musictopus.fr-access.log;
|
||||
error_log /var/log/nginx/musictopus.fr-error.log;
|
||||
|
||||
add_header X-Content-Type-Options nosniff;
|
||||
add_header X-XSS-Protection "1; mode=block";
|
||||
|
@ -144,6 +144,10 @@ server {
|
|||
client_max_body_size 1m;
|
||||
|
||||
location / {
|
||||
try_files $uri @proxy;
|
||||
}
|
||||
|
||||
location @proxy {
|
||||
proxy_read_timeout 300;
|
||||
proxy_connect_timeout 300;
|
||||
proxy_redirect off;
|
||||
|
@ -155,13 +159,24 @@ server {
|
|||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Frame-Options SAMEORIGIN;
|
||||
|
||||
proxy_pass http://mml-env;
|
||||
proxy_pass http://musictopus-proxy;
|
||||
|
||||
tcp_nodelay on;
|
||||
}
|
||||
|
||||
include conf/ssl.conf;
|
||||
error_page 500 501 502 503 504 /500.html;
|
||||
|
||||
ssl_certificate /etc/letsencrypt/live/mml.darkou.fr/fullchain.pem; # managed by Certbot
|
||||
ssl_certificate_key /etc/letsencrypt/live/mml.darkou.fr/privkey.pem; # managed by Certbot
|
||||
ssl_certificate /etc/letsencrypt/live/musictopus.fr/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/musictopus.fr/privkey.pem;
|
||||
|
||||
add_header Strict-Transport-Security "max-age=31536000" always;
|
||||
|
||||
include /etc/letsencrypt/options-ssl-nginx.conf;
|
||||
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
|
||||
|
||||
ssl_trusted_certificate /etc/letsencrypt/live/musictopus.fr/chain.pem;
|
||||
ssl_stapling on;
|
||||
ssl_stapling_verify on;
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -174,7 +189,7 @@ Voici la liste des variables configurables :
|
|||
```
|
||||
NODE_ENV # Environnement dans lequel exécuter le projet (development ou production)
|
||||
PORT # Port sur lequel éxécuter le serveur (par défaut 3001)
|
||||
MONGODB_URI # Url du serveur mongo (par défaut mongodb://mymusiclibrary-db/mymusiclibrary)
|
||||
MONGODB_URI # Url du serveur mongo (par défaut mongodb://musictopus-db/musictopus)
|
||||
SECRET # Hash utilisé pour pour sauvegardé les dessions (par défaut waemaeMe5ahc6ce1chaeKohKa6Io8Eik)
|
||||
DISCOGS_TOKEN # Token Discogs (vous devez créer un compte sur discogs afin d'en obtenir un gratuitement)
|
||||
FORMSPREE_ID # Id du formulaire formspree pour la page "nous-contacter"
|
||||
|
@ -183,4 +198,4 @@ FORMSPREE_ID # Id du formulaire formspree pour la page "nous-contacter"
|
|||
## Contributeurs
|
||||
|
||||
- Damien Broqua (développeur principal du projet)
|
||||
- Brunus (fournisseur d'idées :wink: )
|
||||
- Brunus (Logo et fournisseur d'idées :wink: )
|
Loading…
Add table
Add a link
Reference in a new issue