Skip to content

[INSTABLE] Cloud et espace commun open-source pour votre communauté !

License

Notifications You must be signed in to change notification settings

lalBi94/kontrol

Repository files navigation

Kontrol 📋

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.

Sommaire 📑

Fonctionnalités ✨

  • 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)

Prérequis 🛠️

  • 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.

Installation du projet 🏗️

Installation manuelle 🔧

  1. Clonez le dépôt :

    git clone https://github.com/lalBi94/kontrol.git
  2. Accédez au répertoire du projet :

    cd kontrol
  3. Installez les dépendances du frontend :

    pnpm install
  4. Installez les dépendances du backend :

    cd api
    pnpm install
  5. Construisez le projet :

    cd ../
    pnpm run build
  6. Déplacez le dossier dist dans api/ :

    mv dist api
  7. Installez pm2 pour exécuter le code en arrière-plan sur votre serveur :

    pnpm install -g pm2
    pm2 -v
  8. 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.
  9. Exposez le port avec ufw et installez NGINX sur votre machine (et configurez-le).

Installation semi-automatique ⚙️

  1. Clonez le dépôt :

    git clone https://github.com/lalBi94/kontrol.git
  2. Accédez au répertoire du projet :

    cd kontrol
  3. Lancez le script d'installation :

    sh self_host.sh
  4. Exposez le port avec ufw et installez NGINX sur votre machine (et configurez-le).

Informations importantes

  • Vous devez configurer les variables d'environnement dans les fichiers .env et api/.env à partir des fichiers .env.example.
  • Les fichiers .env et api/.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 dossier api/data/admin seront créés. Le mot de passe pour accéder au compte administrateur est kontrol-admin.
  • Un dossier api/temp sera également créé.

Contribuer 🤝

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.

Licence 📜

Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.

Contact 📧

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 ! 🚀

About

[INSTABLE] Cloud et espace commun open-source pour votre communauté !

Topics

Resources

License

Stars

Watchers

Forks

Languages