2026-08-03 21:11:54 +00:00
< div class = " application-settings-form " >
< form wire : submit = " submit " class = " flex flex-col gap-6 " >
< x - unsaved - bar action = " submit " />
< x - application . settings - section title = " Database details "
description = " Manage the identity and container image for this MySQL database. " >
< x - slot : actions >
< x - modal - input title = " Resource details " buttonTitle = " Details " >
< livewire : project . shared . resource - details : resource = " $database " />
</ x - modal - input >
</ x - slot : actions >
< div class = " grid gap-4 lg:grid-cols-2 " >
< x - forms . input label = " Name " id = " name " canGate = " update " : canResource = " $database " />
< x - forms . input label = " Description " id = " description " canGate = " update " : canResource = " $database " />
< div class = " lg:col-span-2 " >
< x - forms . input label = " Image " id = " image " required canGate = " update " : canResource = " $database "
helper = " Use a published MySQL image from Docker Hub. " />
</ div >
2023-10-24 12:31:28 +00:00
</ div >
2026-08-03 21:11:54 +00:00
</ x - application . settings - section >
< x - application . settings - section title = " Credentials "
description = " Keep these values aligned with the credentials configured inside MySQL. " >
@ if ( $database -> started_at )
< x - callout type = " warning " title = " Keep credentials synchronized " >
Changing values here does not update MySQL . Update MySQL first , then synchronize the values here so
backups and other automations continue working .
</ x - callout >
@ endif
< div class = " { { $database->started_at ? 'mt-4 ' : '' }}grid gap-4 lg:grid-cols-2 " >
2026-02-27 21:42:48 +00:00
@ if ( $isPasswordHiddenForMember )
2026-08-03 21:11:54 +00:00
< x - forms . input label = " Root password " disabled value = " Hidden (only admins can view) " />
2026-02-27 21:42:48 +00:00
@ else
2026-08-03 21:11:54 +00:00
< x - forms . input label = " Root password " id = " mysqlRootPassword " type = " password "
: required = " (bool) $database->started_at " canGate = " update " : canResource = " $database " />
2026-02-27 21:42:48 +00:00
@ endif
2026-08-03 21:11:54 +00:00
< x - forms . input label = " Normal user " id = " mysqlUser " required canGate = " update "
: canResource = " $database " />
2026-02-27 21:42:48 +00:00
@ if ( $isPasswordHiddenForMember )
2026-08-03 21:11:54 +00:00
< x - forms . input label = " Normal user password " disabled value = " Hidden (only admins can view) " />
2026-02-27 21:42:48 +00:00
@ else
2026-08-03 21:11:54 +00:00
< x - forms . input label = " Normal user password " id = " mysqlPassword " type = " password " required
canGate = " update " : canResource = " $database " />
2026-02-27 21:42:48 +00:00
@ endif
2026-08-03 21:11:54 +00:00
< x - forms . input label = " Initial database " id = " mysqlDatabase "
placeholder = " If empty, it will match the normal user. "
: readonly = " (bool) $database->started_at " canGate = " update " : canResource = " $database "
helper = " { { $database->started_at ? 'You can only change this in the database.' : null }} " />
2024-08-16 11:56:47 +00:00
</ div >
2026-08-03 21:11:54 +00:00
</ x - application . settings - section >
2025-02-04 17:29:35 +00:00
2026-08-03 21:11:54 +00:00
< x - application . settings - section title = " Runtime and network "
description = " Configure Docker runtime options and host port mappings. " >
< div class = " grid gap-4 lg:grid-cols-2 " >
< div class = " lg:col-span-2 " >
< x - forms . input
helper = " Add supported docker run options used when the container starts. Unsupported options can interfere with Coolify automation. "
placeholder = " --cap-add SYS_ADMIN --device=/dev/fuse "
id = " customDockerRunOptions " label = " Custom Docker options " canGate = " update "
: canResource = " $database " />
2024-11-07 11:32:44 +00:00
</ div >
2026-08-03 21:11:54 +00:00
< x - forms . input placeholder = " 3000:3306 " id = " portsMappings " label = " Port mappings "
helper = " Comma-separated host-to-container mappings, for example 3000:3306. "
canGate = " update " : canResource = " $database " />
2024-06-09 19:33:17 +00:00
</ div >
2026-08-03 21:11:54 +00:00
< div class = " mt-4 " >
< livewire : project . database . mysql . status - info : database = " $database " />
2026-04-20 11:08:56 +00:00
</ div >
2026-08-03 21:11:54 +00:00
</ x - application . settings - section >
2026-08-07 15:14:43 +00:00
< x - application . settings - section title = " Public access " class = " relative "
2026-08-03 21:11:54 +00:00
description = " Expose this database through the managed TCP proxy. " >
< x - slot : actions >
@ if ( $isPublic )
2026-08-07 15:14:43 +00:00
< x - process - dialog closeWithX size = " xl " >
2026-08-03 21:11:54 +00:00
< x - slot : title > Proxy logs </ x - slot : title >
< x - slot : content >
< livewire : project . shared . get - logs : server = " $server " : resource = " $database "
container = " { { data_get( $database , 'uuid') }}-proxy " : collapsible = " false " lazy />
</ x - slot : content >
2026-08-07 15:14:43 +00:00
< x - forms . button @ click = " processDialogOpen = true " > View logs </ x - forms . button >
</ x - process - dialog >
2026-08-03 21:11:54 +00:00
@ endif
</ x - slot : actions >
2026-08-07 15:14:43 +00:00
< x - table . loading target = " instantSave " text = " Updating public access... " />
2026-08-03 21:11:54 +00:00
< div class = " grid gap-4 lg:grid-cols-2 " >
2026-08-07 15:14:43 +00:00
< div wire : key = " public-access- { { $publicPort ?: 'unset' }} " >
< x - forms . listbox id = " isPublic " label = " Access " live onChange = " instantSave "
: disabled = " ! auth()->user()->can('update', $database ) " : options = " [
[ 'value' => false , 'label' => 'Private' ],
[ 'value' => true , 'label' => blank ( $publicPort ) ? 'Public through TCP proxy (set public port first)' : 'Public through TCP proxy' , 'disabled' => blank ( $publicPort )],
] " />
</ div >
2026-08-03 21:11:54 +00:00
< x - forms . input type = " number " placeholder = " 3306 " disabled = " { { $isPublic }} " id = " publicPort "
label = " Public port " canGate = " update " : canResource = " $database " />
< x - forms . input type = " number " placeholder = " 3600 " disabled = " { { $isPublic }} " id = " publicPortTimeout "
label = " Proxy timeout " helper = " Timeout in seconds. The default is 3600. "
canGate = " update " : canResource = " $database " />
</ div >
</ x - application . settings - section >
< x - application . settings - section title = " Configuration "
description = " Override the MySQL configuration used by this container. " >
< x - forms . textarea label = " Custom MySQL configuration " rows = " 10 " id = " mysqlConf "
canGate = " update " : canResource = " $database " />
</ x - application . settings - section >
< x - application . settings - section title = " Log delivery "
description = " Forward container logs to the drain configured on the server. " >
< x - forms . listbox id = " isLogDrainEnabled " label = " Log drain " live onChange = " instantSaveAdvanced "
: disabled = " ! auth()->user()->can('update', $database ) " : options = " [
[ 'value' => false , 'label' => 'Do not forward logs' ],
[ 'value' => true , 'label' => 'Forward logs to the server drain' ],
] " />
</ x - application . settings - section >
2023-10-24 12:31:28 +00:00
</ form >
</ div >