Vous avez deux possibilités
je vais détailler les deux possibilités en commençant par l'utilisation directement avec GO, puis dans la continuité, comment le compiler afin qu'il fonctionne sans prérequis sur tous les serveurs ayant la même architecture que le serveur qui la compilait
Nous allons utiliser une debian 10 et les outils seront en armv6 (GO ainsi que le programme compilé)
Si vous n'utilisez pas une architecture Arm sur votre serveur, il faudra donc choisir les outils adaptés au processeur utilisé
Les commandes seront identiques même si les architectures sont différentes (processeurs)
Commencez par installer debian 10
Mettez-le à jour
apt update && apt upgrade
&& sert à exécuter la commande suivante, si la première s'est bien déroulée
Voici les paquets prérequis depuis une debian sous LXC
apt install curl nano git unzip gcc
Allez sur le site de GO
Dans la liste un peu plus bas, télécharger la version qui correspond à votre architecture
Attention, n'installez pas le paquet GO présent dans la distribution (si vous avez les sources d'APT par défaut), car il est obsolète et ne fonctionne pas avec le script de mise en place de transfersh.
Dans mon cas je prends le paquet suivant : go1.16.3.linux-armv6l.tar.gz, cliquez sur le lien du paquet souhaité puis copiez le lien présent dans this link en haut de la page apparue
Allez sur votre serveur et entrez la commande suivante :
curl -SLO https://golang.org/dl/go1.16.3.linux-armv6l.tar.gz
Voici l'explication des options CURL
Entrez la commande suivante pour extraire l'archive dans le dossier des applications
tar -C /usr/local -xzf go1.16.3.linux-armv6l.tar.gz
Vous allez ajouter l'exécutable dans les variables d'environnement du système, ça permettra de faire appel à la commande go
Entrez la commande suivante pour faire les modifications au niveau de /etc/profile (Attention sur Ubuntu la modification se fait dans /etc/environment, faite le à la main car il n'y a qu'une ligne)
sed -i "$(grep -num2 PATH /etc/profile |cut -d':' -f1 | sed -z "s+\n+,+")s+PATH=\"+PATH=\"/usr/local/go/bin:+" /etc/profile
Explication de la commande:
commençons par $(grep -num2 PATH /etc/profile |cut -d':' -f1 | sed -z "s+\n+,+")
Cette commande va donc remplacer les 2 premières occurrences PATH=" par PATH="/usr/local/go/bin:. Si vous avez peur de vous tromper, faites les modifications à la main.
Une fois les modifications effectuées, redémarrer votre OS si vous avez modifié /etc/profile
reboot
Pour que la commande go ne soit appliquée qu'à un profil. Entrez la commande suivante
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile
Il faudra fermer et réouvrir votre session pour que cela prenne effet.
Après le redémarrage ou la réouverture de session, vérifier si cela fonctionne correctement
go version
Vous devriez avoir la version actuelle de GO
Il y à deux façons de faire
Manuel
Allez sur le git de transfertsh pour télécharger l'archive
Cliquez sur l'icône vert (code), faite un clic droite sur download zip et copier l'URL
Sur votre serveur, tapez la commande copiée
curl -SLO https://github.com/dutchcoders/transfer.sh/archive/refs/heads/master.zip
Automatique
git clone https://github.com/dutchcoders/transfer.sh.git
dézipper l'archive
unzip master.zip
Puis entrez dans le dossier dézippé
cd transfer.sh-master/
Trouvez l'IP de la machine si vous ne l'avez pas déjà avec la commande
ip a
Testez le fonctionnement en root. La première fois ça peut prendre un certain temps, car il va télécharger tous les prérequis et compiler le programme
go run main.go --provider=local --listener :8080 --basedir=/tmp/
Explication de la commande
Une fois la compilation terminée vous aurez le message suivant : listening on port: :8080
Allez sur le navigateur de votre poste de travail et entrez l'adresse du serveur
IP:8080
Si la page de transfersh apparait, alors c'est que cela fonctionne.
Retournez sur le serveur et faites CTRL + C de votre clavier pour quitter le programme
Depuis le dossier dans lequel vous avez lancé le programme, entrez la commande suivante
go build -o transfersh main.go
Dès que vous reprenez la main sur le terminal, lancez la commande suivante pour tester le programme
./transfersh --provider=local --listener :8080 --basedir=/tmp/
Dès que le message suivant apparait listening on port: :8080, connectez-vous à IP:8080 avec un navigateur
Si tout fonctionne, retournez au terminal du serveur et faites un CTRL+C pour quitter le programme
Vous pouvez copier transfersh sur un autre serveur qui à une architecture identique au serveur sur lequel vous l'avez compilé pour la mise en production.