Installer AirTrail avec Docker
AirTrail

Installer AirTrail avec Docker

Table des matières

GitHub - johanohly/AirTrail: A modern, open-source personal flight tracking system
A modern, open-source personal flight tracking system - johanohly/AirTrail

Aux personnes passionnées d'aviation et/ou de voyages, vous avez peut-être envie de garder de traces de vos voyages ou tout simplement de suivre votre vol.

Et bien, ça tombe bien!

En fait non, ça ne tombe pas très bien...

Aujourd'hui nous allons parler de AirTail! Une application qui va vous permettre de suivre vos vols et de consulter l'historique de ceux déjà effectués!

⚠️
Au moment d'écrire ces lignes, le projet est en développement. Dans la partie statistiques tout n'est pas comptabilisé correctement si on ne rafraichi pas la page. Ce n'est pas bien méchant, le dev investigue pour corriger ça.

⚡ Caractéristiques

  • Carte du monde: Visualisez tous vos vols sur une carte du monde interactive.
  • Historique des vols: Gardez une trace de tous vos vols en un seul endroit.
  • Statistiques: Obtenez des informations sur l'historique de vos vols grâce aux statistiques.
  • Authentification des utilisateurs: Autorisez plusieurs utilisateurs et sécurisez vos données grâce à l'authentification des utilisateurs.
  • Conception réactive: Utilisez l'application sur n'importe quel appareil grâce à une conception réactive.
  • Mode sombre: Passez du mode clair au mode sombre.
  • Importer des vols: Importer des vols à partir de différentes sources.

💾 L'installation

  1. Créez votre compose.yml dans le dossier ou vous comptez installer AirTrail:
sudo nano compose.yml
  1. Collez ça dedans en prenant soin d'adapter ports et volumes suivant votre configuration:
version: '3.9'
services:
  db:
    container_name: airtrail_db
    image: postgres:16-alpine
    restart: always
    env_file:
      - .env
    environment:
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    volumes:
      - db_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${DB_USERNAME} -d ${DB_DATABASE_NAME}"]
      interval: 5s
      timeout: 5s
      retries: 5
  airtrail:
    container_name: airtrail
    image: johly/airtrail:latest
    restart: always
    env_file:
      - .env
    ports:
      - 3455:3000
    depends_on:
      db:
        condition: service_healthy

volumes:
  db_data:

Maintenant on va créer le fichier .env:

sudo nano .env

Et coller ça dedans:

# Your domain, e.g https://example.com
# You might have to add :443 if you are using https through a reverse proxy
ORIGIN=https://airtrail.mondomaine.com:443

# The database URL used by the application.
# If you are using the provided docker-compose file, you should only change the PASSWORD_HERE
# If you are using your own database, you should change this to the correct URL
DB_URL=postgres://airtrail:PASSWORD_HERE@db:5432/airtrail

# Values below this line are only for the default provided postgres database
###################################################################################
# Connection secret for postgres. You should change it to a random password
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
# When you change the DB_PASSWORD, you should also update the DB_URL accordingly
DB_PASSWORD=PASSWORD_HERE

# The values below this line do not need to be changed
###################################################################################
DB_DATABASE_NAME=airtrail
DB_USERNAME=airtrail

Veillez à modifier:

  • ORIGIN=https://airtrail.mondomaine.com:443 => Remplacez https://airtrail.mondomaine.com:443 par votre domaine, suivi de :443 si vous passez par un reverse proxy. Ce qui est mon cas.
    Donc, sous cette forme: https://airtrail.mondomaine.com:443.
  • DB_URL=postgres://airtrail:PASSWORD_HERE@db:5432/airtrail => Replacez PASSWORD_HERE et choisissez un mot de passe fort MAIS sans caractères spéciaux ni espace et utilisez seulement des caractères A-Za et z0-9.
  • DB_PASSWORD=PASSWORD_HERE => Replacez PASSWORD_HERE par le mot de passe choisi à l'étape précédente.

On va déployer l'application:

