Skip to content

Commit 9f0c482

Browse files
authored
Merge pull request #357 from rafatecno1/neteja-docker
Refactorització de l'instal·lador de la Demo Docker, habilitar Demo "normal" i Demo "Dev" i neteja i simplificació d'arxius.
2 parents cb9a7c3 + 1ec4245 commit 9f0c482

24 files changed

+519
-21237
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ Es pot consultar un índex complet amb tota la informació sobre Django-Aula:
4848
<a name="requisits"></a>
4949
## Requisits del sistema operatiu per instal·lar Django-Aula
5050

51-
Django-Aula s'instal·la en un servidor amb sistema operatiu Linux i està adaptat per Debian 13, Ubuntu Server 24.04 LTS o superior, o derivats de la mateixa base.
51+
Django-Aula s'instal·la en un servidor amb sistema operatiu Linux i està adaptat per Debian 13, Ubuntu Server 24.04 LTS o superior, o derivats de la mateixa base. El hardware mínim és d'1 cpu (core), 1Gb de RAM i 10 o 15GB de disc dur per Debian Server o Ubuntu Server, respectívament.
5252

5353
Per qualsevol tipus d'instal·lació, ja sigui per un ús real o per l'entorn de demostració, és altament recomanable haver creat un usuari amb permisos de *SUDO*. [El procés està documentat.](docs/USER_MANUAL/ajuda-install/usuari_sudo.md)
5454

@@ -59,7 +59,7 @@ Per qualsevol tipus d'instal·lació, ja sigui per un ús real o per l'entorn de
5959

6060
L'entorn de demostració, conegut com Demo, és una versió funcional del sistema i que es pot posar en funcionament en pocs minuts. Disposa de dades fictícies (usuaris, professors, alumnat i un horari mínim) que faciliten observar l'aspecte visual i interaccionar, des de diferents rols, amb les funcionalitats de l'aplicatiu real Django-Aula.
6161

62-
El desplegament de la Demo s'ha automatitzat amb l'execució de dues comandes i consta de dues passes consecutives:
62+
El desplegament de la Demo es pot fer de forma automatitzada, tot i que també es pot fer de forma manual, i s'aconsegueix amb l'execució de dues comandes i consta de dues passes consecutives:
6363

6464

6565
### 1a - Instal·lació automàtica de Docker i Docker Compose
@@ -119,7 +119,7 @@ Després de la instal·lació el sistema estarà preparat per rebre les dades re
119119

