root
6784f3e738
fix: install cron before acme.sh for all distros
...
Add cronie (rhel/fedora/centos/arch/opensuse) and dcron (alpine) to
install_base, and ensure crond is enabled+started before acme.sh runs.
2026-04-23 17:23:44 +08:00
root
f8c572e112
fix: detect stale mariadb service file when server package is missing
...
has_local_mariadb_service() only checked if the systemd unit file existed,
but not whether the mariadb-server package was actually installed. When the
package was removed but the service file remained, the script would skip
server installation and fail on restart. Now verifies the server package
is installed via dpkg/rpm in addition to the unit file check.
2026-04-23 15:20:34 +08:00
root
27c2430d4f
fix: show actual systemctl error when MariaDB restart fails
...
restart_mariadb_service() and start_mariadb_service() suppressed stderr
with 2>/dev/null, hiding the real failure reason. Now captures and displays
the systemctl error output and service status on failure for diagnostics.
2026-04-23 15:05:05 +08:00
Sora39831
df20cc7e0b
feat: add local mariadb port and remote ip access controls
2026-04-22 11:20:55 +08:00
Sora39831
326abb3a44
fix: avoid admin credential prompt on fresh mariadb install
2026-04-22 10:10:04 +08:00
Sora39831
fa73367e7e
fix: avoid migrate blocking and allow uninstall of partial installs
2026-04-22 09:52:10 +08:00
Sora39831
afa0d5a5bd
fix: accept direct panel port input in install flow
2026-04-22 09:45:56 +08:00
Sora39831
e23e69bc48
Refine MariaDB setup and uninstall behavior
2026-04-15 17:48:18 +08:00
Sora39831
e50b2f471d
feat: improve mariadb flow, db settings init, and traffic flush
2026-04-15 16:58:49 +08:00
Sora39831
6b58044e00
feat: add node management shell and installer flows
2026-04-10 15:31:35 +08:00
Sora39831
135ef32477
Add panel domain persistence
2026-04-09 21:39:39 +08:00
Sora39831
d43f8683b0
feat: enhance user dashboard, set default creds to admin, trim i18n to en/zh only
...
- install.sh: default username/password to admin on fresh install
- user.go: UpdateFirstUser resets Role to admin, preventing lockout
- user.html: show remaining traffic and last online time
- i18n: remove 11 translation files, keep only en_US and zh_CN
- LanguageManager: trim supportedLanguages to 2 entries, remove simularLangs
2026-04-03 08:13:27 +08:00
Sora39831
26ef0745e7
fix(install): skip credential/cert prompts on non-fresh install
...
Check x-ui.json or x-ui.db at DB folder path (/etc/x-ui) instead of
only checking x-ui.db at x-ui folder. Existing installs now skip all
username/password/path/port/SSL prompts and preserve saved settings.
2026-04-02 22:14:43 +08:00
Sora39831
2b7eebd302
fix: correct JSON parsing for prerelease detection in GitHub API response
...
The GitHub API returns "prerelease": false (with space after colon), but
the grep pattern used "prerelease":false (no space). Also, tag_name and
prerelease are on different lines after tr '{' '\\n', so the piped grep
chain couldn't find both fields. Fixed with grep -B5 to look backwards
from prerelease line to find tag_name.
2026-04-02 22:05:44 +08:00
Sora39831
3d1d422ae1
feat(install): add pre-release version selection prompt
2026-04-02 20:51:55 +08:00
Sora39831
82d93da36e
fix: remove premature x-ui start in ssl_cert_issue to ensure custom port takes effect
...
The ssl_cert_issue function called systemctl start x-ui after certificate
installation, causing the panel to start before the install flow completed.
Changed install_x-ui final start to restart to guarantee the latest config is used.
2026-04-02 17:37:28 +08:00
Sora39831
30b27bf091
feat: migrate settings to JSON file, add Cloudflare SSL in installer
...
- config: add GetSettingPath for JSON-based settings storage
- setting.go: load/save settings from JSON file instead of DB;
keep xrayTemplateConfig in DB; fix ResetSettings to not clear users
- xray_setting.go: save xray template config to DB directly
- install.sh: add Cloudflare SSL option (wildcard via DNS), allow
user to input custom credentials on fresh install, fix existing
install logic to preserve user config
2026-04-02 16:16:52 +08:00
root
af7ed2a38f
chore: update GitHub links to fork repository Sora39831/3x-ui
...
Replace all MHSanaei/3x-ui references in shell scripts, README files,
HTML, and CI config with Sora39831/3x-ui. Go import paths unchanged
to maintain upstream compatibility.
2026-04-02 09:49:12 +08:00
Yunheng Liu
169b216d7e
perf: replace /dev/urandom | tr with openssl rand to fix CPU spike ( #3887 )
Release 3X-UI / Analyze Go code (push) Has been cancelled
Release 3X-UI / build (386) (push) Has been cancelled
Release 3X-UI / build (amd64) (push) Has been cancelled
Release 3X-UI / build (arm64) (push) Has been cancelled
Release 3X-UI / build (armv5) (push) Has been cancelled
Release 3X-UI / build (armv6) (push) Has been cancelled
Release 3X-UI / build (armv7) (push) Has been cancelled
Release 3X-UI / build (s390x) (push) Has been cancelled
Release 3X-UI / Build for Windows (push) Has been cancelled
2026-04-01 13:59:48 +02:00
Artur
874aae8080
Add cron to ubuntu packages ( #3875 )
2026-03-04 12:36:45 +01:00
MHSanaei
f4057989f5
Require HTTP 200 from curl before using IP
...
Release 3X-UI / build (386) (push) Waiting to run
Release 3X-UI / build (amd64) (push) Waiting to run
Release 3X-UI / build (arm64) (push) Waiting to run
Release 3X-UI / build (armv5) (push) Waiting to run
Release 3X-UI / build (armv6) (push) Waiting to run
Release 3X-UI / build (armv7) (push) Waiting to run
Release 3X-UI / build (s390x) (push) Waiting to run
Release 3X-UI / Build for Windows (push) Waiting to run
Replace simple curl+trim checks with a response+http_code parse to ensure the remote URL returns HTTP 200 and a non-empty body before assigning server_ip. Changes applied to install.sh, update.sh and x-ui.sh: use curl -w to append the status code, extract http_code and ip_result, and only set server_ip when http_code == 200 and ip_result is non-empty. This makes the IP discovery more robust against error pages or partial responses while keeping the existing timeout behavior.
2026-02-11 21:32:23 +01:00
Sam Mosleh
d5ea8d0f38
Fix default CA by enforcing it everywhere ( #3719 )
Release 3X-UI / build (386) (push) Waiting to run
Release 3X-UI / build (amd64) (push) Waiting to run
Release 3X-UI / build (arm64) (push) Waiting to run
Release 3X-UI / build (armv5) (push) Waiting to run
Release 3X-UI / build (armv6) (push) Waiting to run
Release 3X-UI / build (armv7) (push) Waiting to run
Release 3X-UI / build (s390x) (push) Waiting to run
Release 3X-UI / Build for Windows (push) Waiting to run
2026-01-30 16:35:24 +01:00
Sam Mosleh
8a4c9a98cb
Fix modifying default CA ( #3708 )
2026-01-26 23:05:15 +01:00
sviatoslav-gusev
70b365171f
feat: add option to use existing custom SSL certificates ( #3688 )
2026-01-21 16:47:36 +01:00
Nebulosa
e6318d57e4
Add x-ui.service.arch file ( #3650 )
...
* Add a service file for Arch-based OSs
* Update release.yml with arch service file
* Update x-ui.service.arch
2026-01-18 15:41:07 +01:00
VolgaIgor
a691eaea8d
Fixed incorrect filtering for IDN top-level domains ( #3666 )
Release 3X-UI / build (386) (push) Has been cancelled
Release 3X-UI / build (amd64) (push) Has been cancelled
Release 3X-UI / build (arm64) (push) Has been cancelled
Release 3X-UI / build (armv5) (push) Has been cancelled
Release 3X-UI / build (armv6) (push) Has been cancelled
Release 3X-UI / build (armv7) (push) Has been cancelled
Release 3X-UI / build (s390x) (push) Has been cancelled
Release 3X-UI / Build for Windows (push) Has been cancelled
2026-01-12 02:53:43 +01:00
MHSanaei
f8c9aac97c
Add port selection and checks for ACME HTTP-01 listener
...
Release 3X-UI / build (386) (push) Waiting to run
Release 3X-UI / build (amd64) (push) Waiting to run
Release 3X-UI / build (arm64) (push) Waiting to run
Release 3X-UI / build (armv5) (push) Waiting to run
Release 3X-UI / build (armv6) (push) Waiting to run
Release 3X-UI / build (armv7) (push) Waiting to run
Release 3X-UI / build (s390x) (push) Waiting to run
Release 3X-UI / Build for Windows (push) Waiting to run
Introduces user prompts to select the port for ACME HTTP-01 certificate validation (default 80), checks if the chosen port is available, and provides guidance for port forwarding. Adds is_port_in_use helper to all scripts and improves messaging for certificate issuance and error handling.
2026-01-11 15:28:43 +01:00
Nebulosa
427b7b67d8
Refactor ca-certificate dependency ( #3655 )
2026-01-09 17:05:55 +01:00
Sanaei
a9770e1da2
ip cert ( #3631 )
2026-01-05 05:47:15 +01:00
MHSanaei
947fd4fae1
fix
Release 3X-UI / build (386) (push) Waiting to run
Release 3X-UI / build (amd64) (push) Waiting to run
Release 3X-UI / build (arm64) (push) Waiting to run
Release 3X-UI / build (armv5) (push) Waiting to run
Release 3X-UI / build (armv6) (push) Waiting to run
Release 3X-UI / build (armv7) (push) Waiting to run
Release 3X-UI / build (s390x) (push) Waiting to run
Release 3X-UI / Build for Windows (push) Waiting to run
2026-01-03 07:27:39 +01:00
Nebulosa
719ae0e014
Remove wget dependency from everywhere ( #3598 )
...
* Remove wget dependency
* Merge branch 'curl_only' of https://github.com/nebulosa2007/3x-ui into nebulosa2007-curl_only
---------
Co-authored-by: Sanaei <ho3ein.sanaei@gmail.com>
2026-01-03 06:41:40 +01:00
Nebulosa
692a73788a
Set variables for packaging purposes ( #3600 )
...
* Set Variables for settings
2026-01-03 03:57:19 +01:00
Mikhail Grigorev
3287fa4d80
Added EnvironmentFile to systemd unit ( #3606 )
...
* Added EnvironmentFile to systemd unit
* Added support for older releases
* Remove ARGS
* Fixed copy unit
* Fixed unit filename
* Update update.sh
2026-01-03 03:37:48 +01:00
weekend sorrow
1393f981bc
feat: Add etckeeper compatibility ( #3602 )
2026-01-03 03:13:00 +01:00
Nebulosa
c061337ce7
Set log folder variable to /var/log/3x-ui ( #3599 )
...
* Set log folder variable to /var/log/3x-ui
* Set log folder as x-ui and create the log folder
* Create the log folder in install and update scripts
2026-01-02 16:11:32 +01:00
Sanaei
69ccdba734
Self-signed SSL ( #3611 )
Release 3X-UI / build (386) (push) Waiting to run
Release 3X-UI / build (amd64) (push) Waiting to run
Release 3X-UI / build (arm64) (push) Waiting to run
Release 3X-UI / build (armv5) (push) Waiting to run
Release 3X-UI / build (armv6) (push) Waiting to run
Release 3X-UI / build (armv7) (push) Waiting to run
Release 3X-UI / build (s390x) (push) Waiting to run
Release 3X-UI / Build for Windows (push) Waiting to run
2025-12-28 00:03:33 +01:00
MHSanaei
0ea8b5352a
fix
Release 3X-UI / build (386) (push) Has been cancelled
Release 3X-UI / build (amd64) (push) Has been cancelled
Release 3X-UI / build (arm64) (push) Has been cancelled
Release 3X-UI / build (armv5) (push) Has been cancelled
Release 3X-UI / build (armv6) (push) Has been cancelled
Release 3X-UI / build (armv7) (push) Has been cancelled
Release 3X-UI / build (s390x) (push) Has been cancelled
Release 3X-UI / Build for Windows (push) Has been cancelled
2025-12-04 00:09:13 +01:00
JieXu
e8c509c720
Update for Red Hat base Linux ( #3589 )
...
Release 3X-UI / build (386) (push) Waiting to run
Release 3X-UI / build (amd64) (push) Waiting to run
Release 3X-UI / build (arm64) (push) Waiting to run
Release 3X-UI / build (armv5) (push) Waiting to run
Release 3X-UI / build (armv6) (push) Waiting to run
Release 3X-UI / build (armv7) (push) Waiting to run
Release 3X-UI / build (s390x) (push) Waiting to run
Release 3X-UI / Build for Windows (push) Waiting to run
* Update install.sh
* Update update.sh
* Update x-ui.sh
* Update install.sh
* Update update.sh
* Update x-ui.sh
* fix
2025-12-03 21:40:49 +01:00
fgsfds
cf38226b5d
Add update-all-geofiles key to x-ui.sh ( #3586 )
...
Release 3X-UI / build (386) (push) Waiting to run
Release 3X-UI / build (amd64) (push) Waiting to run
Release 3X-UI / build (arm64) (push) Waiting to run
Release 3X-UI / build (armv5) (push) Waiting to run
Release 3X-UI / build (armv6) (push) Waiting to run
Release 3X-UI / build (armv7) (push) Waiting to run
Release 3X-UI / build (s390x) (push) Waiting to run
Release 3X-UI / Build for Windows (push) Waiting to run
* added update-all-geofiles key to x-ui.sh that updated all geofiles
* fix
* text fixes
* typo fix
* cleanup
2025-11-07 19:26:43 +01:00
JieXu
cafcb250ec
Add support for OpenSUSE Leap ( #3573 )
...
* Update update.sh
* Update install.sh
* Update x-ui.sh
* Update x-ui.sh
2025-10-01 23:11:37 +02:00
mhsanaei
ee0e3093ba
Add IPv4 for wget in install
2025-09-25 15:08:13 +02:00
Evgeny Volferts
b3e96230c4
Add Alpine Linux support ( #3534 )
...
Release 3X-UI / build (386) (push) Waiting to run
Release 3X-UI / build (amd64) (push) Waiting to run
Release 3X-UI / build (arm64) (push) Waiting to run
Release 3X-UI / build (armv5) (push) Waiting to run
Release 3X-UI / build (armv6) (push) Waiting to run
Release 3X-UI / build (armv7) (push) Waiting to run
Release 3X-UI / build (s390x) (push) Waiting to run
Release 3X-UI / Build for Windows (push) Waiting to run
* Add Alpine linux support
* Fix for reading logs
2025-09-22 21:56:43 +02:00
mhsanaei
24a3411465
more list for public IP address
Release 3X-UI / build (386) (push) Has been cancelled
Release 3X-UI / build (amd64) (push) Has been cancelled
Release 3X-UI / build (arm64) (push) Has been cancelled
Release 3X-UI / build (armv5) (push) Has been cancelled
Release 3X-UI / build (armv6) (push) Has been cancelled
Release 3X-UI / build (armv7) (push) Has been cancelled
Release 3X-UI / build (s390x) (push) Has been cancelled
2025-08-21 14:24:25 +02:00
mhsanaei
3d0212c21d
fix: fail2ban on Debian 12 #1701
Release 3X-UI / build (386) (push) Has been cancelled
Release 3X-UI / build (amd64) (push) Has been cancelled
Release 3X-UI / build (arm64) (push) Has been cancelled
Release 3X-UI / build (armv5) (push) Has been cancelled
Release 3X-UI / build (armv6) (push) Has been cancelled
Release 3X-UI / build (armv7) (push) Has been cancelled
Release 3X-UI / build (s390x) (push) Has been cancelled
2025-08-15 13:34:02 +02:00
mhsanaei
6a17285935
remove: glibc check
...
Release 3X-UI / build (386) (push) Waiting to run
Release 3X-UI / build (amd64) (push) Waiting to run
Release 3X-UI / build (arm64) (push) Waiting to run
Release 3X-UI / build (armv5) (push) Waiting to run
Release 3X-UI / build (armv6) (push) Waiting to run
Release 3X-UI / build (armv7) (push) Waiting to run
Release 3X-UI / build (s390x) (push) Waiting to run
now you can install on all OS like ubuntu 20 or 18
2025-08-04 19:16:56 +02:00
Mikhail Grigorev
0ad708b1b6
Added list of services for get public IP address (IP v4 and v6) ( #3216 )
...
* Fixed get public IP address
* Remove https://ifconfig.io/ip and https://ipinfo.tw/ip
---------
Co-authored-by: Mikhail Grigorev <grigorev_mm@magnit.ru>
2025-07-27 17:24:11 +02:00
X-Oracle
71f13ebcbd
small improvement ( #3277 )
2025-07-27 17:22:59 +02:00
xujie86
fa45bf87de
Update install.sh ( #3267 )
2025-07-22 23:28:56 +02:00
xujie86
75416eebd7
Increase the number of characters for webBasePath ( #3239 )
2025-07-22 12:53:12 +02:00
mhsanaei
bbdeb65291
new alternative to get public IP address
2025-07-06 20:45:58 +02:00