Skip to content

Commit 9c9027a

Browse files
authored
Merge branch 'main' into patch-1
2 parents c54cb57 + 0892c05 commit 9c9027a

File tree

45 files changed

+2274
-3873
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+2274
-3873
lines changed

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,17 @@ and this project adheres to
1313
- ⚡️(frontend) improve accessibility:
1414
- #1248
1515
- #1235
16+
- #1275
1617
- #1255
1718
- #1262
19+
- #1244
1820
- #1270
21+
- #1282
22+
23+
### Fixed
24+
25+
- 🐛(makefile) Windows compatibility fix for Docker volume mounting #1264
26+
- 🐛(minio) fix user permission error with Minio and Windows #1264
1927

2028
## [3.5.0] - 2025-07-31
2129

Makefile

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,13 @@ DB_PORT = 5432
3535

3636
# -- Docker
3737
# Get the current user ID to use for docker run and docker exec commands
38-
DOCKER_UID = $(shell id -u)
39-
DOCKER_GID = $(shell id -g)
40-
DOCKER_USER = $(DOCKER_UID):$(DOCKER_GID)
38+
ifeq ($(OS),Windows_NT)
39+
DOCKER_USER := 0:0 # run containers as root on Windows
40+
else
41+
DOCKER_UID := $(shell id -u)
42+
DOCKER_GID := $(shell id -g)
43+
DOCKER_USER := $(DOCKER_UID):$(DOCKER_GID)
44+
endif
4145
COMPOSE = DOCKER_USER=$(DOCKER_USER) docker compose
4246
COMPOSE_E2E = DOCKER_USER=$(DOCKER_USER) docker compose -f compose.yml -f compose-e2e.yml
4347
COMPOSE_EXEC = $(COMPOSE) exec
@@ -48,7 +52,7 @@ COMPOSE_RUN_CROWDIN = $(COMPOSE_RUN) crowdin crowdin
4852

4953
# -- Backend
5054
MANAGE = $(COMPOSE_RUN_APP) python manage.py
51-
MAIL_YARN = $(COMPOSE_RUN) -w /app/src/mail node yarn
55+
MAIL_YARN = $(COMPOSE_RUN) -w //app/src/mail node yarn
5256

5357
# -- Frontend
5458
PATH_FRONT = ./src/frontend

bin/_config.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ function _set_user() {
3838
# options: docker compose command options
3939
# ARGS : docker compose command arguments
4040
function _docker_compose() {
41+
# Set DOCKER_USER for Windows compatibility with MinIO
42+
if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "cygwin" || -n "${WSL_DISTRO_NAME:-}" ]]; then
43+
export DOCKER_USER="0:0"
44+
fi
4145

4246
echo "🐳(compose) file: '${COMPOSE_FILE}'"
4347
docker compose \

