Installer Zipline avec Docker
Zipline

Installer Zipline avec Docker

Table des matières

GitHub - diced/zipline: A ShareX/file upload server that is easy to use, packed with features, and with an easy setup!
A ShareX/file upload server that is easy to use, packed with features, and with an easy setup! - diced/zipline

Update de Zipline 4 le 3/03/2025.

Merci à wheezy/virtutux pour l'idée du tutoriel! 🤝

Je vous avais déjà parlé de XBackBone, et bien son fonctionnement est similaire.

Aujourd'hui on va parler de Zipline, qui non seulement fait office de cloud mais il prend aussi en charge ShareX & Flameshot et permet également de raccourcir les URL's.

💡
Afin de tirer le meilleur parti de cette application, déjà pour copier un lien de partage, il faut relier cette application à un domaine et un certificat SSL.
belginux vous propose deux solutions, Cosmos Cloud & NPM, libre à vous, bien entendu, d'utiliser votre méthode habituelle.

Ziplin est plus soigné que XBackBone niveau design, c'est vraiment classe, je trouve.


⚡Caractéristiques

  • Configurable.
  • Rapide.
  • Construit avec Next.js & React.
  • Téléchargement protégé par un jeton.
  • Téléchargement d'images.
  • Compression d'images.
  • Téléchargements protégés par mot de passe.
  • Raccourcissement d'URL.
  • Téléchargement de texte.
  • Formats d'URL (uuid, dates, alphanumérique aléatoire, nom d'origine, zws, gfycat -> adjectifs d'animaux).
  • Incorporation dans Discord (métadonnées OG).
  • Visionneuse de galerie et prise en charge de plusieurs formats de fichiers.
  • Mise en évidence du code.
  • Notifications webhook Discord entièrement personnalisables.
  • Enregistrement OAuth2 (Discord et GitHub).
  • Authentification à deux facteurs avec Google Authenticator, Authy, etc (services totp).
  • Invitations d'utilisateurs.
  • Chunking de fichiers (pour les gros fichiers).
  • Suppression des fichiers lorsqu'ils atteignent un certain nombre de vues.
  • Génération automatique de vignettes vidéo.
  • Instructions d'installation faciles.

💾 L'installation

  1. Placez-vous dans le dossier où vous voulez installer Zipline et faites cette commande pour télécharger le compose.yml :
curl -LO https://zipline.diced.sh/docker-compose.yml
  1. Générez un fichier .env avec un mot de passe de base de données et un secret de zipline :
echo "POSTGRESQL_PASSWORD=$(openssl rand -base64 42 | tr -dc A-Za-z0-9 | cut -c -32 | tr -d '\n')" > .env
echo "CORE_SECRET=$(openssl rand -base64 42 | tr -dc A-Za-z0-9 | cut -c -32 | tr -d '\n')" >> .env
  1. On peut maintenant déployer l'application:
docker compose up -d
  1. Rendez-vous sur l'ip:port, suivant l'IP de votre serveur local et du port choisi, 3000 par défaut:
http://ip:3000/

ou votre domaine:

https://mondomaine.com

🔌 Première connexion

Lorsque vous lancez l'application pour la première fois, vous arriverez ici, cliquez sur Continue :

Il va falloir créer votre compte administrateur :

  • Username => Choisissez un nom d'utilisateur pour votre compte administrateur.
  • Password => Choisissez un mot de passe fort pour votre compte administrateur.

Cliquez sur Continue pour valider.

Vous avez la confirmation que tout est bien créé, cliquez sur Finish :

Vous voici sur votre tableau de bord :


🔧 Modifier le compte administrateur

Si vous devez changer de mot de passe, cliquez en haut à droite sur votre nom d'utilisateur :

  • Cliquez sur Settings

Modifiez les informations souhaitées et cliquez sur Save pour terminer.


👥 Créer un utilisateur

Cliquez en haut à droite sur votre nom d'utilisateur, ensuite cliquez sur Server Settings :

Cliquez sur Users :

Cliquez sur le + :

