Documentation

Bien démarrer

Barkstack installe et maintient ses services sur un Docker Swarm existant. Vous gardez le contrôle de la machine, des fichiers, des images et des secrets.

Avant de commencer

  • Une machine Linux ou macOS capable d’exécuter le binaire Barkstack.
  • Docker Engine installé et disponible pour le compte qui exécute Barkstack.
  • Un gestionnaire Docker Swarm. Barkstack initialise un Swarm à un nœud lorsque Docker n’en utilise pas encore.
  • Un réseau local de confiance : la Console sert actuellement du HTTP simple sur le port 8080.

1. Installer la CLI

Téléchargez depuis la page de versions l’archive correspondant à votre système et votre processeur. Remplacez vX.Y.Z par une version publiée ; la CLI correspondante sélectionne les mêmes versions de PawSQL, TreatVault et Console.

VERSION=vX.Y.Z
OS=linux       # linux or darwin
ARCH=amd64    # amd64 or arm64
curl -fLO "https://git.campbellwireless.net/barkstack/barkstack/releases/download/$VERSION/barkstack_${VERSION#v}_${OS}_${ARCH}.tar.gz"
tar -xzf barkstack_*.tar.gz
install -m 0755 barkstack /usr/local/bin/barkstack
barkstack version

2. Créer un Barkfile

Créez un répertoire détenu par l’opérateur, puis enregistrez un Barkfile. PawSQL est global au cluster ; chaque projet possède ses ressources PostgreSQL et son réseau overlay isolé. Le mot de passe est un secret Docker Swarm limité au projet, jamais une valeur du Barkfile.

docker secret create barkstack_garden_garden_postgres_password /secure/path/garden-password
pawsql {
  listen :5432
}

project garden {
  pawsql {
    database garden {
      postgres {
        image postgres:18
        volume garden-postgres-data
        password_secret garden_postgres_password
      }
    }
  }
}

Optionnel : composer les projets depuis plusieurs Barkfiles

Utilisez des directives include pour composer en mémoire les frontières de propriété des projets. Les chemins sont relatifs au fichier qui inclut. listen, tls et treatvault restent des ressources du cluster et ne peuvent être déclarés qu’une seule fois. Chaque projet possède un overlay non attachable barkstack-project-<name> ; PawSQL rejoint l’overlay système et tous les overlays de projets servis, alors que PostgreSQL rejoint uniquement l’overlay de son projet. Les identifiants sont canoniques sous la forme database/<projet>/<base>, donc les noms peuvent être répétés entre projets. Un même nom de base non qualifié exige des noms d’hôte SNI distincts pour router le trafic.

# Barkfile
pawsql {
  listen :5432
}
include "Barkfile.garden"

# Barkfile.garden
project garden {
  pawsql {
    database main {
      hostname garden.pawsql.example
      postgres {
        image postgres:18
        volume garden-main
        password_secret main_password
      }
    }
  }
}

3. Initialiser Barkstack

Exécutez cette commande sur le gestionnaire Swarm qui a accès au Barkfile et à tous les fichiers référencés. Réexécuter la commande actualise sans risque les services Barkstack après une modification de configuration.

barkstack init --config /srv/barkstack/Barkfile

4. Ouvrir la Console

Barkstack publie la Console via l’ingress Docker Swarm. Ouvrez l’adresse de n’importe quel nœud Swarm sur le port 8080 depuis votre réseau de confiance.

http://<swarm-node>:8080