Commit Graph

1766 Commits

Author SHA1 Message Date
fuomag9
9f8a983d47 Merge branch 'develop' of github.com:fuomag9/nginx-proxy-manager into develop 2025-11-04 18:17:55 +01:00
fuomag9
296bba5092 Fix Docker build by deferring credential validation to runtime 2025-11-04 18:17:31 +01:00
fuomag9
f1749edc77 Fix GitHub username and license link in README
Updated links to reflect the correct GitHub username and license URL.
2025-11-04 00:18:10 +01:00
fuomag9
43d83831f8 Add acknowledgment for Nginx Proxy Manager 2025-11-04 00:15:53 +01:00
fuomag9
c07d0d2f2e Add image to README for visual enhancement
Added an image to enhance the README content.
2025-11-04 00:13:39 +01:00
fuomag9
0a2a5ee5f1 Update README.md 2025-11-04 00:11:01 +01:00
fuomag9
19f4d7f0be Restore project link and simplify getting started guide 2025-11-04 00:04:11 +01:00
fuomag9
ad0225a16e Throttle login attempts and lock admin actions to privileged sessions 2025-11-04 00:00:22 +01:00
fuomag9
a4cd8e992f Harden runtime secret handling and certificate storage permissions 2025-11-03 22:44:01 +01:00
fuomag9
2cd8ace6bf Fix UI state management issues with data refresh
- Add router.refresh() to proxy-hosts and redirects dialogs
- Auto-close dialogs 1 second after successful form submission
- Fixes stale data not refreshing after create/edit/delete operations
- Fixes localhost redirect issues (requires BASE_URL env var to be set)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 22:30:08 +01:00
fuomag9
9354cd9407 Fix upstream URL parsing for HTTPS backends
Previously, upstream URLs like 'https://iot2.fuo.fi' were passed directly
to Caddy's dial field, causing DNS lookup errors like 'lookup /iot2.fuo.fi'.

Changes:
- Parse upstream URLs to extract hostname:port for Caddy's dial field
- Automatically detect HTTPS upstreams and configure TLS transport
- Support insecure_skip_verify flag for self-signed certificates
- Default to port 443 for https://, port 80 for http://

Fixes: 'dial tcp: lookup /host: no such host' errors when using URL
format for upstreams instead of host:port format.
2025-11-03 21:36:04 +01:00
fuomag9
0bfeade2fe Add HTTP-01 challenge fallback for managed certificates without Cloudflare
Previously, managed certificates required Cloudflare DNS to be configured,
otherwise no TLS automation was configured and HTTPS would fail with TLS
handshake errors.

Changes:
- When Cloudflare is configured: use DNS-01 challenge via Cloudflare
- When Cloudflare is NOT configured: use HTTP-01 challenge (default)
- Enable automatic HTTPS when TLS automation policies exist
- This allows Let's Encrypt certificates via HTTP-01 challenge

Fixes TLS handshake errors when using managed certificates without
Cloudflare configuration. Port 80 must be accessible for HTTP-01.
2025-11-03 20:30:07 +01:00
fuomag9
a1632a7f75 Preserve admin API endpoint binding in Caddy config
When POSTing config to /load, Caddy was resetting the admin endpoint
from 0.0.0.0:2019 to localhost:2019, making it inaccessible from the
web container.

Now explicitly include admin config in the generated JSON to ensure
the admin API remains accessible at 0.0.0.0:2019 after config reloads.

Fixes ECONNREFUSED errors when applying Caddy config after the first load.
2025-11-03 20:11:29 +01:00
fuomag9
914b67b747 Remove zone_id from Cloudflare DNS provider config
The caddy-dns/cloudflare module only accepts api_token.
Both zone_id and account_id fields are not supported and cause config errors.

The provider automatically handles all zones accessible by the API token.

Fixes: 'unknown field zone_id' error when applying Caddy config.
2025-11-03 19:52:00 +01:00
fuomag9
1170a628d7 Remove unsupported account_id field from Cloudflare DNS provider config
The caddy-dns/cloudflare module only supports api_token and zone_id fields.
The account_id field was causing config load errors: 'unknown field account_id'.

