2026-05-28 23:43:20 +02:00
2026-05-28 23:43:20 +02:00
2026-05-28 23:43:20 +02:00
2026-05-28 23:43:20 +02:00
2026-05-28 23:43:20 +02:00
2026-05-28 23:43:20 +02:00
2026-05-28 23:43:20 +02:00
2026-05-28 23:43:20 +02:00
2026-05-28 23:43:20 +02:00
2026-05-28 23:43:20 +02:00
2026-05-28 23:43:20 +02:00
2026-05-28 23:43:20 +02:00

LOGIS PERSONNEL — Application immobilière

Site vitrine bilingue (français / anglais) de gestion et présentation de biens immobiliers, construit avec Django 4.2.

URL de production : https://logis.miraceti.net
Admin : https://logis.miraceti.net/admin/


Stack technique

Composant Technologie
Backend Django 4.2, Python 3.13
Serveur Gunicorn 3 workers, port 8091
Proxy nginx (SSL certbot, rate-limit)
Process Supervisor
Images django-resized → WEBP automatique
Tri drag-and-drop django-admin-sortable2
Fichiers statiques Whitenoise
Config python-decouple (.env)
Base de données SQLite

Installation

python3 -m venv venv
source venv/bin/activate
unset REQUESTS_CA_BUNDLE SSL_CERT_FILE CURL_CA_BUNDLE  # VPS spécifique
pip install -r requirements.txt
cp .env.example .env   # puis éditer .env
./manage.py migrate
./manage.py createsuperuser
./manage.py collectstatic

Développement

./manage.py runserver

Le fichier manage.py utilise logis_project.settings.development par défaut.

Production

# Copier les configs
sudo cp conf/nginx.conf /etc/nginx/sites-available/logis
sudo ln -sf /etc/nginx/sites-available/logis /etc/nginx/sites-enabled/logis
sudo cp conf/supervisor.conf /etc/supervisor/conf.d/logis.conf

# Créer les répertoires de logs
sudo mkdir -p /var/log/logis
sudo chown miraceti:miraceti /var/log/logis

# Permissions home (nginx doit traverser le répertoire)
chmod 711 /home/miraceti

# SSL
sudo certbot certonly --webroot -w /var/www/html -d logis.miraceti.net

# Démarrer
sudo systemctl reload nginx
sudo supervisorctl reread && sudo supervisorctl update
sudo supervisorctl start logis

Commandes courantes

# Redémarrer l'application après modification
sudo supervisorctl restart logis

# Voir les logs
tail -f /var/log/logis/gunicorn_error.log
tail -f /var/log/logis/django.log

# Appliquer une migration
DJANGO_SETTINGS_MODULE=logis_project.settings.production ./manage.py migrate

# Régénérer les statiques
DJANGO_SETTINGS_MODULE=logis_project.settings.production ./manage.py collectstatic --no-input

# Traductions
./manage.py makemessages -l en
./manage.py compilemessages

Variables d'environnement (.env)

Variable Description
SECRET_KEY Clé secrète Django
DEBUG False en production
ALLOWED_HOSTS Hosts autorisés, séparés par des virgules
EMAIL_HOST Serveur SMTP
EMAIL_PORT Port SMTP (587 pour STARTTLS)
EMAIL_HOST_USER Identifiant SMTP
EMAIL_HOST_PASSWORD Mot de passe SMTP
EMAIL_USE_TLS True pour STARTTLS
DEFAULT_FROM_EMAIL Adresse expéditeur
ADMIN_EMAIL Destinataire des formulaires de contact

Structure des répertoires

LOGIS/
├── conf/               # nginx, gunicorn, supervisor
├── locale/             # Traductions fr/en (.po / .mo)
├── logis_project/      # Settings, urls, wsgi
│   └── settings/
│       ├── base.py
│       ├── development.py
│       └── production.py
├── properties/         # Application principale
│   ├── models.py       # Property, Room, Photo, ContactRequest…
│   ├── admin.py        # Interface d'administration
│   ├── views.py        # Liste, détail, contact (AJAX)
│   ├── sitemaps.py     # Sitemap XML
│   └── templatetags/   # property_tags (filtres, lang_switch_url…)
├── static/             # Sources CSS / JS / images
├── staticfiles/        # Sortie collectstatic (servi par nginx)
├── templates/          # Templates HTML + emails + robots.txt
└── media/              # Uploads (photos des biens)
S
Description
LOGIS PERSONNEL — Application immobilière Site vitrine bilingue (français / anglais) de gestion et présentation de biens immobiliers, construit avec Django 4.2.
Readme 90 KiB
Languages
Python 45.6%
HTML 27.2%
CSS 15.5%
JavaScript 9%
Shell 2.7%