Docker

MariaDb

Installation du docker MariaDb 

 

Mise en place de du container :

sudo docker create \
  --name=mariadb \
  -e PUID=1035 \
  -e PGID=100 \
  -e MYSQL_ROOT_PASSWORD=BibiTux2020 \
  -e TZ=Europe/Paris \
  -e MYSQL_DATABASE=bookstack_db \
  -e MYSQL_USER=bookstack \
  -e MYSQL_PASSWORD=secret \
  -p 3306:3306 \
  -v /volume1/docker/data:/config \
  --restart unless-stopped \
  linuxserver/mariadb

ne pas oublier de lier le container DB au container principal dans le DSM

Installation de bookstack et mariadb

Installation de bookstack

Mise en place du container MariaDB :
docker create \
  --name=mariadb \
  -e PUID=1000 \
  -e PGID=1000 \
  -e MYSQL_ROOT_PASSWORD=secret \
  -e TZ=Europe/Paris \
  -e MYSQL_DATABASE=bookstack_db \
  -e MYSQL_USER=bookstack \
  -e MYSQL_PASSWORD=secret \
  -p 3306:3306 \
  -v /mnt/vms/bookstack/db:/config \
  --restart unless-stopped \
  linuxserver/mariadb
Mise en place du container BookStack :
 docker create \
  --name=bookstack \
  --link mariadb:mariadb \
  -e PUID=1000 \
  -e PGID=1000 \
  -e DB_HOST=mariadb \
  -e DB_USER=bookstack \
  -e DB_PASS=secret \
  -e DB_DATABASE=bookstack_db \
  -p 6875:80 \
  -v /mnt/vms/bookstack:/config \
  --restart unless-stopped \
  linuxserver/bookstack

Sur DSM Synology ne pas oublier de lier les 2 containers !!! en CLI --link mariadb:mariadb \

 
Sur le container BookStack lier le au container MariaDB :

link.png

Docker Plex

Plex est un logiciel client-serveur de gestion multimédia qui permet d'accéder à des films, séries, musiques et photos sur le serveur peu importe où le client se situe, s'il a une connexion Internet.

créer un fichier docker-compose.yml

---
version: "2.1"
services:
  plex:
    image: linuxserver/plex
    container_name: plex
    network_mode: host
    environment:
      - PUID=0
      - PGID=0
      - VERSION=docker
    volumes:
      - /mnt/NAS/Series:/tv
      - /mnt/PLEX/database:/config
      - /mnt/NAS:/data
      - /mnt/NAS/Films_1:/movies
      - /tmp:/transcode
    restart: unless-stopped

 

Lancer en root la commande suivante :

docker-compose up

 

Ghost avec docker-compose

Installation du web serveur Ghost 3 et Mysql 5.7

 

Création d'un fichier ghost.yml dans nano :

# by default, the Ghost image will use SQLite (and thus requires no separate database container)
# we have used MySQL here merely for demonstration purposes

version: '3.1'

services:

  ghost:
    image: ghost:3-alpine
    restart: always
    ports:
      - 8080:2368
    environment:
      # see https://docs.ghost.org/docs/config#section-running-ghost-with-config-env-variables
      database__client: mysql
      database__connection__host: db
      database__connection__user: root
      database__connection__password: secret
      database__connection__database: ghost

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: secret

ensuite lancer la commande docker-compose :

docker-compose -f ghost.yml up

 
Ajout de l'URL du domaine

il faut ajouter la variable environnement :

URL=https://blog.wlan.ovh/

 

 

Portainer Docker

installation de Portainer :

$ docker volume create portainer_data
$ docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

installation du repo de Templates Portainer :

https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Template/template.json

https://yangkghjh.github.io/selfhosted_store/unraid/templates/portainer/template.json

installation de Portainer 2.0

docker run -d -p 9000:9000 -p 8000:8000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

 

alias mntnas="sshfs garfieldtux@192.168.1.45:/ /mnt/NAS -o nonempty,port=22,idmap=user,gid=125,allow_other,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3"

 

docker-gateone

defines a docker container with gateone installed

Usage

  1. Install docker
  2. Download and start the gateone server instance
    docker run --name gateone -p 443:10443 -p 2345:22 -d greyltc/gateone
  3. Test the gateone server
    Point your browser to:
    https://localhost
    and you should see a page with a big button for the Terminal:SSH application
  4. Click the Terminal:SSH button
  5. Hit enter (accept the default) to choose to connect to localhost
  6. Hit enter (accept the default) to choose to connect through port 22
  7. Enter docker for the user
  8. Type sl to see a nice steam locomotive.
  9. [Optional] Stop the gateone docker server instance
    docker stop gateone
  10. [Optional] Delete the gateone docker server instance (after stopping it)
    docker rm gateone
  11. Profit.

SSH

You can also ssh into the container with ssh docker@localhost:2345

Statistiques web avec Ackee via Docker

1. Installation de la Base MongoDB :
docker run -p 27017:27017 -v /path/to/local/folder:/data/db --name mongo mongo

Explication : 

 

2. Création du container Ackee et de MongoDB
docker run -p 3000:3000 -e ACKEE_MONGODB='mongodb://mongo:27017/ackee' -e ACKEE_USERNAME='username' -e ACKEE_PASSWORD='password' --link mongo --name ackee electerious/ackee

Explanation:

 

3. Ouvrir Ackee
docker run -p 3000:3000 -e ACKEE_MONGODB='mongodb://mongo:27017/ackee' -e ACKEE_USERNAME='username' -e ACKEE_PASSWORD='password' --link mongo --name ackee electerious/ackee

 

installation de SearX Docker

 

 

 

version: '3.7'

services:

  caddy:
    container_name: caddy
    image: abiosoft/caddy:1.0.3-no-stats
    ports:
      - 80:80
      - 443:443
    network_mode: host
    command: -email ${LETSENCRYPT_EMAIL} -agree=${LETSENCRYPT_AGREE} -log stdout -host ${SEARX_HOSTNAME} -conf /etc/Caddyfile
    volumes:
      - ./Caddyfile:/etc/Caddyfile:rw
      - ./caddy:/root/.caddy:rw
      - ./srv:/srv:rw
      - searx-checker:/srv/searx-checker:rw
    environment:
      - SEARX_HOSTNAME=${SEARX_HOSTNAME}
      - SEARX_PROTOCOL=${SEARX_PROTOCOL:-}
      - SEARX_TLS=${SEARX_TLS:-}
      - FILTRON_USER=${FILTRON_USER}
      - FILTRON_PASSWORD=${FILTRON_PASSWORD}
    cap_drop:
      - ALL
    cap_add:
      - NET_BIND_SERVICE
      - DAC_OVERRIDE

  filtron:
    container_name: filtron
    image: dalf/filtron
    restart: always
    ports:
      - 4040:4040
      - 4041:4041
    networks:
      - searx
    command: -listen 0.0.0.0:4040 -api 0.0.0.0:4041 -target searx:8080
    volumes:
      - ./rules.json:/etc/filtron/rules.json:rw
    read_only: true
    cap_drop:
      - ALL

  searx:
    container_name: searx
    image: searx/searx:latest
    restart: always
    networks:
      - searx
    command: ${SEARX_COMMAND:-}
    volumes:
      - ./searx:/etc/searx:rw
    environment:
      - BIND_ADDRESS=0.0.0.0:8080
      - BASE_URL=https://${SEARX_HOSTNAME}/
      - MORTY_URL=https://${SEARX_HOSTNAME}/morty/
      - MORTY_KEY=${MORTY_KEY}
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETGID
      - SETUID
      - DAC_OVERRIDE

  morty:
    container_name: morty
    image: dalf/morty
    restart: always
    ports:
      - 3000:3000
    networks:
      - searx
    command: -listen 0.0.0.0:3000 -timeout 6 -ipv6
    environment:
      - MORTY_KEY=${MORTY_KEY}
    logging:
      driver: none
    read_only: true
    cap_drop:
      - ALL

  searx-checker:
    container_name: searx-checker
    image: searx/searx-checker
    restart: always
    networks:
      - searx
    command: -cron -o html/data/status.json http://searx:8080
    volumes:
      - searx-checker:/usr/local/searx-checker/html/data:rw

networks:
  searx:
    ipam:
      driver: default

volumes:
  searx-checker:

Wordpress WP-CLI

