Sign inSign up

dickyasqaelani/1panel-captcha-bypassed

By dickyasqaelani

Updated 11 days ago

1Panel without CAPTCHA. Default login admin/1panel_password. Based on moelin/1panel.

Image
Developer tools
Databases & storage
Monitoring & observability
0

66

dickyasqaelani/1panel-captcha-bypassed repository overview

1Panel Without Captcha

1Panel management panel with the login CAPTCHA permanently disabled, so it never appears again regardless of login attempts.

  • Based on: moelin/1panel:latest (community build)
  • Change: patched 1panel-core binary — the in-memory IP tracker function (*IPTracker).NeedCaptcha is patched to always return false. CAPTCHA can never be triggered, even after repeated failed logins.
  • Volume-based state (DB, config, apps) is fully preserved and compatible with the upstream image.

Why this image exists

Both the upstream moelin/1panel and the official 1panel images include a login CAPTCHA. It is a math-problem CAPTCHA (NewDriverMath) that is only demanded once your IP has been flagged after failed logins. Many users (including automated onboarding) get stuck in a loop: wrong password → IP flagged → CAPTCHA required on every login → CAPTCHA frequently mis-typed or failed.

This image eliminates the CAPTCHA entirely so logins only need the correct username and password.

What was patched

SymbolOriginal behaviorAfter patch
core/init/auth.(*IPTracker).NeedCaptchaReturns true for flagged IPsAlways returns false (prologue → xor eax,eax; ret)

Only those 3 bytes of the binary differ from the base image. Everything else — entrypoint, config, DB, app storage — is identical.

How it was verified

  1. 6 consecutive failed logins (ErrAuth) → GET /api/v2/core/auth/setting still returns "needCaptcha":false.
  2. Correct login still succeeds: HTTP 200, role ADMIN.
  3. Tested on a brand-new container from this image (no volumes) — service starts normally.

Quick Start

docker run -d --name 1panel \
  -e TZ=Asia/Jakarta \
  -e PASSWORD=<your-password> \
  -v /DATA/AppData/1panel/root:/root \
  -v /DATA/AppData/1panel/opt:/opt \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /var/lib/docker/volumes:/var/lib/docker/volumes \
  -p 10086:10086 \
  --restart unless-stopped \
  dickyasqaelani/1panel-captcha-bypassed:latest

Default login: admin / 1panel_password if you don't set PASSWORD. The upstream random-password behavior for the value 1panel_password is removed in this image, so the default is always the known password 1panel_password.

1Panel data must live on the host so upgrades don't lose your panels, apps and databases:

mkdir -p /DATA/AppData/1panel/root /DATA/AppData/1panel/opt

docker run -d --name 1panel \
  -e TZ=Asia/Jakarta \
  -e PASSWORD=<your-password> \
  -v /DATA/AppData/1panel/root:/root \
  -v /DATA/AppData/1panel/opt:/opt \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /var/lib/docker/volumes:/var/lib/docker/volumes \
  -p 10086:10086 \
  --restart unless-stopped \
  dickyasqaelani/1panel-captcha-bypassed:latest

Ports & volumes

ItemValuePurpose
Port10086Web UI (optionally behind the /entrance path)
Volume/root1Panel home files
Volume/optConfig, DB (/opt/1panel/db/core.db), logs, apps
Volume/var/run/docker.sockContainer management via Docker socket
Volume/var/lib/docker/volumesAccess to Docker named volumes for Apps

Environment variables

VariableDefaultDescription
TZAsia/ShanghaiTimezone
PASSWORD1panel_passwordInitial panel admin password. Defaults to 1panel_password (a known value — the upstream rule that randomizes 1panel_password is removed). Only an explicitly empty value triggers randomization
USERNAME1panelInitial panel admin username
RESETfalseForce re-running the initialization on start

Upgrading / migrating from moelin/1panel

Because state (DB and config) lives on the host volumes, you can switch images without data loss:

# stop & remove old container (volumes are NOT deleted)
docker stop 1panel && docker rm 1panel

# run the patched image with the same mounts
docker run -d --name 1panel \
  -e PASSWORD=<same-password> \
  -v /DATA/AppData/1panel/root:/root \
  -v /DATA/AppData/1panel/opt:/opt \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /var/lib/docker/volumes:/var/lib/docker/volumes \
  -p 10086:10086 \
  --restart unless-stopped \
  dickyasqaelani/1panel-captcha-bypassed:latest

# if the password was randomized before, reset it:
docker exec 1panel /usr/local/bin/1pctl update password

Changing the admin password later

docker exec 1panel /usr/local/bin/1pctl update password

Security notice

Removing the CAPTCHA lowers brute-force resistance slightly. The panel still logs failed login attempts and IP-flagging still exists internally; only the CAPTCHA UI check is bypassed. Use a strong password (the panel warns about weak ones by default).

License & credits

Tag summary

Content type

Image

Digest

sha256:0102e4721

Size

206.2 MB

Last updated

11 days ago

docker pull dickyasqaelani/1panel-captcha-bypassed