NPMplus 2025-01-03-alpha Release
요약
이 글은 사전 릴리스이므로 NPMplus를 백업하고 테스트해보시고 작동하지 않는 것이 있으면 보고해주세요. 최신 릴리스를 하기 전에 아래의 작업이 필요합니다: - compose.yaml에서 주석 제거 - 새 릴리스 생성 (사람들이 최신으로 전환해야 함을 상기, geoip 경로 변경) 변경 사항: - 모든 호스트는 이제 환경을 업데이트할 때 한 번만 재생성됩니다. - liquidjs 자체를 사용하여 환경에 따라 영구적 호스트 및 템플릿 수정. - start.sh가 슬림해졌으며 이제 많은 마이그레이션이 모두 호스트를 다시 생성함으로써 이루어집니다. - 매우 오래된 NPMplus 버전에서의 마이그레이션 제거. - HTTP/HTTPS 포트 변경 허용 - tls-ciphers-no-stapling.conf 및 tls-ciphers.conf를 한 파일로 합침 - 기본적으로 ACME_MUST_STAPLE 비활성화 - ACME_OCSP_STAPLING env 추가(현재 사용 중, 4월 말에 비활성화 예정) - DB_SQLITE_FILE env 미지원 - NPM_DISABLE_IPV6 및 GOA_DISABLE_IPV6 제거하고 DISABLE_IPV6에 포함됨. - http3 성능 개선 (http3_stream_buffer_size가 너무 작음) - 모든 서비스 시작 전에 모든 스테이플링 파일 업데이트 - 기본 호스트는 더 이상 마운트되지 않고 각 컨테이너 시작 시 재생성 - NGINX beautifier는 이제 호스트 생성 시만 실행됨 - 무응담된 시작 페이지 수정(상위 이슈, 상위 커밋을 되돌려 수정됨) - 의존성 업데이트 - php84 지원 - readme 및 security.txt 업데이트 - 폴더 구조 개선 - 선행 연결 문자열 지원(기본 off, 특권적 컨테이너로 실행해야 함) - NIBEP 및 GOAIWSP의 기본 값 수정 - domain 이름 및 stream/proxy forward_host에 대한 구문 변경 - 초기 기본 페이지 지원 추가 - kyber 삭제(mlkem 지원) - freenginx 연결 시 기본 tls 설정 사용 - nginx_custom 폴더 custom_nginx로 변경 - proxy.conf 및 proxy-location.conf 통합하여 proxy.conf로 이름 변경 - 더미 인증서 secp384r1로 변경 - no-servername 파일을 일반 설정에 통합 - HSTS subdomains 비활성화 env 추가 - 상위 X_FRAME_OPTIONS env 지원, 기본값을 SAMEORIGIN에서 DENY로 변경, 설정하지 않는 옵션 추가 - Referrer-Police 헤더 삭제(기본값은 NPMplus 이전과 동일함: strict-origin-when-cross-origin) - 인증/인증되지 않은 요청 시 버전 노출하지 않음 - ACME_KEY_TYPE env 추가(기본 및 권장은 여전히 ecdsa) - #!/usr/bin/env sh 사용 - DNS 비밀 및 nginx와 함께 certbot 빌드 후 삽입 시험 방법: - 위의 변경 사항 읽기 - Compose yaml에서 latest/nothing을 develop로 변경 - Compose 스택 다시 배포 - 발견한 모든 문제 보고 전체 변경 사항: 2024-12-14-r1...2025-01-03-alpha
원문 내용
Note: this is a prerelease, please back up NPMplus and test it if you can, please report back if something does not work (to see how many people test it, please give at least a reaction if you test and it works)
The following still needs to happen before new latest release:
- compose.yaml remove comments
- create new release (and remember people to switch back to latest now, also remind changing geoip paths)
What's Changed
- all your hosts will now regenerate once and when you update an env which influences a template
- use liquidjs itself instead of sed to modify persistent hosts and templates based on envs
- slim start.sh because many migrations are now done by simply recreating all hosts
- remove migrations from very old NPMplus versions (migration from upstream NPM still possible)
- allow changing http/https ports
- merge tls-ciphers-no-stapling.conf tls-ciphers.conf into one file
- disable ACME_MUST_STAPLE by default
- new ACME_OCSP_STAPLING env controlling if stapling should happen, currently on, will be disabled end april
- env DB_SQLITE_FILE is now unsupported
- NPM_DISABLE_IPV6 and GOA_DISABLE_IPV6 are now removed and included in DISABLE_IPV6
- http3 should now be way faster (http3_stream_buffer_size was too small)
- update all stapling files before starting all services
- default host is not mounted anymore and recreated on each container start
- nginxbeautifier now only runs on hosts generation
- fix unresponsive start page (upstream issue, fixed by reverting upstream commit)
- dep updates
- support php84
- update readme
- update security.txt
- improve folder structure
- frontend now only allows enabling coreruleset if modsec is also enabled
- quic_bpf support (default off, since it needs NPMplus to run as a privileged container)
- NIBEP and GOAIWSP have switched their default values
- streams forwarding_port now allows $server_port as a valid input
- allowed syntax for domain names and stream/proxy forward_host have changed
- added support for INITIAL_DEFAULT_PAGE
- remove kyber (mlkem is supported)
- use freenginx default tls setting when connecting to upstream server
- rename nginx_custom folder to custom_nginx
- unify proxy.conf and proxy-location.conf to proxy.conf
- new dummy certs now use secp384r1 instead of rsa4096
- integrate no-servername files in the normal configs
- allow disabling hsts subdomains via env
- support upstream X_FRAME_OPTIONS env, also change its default from SAMEORIGIN to DENY, add option to not set it
- remove Referrer-Police header (default value when unset is the same as NPMplus used before: strict-origin-when-cross-origin)
- don't expose version when making a (authenticated/unauthenticated) request to NPMplus API
- add ACME_KEY_TYPE env (default and recommended is still ecdsa)
- use #!/usr/bin/env sh instead of #!/bin/sh
- dns secrets are not mounted anymore, since they are saved in the db and rewritten on every container start, so they don't need to be mounted
- certbot is now built together with nginx
How to test
- Read the changes above
- change the tag in your compose yaml from latest/nothing to develop
- redeploy the compose stack
- report any issues you find
Full Changelog: 2024-12-14-r1...2025-01-03-alpha
링크 : https://github.com/ZoeyVid/NPMplus/releases/tag/2025-01-03-alpha