démarrer Docker

Docker

Lancez socAdmin en conteneur à côté de vos bases de données existantes, avec une seule commande ou quelques lignes de Compose.

Démarrage rapide

docker run -d \
  -p 8080:8080 \
  -v socadmin-data:/data \
  -e ADMIN_EMAIL=admin@example.com \
  -e ADMIN_PASSWORD='MyStr0ng!Pass' \
  soleilclems/socadmin

Ouvrez http://localhost:8080 et connectez-vous avec l’email et le mot de passe ci-dessus.

  • -v socadmin-data:/data conserve les comptes, les paramètres et les clés de chiffrement entre les redémarrages. Montez-le toujours.
  • ADMIN_EMAIL et ADMIN_PASSWORD créent le premier compte administrateur au démarrage. Sans eux, la première personne à s’inscrire devient l’administrateur.

Docker Compose

Ajoutez socAdmin au fichier Compose qui lance votre base de données. Les variables *_HOST pré-configurent la connexion, pour que les utilisateurs n’aient pas à saisir l’adresse du serveur. Utilisez le nom du service comme hôte.

services:
  socadmin:
    image: soleilclems/socadmin
    ports:
      - "8080:8080"
    volumes:
      - socadmin-data:/data
    environment:
      - ADMIN_EMAIL=admin@example.com
      - ADMIN_PASSWORD=MyStr0ng!Pass
      - MYSQL_HOST=mysql
      - MYSQL_USER=root
      - MYSQL_PASSWORD=secret
    depends_on:
      mysql:
        condition: service_healthy

  mysql:
    image: mysql:8
    environment:
      - MYSQL_ROOT_PASSWORD=secret
    volumes:
      - mysql-data:/var/lib/mysql
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      interval: 5s
      timeout: 3s
      retries: 10

volumes:
  socadmin-data:
  mysql-data:

Puis démarrez le tout :

docker compose up -d

Connexion aux bases de données hors Compose

À l’intérieur d’un conteneur, socAdmin bloque les connexions aux adresses IP privées et de bouclage par défaut (127.0.0.1, 10.x, 172.16-31.x, 192.168.x). Cela empêche l’interface d’être utilisée pour sonder votre réseau interne.

Les noms de services comme mysql ou db.internal ne sont pas concernés. Si vous devez atteindre une base de données par IP privée, par exemple une sur la machine hôte, activez l’option :

-e ALLOW_PRIVATE_NETWORKS=true

Les adresses de métadonnées cloud (169.254.x.x) restent bloquées dans tous les cas.

Le volume de données

Tout ce que socAdmin conserve se trouve dans un seul fichier SQLite, /data/socadmin.db :

  • Les comptes socAdmin, rôles et paramètres
  • Les identifiants de base de données sauvegardés, chiffrés
  • La clé de chiffrement de ces identifiants, générée au premier démarrage
  • Le secret de signature JWT, quand JWT_SECRET n’est pas défini

Si vous perdez le volume, tous les comptes et connexions sauvegardées sont perdus. Sauvegardez-le comme n’importe quelle autre base de données.

Les logs d’audit (connexions, accès aux bases, requêtes exécutées) sont écrits sur la sortie standard, consultez-les avec docker logs. Ils ne contiennent jamais de mots de passe, de texte de requête ni de données de lignes.

Détails de l’image

  • Basée sur alpine:3.21, environ 30 Mo.
  • S’exécute en tant qu’utilisateur non-root socadmin.
  • Health check intégré sur /.
  • Architecture : linux/amd64.
  • Écoute sur le port 8080. Modifiez-le avec PORT.

Ensuite, placez-le derrière HTTPS : Mise en production.