https://www.datanovia.com/en/fr/lessons/utilisation-de-docker-wordpress-cli-pour-gerer-les-sites-web-wordpress/

Exigences du WP-Cli

  1. Accès SSH à votre serveur
  2. PHP 5.3.2 ou version ultérieure.
  3. WordPress 3.4 ou version ultérieure.
  4. Un environnement UNIX comme Linux.

Installer WP-Cli

Vous pouvez soit 1) installer directement WP-Cli sur votre système ou l’installer en utilisant Docker.

Installer directement sur votre système

# 1/ Télécharger  wp-cli
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
# 2/ Rendre l'application exécutable
chmod +x wp-cli.phar
# 3/ Déplacez-le dans /usr/local/bin/wp
sudo mv wp-cli.phar /usr/local/bin/wp
# Vérifier si l'installation a fonctionné
wp --info

Vous pouvez maintenant simplement taper “wp” dans votre terminal pour appeler WP-Cli. Au fait, n’oubliez pas de lancer wp depuis le répertoire racine de WordPress.

Installer WordPress en utilisant le docker-compose et WP-ClI

Voir notre précédent tutoriel pour installer et configurer automatiquement wordpress en utilisant docker-compose et WP-CLI.

Vous pouvez déployer automatiquement un site WordPress docker local en 5 minutes en utilisant les commandes suivantes:

# Téléchargez un exemple de docker-compose pour WordPress
git clone https://github.com/kassambara/wordpress-docker-compose
cd wordpress-docker-compose
# Installation automatique de wordpress
make autoinstall

Visitez votre site à l’adresse http://localhost et votre base de données via phpMyAdmin à l’adresse http://localhost:8080.

Site internet

phpMyAdmin

Identification par défaut de l’administrateur de votre site wordpress:

  • Username: wordpress
  • Password: wordpress

Identification par défaut de l’interface phpMyAdmin:

  • Username: root
  • Password: password

Cette installation comprend également l’outil WP-ClI. Dans les prochaines sections, nous utiliserons les commandes WP-ClI de docker-compose. Donc, commencez par créer un alias pour appeler simplement les commandes de composition du docker WP-CLI:

wp="docker-compose run --rm wpcli"

Les commandes WP-CLI les plus populaires

COMMANDE DESCRIPTION
wp cap Ajoute, supprime et liste les capacités d’un rôle utilisateur.
wp cli Examine les informations actuelles du WP-CLI, vérifie les mises à jour ou affiche les alias définis.
wp comment Crée, met à jour, supprime et modère les commentaires.
wp config Génère et lit le fichier wp-config.php.
wp core Télécharge, installe, met à jour et gère une installation WordPress.
wp cron Teste, exécute et supprime les événements WP-Cron ; gère les horaires WP-Cron.
wp db Effectue les opérations de base de la base de données en utilisant les informations d’identification stockées dans wp-config.php.
wp eval Exécute un code PHP arbitraire.
wp eval-file Charge et exécute un fichier PHP.
wp export Exporte le contenu de WordPress vers un fichier WXR.
wp i18n Fournit des outils d’internationalisation pour les projets WordPress.
wp import Importe le contenu d’un fichier WXR donné.
wp language Installe, active et gère les packs de langues.
wp maintenance-mode Active, désactive ou vérifie l’état du mode de maintenance d’un site.
wp media Importe des fichiers en pièces jointes, régénère des vignettes ou liste les tailles d’images enregistrées.
wp menu Liste, crée, attribue et supprime les menus de navigation du thème actif.
wp plugin Gère les plugins, y compris les installations, les activations et les mises à jour.
wp post Gère les messages, le contenu et les méta.
wp post-type Récupère les détails sur les types de publications.
wp rewrite Liste ou supprime les règles de réécriture du site, met à jour la structure du permalien.
wp role Gère les rôles des utilisateurs, y compris la création de nouveaux rôles et la réinitialisation des valeurs par défaut.
wp scaffold Génère du code pour les types de messages, les taxonomies, les plugins, les child thèmes, etc.
wp search-replace Recherche/remplacement de textes dans la base de données.
wp shell Ouvre une console PHP interactive pour exécuter et tester le code PHP.
sidebar wp Listes des sidebars enregistrés.
wp site Crée, supprime, vide, modère et liste un ou plusieurs sites sur une installation multisite.
wp super-admin Liste, ajoute ou supprime les utilisateurs super-admin sur une installation multisite.
wp taxonomy Recherche d’informations sur les taxonomies enregistrées.
wp term Gère les termes de la taxonomie et les méta termes, avec les commandes de création, de suppression et de liste.
wp theme Gère les thèmes, y compris les installations, les activations et les mises à jour.
wp user Gère les utilisateurs, ainsi que leurs rôles, leurs capacités et leurs méta.
wp widget Gère les widgets, y compris l’ajout et le déplacement de ceux-ci dans les barres latérales.

