serveur caddy

This commit is contained in:
ifaryd
2026-05-25 22:12:04 +00:00
parent bda89b47bf
commit 0c52766f8a
3 changed files with 53 additions and 44 deletions

31
Caddyfile.dev Normal file
View File

@@ -0,0 +1,31 @@
dev.jool-international.com {
# HTTPS automatique via Let's Encrypt (aucune config SSL nécessaire)
# Fichiers statiques
handle /static/* {
root * /app
file_server
}
# CVs : jamais accessibles publiquement
handle /media/careers/cvs/* {
respond 404
}
# Autres fichiers media
handle /media/* {
root * /app
file_server
}
# Application Django
handle {
reverse_proxy web:8000
}
# Logs
log {
output stdout
}
}

View File

@@ -1,10 +1,8 @@
#!/bin/bash
# Déploiement dev.jool-international.com
# Déploiement dev.jool-international.com (Caddy)
# Usage : bash deploy-dev.sh
set -e
DOMAIN="dev.jool-international.com"
EMAIL="info@jool-int.com"
COMPOSE="docker compose -f docker-compose.dev.yml"
# ── 1. Vérifier .env.dev ─────────────────────────────────
@@ -16,30 +14,13 @@ fi
echo "✅ .env.dev trouvé"
# ── 2. Démarrer avec nginx HTTP only ─────────────────────
echo "🚀 Démarrage des conteneurs (HTTP only)..."
# ── 2. Build et démarrage ─────────────────────────────────
echo "🚀 Build et démarrage des conteneurs..."
$COMPOSE up -d --build
# Attendre que nginx soit prêt
sleep 5
# ── 3. Obtenir le certificat SSL ─────────────────────────
echo "🔒 Obtention du certificat SSL pour $DOMAIN..."
$COMPOSE run --rm certbot certonly \
--webroot \
--webroot-path=/var/www/certbot \
-d "$DOMAIN" \
--email "$EMAIL" \
--agree-tos \
--no-eff-email
# ── 4. Passer à la config HTTPS ──────────────────────────
echo "🔄 Activation de la config HTTPS..."
sed -i 's|nginx.dev-init.conf|nginx.dev.conf|g' docker-compose.dev.yml
# Redémarrer nginx avec la config HTTPS
$COMPOSE up -d nginx
echo ""
echo "✅ Déploiement terminé !"
echo " Site disponible sur https://$DOMAIN"
echo " Caddy obtient le certificat SSL automatiquement."
echo " Site disponible sur https://dev.jool-international.com"
echo ""
echo " Logs : docker compose -f docker-compose.dev.yml logs -f"

View File

@@ -26,36 +26,33 @@ services:
condition: service_healthy
command: >
sh -c "python manage.py migrate --noinput &&
gunicorn config.wsgi:application --bind 0.0.0.0:8000 --workers 2
--timeout 60 --access-logfile - --error-logfile -"
gunicorn config.wsgi:application
--bind 0.0.0.0:8000
--workers 2
--timeout 60
--access-logfile -
--error-logfile -"
# ── Nginx (reverse proxy + static files) ───────────────
nginx:
image: nginx:alpine
# ── Caddy (reverse proxy + HTTPS automatique) ───────────
caddy:
image: caddy:2-alpine
restart: always
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./nginx/nginx.dev-init.conf:/etc/nginx/conf.d/default.conf:ro
- ./Caddyfile.dev:/etc/caddy/Caddyfile:ro
- static_volume_dev:/app/staticfiles:ro
- media_volume_dev:/app/media:ro
- certbot_www_dev:/var/www/certbot:ro
- certbot_certs_dev:/etc/letsencrypt:ro
- caddy_data_dev:/data
- caddy_config_dev:/config
depends_on:
- web
# ── Certbot (SSL Let's Encrypt) ─────────────────────────
certbot:
image: certbot/certbot
volumes:
- certbot_www_dev:/var/www/certbot
- certbot_certs_dev:/etc/letsencrypt
entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
volumes:
postgres_data_dev:
static_volume_dev:
media_volume_dev:
certbot_www_dev:
certbot_certs_dev:
caddy_data_dev:
caddy_config_dev: