Docker
- MariaDb
- Installation de bookstack et mariadb
- Docker Plex
- Ghost avec docker-compose
- Portainer Docker
- docker-gateone
- Statistiques web avec Ackee via Docker
- installation de SearX Docker
- Wordpress WP-CLI
- Docker-compose Wordpress-Mysql-Adminer
- Ubuntu Mate XDRP Docker
- XTeve EPG Docker installation
- File Browser dans docker
- Automatisation Tidal-DL
- Docker speedtest-cli
- WireGuard
- Sshwifty Web SSH & Telnet Client
- webserver from files
- infra
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 :
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
- Install docker
- Download and start the gateone server instance
docker run --name gateone -p 443:10443 -p 2345:22 -d greyltc/gateone
- 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 - Click the
Terminal:SSH
button - Hit enter (accept the default) to choose to connect to localhost
- Hit enter (accept the default) to choose to connect through port 22
- Enter
docker
for the user - Type
sl
to see a nice steam locomotive. - [Optional] Stop the gateone docker server instance
docker stop gateone
- [Optional] Delete the gateone docker server instance (after stopping it)
docker rm gateone
- 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 :
-p
ouvrir le port27017
disponible sur le port27017
sur l'host-v
mounts/path/to/local/folder
vers/data/db
du container--name
choisir un nom au containermongo
mongo
le nom de l'image docker
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:
-p
makes port3000
available at port3000
on the host-e
sets environment variables required by Ackee--link
links Ackee with themongo
container--name
sets the container name toackee
electerious/ackee
is the name of the image
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
Exigences du WP-Cli
- Accès SSH à votre serveur
- PHP 5.3.2 ou version ultérieure.
- WordPress 3.4 ou version ultérieure.
- 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.
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 :
- plugins
- themes
- uploads
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
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 user
et le mot de passepass
Ubuntu 20.04 avec XRDP et MATE. (dernier)
- rattydave / docker-ubuntu-xrdp-mate-custom: 20.04
- rattydave / docker-ubuntu-xrdp-mate-custom: 20.04-tools
Contenu:
- Ubuntu 19.10
- Bureau Mate (repo ubuntu)
- XRDP (construit à partir de la source)
- XRPDXORG (construit à partir de la source)
- tightvncserver (dépôt ubuntu)
- Navigateur Web Epiphany (ubuntu repo)
- Script xrdp.ini personnalisé
- Disposition du clavier britannique par défaut (peut être modifiée)
- Fuseau horaire britannique par défaut (peut être modifié)
- Vous pouvez maintenant définir le fuseau horaire avec la variable TZ
- Possibilité d'exécuter un script au démarrage du conteneur. Ceci est utile pour installer les packages nécessaires.
- Mappage de lecteur local (nécessite des droits élevés avec ce paramètre
--privileged=true
) - Partage du Presse-papiers (nécessite des droits élevés avec ce paramètre
--privileged=true
)
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
- Remplacez% LOCAL_PATH_TO_CREATEUSERS.TXT_FILE% par le nom de fichier local du fichier createusers.
- Remplacez% LOCAL_PATH_TO_STARTUP.SH_FILE% par le nom de fichier local du script startup.sh. Ceci est exécuté après la création de l'utilisateur et avant le démarrage du service.
- Remplacez% LOCAL_PATH_TO_HOME_DIRECTORY% par le répertoire local des répertoires / home.
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
-
Docker
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
-
Rundeck
Mise en place de RunDeck pour l'automatisation :
Utiliser les options suivante pour l'utilisation du WEBhook
docker exec -it TidalDL tidal-dl -l ${option.ID} ${option.URL}
-
WebHook
Ensuite il faut crée un webhook avec les options suivantes
-URL ${data.field1}
-
Requête CURL pour le Webhook
curl -H "Content-Type: application/json" -X POST -d '{"field1" : "117790336"}' https://run.wlan.ovh/api/38/webhook/nWfevIsA7ieJz9f1FKsW0Ib7uNwXWUfR
-
Raccourci Apple :
Dans Ios Raccourci il faut crée ceci :
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 !
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 :
sudo mkdir -p /srv/disk1/docker/wireguard/config
2/ Création du docker-compose
Maintenant, toujours dans mon dossier Dashy :
cd /srv/disk1/docker/wireguard
Je crée un fichier docker-compose.yml :
sudo nano docker-compose.yml
Avec le contenu suivant :
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 :
cd /srv/disk1/docker/wireguard
on execute la commande :
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.
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:
git
to download the source codenode
andnpm
to build front-end applicationgo
to build back-end application
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