Mise à jour de WordPress

# Mise à jour vers la dernière version
$wp core update
# Revenir à une version plus ancienne
wp core update --version=4.9.6 --force

Commandes de plugins

NOM DESCRIPTION
wp plugin activate Active un ou plusieurs plugins.
wp plugin deactivate Désactive un ou plusieurs plugins.
wp plugin delete Supprime les fichiers de plugin sans les désactiver ou les désinstaller.
wp plugin get Obtention de détails sur un plugin installé.
wp plugin install Installe un ou plusieurs plugins.
wp plugin is-active Vérifie si un plugin donné est actif.
wp plugin is-installed Vérifie si un plugin donné est installé.
Liste de plugins wp Obtenir une liste de plugins.
wp plugin path Donne le chemin d’accès à un plugin ou au répertoire des plugins.
wp plugin search Recherche dans le répertoire des plugins de WordPress.org.
wp plugin status Révèle le statut d’un ou de tous les plugins.
wp plugin toggle Bascule l’état d’activation d’un plugin.
wp plugin uninstall Désinstallation d’un ou plusieurs plugins.
wp plugin update Mise à jour d’un ou plusieurs plugins.

Liste des plugins

$wp plugin list
+---------+----------+--------+---------+
| nom | statut | mise à jour | version |
+---------+----------+--------+---------+
| akismet | inactif | aucun | 4.1.3 |
| hello | inactif | aucun | 1.7.2 |
+---------+----------+--------+---------+

Supprimer le plugin

$wp plugin delete akismet hello

Installer et activer le plugin

# Installer et activer un nouveau plugin
$wp plugin install woocommerce --activate
# désactiver un plugin
$wp plugin deactivate woocommerce
# N'activez qu'un plugin
$wp plugin activate woocommerce
# Mise à jour des plugins
$wp plugin update woocommerce
$wp plugin update --all
If you want to install and activate multiple WordPress plugins at once, you can mention multiple plugins in the same command.

Version du plugin et détails

$wp plugin activate woocommerce
+-------------+-----------------------------------------------------------------+
| Champ | Valeur |
+-------------+-----------------------------------------------------------------+
| nom | woocommerce |
| titre | WooCommerce |
| auteur | Automattic |
| version | 3.8.1 |
| description | Une boîte à outils pour le commerce électronique qui vous aide à vendre n'importe quoi. Magnifiquement. |
| statut | actif |
+-------------+-----------------------------------------------------------------+

Commandes de thème

NOM DESCRIPTION
wp theme activate Active un thème.
Suppression d’un ou plusieurs thèmes.  
wp theme disable Désactive un thème sur une installation multi-sites WordPress.
wp theme enable Active un thème sur une installation multisite WordPress.
wp theme get Obtenir des détails sur un thème.
wp theme install Installe un ou plusieurs thèmes.
wp theme is-active Vérifie si un thème donné est actif.
wp theme is-installed Vérifie si un thème donné est installé.
wp theme list Obtenir une liste des thèmes.
wp theme mod Définit, obtient et supprime les mods de thèmes.
wp theme path Donne le chemin d’accès à un thème ou au répertoire des thèmes.
wp theme search Recherche dans le répertoire des thèmes de WordPress.org.
wp theme status Révèle le statut d’un ou de tous les thèmes.
wp theme update Mise à jour d’un ou plusieurs thèmes.

Liste de thèmes

$wp theme list
+-----------------+----------+--------+---------+
| nom | statut | mise à jour | version |
+-----------------+----------+--------+---------+
| twentynineteen | inactifs | aucun | 1,4 |
| twentyseventeen | inactifs | aucun | 2,2 |
| twentysixteen | inactifs | aucun | 2.0 |
| twentytwenty | actifs | aucun | 1.1 |
+-----------------+----------+--------+---------+

