Installer Shifter avec Docker
Shifter

Installer Shifter avec Docker

Table des matières

GitHub - TobySuch/Shifter: A simple, self-hosted file-sharing web app, powered by Django
A simple, self-hosted file-sharing web app, powered by Django - TobySuch/Shifter

Shifter est une application pour partager des fichiers avec une rétention définie. Définie comme vous le souhaitez bien entendu. Ainsi que la taille maximale des fichiers joints.

Shifter peut-être pratique pour offrir un espace sans trop de maintenance, ou créer ses liens et s'échanger des fichiers, fichiers, qui seront effacés automatiquement dès que la validité du lien est expirée.


Shifter est une simple application Web de partage de fichiers auto-hébergée conçue à l'aide de Django et Tailwind. Il vous permet de télécharger rapidement et facilement des fichiers et de partager des liens de téléchargement avec d'autres.

⚡Caractéristiques

  • Téléchargez des fichiers et partagez des liens de téléchargement avec d’autres.
  • Téléchargez plusieurs fichiers et créez automatiquement une archive zip.
  • Les fichiers sont automatiquement supprimés une fois qu'ils expirent.
  • Gérez vos fichiers téléchargés.
  • Créez plusieurs comptes pour permettre à d'autres de télécharger des fichiers.
  • Interface d'administration pour gérer les paramètres du site tels que la taille maximale des fichiers et le délai d'expiration.

L'installation

  1. On va commencer par cloner le dépôt:
sudo git clone https://github.com/TobySuch/Shifter.git

Ce qui donne:

Entrons dans le dossier Shifter:

cd Shifter

On va renommer le fichier .env EXAMPLE présent en .env:

sudo mv .env\ EXAMPLE .env

On va générer une clé pour la mettre après dans le fichier .env, tapez cette commande dans votre terminal:

openssl rand -base64 64

Copiez uniquement la ligne de 64 caractères et mettez la précieusement de côté:

Allons éditer le fichier .env:

sudo nano .env

Et modifions quelques points:

### Django settings ###
DEBUG=0    # 1 for dev, 0 for prod
SECRET_KEY=CHANGEME # Generate a long random string of characters for this. Example command: openssl rand -base64 64
DJANGO_ALLOWED_HOSTS=localhost 127.0.0.1 shifter.tondomaine.com [::1] 192.168.1.152
CSRF_TRUSTED_ORIGINS=https://shifter.tondomaine.com
SHIFTER_FULL_DOMAIN=https://shifter.tondomaine.com
DJANGO_LOG_LEVEL=INFO
DJANGO_LOG_LOCATION=/var/log/shifter.log
TIMEZONE=UTC
EXPIRED_FILE_CLEANUP_SCHEDULE=*/15 * * * *  # Cron schedule for cleaning up expired files. Default is every 15 minutes.
### Nginx settings ###
CLIENT_MAX_BODY_SIZE=5G  # Max size of uploaded file allowed by Nginx
  • SECRET_KEY=CHANGEME => Remplacez CHANGEME par la clé générée précédemment.
  • DJANGO_ALLOWED_HOSTS=localhost 127.0.0.1 shifter.tondomaine.com [::1] 192.168.1.152 => Il faut absolument le remplir car si vous n'indiquez ni votre domaine ou/et l'ip locale du serveur, vous n'atteindrez pas la page web. Laissez un espace entre chaque entrée.
  • CSRF_TRUSTED_ORIGINS=https://tondomaine.com => Ajouter l'URL complète pour joindre Shifter ou son ip locale.
  • SHIFTER_FULL_DOMAIN=https://shifter.tondomaine.com => Ajouter l'URL complète pour joindre Shifter ou son ip locale.
  • CLIENT_MAX_BODY_SIZE=5G # => C'est le paramètre pour définir la taille maximale des fichiers joints.

Maintenant, passons à ces points:

