2023-03-05 12:55:30 +01:00
# partitioncloud-server
Serveur web (basé sur Flask) pour gérer sa collection de partitions musicales
## Features
### Liste non exhaustive
2023-03-05 16:08:03 +01:00
- recherche de partitions en ligne et ajout à la base de données (par recherche Google)
2023-03-05 12:55:30 +01:00
- partage d'un album par un lien direct sans nécessité de connexion (en lecture seule)
2023-06-24 10:47:35 +02:00
- Thème sombre
2023-03-05 12:55:30 +01:00
- dashboard administrateur: gestion de tous les albums, partitions et utilisateurs
- [CLI ](https://github.com/partitioncloud/partitioncloud-cli ) uniquement à des fins de synchronisation. Il serait bon d'ajouter une BDD locale avec les UUIDs des partitions
2024-04-19 18:48:00 +02:00
- ~~Pas de Javascript~~ Complètement fonctionnel sans JavaScript, cela vient juste ajouter des [toutes petites améliorations ](partitioncloud/static/scripts )
2023-03-05 12:55:30 +01:00
## Points à noter
- Les partitions ajoutées sont accessibles à tous les utilisateurs depuis la recherche même si ils ne sont pas dans un album leur y donnant accès, pour limiter la redondance
2023-03-05 16:08:03 +01:00
- Il est possible d'entrer des paroles en créant une partition, celles-ci sont utilisées uniquement pour la fonctionalité de recherche pour le moment
2023-03-07 19:13:29 +01:00
- Les résultats de la recherche web sont téléchargés automatiquement pour en générer un aperçu, donc `MAX_ONLINE_QUERIES` doit rester raisonnable
- Le fichier de configuration est un script lu par python *et* bash, il ne faut donc pas écrire `CONFIG_PARAM = 2` mais `CONFIG_PARAM=2` (pour bash)
2023-03-05 12:55:30 +01:00
## Installation
2024-03-03 22:56:49 +01:00
### Installation via Docker (recommandé)
```bash
# Clone this repo
git clone https://github.com/partitioncloud/partitioncloud-server.git
cd partitioncloud-server
# Create an image named "partitioncloud"
docker build -t partitioncloud .
# You can then run the container, replace $PORT with the port you want to be exposed
PORT=5000
docker run -d \
-p $PORT:5000 \
--restart=unless-stopped \
--name partitioncloud \
partitioncloud:latest
```
L'utilisateur par défaut est `root` avec le mot de passe `root`
### Installation manuelle
2023-03-05 12:55:30 +01:00
Installer le serveur
```bash
# Clone this repo
git clone https://github.com/partitioncloud/partitioncloud-server.git
cd partitioncloud-server
# Install dependencies
pip install -r requirements.txt
2024-01-22 16:06:03 +01:00
pybabel compile -d partitioncloud/translations
2023-03-05 12:55:30 +01:00
# Create database and folders
./make.sh init
```
Démarrer le serveur
```bash
./make.sh start
```
Pour démarrer sur un environnement complet (plus que pour du dev/test),
Installer [`gunicorn` ](https://github.com/benoitc/gunicorn ) puis:
```bash
./make.sh prod
```
## Configuration
```bash
cp default_config.py instance/config.py
```
2023-03-05 16:08:03 +01:00
Modifier le fichier de configuration créé dans `instance/`
2023-03-05 12:55:30 +01:00
## Screenshots
### Interface principale
2023-06-24 10:47:35 +02:00
![Interface principale ](https://github.com/partitioncloud/partitioncloud-server/assets/67148092/5e19ea1c-ca92-4109-a973-0d0d91f69d20 )
![Mode sombre ](https://github.com/partitioncloud/partitioncloud-server/assets/67148092/d1de7743-72c9-4769-9a3f-65e67bec438a )
2023-03-05 12:55:30 +01:00
### Tableau administrateur
2023-06-24 10:47:35 +02:00
![Admin dashboard ](https://github.com/partitioncloud/partitioncloud-server/assets/67148092/5cec2375-4e61-4d8c-bd36-8259a392779d )
![add-user ](https://github.com/partitioncloud/partitioncloud-server/assets/67148092/6cd6564f-dd4a-4bcf-bb67-18d064baa877 )
2023-03-05 12:55:30 +01:00
### Recherche en ligne et locale
2023-06-24 10:47:35 +02:00
![Recherche ](https://github.com/partitioncloud/partitioncloud-server/assets/67148092/745bf3e3-37e9-40cd-80d2-14670bce1a45 )
2023-03-05 12:55:30 +01:00
2024-01-22 16:06:03 +01:00
## Translations
### Créer une nouvelle traduction
```bash
# Extraire les données
pybabel extract -F babel.cfg -k _l -o partitioncloud/translations/messages.pot .
# Créer un nouveau fichier
2024-01-25 16:22:04 +01:00
pybabel init -i partitioncloud/translations/messages.pot -d partitioncloud/translations/ -l $COUNTRY_CODE
2024-01-22 16:06:03 +01:00
# Modifier translations/$COUNTRY_CODE/LC_MESSAGES/messages.po
# Ajouter $COUNTRY_CODE dans default_config.py: LANGUAGES
# Compiler les nouvelles translations avant de démarrer le serveur
2024-01-25 16:22:04 +01:00
pybabel compile -d partitioncloud/translations/
2024-01-22 16:06:03 +01:00
```
### Mettre à jour une traduction
```bash
# Récupérer les données les plus récentes
pybabel extract -F babel.cfg -k _l -o partitioncloud/translations/messages.pot .
# Les ajouter aux traductions
2024-01-25 16:22:04 +01:00
pybabel update -i partitioncloud/translations/messages.pot -d partitioncloud/translations/
2024-01-22 16:06:03 +01:00
```
2023-03-05 12:55:30 +01:00
## TODO
2024-02-25 15:28:51 +01:00
- [x] Modifier son mot de passe
- [x] Supprimer un utilisateur
2023-03-05 12:55:30 +01:00
- [ ] Ajouter config:DISABLE_DARK_MODE
2023-06-24 16:05:05 +02:00
- [x] Ajouter config:DISABLE_REGISTER
2023-03-05 12:55:30 +01:00
- [ ] Ajouter config:ONLINE_SEARCH_BASE_QUERY pour la recherche google, actuellement 'filetype:pdf partition'
2024-02-25 15:56:40 +01:00
- [x] Ajouter un Dockerfile