NPMplus 2025-01-03-alpha Release
요약
참고: 이것은 사전 릴리즈입니다. NPMplus를 백업하고 테스트해보세요. 무언가 작동하지 않는 경우 보고해주세요. (테스트한 사람이 몇 명인지 알아보려면 테스트하고 작동하는 경우 최소한 리액션을 보여주세요)
새 최신 릴리스 전에 다음이 아직 필요합니다:
- 사용자 테스트
- tls-ciphers-no-stapling.conf tls-ciphers.conf를 하나의 파일로 병합 (템플릿 버전 증가)
- 템플릿 버전을 템플릿의 shasum으로 대체할까요?
- 폴더 구조 개선
- security.txt 업데이트
- 상위 코드 병합
- readme 업데이트
- compose.yaml 주석 제거
- 새 릴리즈 생성 (이제 다시 최신으로 전환하라는 메시지를 기억하세요)
변경 내용
- 모든 호스트들은 이제 환경에 영향을 주는 템플릿이 업데이트될 때 한 번만 재생성됩니다.
- 영구적인 호스트와 템플릿을 수정하는 데 sed 대신 liquidjs 자체를 사용합니다.
- 많은 마이그레이션이 이제 단순히 모든 호스트를 다시 생성함으로써 수행될 수 있게 start.sh를 간소화했습니다.
- 매우 오래된 NPMplus 버전의 마이그레이션을 제거했습니다 (상위 NPM에서의 마이그레이션은 가능합니다).
- http/https 포트 변경 허용
- 기본으로 ACME_MUST_STAPLE 비활성화
- 스탭링이 발생하는 경우를 제어하는 새 ACME_OCSP_STAPLING env (현재 해당 기능은 켜져 있으며, 4월 말에 비활성화될 예정입니다.
- 환경 DB_SQLITE_FILE은 더 이상 지원되지 않습니다.
- NPM_DISABLE_IPV6 및 GOA_DISABLE_IPV6이 제거되고 DISABLE_IPV6에 포함됩니다.
- http3가 이제 훨씬 빠릅니다 (http3_stream_buffer_size가 너무 작았음).
- 모든 서비스 시작 전에 모든 스탭링 파일들을 제거하고 다시 생성합니다.
- 응답하지 않는 시작 페이지 수정 (상위 코드의 문제를 역전해서 수정).
- 의존성 업데이트
- php84 지원
- frontned에서는 이제 modsec이 활성화된 상태에서만 coreruleset 활성화가 허용됩니다.
- quic_bpf 지원 (기본은 비활성화되어 있음, NPMplus가 권한이 필요한 컨테이너로 실행되어야 함).
- NIBEP 및 GOAIWSP의 기본 값이 변경되었습니다.
- streams forwarding_port가 $server_port를 유효한 입력으로 허용합니다.
- 도메인 이름 및 stream/proxy forward_host의 허용 구문이 변경되었습니다.
- INITIAL_DEFAULT_PAGE 지원 추가
- kyber 제거 (mlkem은 지원됨)
- 업스트림 서버에 연결할 때 기본 TLS 설정을 freenginx 사용
- nginx_custom 폴더를 custom_nginx로 이름 변경
- proxy.conf와 proxy-location.conf를 proxy.conf로 통합
- 새 더미 인증서는 rsa4096 대신 secp384r1을 사용합니다.
- 일반 설정에 no-servername 파일 통합
- 환경을 통해 hsts 하위 도메인 비활성화 허용
- 상위 X_FRAME_OPTIONS env 지원, 기본값 SAMEORIGIN에서 DENY로 변경, 설정하지 않을 옵션 추가
- Referrer-Police 헤더 제거 (설정되지 않았을 때 기본값은 NPMplus가 사용한 것과 동일: strict-origin-when-cross-origin)
- NPMplus API에 (인증된/비인증된) 요청을 할 때 버전 노출하지 않음
- ACME_KEY_TYPE env 추가 (기본 및 권장은 여전히 ecdsa입니다.)
- #!/usr/bin/env sh 대신#!/bin/sh 사용
- DNS 비밀은 이제 더 이상 마운트되지 않습니다. 디비에 저장되고 모든 컨테이너 시작마다 재작성되므로 마운트 할 필요가 없습니다.
- certbot은 이제 nginx와 함께 빌드됩니다.
테스트하는 방법
- 위의 변경 사항을 읽으세요
- 최신/nothing에서 개발로 compose yaml의 태그 변경
- 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:
- testing by users
- merge tls-ciphers-no-stapling.conf tls-ciphers.conf into one file (increase template version)
- replace template version with shasum of templates?
- improve folder structure
- update security.txt
- merge upstream
- update readme
- compose.yaml remove comments
- create new release (and remember people to switch back to latest now)
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
- 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)
- remove and recreate all stapling files before starting all services
- fix unresponsive start page (upstream issue, fixed by reverting upstream commit)
- dep updates
- support php84
- 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