Activer un thème

$wp theme activate twentyseventeen

Mise à jour de thème

# Mise à jour d'un thème
$wp theme update twentyseventeen
# Mettre à jour tous les thèmes
$wp theme update --all

Rechercher et remplacer

Cette commande est particulièrement utile lorsque vous avez modifié l’URL du site ou même ajouté HTTPS à l’URL du site.

Faites d’abord un essai:

$wp search-replace {old URL} {new URL} --dry-run

La commande ci-dessus n’affichera le résultat escompté qu’une fois cette requête exécutée. Il s’agit d’une mesure de précaution pour s’assurer que le résultat sera conforme à l’attente. Une fois que vous êtes satisfait, vous pouvez procéder au remplacement effectif en retirant dry-run de la commande ci-dessus, comme suit:

$wp search-replace {old URL} {new URL}

Migration de contenu

  • wp db export: Exporte la base de données vers un fichier ou vers STDOUT.
  • wp db import: Importe une base de données à partir d’un fichier ou de STDIN.
# Exporte toute la base de données vers un fichier dans le répertoire wordpress
$wp db export db.sql

# Exporter certains tableaux
$wp db export --tables=wp_options,wp_users

# Importer une base de données
$wp db import db.sql

Il migre efficacement toutes les données et informations, y compris les messages, les liens, les dates, les auteurs, les commentaires, etc., et correspond en conséquence aux taxonomies WordPress existantes.

Commandes supplémentaires de gestion de la base de données:

NOM DESCRIPTION
wp db check Vérifie l’état actuel de la base de données.
wp db clean Supprime toutes les tables avec $table_prefix de la base de données.
wp db cli Ouvre une console MySQL en utilisant les informations d’identification de wp-config.php
wp db columns Affiche des informations sur une table donnée.
wp db create Crée une nouvelle base de données.
wp db drop Supprime la base de données existante.
wp db export Exporte la base de données vers un fichier ou vers STDOUT.
wp db import Importe une base de données à partir d’un fichier ou de STDIN.
wp db optimize Optimise la base de données.
wp db prefix Affiche le préfixe de la table de la base de données.
wp db query Exécute une requête SQL sur la base de données.
wp db repair Réparation de la base de données.
wp db reset Supprime toutes les tables de la base de données.
wp db search Trouve un texte dans la base de données.
wp db size Affiche le nom et la taille de la base de données.
wp db tables Liste des tables de la base de données.

Gérer les utilisateurs

# Liste des identifiants d'utilisateurs
$wp user list 

# Créer un nouvel utilisateur.
$wp user create bob bob@example.com --role=author

# Mettre à jour un utilisateur existant.
$wp user update 123 --display_name=Mary --user_pass=marypass

# Supprimer l'utilisateur 123 et réassigner les postes à l'utilisateur 567
$ wp user delete 123 --reassign=567

Lire plus

 

Docker-compose Wordpress-Mysql-Adminer

Docker-compose

installation de Wordpress / Mysql / Adminer

créer les 3 dossiers suivants :

modifier le chemin dans le fichier docker-compose.yaml

version: '3'

services:

    wordpress:
        image: wordpress:latest
        network_mode: bridge
        links:
           - mysql:mysql
        container_name: wp_wordpress
        depends_on:
            - mysql
        ports:
            - 80:80
        restart: always
        environment:
            WORDPRESS_DB_HOST: 'mysql:3306'
            WORDPRESS_DB_USER: wordpress
            WORDPRESS_DB_PASSWORD: wordpress
            WORDPRESS_DB_NAME: wordpress
        volumes:
            - ~/wordpress/plugins:/var/www/html/wp-content/plugins
            - ~/wordpress/themes:/var/www/html/wp-content/themes
            - ~/wordpress/uploads:/var/www/html/wp-content/uploads
        
           
    mysql:
        image: mysql:5.7
        container_name: wp_mysql
        network_mode: bridge
        volumes:
            - mysql_data:/var/lib/mysql
        ports:
            - 3306:3306
        restart: always
        environment:
            MYSQL_ROOT_PASSWORD: mypassword
            MYSQL_DATABASE: wordpress
            MYSQL_USER: wordpress
            MYSQL_PASSWORD: wordpress
    
    adminer:
        image: adminer
        restart: always
        network_mode: bridge
        links:
           - mysql:mysql
        container_name: wp_adminer
        ports:
            - 8080:8080 
