-
Notifications
You must be signed in to change notification settings - Fork 0
Déploiement
La production se fait via Docker (image Bun standalone). Un mécanisme de déploiement par cron (pull-based) permet les mises à jour automatiques.
Docker + Docker Compose sur le serveur.
git clone https://github.com/pedrokarim/sharex-manager.git
cd sharex-manager
cp .env.example .env # éditez AUTH_SECRET, AUTH_URL, domaines…
mkdir -p config data uploads # volumes persistants
docker compose up -d --build- Service
sharex-manager, buildtarget: runner(imageoven/bun:1, commandebun server.js). - Ports :
${PORT:-3000}:${PORT:-3000}. -
env_file: .env+ variables explicites :AUTH_SECRET,AUTH_URL,NEXT_PUBLIC_API_URL,NEXT_PUBLIC_IMAGE_DOMAIN,NEXT_PUBLIC_APP_DOMAIN,TZ=Europe/Paris. -
restart: unless-stopped,user: "${UID:-1000}:${GID:-1000}". -
Volumes persistants :
./config,./uploads(:delegated),./data, + cachenext-cache.
💾 Sauvegardez
uploads/,data/etconfig/: ils contiennent vos fichiers, vos utilisateurs/clés et votre configuration.
Le script bun run deploy:cron (= cli/commands/deploy-cron.ts) compare la branche locale au remote et redéploie uniquement s'il y a du nouveau.
bun run deploy:cron0 */2 * * * cd /chemin/vers/sharex-manager && bun run deploy:cron >> /var/log/sharex-manager-deploy.log 2>&1Pose un verrou (avec détection de verrou périmé) → git fetch → compare HEAD vs <remote>/<branch>. Si identiques → « aucun changement ». Sinon → git checkout -f → git reset --hard → git clean -fd (option) → docker compose stop (option) → docker compose build (option) → docker compose up -d --remove-orphans.
| Variable | Défaut |
|---|---|
DEPLOY_BRANCH |
main |
DEPLOY_REMOTE |
origin |
DEPLOY_LOCK_FILE |
.deploy.lock |
DEPLOY_LOCK_STALE_MINUTES |
60 |
DEPLOY_GIT_CLEAN |
true |
DEPLOY_DOCKER_COMPOSE_COMMAND |
docker compose |
DEPLOY_DOCKER_COMPOSE_FILE |
docker-compose.yml |
DEPLOY_DOCKER_STOP |
true |
DEPLOY_DOCKER_BUILD |
true |
DEPLOY_DOCKER_BUILD_NO_CACHE |
false |
Flags CLI équivalents : --branch, --remote, --lock-file, --lock-stale-minutes, --compose-command, --compose-file, --no-clean, --no-stop, --no-build, --build-no-cache.
🔐 Bonnes pratiques : lancez le cron en non-root, protégez la branche déployée (tout ce qui y arrive part en prod), et sauvegardez les volumes.
➡️ Avant exposition publique, parcourez les points de durcissement de la FAQ et de la Référence API.
Démarrage
Utilisation
Intégration bureau
Pour les développeurs
Exploitation