Remplissez les informations demandées :

  • Username => Choisissez un nom d'utilisateur.
  • Password => Choisissez un mot de passe fort.
  • Avatar => Choisissez éventuellement un avatar.
  • Role => Définissez le rôle de l'utilisateur.

Cliquez sur Create pour terminer.

L'utilisateur est bien créé :


🗃️ Onglet Files

Sous cet onglet, retrouvez l'ensemble de vos fichiers:


📂 Folders

Sous l'onglet Folders, vous avez la possibilité de créer des dossiers.

Pour créer un dossier, cliquez sur l'icône + :

  • Nommez votre dossier et cliquez sur Create pour valider.

Ce qui donne:

Les options disponibles:

  • View files => Cela va ouvrir une fenêtre dans laquelle seront repris tous les fichiers étant présents dans le dossier.
  • Copy folder link => Permet de copier le lien, si le dossier est partagé.
  • Make public => Rendre un dossier public.
  • Edit folde name => Modifier le nom du dossier.
  • Delete folder => Supprimer le dossier.

🔗 URLs

Dans cette partie, vous pourrez créer des URLs personnalisées, raccourcies.

Cliquez sur l'icône 🔗 pour ajouter un lien:

Replissez les informations demandées:

  • URL => Indiquez l'URL de base.
  • Vanity => Indiquez le nom personnalisé de l'URL.
  • Max Views => Nombre de vues maximale, après quoi l'URL se détruira.
  • Password => Permet d'ajouter un mot de passe à l'URL.

Cliquez sur Create pour terminer.


⤴️ Upload

Quand vous cliquez sur Upload, vous avez le choix entre envoyer un fichier ou un texte:

Envoyer un fichier

Comme bien souvent, soit vous cliquez dans la zone d'upload pour sélectionner le(s) fichier(s) ou vous pouvez "drag and drop" le(s) fichier(s):

  • Cliquez sur Upload pour terminer.

Envoyer un texte

Cliquez sur Text dans le menu d'Upload:

  • Cliquez sur Upload pour terminer.

⏫ ShareX & Flameshot

Vous avez la possibilité de générer un fichier config nécessaire aux applications ShareX & Flameshot.

Cliquez en haut à droite sur votre pseudo et choisissez Settings:

Dans le fond de la page, il suffira de cliquez sur l'application que vous utilisez pour générer un fichier de configuration:


🎨 Thème

Ziplin propose différents thèmes. Cliquez en haut à droite sur votre pseudo et cliquez sur Settings :

Descendez jusqu'à Dashboard Settings :

  • Choisissez le thème désiré.

🌐 Reverse proxy

N'hésitez pas à consulter cette page pour plus de détails :

Reverse Proxy – Docs – Zipline
This page will guide you through setting up a reverse proxy for Zipline using various different methods.

NGINX

Créez le fichier :

nano /etc/nginx/sites-available/zipline.conf

Collez ça dedans :

server {
  listen 80;
  # Allows Zipline to handle large file uploads, feel free to change this value
  client_max_body_size 100M;

  # If you have a domain, replace <your domain> with it for DNS resolution
  server_name <your domain (optional)>;

  location / {
    # If Zipline is running on a different port or hostname, change the port here
    proxy_pass http://localhost:3000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }
}

NGINX avec SSL

Créez le fichier :

nano /etc/nginx/sites-available/zipline-ssl.conf

Collez ça dedans :

server {
  listen 443 ssl;
  client_max_body_size 100M;
  server_name <your domain>;

  # these paths can be anywhere, depending on where your keys are stored
  ssl_certificate /<your domain>.pem;
  ssl_certificate_key /<your domain>.key;

  location / {
    proxy_pass http://localhost:3000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }
}

Caddy

Créez le fichier :

nano Caddyfile

Collez ça dedans :

<your domain> {
  reverse_proxy localhost:3000
}

zarev

->.<-
🐧 Passionné de self-hosting, je partage ce que je connais et me nourris des connaissances des bonnes âmes qui partagent avec moi. Soutenons l'utilisation des apps open source et leurs développeurs.