# The following only need to be set if you choose postgres. They can be ignored if you choose sqlite.
# Don't forget to add a postgres container to your docker-compose.yml file if you choose postgres.
SQL_DATABASE=shifter
SQL_USER=shifteruser
SQL_PASSWORD=shifterpassword
SQL_HOST=db
SQL_PORT=5432
  • SQL_DATABASE=shifter => Choisissez un nom à votre base de données. Remplacez shifter.
  • SQL_USER=shifteruser => Choisissez un nom d'utilisateur. Remplacez shifteruser.
  • SQL_PASSWORD=shifterpassword => Choisissez un mot de passe fort. Remplacez shifterpassword.

On va maintenant se créer un petit docker-compose:

cd docker

On va supprimer l'actuel:

sudo rm docker-compose.yml

Et en créer un nouveau:

sudo nano docker-compose.yml

Collez ça dedans, il simplement une base de données en plus:

version: "3.9"
name: shifter

volumes:
  static:
  media:
  db:
   
services:
  db:
    image: postgres
    restart: always
    volumes:
      - db:/var/lib/postgresql/data
    env_file:
      - ../.env
  web:
    image: ghcr.io/tobysuch/shifter:0.3.0
    restart: always
    volumes:
      - static:/home/app/web/static_root
      - media:/home/app/web/media
    expose:
      - 8000
    env_file:
      - ../.env
  nginx:
    image: nginx:1.19.0-alpine
    volumes:
      - static:/home/app/web/static
      - media:/home/app/web/media
      - ../nginx/nginx.conf:/etc/nginx/templates/default.conf.template
    ports:
      - 1337:80
    depends_on:
      - web
    env_file:
      - ../.env
  1. On installe l'application:
docker-compose up -d

ou avec docker-compose V2:

docker compose up -d
  1. Rendez-vous sur l'ip:port, suivant l'IP de votre serveur local et du port choisi, 8011 par défaut:
http://ip:1337/

ou votre domaine:

https://mondomaine.com

Créer son compte administrateur

Il n'y a pas de compte par défaut. Il va falloir en créer un. Rendez-vous où vous avez installé Shifter:

cd /srv/appdata/Shifter

Pour lancer la commande permettant la création de votre compte administrateur:

docker compose -f docker/docker-compose.yml exec web python manage.py createsuperuser

Répondez à ces quelques questions:

Vous pouvez utiliser le compte qui vient d'être créé:

Vous voilà sur la page principale de Shifter:


Réglages du site

En cliquant en haut à droite sur votre compte, partie Site settings:

Vous devrez:

  • Indiquez l'URL complète de votre site dans Full Domain.
  • Indiquez la taille maximale des fichiers joints dans Maximum File Size. Attention ce ne pas dépasser ce que vous avez autorisé dans CLIENT_MAX_BODY_SIZE=5G.
  • Le nombre de jours par défaut où un lien est valable dans Default Expiry Offset (hours). Par défaut sur 336 heures ou, 14 jours.
  • Le décalage d'expiration maximum.

Sauvez le tout en cliquant sur Save.


Enregistrer un nouvel utilisateur

En haut à droite, cliquez sur votre nom d'utilisateur et choisissez l'option: Register New User:

Créez votre utilisateur et validez en cliquant sur Register User. Il aura le loisir de changer lui-même son mot de passe.


Gérer ses fichiers

Vous aurez la possibilité de gérer vos fichiers en cliquant en haut à droite sur vote nom d'utilisateur, ensuite sur My Files:

En cliquant sur un fichier, vous aurez deux possibilités. Copier son lien de partage ou d'effacer le fichier en cliquant sur Delete FIle:


Changer de mot de passe

Cliquez en haut à droite sur votre utilisateur et sur Settings pour terminer:

Entrez deux fois votre mot de passe et validez le changement de mot de passe en cliquant sur Change Password. Vous serez automatiquement déconnecté et invité à vous connecter avec votre nouveau mot de passe.

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.

Vous pourriez aussi aimer

#ouvrir un lien dans une nouvelle fenêtre