Aller au contenu principal

Installation sans Docker

L'utilisation de Docker pour installer Tianji est la meilleure méthode, car vous n'avez pas à vous soucier des problèmes d'environnement.

Cependant, si votre serveur ne prend pas en charge Docker, vous pouvez essayer d'installer manuellement.

Prérequis

Vous avez besoin de :

  • Node.js 18.12+ / 20.4+
  • pnpm 9.x (9.7.1 est préférable)
  • Git
  • postgresql
  • pm2 - Pour exécuter Tianji en arrière-plan
  • apprise - optionnel, si vous en avez besoin pour notifier

Cloner le code et construire

git clone https://github.com/msgbyte/tianji.git
cd tianji
pnpm install

pnpm build

Préparer le fichier d'environnement

Créez un fichier .env dans src/server

DATABASE_URL="postgresql://user:pass@127.0.0.1:5432/tianji?schema=public"
JWT_SECRET="remplacez-moi-par-une-chaîne-aléatoire"

Assurez-vous que votre URL de base de données est correcte. Et n'oubliez pas de créer la base de données avant.

Pour plus d'environnements, consultez ce document environnement

Si possible, assurez-vous que votre encodage est en_US.utf8, par exemple : createdb -E UTF8 -l en_US.utf8 tianji

Exécuter le serveur

npm install pm2 -g && pm2 install pm2-logrotate

# Initialiser la migration de la base de données
cd src/server
pnpm db:migrate:apply

# Démarrer le serveur
pm2 start ./dist/src/server/main.js --name tianji

Par défaut, Tianji fonctionnera sur http://localhost:12345

Mettre à jour le code vers une nouvelle version

# Extraire les nouvelles versions/tags
cd tianji
git fetch --tags
git checkout -q <version>

# Mettre à jour les dépendances
pnpm install

# Construire le projet
pnpm build

# Exécuter les migrations de la base de données
cd src/server
pnpm db:migrate:apply

# Redémarrer le serveur
pm2 restart tianji

Questions fréquemment posées

Échec de l'installation de isolated-vm

Si vous utilisez Python 3.12, vous obtiendrez une erreur comme celle-ci :

ModuleNotFoundError: No module named 'distutils'

Cela est dû au fait que Python 3.12 a supprimé distutils du module intégré. Maintenant, nous avons une bonne solution pour cela.

Vous pouvez résoudre ce problème en passant votre version de Python de 3.12 à 3.9.

Comment le résoudre avec Python contrôlé par brew

brew install python@3.9
rm /opt/homebrew/bin/python3
ln -sf /opt/homebrew/bin/python3 /opt/homebrew/bin/python3.9

Ensuite, vous pouvez vérifier la version avec python3 --version