Fixes Caddy config validation error when using Cloudflare DNS for ACME challenges.
2025-11-03 19:28:29 +01:00
fuomag9
6418629c0b Fix Next.js server binding to 0.0.0.0 for health checks 2025-11-03 19:20:39 +01:00
fuomag9
6ad7c49889 Add health check endpoint and fix Caddy HTTPS on startup 2025-11-03 19:17:13 +01:00
fuomag9
f05b56bf02 Use HTTP for default site to prevent certificate errors on startup 2025-11-03 19:15:31 +01:00
fuomag9
89950226cd force cloudflare 2025-11-03 18:48:37 +01:00
fuomag9
a6cb399622 Copy all chunks directory for instrumentation 2025-11-02 22:57:28 +01:00
fuomag9
a1f61cad40 Copy instrumentation chunks to fix module loading 2025-11-02 22:55:53 +01:00
fuomag9
63ad2f4b9d Copy instrumentation files to standalone build 2025-11-02 22:54:06 +01:00
fuomag9
d6ef23d01b Fix foreign key constraint error when creating proxy hosts
The issue occurred because the auth system uses a hardcoded JWT user ID (1)
that didn't exist in the database, causing foreign key constraint violations
when creating proxy hosts.

Changes:
- Added init-db.ts to ensure admin user exists in database
- Added instrumentation.ts to run DB initialization on server startup
- Admin user (from ADMIN_USERNAME env var) is now created with ID 1
- Matches the hardcoded ID in auth.ts for JWT tokens

Fixes foreign key constraint error (P2003) when creating proxy hosts.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-02 22:51:27 +01:00
fuomag9
404ff29a4c Fix npm cache directory issue in entrypoint 2025-11-02 22:45:04 +01:00
fuomag9
757b14fc70 Fix database initialization on fresh deployments
Added entrypoint script to handle database permissions on fresh deployments.
The issue occurred because Docker creates the ./data directory with root permissions
when it doesn't exist, preventing the nextjs user (uid 1001) from writing to it.