120120
* **Vols col·laborar-hi com a #DEV?**
121121
Aquestes són les [Issues prioritàries](https://github.com/ctrl-alt-d/django-aula/issues?q=is%3Aissue%20state%3Aopen%20label%3APrioritari)
122-
* **Pregüntes d'ús freqüent**.
122+
* **Preguntes d'ús freqüent**.
123123
[FAQs](https://github.com/ctrl-alt-d/django-aula/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3AFAQ+)
124124
* **Has trobat errors? Necessites ajuda?** Utilitza el Formulari per demanar ajuda o comunicar errors (*Issues*)
125125
[Issues/Formularis d'ajuda](https://github.com/ctrl-alt-d/django-aula/issues/new/choose)

aula/settings_dir/demo.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ def location(x):
3030
# Afegeix els hosts llegits de la variable d'entorn (separats per coma)
3131
ALLOWED_HOSTS += DEMO_HOSTS_STR.split(',')
3232

33+
# Configuració per permetre log-in en entorns HTTP (no segurs)
34+
# Demo manage.py runserver: Starting development server at http://0.0.0.0:8000/
35+
SESSION_COOKIE_SECURE = False
36+
CSRF_COOKIE_SECURE = False
37+
SECURE_CROSS_ORIGIN_OPENER_POLICY = None
38+
3339
EMAIL_SUBJECT_PREFIX = "[DEMO AULA] "
3440
EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"
3541

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ __pycache__/
3434
.DS_Store
3535
Thumbs.db
3636

37+
# Documentació
38+
docs/
39+
README.md
40+
3741
# Altres fitxers grans o no necessaris
3842
node_modules/
3943
dist/
@@ -42,6 +46,11 @@ build/
4246
# Altres fitxers
4347
apache
4448
canviDeCurs.txt
45-
docker-compose.old
4649
enDesenvolupament.txt
4750
TODO.txt
51+
*.old
52+
install_djau.sh
53+
install_demo_docker.sh
54+
setup_djau/
55+
docker/*
56+
!docker/carrega_inicial.sh
File renamed without changes.

docker/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ ENV PYTHONDONTWRITEBYTECODE=1
44
ENV PYTHONUNBUFFERED=1
55

66
WORKDIR /app
7-
COPY djau/. .
7+
COPY . .
88
RUN apt-get update && apt-get install -y \
99
git \
1010
# wait-for-it \

docker/Makefile

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
.PHONY: build serve stop down logs \
2+
dev-build dev-serve dev-stop dev-down dev-logs \
3+
dev-load_demo_data dev-makemigrations dev-shell dev-bash
4+
5+
# --- VARIABLES ---
6+
COMPOSE_DEMO = docker-compose.yml
7+
COMPOSE_DEV = docker-compose.dev.yml
8+
9+
# ----------- Aesthetics -----------
10+
GROC := "\033[1;33m"
11+
VERD := "\033[1;32m"
12+
GRIS := "\033[1;90m"
13+
NC := "\033[0m"
14+
15+
# Funció per a missatges informatius (Groc)
16+
INFO := @bash -c '\
17+
printf $(GROC); \
18+
echo "=> $$1"; \
19+
printf $(NC)' SOME_VALUE
20+
21+
# Funció per a missatges d'èxit (Verd)
22+
EXITO := @bash -c '\
23+
printf $(VERD); \
24+
echo "✅ $$1"; \
25+
printf $(NC)' SOME_VALUE
26+
27+
# --- COMANDES DE LA DEMO (AUTOMÀTICA) ---
28+
29+
build:
30+
$(INFO) "Construint imatge de la Demo..."
31+
docker compose -f $(COMPOSE_DEMO) build
32+
33+
serve:
34+
$(INFO) "Aixecant serveis de la Demo..."
35+
docker compose -f $(COMPOSE_DEMO) up -d
36+
$(EXITO) "Demo en marxa al port 8000"
37+
38+
stop:
39+
$(INFO) "Aturant serveis de la Demo..."
40+
docker compose -f $(COMPOSE_DEMO) stop
41+
42+
down:
43+
$(INFO) "Eliminant contenidors i xarxes de la Demo..."
44+
docker compose -f $(COMPOSE_DEMO) down
45+
46+
logs:
47+
docker compose -f $(COMPOSE_DEMO) logs -f web
48+
49+
# --- COMANDES DE DESENVOLUPAMENT (DEV) ---
50+
51+
dev-build:
52+
$(INFO) "Construint imatge de Desenvolupament..."
53+
docker compose -f $(COMPOSE_DEV) build
54+
55+
dev-serve:
56+
$(INFO) "Aixecant serveis de Desenvolupament (amb volums en viu)..."
57+
docker compose -f $(COMPOSE_DEV) up -d
58+
$(EXITO) "Entorn 'Dev' aixecant-se al port 8000."
59+
60+
dev-stop:
61+
$(INFO) "Aturant serveis de Dev..."
62+
docker compose -f $(COMPOSE_DEV) stop
63+
64+
dev-down:
65+
$(INFO) "Eliminant contenidors i xarxes de Dev..."
66+
docker compose -f $(COMPOSE_DEV) down
67+
68+
dev-logs:
69+
docker compose -f $(COMPOSE_DEV) logs -f web
70+
71+
# --- GESTIÓ DE DADES I DJANGO (DEV) ---
72+
73+
dev-load_demo_data:
74+
$(INFO) "Carrega fixtures i dades de demo..."
75+
@printf $(GRIS)
76+
@docker exec -it dev_web bash -c "python manage.py loaddata aula/apps/*/fixtures/dades.json"
77+
@docker exec -it dev_web python manage.py loaddemodata
78+
@printf $(NC)
79+
$(EXITO) "Dades de la Demo carregades amb èxit."
80+
81+
dev-makemigrations:
82+
$(INFO) "Comprovant canvis als models i creant migracions..."
83+
docker exec -it dev_web python manage.py makemigrations
84+
85+
dev-shell:
86+
$(INFO) "Entrant a la consola de Django..."
87+
docker exec -it dev_web python manage.py shell
88+
89+
dev-bash:
90+
$(INFO) "Entrant al terminal del contenidor web..."
91+
docker exec -it dev_web bash

docker/Makefile.demo.automatica

Lines changed: 0 additions & 33 deletions
This file was deleted.

docker/README.md

Lines changed: 16 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,29 @@
11
# Contingut del Directori Docker
22

3-
Aquest directori conté tots els fitxers creats per gestionar el desplegament de la Demo de Django-Aula i per la creació d'imatges de l'aplicació Django-Aula mitjançant contenidors Docker.
4-
5-
El directori conté els fitxers de configuració pel desplegament ràpid de la Demo i els fitxers per construir-la, així com algun arxiu més que obre la porta per futurs desenvolupaments de l'aplicatiu sencer amb Docker.
3+
Aquest directori conté els fitxers necessaris per gestionar el desplegament d'una Demo de Django-Aula, tant per la versió normal com per la versió per desenvolupament, mitjançant contenidors Docker.
64

5+
Per informació més precisa, consulti la documentació detallada per la [Instal·lació de la demo de forma automatitzada amb Docker](../docs/USER_MANUAL/demo/install_demo_docker.md)
76
---
87

98
## 1. Requisit previ. Instal·lació de Docker CE i docker-compose en el sistema operatiu
109

1110
Segons es descriu a les instruccions principals del repositori, hi ha dues maneres d'instal·lar Docker en el sistema operatiu, la manual i l'automatitzada.
1211

13-
| Nom de l'Arxiu | Descripció | Ús Principal |
14-
| :--- | :--- | :--- |
15-
| `install_docker.sh` | **Script d'instal·lació automatitzada de Docker.** Descarrega i configura tot allò que cal per instal·lar l'entorn Docker i docker-compose en el sistema. | Instal·lar Docker en el sistema operatiu. |
16-
17-
18-
## 2. Arxius de Configuració de Desplegament Ràpid
12+
| Nom de l'Arxiu | Descripció |
13+
| :--- | :--- |
14+
| `install_docker.sh` | **Script d'instal·lació automatitzada de Docker.** Descarrega i configura tot allò que cal per instal·lar l'entorn Docker i docker-compose en el sistema. |
1915

20-
Aquests arxius s'utilitzen per a l'**Instal·lació de la Demo** amb Docker de forma automatitzada, tal com s'explica al document principal. Són la base per a un desplegament senzill i automatitzat típic amb Docker.
21-
22-
| Nom de l'Arxiu | Descripció | Ús Principal |
23-
| :--- | :--- | :--- |
24-
| `install_quick_demo_docker.sh` | **Script d'instal·lació automatitzada.** Descarrega, col·loca els arxius de configuració a l'arrel del projecte, els reanomena i desplega els contenidors automàticament. | Desplegament actual de la Demo. |
25-
| `docker-compose.demo.automatica.yml` | Fitxer de configuració de serveis (Web + DB) utilitzat per la Demo. | Serà l'arxiu `docker-compose.yml` que desplegarà la Demo. |
26-
| `Makefile.demo.automatica` | Defineix les ordres de gestió simplificades (`serve`, `stop`, `logs` i `down`) per a la Demo. | Serà l'arxiu `Makefile` que facilitarà el desplegament de la Demo. |
27-
| `env.demo.automatica` | Arxiu de variables d'entorn per la base de dades de PostgreSQL que farà servir la Demo. | Serà l'arxiu `.env` que llegirà l'arxiu `docker-compose.yml`. |
28-
| `dades_demmo.sql` | És el fitxer SQL (`.sql`) amb les dades de demostració precarregades. | El contenidor de PostgreSQL llegeix aquest fitxer en iniciar-se i omple la base de dades de forma ràpida i automàtica. |
29-
30-
---
3116

32-
## 3. Fitxers de Construcció i Entorns de Desenvolupament
17+
## 2. Arxius necessaris pel desplegament de la Demo
3318

34-
Es troben ubicats al directori **build-dev** i són els que es fan servir per **crear noves imatges**, tant per la Demo com per qualsevol altre objectiu.
19+
Aquests arxius s'utilitzen per la **Instal·lació de la Demo** amb Docker de forma automatitzada, tal com s'explica al document principal. Són la base d'un desplegament senzill i automatitzat típic amb Docker.
3520

36-
| Nom de l'Arxiu | Descripció | Finalitat |
37-
| :--- | :--- | :--- |
38-
| `Dockerfile.demo.automatica` | Defineix com es va construir la imatge per a la Demo actualment desplegable de forma automatitzada . | Utilitzat per crear la imatge pujada al repositori d'imatges *Docker Hub*. |
39-
| `docker-compose.demo.manual.yml` | És el fitxer de partida a partir del qual es va construir el *docker-compose.demo.automatica.yml*. | Ús per a desenvolupadors locals que volen accedir a *shells*, *migrations*, etc. |
40-
| `docker-compose.dev.yml` | Configuració completa dels serveis per a **l'entorn de Desenvolupament** (DEV). (ara en desenvolupament) | Facilitar crear un entorn de desenvolupament de l'aplicació bassat en Docker i pensat per a desenvolupadors locals que volen accedir a *shells*, *migrations*, etc. |
41-
| `Makefile.demo.manual` | És el fitxer de partida a partir del qual es va construir el *Makefile.demo.automatica*. Interacciona amb el fitxer *docker-compose.demo.yml*.| És l'arxiu que facilitarà la creació i desplegament de les noves Demos que es vulguin crear. |
42-
| `Makefile.demo.complet` | Conté conjuntament les instruccions per treballar tant amb la versió manual com la versió *DEV*. | Serveix com a referència i com a base per a entorns de Producció/Desenvolupament. |
43-
| `env.example` | Arxiu de variables d'entorn *sense personalitzar* per la base de dades de PostgreSQL que farà servir la Demo. | Base per crear el fitxer `.env` per crear una imatge de Django-Aula amb Docker. |
44-
| `.dockerignore.demo` | Especifica els fitxers que s'han d'excloure del context de construcció de la imatge de la Demo. | Optimització i seguretat de la imatge Docker final. |
21+
| Nom de l'Arxiu | Descripció |
22+
| :--- | :--- |
23+
| `install_demo_docker.sh` | **Script d'instal·lació automatitzada.** Descarrega, col·loca els arxius de configuració a l'arrel del projecte, els reanomena i desplega els contenidors automàticament. |
24+
| `docker-compose.yml` | Fitxer de configuració de serveis (Web + DB) utilitzat per la Demo. |
25+
| `docker-compose.dev.yml` | Versió per a desenvolupadors de codi del fitxer de configuració de serveis (Web + DB) que crea la Demo. |
26+
| `Dockerfile` | Defineix les passes que es seguiran per construir la imatge de la Demo |
27+
| `Makefile` | Facilita el desplegament de la Demo mitjançant ordres de gestió simplificades, com ara `serve`, `stop`, `logs`, `down`, etc. |
28+
| `.env` | Arxiu de variables d'entorn per la base de dades de PostgreSQL que farà servir la Demo. |
29+
| `.dockerignore` | Declaració d'arxius que no son necessaris incloure dins el contenidor docker de la Demo |

docker/build-dev/Dockerfile.demo.automatica

Lines changed: 0 additions & 22 deletions
This file was deleted.

0 commit comments

Comments
 (0)