docker/files/production/etc/nginx/conf.d/default.conf.template

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ server {
1111
server_name localhost;
1212
charset utf-8;
1313

14+
# increase max upload size
15+
client_max_body_size 10m;
16+
1417
# Disables server version feedback on pages and in headers
1518
server_tokens off;
1619

@@ -68,7 +71,7 @@ server {
6871
proxy_set_header Host $host;
6972
}
7073

71-
location /collaboration/api/ {
74+
location /collaboration/api/ {
7275
# Collaboration server
7376
proxy_pass http://${YPROVIDER_HOST}:4444;
7477
proxy_set_header Host $host;
@@ -95,7 +98,7 @@ server {
9598

9699
add_header Content-Security-Policy "default-src 'none'" always;
97100
}
98-
101+
99102
location /media-auth {
100103
proxy_pass http://docs_backend/api/v1.0/documents/media-auth/;
101104
proxy_set_header X-Forwarded-Proto https;
@@ -109,4 +112,4 @@ server {
109112
proxy_set_header Content-Length "";
110113
proxy_set_header X-Original-Method $request_method;
111114
}
112-
}
115+
}

docs/examples/compose/compose.yaml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ services:
77
timeout: 2s
88
retries: 300
99
env_file:
10-
- env.d/postgresql
11-
- env.d/common
10+
- env.d/postgresql
11+
- env.d/common
1212
environment:
13-
- PGDATA=/var/lib/postgresql/data/pgdata
13+
- PGDATA=/var/lib/postgresql/data/pgdata
1414
volumes:
15-
- ./data/databases/backend:/var/lib/postgresql/data/pgdata
15+
- ./data/databases/backend:/var/lib/postgresql/data/pgdata
1616

1717
redis:
1818
image: redis:8
@@ -22,12 +22,12 @@ services:
2222
user: ${DOCKER_USER:-1000}
2323
restart: always
2424
environment:
25-
- DJANGO_CONFIGURATION=Production
25+
- DJANGO_CONFIGURATION=Production
2626
env_file:
27-
- env.d/common
28-
- env.d/backend
29-
- env.d/yprovider
30-
- env.d/postgresql
27+
- env.d/common
28+
- env.d/backend
29+
- env.d/yprovider
30+
- env.d/postgresql
3131
healthcheck:
3232
test: ["CMD", "python", "manage.py", "check"]
3333
interval: 15s
@@ -45,24 +45,24 @@ services:
4545
image: lasuite/impress-y-provider:latest
4646
user: ${DOCKER_USER:-1000}
4747
env_file:
48-
- env.d/common
49-
- env.d/yprovider
48+
- env.d/common
49+
- env.d/yprovider
5050

5151
frontend:
5252
image: lasuite/impress-frontend:latest
5353
user: "101"
5454
entrypoint:
55-
- /docker-entrypoint.sh
55+
- /docker-entrypoint.sh
5656
command: ["nginx", "-g", "daemon off;"]
5757
env_file:
58-
- env.d/common
58+
- env.d/common
5959
# Uncomment and set your values if using our nginx proxy example
6060
#environment:
61-
# - VIRTUAL_HOST=${DOCS_HOST} # used by nginx proxy
61+
# - VIRTUAL_HOST=${DOCS_HOST} # used by nginx proxy
6262
# - VIRTUAL_PORT=8083 # used by nginx proxy
6363
# - LETSENCRYPT_HOST=${DOCS_HOST} # used by lets encrypt to generate TLS certificate
6464
volumes:
65-
- ./default.conf.template:/etc/nginx/templates/docs.conf.template
65+
- ./default.conf.template:/etc/nginx/templates/docs.conf.template
6666
depends_on:
6767
backend:
6868
condition: service_healthy

docs/examples/compose/keycloak/compose.yaml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,23 @@ services:
77
timeout: 2s
88
retries: 300
99
env_file:
10-
- env.d/kc_postgresql
10+
- env.d/kc_postgresql
1111
volumes:
12-
- ./data/keycloak:/var/lib/postgresql/data/pgdata
12+
- ./data/keycloak:/var/lib/postgresql/data/pgdata
1313

1414
keycloak:
1515
image: quay.io/keycloak/keycloak:26.1.3
1616
command: ["start"]
1717
env_file:
18-
- env.d/kc_postgresql
19-
- env.d/keycloak
18+
- env.d/kc_postgresql
19+
- env.d/keycloak
2020
# Uncomment and set your values if using our nginx proxy example
2121
# environment:
22-
# - VIRTUAL_HOST=id.yourdomain.tld # used by nginx proxy
22+
# - VIRTUAL_HOST=id.yourdomain.tld # used by nginx proxy
2323
# - VIRTUAL_PORT=8080 # used by nginx proxy
2424
# - LETSENCRYPT_HOST=id.yourdomain.tld # used by lets encrypt to generate TLS certificate
2525
depends_on:
26-
kc_postgresql::
26+
kc_postgresql:
2727
condition: service_healthy
2828
restart: true
2929
# Uncomment if using our nginx proxy example
@@ -33,4 +33,4 @@ services:
3333
#
3434
#networks:
3535
# proxy-tier:
36-
# external: true
36+
# external: true

docs/examples/compose/minio/compose.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ services:
22
minio:
33
image: minio/minio
44
environment:
5-
- MINIO_ROOT_USER=<set minio root username>
6-
- MINIO_ROOT_PASSWORD=<set minio root password>
5+
- MINIO_ROOT_USER=<set minio root username>
6+
- MINIO_ROOT_PASSWORD=<set minio root password>
77
# Uncomment and set your values if using our nginx proxy example
88
# - VIRTUAL_HOST=storage.yourdomain.tld # used by nginx proxy
99
# - VIRTUAL_PORT=9000 # used by nginx proxy
@@ -16,12 +16,12 @@ services:
1616
entrypoint: ""
1717
command: minio server /data
1818
volumes:
19-
- ./data/minio:/data
19+
- ./data/minio:/data
2020
# Uncomment if using our nginx proxy example
2121
# networks:
22-
# - proxy-tier
22+
# - proxy-tier
2323

2424
# Uncomment if using our nginx proxy example
2525
#networks:
2626
# proxy-tier:
27-
# external: true
27+
# external: true

docs/examples/compose/nginx-proxy/compose.yaml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,28 @@ services:
33
image: nginxproxy/nginx-proxy
44
container_name: nginx-proxy
55
ports:
6-
- "80:80"
7-
- "443:443"
6+
- "80:80"
7+
- "443:443"
88
volumes:
9-
- html:/usr/share/nginx/html
10-
- certs:/etc/nginx/certs:ro
11-
- /var/run/docker.sock:/tmp/docker.sock:ro
9+
- html:/usr/share/nginx/html
10+
- certs:/etc/nginx/certs:ro
11+
- /var/run/docker.sock:/tmp/docker.sock:ro
1212
networks:
13-
- proxy-tier
13+
- proxy-tier
1414

1515
acme-companion:
1616
image: nginxproxy/acme-companion
1717
container_name: nginx-proxy-acme
1818
environment:
19-
19+
2020
volumes_from:
21-
- nginx-proxy
21+
- nginx-proxy
2222
volumes:
23-
- certs:/etc/nginx/certs:rw
24-
- acme:/etc/acme.sh
25-
- /var/run/docker.sock:/var/run/docker.sock:ro
23+
- certs:/etc/nginx/certs:rw
24+
- acme:/etc/acme.sh
25+
- /var/run/docker.sock:/var/run/docker.sock:ro
2626
networks:
27-
- proxy-tier
27+
- proxy-tier
2828

2929
networks:
3030
proxy-tier:

docs/troubleshoot.md

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -83,55 +83,6 @@ If you already have CRLF line endings in your local repository, the **best appro
8383
git commit -m "✏️(project) Fix line endings to LF"
8484
```
8585

86-
## Minio Permission Issues on Windows
87-
88-
### Problem Description
89-
90-
On Windows, you may encounter permission-related errors when running Minio in development mode with Docker Compose. This typically happens because:
91-
92-
- **Windows file permissions** don't map well to Unix-style user IDs used in Docker containers
93-
- **Docker Desktop** may have issues with user mapping when using the `DOCKER_USER` environment variable
94-
- **Minio container** fails to start or access volumes due to permission conflicts
95-
96-
### Common Symptoms
97-
98-
- Minio container fails to start with permission denied errors
99-
- Error messages related to file system permissions in Minio logs
100-
- Unable to create or access buckets in the development environment
101-
- Docker Compose showing Minio service as unhealthy or exited
102-
103-
### Solution for Windows Users
104-
105-
If you encounter Minio permission issues on Windows, you can temporarily disable user mapping for the Minio service:
106-
107-
1. **Open the `compose.yml` file**
108-
109-
2. **Comment out the user directive** in the `minio` service section:
110-
```yaml
111-
minio:
112-
# user: ${DOCKER_USER:-1000} # Comment this line on Windows if permission issues occur
113-
image: minio/minio
114-
environment:
115-
- MINIO_ROOT_USER=impress
116-
- MINIO_ROOT_PASSWORD=password
117-
# ... rest of the configuration
118-
```
119-
120-
3. **Restart the services**:
121-
```bash
122-
make run
123-
```
124-
125-
### Why This Works
126-
127-
- Commenting out the `user` directive allows the Minio container to run with its default user
128-
- This bypasses Windows-specific permission mapping issues
129-
- The container will have the necessary permissions to access and manage the mounted volumes
130-
131-
### Note
132-
133-
This is a **development-only workaround**. In production environments, proper user mapping and security considerations should be maintained according to your deployment requirements.
134-
13586
## Frontend File Watching Issues on Windows
13687

13788
### Problem Description

env.d/production.dist/backend

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ OIDC_RP_CLIENT_ID=<client_id>
4343
OIDC_RP_CLIENT_SECRET=<client secret>
4444
OIDC_RP_SIGN_ALGO=RS256
4545
OIDC_RP_SCOPES="openid email"
46-
#USER_OIDC_FIELD_TO_SHORTNAME
47-
#USER_OIDC_FIELDS_TO_FULLNAME
46+
#OIDC_USERINFO_SHORTNAME_FIELD
47+
#OIDC_USERINFO_FULLNAME_FIELDS
4848

4949
LOGIN_REDIRECT_URL=https://${DOCS_HOST}
5050
LOGIN_REDIRECT_URL_FAILURE=https://${DOCS_HOST}

0 commit comments

Comments
 (0)