docker-compose up -d

ou avec docker-compose V2:

docker compose up -d
  1. Rendez-vous sur l'ip:port, suivant l'IP de votre serveur local et du port choisi, 8181 par défaut:
https://ip:8181/

ou votre domaine:

https://mondomaine.com

👤 Création du compte administrateur

Lorsque vous lancez l'application pour la première fois, vous arrivez ici:

  • Username => Choisissez un nom d'utilisateur.
  • Password => Choisissez un mot de passe fort.
  • Name => Indiquez un nom ou répétez votre nom d'utilisateur.
  • Unit of measurement => Suivant votre pays, choisissez Metric ou Imperial.

Cliquez sur Create, ce qui vous redirige ici:


⚙️ Les options

Voyons ce qui se cache sous les options, cliquez sur l'engrenage:

Ce qui ouvre ceci un formulaire:

General

  • Username => Permet de changer le nom d'utilisateur.
  • Display name => Permet de changer le nom affiché.
  • Unit of measurement => Permet de changer l'unité de mesure.
  • Edit password => Permet de changer le mot de passe.

Pour toute action de changement, cliquez sur Save pour valider.

User

Dans cette partie vous pourrez créer/éditer/supprimer des utilisateurs.

En cliquant sur Add User, nous allons créer un utilisateur:

Remplissez les informations demandées:

  • Username => Indiquez sont nom d'utilisateur.
  • Password => Indiquez le mot de passe (fort) de l'utilisateur.
  • Name => Indiquez le nom qui sera affiché.
  • Role => Très important, indiquez le rôle de cet utilisateur. Utilisateur normal ou administrateur.

Cliquez sur Add pour valider.

Appearance

Vous avez le choix entre le mode sombre ou clair. Cliquez sur celui que vous préférez.

Import

Dans cette zone vous pourrez importer les données des plateformes FlightRadar24 et App in the Air.


✈️ Ajoutez un vol

Cliquez sur Add flight:

Ce qui ouvre cette fenêtre:

  • From => Cliquez dans la zone et indiquez les premières lettres de l'aéro-cochon de départ.
  • To => Cliquez dans la zone et indiquez les premières lettres de l'aéroport d'arrivée.
  • Departure => Indiquez la date et l'heure de départ. Entrez les chiffres à la main pour le moment car j'ai constaté un bug avec la fenêtre de sélection.
  • Arrival => Indiquez la date et l'heure d'arrivée. Entrez les chiffres à la main pour le moment car j'ai constaté un bug avec la fenêtre de sélection.

Seat information

Tout cela concerne donc votre siège:

  • User => déjà affiché suivant l'utilisateur connecté, libre à vous d'en changer.
  • Guest name => Nom de la personne qui vous accompagne, éventuellement.
  • Seat => Indiquez où était votre siège. Fenêtre, aile,...
  • Seat Number => Indiquez le numéro du siège.
  • Seat Class => Indiquez la classe, économique, affaire,...

Cliquez sur Add Seat si vous souhaitez ajouter un autre siège. Uniquement.

Flight Information

  • Aircraft => Si vous connaissez le type d'avion, indiquez-le.
  • Airline => Indiquez la compagnie aérienne.
  • Flight Reason => Indiquez la raison de votre vol. Si vous voulez.
  • Flight Number => Indiquez le numéro du vol.
  • Aircraft Registration => Heu... je suis pas trop calé dans le domaine.

Cliquez sur Add Flight, et voici ce que ça donne:


📊 Statisctics

Vous pouvez afficher les statistiques de vos vols en cliquant sur le bouton Statistics:

Ce qui donne:

Ah, mais attendez... Tout n'est bien comptabilisé!? Rafraichissez la page et....

Oui, j'ai ajouté un second vol entre-temps ce qui explique les statistiques.

zarev

->.<-
🐧 Passionné de self-hosting, je partage ce que je connais et me nourris des connaissances des bonnes âmes qui partagent avec moi. Soutenons l'utilisation des apps open source et leurs développeurs.