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
- 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
- On installe l'application:
docker-compose up -d
ou avec docker-compose V2:
docker compose up -d
- 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.