volumes:
    mysql_data: {}
       

 

une fois le fichier enregistré, lancer la commande suivante :

sudo docker-composer up -d 

Vérification des containers :

lancement de la commande sudo docker ps

Screen-Capture_select-area_20200518224541.png

 

Ubuntu Mate XDRP Docker

docker-ubuntu-xrdp-mate-custom

Utilisez https://github.com/RattyDAVE/docker-ubuntu-xrdp-mate-custom/issues pour envoyer des commentaires, des problèmes, des commentaires et une discussion générale.

Démarrage rapide

Exécutez ce qui suit pour commencer.

echo "user:pass:N" > CREATEUSERS.TXT
docker run --name RattyDAVE20.04 \
           --privileged=true \
           -p 3389:3389 \
           -e TZ="Europe/London" \
           -v CREATEUSERS.TXT:/root/createusers.txt \
           -dit --restart unless-stopped \
           rattydave/docker-ubuntu-xrdp-mate-custom:20.04

Puis sur un type de machine Windows

mstsc

Ensuite, entrez l'adresse IP de l'hôte docker.

Connectez-vous en utilisant le nom d'utilisateur useret le mot de passepass

Ubuntu 20.04 avec XRDP et MATE. (dernier)

Contenu:

docker run --name RattyDAVE20.04 \
           --privileged=true \
           -p 3389:3389 \
           -e TZ="Europe/London" \
           -v %LOCAL_PATH_TO_CREATEUSERS.TXT_FILE%:/root/createusers.txt \
           -v %LOCAL_PATH_TO_STARTUP.SH_FILE%:/root/startup.sh \
           -v %LOCAL_PATH_TO_HOME_DIRECTORY%:/home \
           -dit --restart unless-stopped \
           rattydave/docker-ubuntu-xrdp-mate-custom:20.04