Changes:
- Add entrypoint.sh that runs as root, fixes permissions, then switches to nextjs user
- Install gosu for safe privilege dropping
- Initialize database on first run with proper permissions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-02 22:42:17 +01:00
fuomag9
668b667fe9 updated a lot of stuff 2025-11-02 22:16:13 +01:00
fuomag9
b064003c34 Updated the UI 2025-10-31 23:25:04 +01:00
fuomag9
d9ced96e1b implement oauth2 login 2025-10-31 23:02:30 +01:00
fuomag9
29acf06f75 Swapped the entire UI to Material UI, applied a global dark theme, and removed all of the old styled-jsx/CSS-module styling 2025-10-31 21:03:02 +01:00
fuomag9
315192fb54 first rewrite commit 2025-10-31 20:08:28 +01:00
fuomag9
85d3917f08 Merge pull request #1 from fuomag9/copilot/fix-8ec03630-c3d1-4216-a4b9-9223ce132442
Enhance block-exploits.conf with focused modern security protections and refined pattern accuracy
2025-09-19 19:52:16 +02:00
copilot-swe-agent[bot]
2185b8244c Refine security patterns: reduce false positives in null byte detection and expand RFI protocol coverage
Co-authored-by: fuomag9 <1580624+fuomag9@users.noreply.github.com>
2025-09-19 16:55:43 +00:00
copilot-swe-agent[bot]
dd2e443da6 Remove overly restrictive rules based on feedback - PUT/DELETE methods, spam filtering, scanner detection, and rate limiting
Co-authored-by: fuomag9 <1580624+fuomag9@users.noreply.github.com>
2025-09-19 16:05:22 +00:00
copilot-swe-agent[bot]
21e1697b8a Significantly enhance block-exploits.conf with comprehensive security protections
Co-authored-by: fuomag9 <1580624+fuomag9@users.noreply.github.com>
2025-09-19 15:36:40 +00:00
copilot-swe-agent[bot]
79b12e8470 Initial plan 2025-09-19 15:28:58 +00:00
Jamie Curnow
487fa6d31b Attempt to fix frontend build for node 22
replaced node-sass with sass
2025-09-10 10:38:21 +10:00
jc21
5b6ca1bf00 Merge pull request #4664 from JMDirksen/develop
Fix initial email with uppercase
2025-08-22 12:38:22 +10:00
jc21
5039738aa3 Merge pull request #4696 from NginxProxyManager/dependabot/npm_and_yarn/test/tmp-0.2.4
Bump tmp from 0.2.3 to 0.2.4 in /test
2025-08-22 12:34:03 +10:00
jc21
4451be8f1c Merge pull request #4722 from NginxProxyManager/dependabot/npm_and_yarn/frontend/cipher-base-1.0.6
Bump cipher-base from 1.0.4 to 1.0.6 in /frontend
2025-08-22 12:22:49 +10:00
jc21
bee2fd1978 Merge pull request #4723 from NginxProxyManager/dependabot/npm_and_yarn/frontend/sha.js-2.4.12
Bump sha.js from 2.4.11 to 2.4.12 in /frontend
2025-08-22 12:22:39 +10:00
dependabot[bot]
c8adbdfc15 Bump sha.js from 2.4.11 to 2.4.12 in /frontend
Bumps [sha.js](https://github.com/crypto-browserify/sha.js) from 2.4.11 to 2.4.12.
- [Changelog](https://github.com/browserify/sha.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/crypto-browserify/sha.js/compare/v2.4.11...v2.4.12)

---
updated-dependencies:
- dependency-name: sha.js
  dependency-version: 2.4.12
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-21 15:45:37 +00:00
dependabot[bot]
aff4182ab8 Bump cipher-base from 1.0.4 to 1.0.6 in /frontend
Bumps [cipher-base](https://github.com/crypto-browserify/cipher-base) from 1.0.4 to 1.0.6.
- [Changelog](https://github.com/browserify/cipher-base/blob/master/CHANGELOG.md)
- [Commits](https://github.com/crypto-browserify/cipher-base/compare/v1.0.4...v1.0.6)

---
updated-dependencies:
- dependency-name: cipher-base
  dependency-version: 1.0.6
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-21 15:13:31 +00:00
Jamie Curnow
8c9d2745e2 Fix remote execution bug where email address can contain malicious code
also convert almost all cmd execs for certificates to properly escape arguments
2025-08-20 10:57:24 +10:00
dependabot[bot]
076d14b5e4 Bump tmp from 0.2.3 to 0.2.4 in /test
Bumps [tmp](https://github.com/raszi/node-tmp) from 0.2.3 to 0.2.4.
- [Changelog](https://github.com/raszi/node-tmp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/raszi/node-tmp/compare/v0.2.3...v0.2.4)

---
updated-dependencies:
- dependency-name: tmp
  dependency-version: 0.2.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-06 17:12:10 +00:00
JMDirksen
8a6d815152 Fix initial email with upper case 2025-07-20 08:36:43 +02:00
Jamie Curnow
54d463ac36 Safer and flexible boolean env vars 2025-07-09 21:27:50 +10:00
Jamie Curnow
a23dc24021 Tweak ownership output 2025-07-09 21:01:21 +10:00
Jamie Curnow
4f9df893c8 Ownership script shakeup
- Don't touch a file to determine if we need to run
- Instead, check ownership of each location and skip it if we are happy
- Keeping SKIP_CERTBOT_OWNERSHIP flag
- More vebose logging of outcomes
2025-07-09 20:30:27 +10:00
Jamie Curnow
304b38e82b Fix ownership if statement 2025-07-09 18:19:50 +10:00
jc21
1b0929ade6 Merge branch 'master' into develop 2025-07-09 16:36:26 +10:00