serveur caddy
This commit is contained in:
31
Caddyfile.dev
Normal file
31
Caddyfile.dev
Normal 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
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user