Kontrol est une application web auto-hébergeable conçue pour centraliser les outils essentiels pour les familles ou les organisations. Ce projet, entièrement écrit en français, vise à simplifier la gestion quotidienne en regroupant toutes les fonctionnalités nécessaires en un seul endroit. Un site dédié à la documentation est en cours de développement.
- Stockage Cloud ☁️: Stockez et accédez facilement à vos fichiers.
- Calendrier 📅: Suivez les dates et événements importants. (Pas encore implémenté)
- Notes 📝: Prenez et organisez vos notes pour l'école ou le travail. (Pas encore implémenté)
- Galerie Photo/Vidéo 📷🎥: Stockez et partagez vos photos et vidéos.
- Chat 💬: Communiquez avec les membres de votre domaine, avec support pour les discussions de groupe.
- Outils Pratiques 🛠️: Accédez à une liste pré-sélectionnée de sites web utiles choisis par l'administrateur.
- Site Favoris ⭐: Enregistrez et organisez vos sites web préférés.
- Support 🆘: Obtenez de l'aide pour toute question ou préoccupation concernant l'application. (Particulièrement utile pour les organisations)
-
Assurez-vous d'avoir Node.js (>= v15) installé sur votre machine.
-
pnpm, ce package manager est nécessaire pour faire tourner les
.sh
présent a la racine. -
Vous aurez besoin d'une application comme
NGINX
pour servir le site sur un serveur.NGINX
est un serveur web performant qui gère les requêtes HTTP et peut agir comme un proxy inverse. -
Assurez-vous d'avoir un outil comme
ufw
(Uncomplicated Firewall) pour ouvrir les ports nécessaires et permettre l'accès au serveur. Cela est essentiel pour exposer le port sur lequel votre application sera accessible publiquement.
-
Clonez le dépôt :
git clone https://github.com/lalBi94/kontrol.git
-
Accédez au répertoire du projet :
cd kontrol
-
Installez les dépendances du frontend :
pnpm install
-
Installez les dépendances du backend :
cd api pnpm install
-
Construisez le projet :
cd ../ pnpm run build
-
Déplacez le dossier
dist
dansapi/
:mv dist api
-
Installez
pm2
pour exécuter le code en arrière-plan sur votre serveur :pnpm install -g pm2 pm2 -v
-
Démarrez le serveur :
pm2 start api/main.js --name "kontrol-app" --watch --max-memory-restart 300M --instances 2 --env production
--max-memory-restart
: Pour éviter les fuites de mémoire.--instances
: Pour améliorer la gestion des requêtes et alléger la charge d'un processus.
-
Exposez le port avec
ufw
et installez NGINX sur votre machine (et configurez-le).
-
Clonez le dépôt :
git clone https://github.com/lalBi94/kontrol.git
-
Accédez au répertoire du projet :
cd kontrol
-
Lancez le script d'installation :
sh self_host.sh
-
Exposez le port avec
ufw
et installez NGINX sur votre machine (et configurez-le).
- Vous devez configurer les variables d'environnement dans les fichiers
.env
etapi/.env
à partir des fichiers.env.example
. - Les fichiers
.env
etapi/.env
ne sont pas présents lors du clonage du dépôt mais seront générés lors de l'initialisation du serveur. - Un fichier
api/.db
et un dossierapi/data/admin
seront créés. Le mot de passe pour accéder au compte administrateur estkontrol-admin
. - Un dossier
api/temp
sera également créé.
Les contributions sont les bienvenues ! Forkez le dépôt et soumettez une pull request avec un nom de branche explicite pour toute amélioration ou correction de bug. Si vous avez modifié un fichier, vous pouvez le co-signer avec votre nom ou pseudo.
En tant que contributeur principal, je m'assure de contrôler les commits avant leur intégration. Je prendrai également l'initiative de pusher directement du code sur la branche principale lorsque cela sera nécessaire. Merci pour votre compréhension et votre soutien !
Dans la doc POSTMAN, j'ai oublié de mentionner si une route a besoin d'une autorisation ou non. Sachez que : pandora
, webfav
,report
,photomaton
,nwrite
nécessite un token lambda. Et que : GET /report/
, POST /users/register
nécessite un token admin.
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
Pour toute question ou support, veuillez me contacter à l'adresse [email protected].
Nous espérons que Kontrol deviendra un outil précieux pour vous et votre famille ou organisation. Restez à l'écoute pour les futures mises à jour et améliorations ! 🚀