Ce fichier contient 3 champs (nom d'utilisateur: mot de passe: is_sudo). Où nom d'utilisateur est l'identifiant de connexion. Le mot de passe est le mot de passe. is_sudo l'utilisateur a-t-il un accès sudo (seul Y est reconnu). Il a également besoin d'une "nouvelle ligne" à la fin de la ligne.

Exemple de fichier CREATEUSERS.TXT

mickey:mouse:N
daisy:duke:Y
dog:flash:n
morty:rick:wubba

Dans cet exemple, 4 utilisateurs seront créés et seule daisy aura les droits sudo. À chaque redémarrage, il vérifiera ce fichier et AJOUTERA tous les nouveaux utilisateurs.

Exemple de fichier STARTUP.SH pour changer les paramètres régionaux.

apt-get update
apt-get -y install language-pack-de language-pack-gnome-de
locale-gen de_DE.UTF-8
update-locale LANG=de_DE.UTF-8

Se connecter

Veuillez noter que certains clients ont besoin d'un jeu de paramètres supplémentaire glyph-cache. xfreerdp, remmina et d'autres ont besoin de cet ensemble.

Exemple Linux de connexion:

xfreerdp /size:1920x1140 /kbd:0x00000809 /v:%IP_ADDRESS% /gdi:hw /drive:home,$HOME +clipboard /sound:sys:alsa +glyph-cache

Exemple Windows:

Ouvrez une invite de commande et tapez

mstsc

Ensuite, entrez l'adresse IP de l'hôte docker.

Mise à jour automatique

Pour mettre à jour automatiquement, je recommande d'utiliser Watchtower.

docker run -d \
    --name watchtower \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower

XTeve EPG Docker installation

Création du container xteve :

docker run -it -d --name=xteve -p 34400:34400 -v xteve:/home/xteve/.xteve bl0m1/xtevedocker:latest 

Connexion sur l'interface web :

http://192.168.1.69:34400/web/

 

M3U URL: http://192.168.1.69:34400/m3u/xteve.m3u (Specific groups: [http://...?group-title=foo,bar])
XEPG URL: http://192.168.1.69:34400/xmltv/xteve.xml

File Browser dans docker

Création du container :

docker run -d --name IptvFilesHttp -p 4466:80 -v /mnt/storage/docker/tellytv/config/:/opt/www/files/ mohamnag/nginx-file-browser

http://192.168.1.69:4466/

 

Automatisation Tidal-DL

Création de l'image Docker pour Tidal-DL

Fichier Dockerfile : (source ici : https://git.wlan.ovh/garfieldtux/docker-demo)

# This file is a template, and might need editing before it works on your project.
FROM python:3.8-slim

WORKDIR /usr/src/app

COPY requirements.txt /usr/src/app/
RUN pip install --no-cache-dir -r requirements.txt

COPY .tidal-dl.json /root/.tidal-dl.json
COPY .tidal-dl.token.json /root/.tidal-dl.token.json

Création de l'image et Lancement du docker 

docker build -t tidal-dl .
docker run -itd --name=TidalDL -v /mnt/NAS/music:/mnt/music tidal-dl

 

Mise en place de RunDeck pour l'automatisation :

rundeck1.PNG

Utiliser les options suivante pour l'utilisation du WEBhook 

docker exec -it TidalDL tidal-dl -l ${option.ID} ${option.URL}

 

Ensuite il faut crée un webhook avec les options suivantes 

-URL ${data.field1}

rundeck2.PNG

 

curl -H "Content-Type: application/json" -X POST -d '{"field1" : "117790336"}' https://run.wlan.ovh/api/38/webhook/nWfevIsA7ieJz9f1FKsW0Ib7uNwXWUfR

 

Dans Ios Raccourci il faut crée ceci :

iphone.jpg

 

 

Docker speedtest-cli

commande pour tester la ligne avec speedtest-cli

docker run --rm moutten/speedtest-cli speedtest --accept-gdpr

WireGuard

WireGuard c'est quoi ?
WireGuard est un protocole de communication et un logiciel libre et open source permettant de créer un réseau privé virtuel (VPN)2. Il est conçu avec les objectifs de facilité d'utilisation, de performances et de surface d'attaque basse. Il vise une meilleure performance3 et une plus grande économie d'énergie que les protocoles IPsec et OpenVPN Tunneling4. Le protocole WireGuard transmet le trafic sur UDP. (Source - Wikipédia)

Sommaire :
1/ Création des dossiers
2/ Création du docker-compose
3/ Création du conteneur
4/ Ouverture de port
5/ Récupération des fichiers de configuration des clients

C'est parti ! :giggle:

1/ Création des dossiers
Je vais installer mon serveur WireGuard dans mon dossier docker, qui se situe sur /srv/disk1, je vais donc créer dans le dossier docker, un dossier wireguard qui contient un dossier config avec la commande suivante :

Code:
sudo mkdir -p /srv/disk1/docker/wireguard/config



2/ Création du docker-compose
Maintenant, toujours dans mon dossier Dashy :

Code:
cd /srv/disk1/docker/wireguard


Je crée un fichier docker-compose.yml :

Code:
sudo nano docker-compose.yml


Avec le contenu suivant :

Code:
version: "2.1"
services:
  wireguard:
    image: ghcr.io/linuxserver/wireguard
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
      - SERVERURL=tuto-evo.fr
      - SERVERPORT=51820
      - PEERS=PC,TEL,PCPRO
      - PEERDNS=auto
      - INTERNAL_SUBNET=10.13.13.0
      - ALLOWEDIPS=0.0.0.0/0
    volumes:
      - /srv/disk1/docker/wireguard/config:/config
      - /lib/modules:/lib/modules
    ports:
      - 51820:51820/udp
    restart: unless-stopped


Ici, plusieurs choses sont a adapter suivant votre installation :
PUID et PGIDsont à modifier suivant les ID de votre utilisateur*
* Pour connaitre le PUID/GUID de l'utilisateur : [Tuto] Connaitre le PUID / PGID d'un utilisateur.

SERVERURL, ici j'ai indiqué tuto-evo.fr comme nom de domaine d'acces a mon serveur. Ceci est a remplacer par votre nom de domaine, si vous avez une IP Fixe, vous pouvez également ici indiquer l'IP Fixe plutot qu'un nom de domaine.

PEERS, contient soit un nombre soit des valeur texte séparé par une virgule, cela correspond au nombre de configuration client que vous voulez générer à la création du serveur. Ici, je souhaite créer 3 profils : "PC" , "TEL" et "PCPRO". J'aurai également pu indiquer : PEERS=3 a la seul différence que les 3 profils générer n'ont dans ce cas, pas de nom.

ALLOWEDIPS correspond à la plage d'IP autorisé a utilisé le VPN. Avec la configuration "0.0.0.0/0" alors le client VPN forcera toutes les connexions a utiliser le VPN.

- Sur la ligne "/srv/disk1/docker/wireguard/config:/config", /srv/disk1/docker/wireguard/config doit correspondre avec le dossier crée a l'étape 1 du tuto.

3/ Création du conteneur
Maintenant, toujours dans mon dossier wireguard :

Code:
cd /srv/disk1/docker/wireguard


on execute la commande :

Code:
sudo docker-compose up -d


Une fois fini, la commande renvoi "done", alors le conteneur est bien créé !
Il faut attendre quelques minutes pour que le conteneur soit bien créer et les configuration générées.

4/ Ouverture de port
Pour fonctionner correctement, Wireguard a besoin que le port 51820 UDP soit correctement ouvert et redirigé. Pensez donc a bien l'ouvrir/redirigé dans votre box et/ou pare-feu.

5/ Récupération des fichiers de configuration des clients
Dans votre dossier de configuration ( /srv/disk1/docker/wireguard/config ), nous allons trouver des dossier commençant par peer_.
Dans mon cas, 3 dossiers car nous avons configuré 3 clients ! Un dossier peer_PC, un peer_TEL et un peer_PCPRO.

Dans chacun de ces dossiers vous allez trouver un fichier .conf, qui servira a connecté votre client au serveur Wireguard !

Sshwifty Web SSH & Telnet Client

Sshwifty is a SSH and Telnet connector made for the Web. It can be deployed on your computer or server to provide SSH and Telnet access interface for any compatible (standard) web browser.

Web Interface

Build Status

Install

Binary

Compiled binaries can be found at the release section of the page.

Please be advised that those binaries are generated by an automatic proccess, the author of this project will NOT verify that they work. You will have to try it at your own risk.

Docker Image

If Docker is installed on your machine, you may use our prebuilt Docker Image by executing following command:

$ docker run --detach \
  --restart always \
  --publish 8182:8182 \
  --name sshwifty \
  niruix/sshwifty:latest

When TLS is desired and you don't want to setup Docker Volumes, you can use SSHWIFTY_DOCKER_TLSCERT and SSHWIFTY_DOCKER_TLSCERTKEY environment variables to import credential files to the container and automatically apply them:

$ openssl req \
  -newkey rsa:4096 -nodes -keyout domain.key -x509 -days 90 -out domain.crt
$ docker run --detach \
  --restart always \
  --publish 8182:8182 \
  --env SSHWIFTY_DOCKER_TLSCERT="$(cat domain.crt)" \
  --env SSHWIFTY_DOCKER_TLSCERTKEY="$(cat domain.key)" \
  --name sshwifty \
  niruix/sshwifty:latest

The domain.crt and domain.key must be a valid TLS certificate and key file located on the same machine which the docker run command will be executed upon.

Compile from source code (Recommanded if you're a developer)

The following tools are required in order to build the software from source code:

To start the build process, execute:

$ git clone https://github.com/nirui/sshwifty
$ cd sshwifty
$ npm install
$ npm run build

When done, you can found the newly generated sshwifty binary inside the current working directory.

Notice: Dockerfile contains the entire build procedure of this software. Please refer to it when you encounter any compile/build related issue.

Deploy on the cloud

To deploy this project onto the cloud, Google App Engine or Heroku for example, you need to first download the source code, then generate it locally before deploying it.

npm run generate command will generate all static files and automatically call go generate ./... to bind those static files directly into program source code. And you need those generated source code to get the software to function.

Trying to deploy ungenerated code directly to cloud will lead to failure, as required source code is missing.

Also keep in mind, if the cloud deployment process is git based, you may have to modify .gitignore file in order to allow all required files to be uploaded.

webserver from files

 

 

docker run -d \
    -v /my/folder:/web \
    -p 8080:8080 \
    halverneus/static-file-server:latest

infra