Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use .env for project configuration #971

Open
wants to merge 2 commits into
base: taiste
Choose a base branch
from
Open

Use .env for project configuration #971

wants to merge 2 commits into from

Conversation

imperosol
Copy link
Contributor

No description provided.

libjpeg-dev zlib1g-dev npm libffi-dev pkg-config \
gettext git
libjpeg-dev zlib1g-dev npm libffi-dev pkg-config \
gettext git redis
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On peut garder redis en install avancée stp ?
C'est vraiment pas ouf un service en plus pour dev en local, on a déjà assez de trucs.
Surtout que pour le coup le cache en mode debug ça pose pas tellement de soucis pour tester

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ca permet quand même d'être au plus proche de la prod.
Et comme maintenant les paramètres de connexion de Redis sont renseignés en même temps que tout le reste, ça permet de l'utiliser avec pratiquement pas de config en plus (juste systemctl enable redis ; c'est pas xapian, quoi).

Ca rend redis plus facile à utiliser dans la CI.
Et comme ça le rend assez simple pour être installé directement, ça permet de ne pas se limiter sur les fonctionnalités de redis ou sur les librairies qui peuvent fonctionner avec redis (celery, *clin d'oeil* *clin d'oeil*)

la configuration pour signifier que nous sommes en mode développement.
Pour cela, nous allons créer un fichier `sith/settings_custom.py`
et l'utiliser pour surcharger les settings de base.
Une fois les dépendances installées, il faut encore
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

C'est ici l'occasion de faire en sorte qu'on ai plus à créer de fichier du tout quand on est en développement

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Toute cette partie ça devrais être dans une section plus avancée

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Créer un .env maison, c'est plutôt courant. Au bout d'un moment, on peut pas simplifier à l'extrême.


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = "(4sjxvhz@m5$0a$j0_pqicnc$s!vbve)z+&++m%g%bjhlz4+g2"
SECRET_KEY = env.str("SECRET_KEY")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je pense que les valeurs par défaut du .env.example ça devrais être set ici pour tout.
Et aussi faire que ce fichier de settings ait les valeurs par défaut pour le mode développement.

Je pense que quand tu dev, tu devrais pas à avoir à créer un .env sauf si t'as un truc spécifique à faire

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

C'est une ligne à faire au moment de l'install. C'est plus court que ce qu'on fait maintenant.

Je préfère que les valeurs par défaut aient le moins d'incidence possible sur la prod en cas de mauvaise configuration. Une ligne à taper, je trouve que c'est un prix acceptable pour un peu plus de sécurité.

CSRF_COOKIE_SECURE = env.bool("HTTPS", default=True)
SESSION_COOKIE_SECURE = env.bool("HTTPS", default=True)
X_FRAME_OPTIONS = "SAMEORIGIN"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Il faudrait aussi CSRF_TRUSTED_ORIGINS
J'en ai souvent besoin quand je test des features https sur mobile en local


# Below this line, only Sith-specific variables are defined

SITH_URL = "my.url.git.an"
SITH_NAME = "Sith website"
SITH_URL = env.str("SITH_URL", default="127.0.0.1:8000")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

T'as moyen de set ce défaut à partir de la commande runserver ? Ce serait cool

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Non, j'ai pas.
Pour la très bonne raison que SITH_URL, c'est ce qui est utilisé dans le populate. Et le populate est appelé avant le runserver quand on installe le projet.


# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
DEBUG = env.bool("DEBUG", default=False)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suivant la manière dont je propose de gérer les choses, le default ici ça devrait être True

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Au contraire. Là, par défaut on est en mode production. Ce qui signifie que ça demande moins de config en CI et que si le .env est mal configuré en prod, c'est moins dangereux.

En local, si la personne fait bien son cp, le mode debug sera activé, donc ça marchera

@imperosol imperosol requested a review from klmp200 January 25, 2025 17:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants