2023-08-07 16:46:40 +00:00
< div >
2023-08-08 12:35:01 +00:00
< dialog id = " newInitScript " class = " modal " >
2023-12-07 18:06:32 +00:00
< form method = " dialog " class = " flex flex-col gap-2 rounded modal-box " wire : submit = 'save_new_init_script' >
2023-08-08 12:35:01 +00:00
< h3 class = " text-lg font-bold " > Add Init Script </ h3 >
2023-08-11 18:19:42 +00:00
< x - forms . input placeholder = " create_test_db.sql " id = " new_filename " label = " Filename " required />
< x - forms . textarea placeholder = " CREATE DATABASE test; " id = " new_content " label = " Content " required />
2023-08-08 12:35:01 +00:00
< x - forms . button onclick = " newInitScript.close() " type = " submit " >
Save
</ x - forms . button >
</ form >
< form method = " dialog " class = " modal-backdrop " >
< button > close </ button >
</ form >
</ dialog >
2023-12-07 18:06:32 +00:00
< form wire : submit = " submit " class = " flex flex-col gap-2 " >
2023-08-07 16:46:40 +00:00
< div class = " flex items-center gap-2 " >
< h2 > General </ h2 >
< x - forms . button type = " submit " >
Save
</ x - forms . button >
</ div >
2024-06-05 09:44:25 +00:00
< div class = " flex flex-wrap gap-2 sm:flex-nowrap " >
2023-08-11 18:19:42 +00:00
< x - forms . input label = " Name " id = " database.name " />
< x - forms . input label = " Description " id = " database.description " />
2023-08-07 20:14:21 +00:00
< x - forms . input label = " Image " id = " database.image " required
2023-08-11 18:19:42 +00:00
helper = " For all available images, check here:<br><br><a target='_blank' href='https://hub.docker.com/_/postgres'>https://hub.docker.com/_/postgres</a> " />
2023-08-07 20:14:21 +00:00
</ div >
2024-06-09 19:33:17 +00:00
< div class = " pt-2 dark:text-warning " > If you change the values in the database , please sync it here , otherwise
automations ( like backups ) won ' t work .
2024-06-05 09:44:25 +00:00
</ div >
2023-10-04 08:34:44 +00:00
@ if ( $database -> started_at )
2024-08-16 11:56:47 +00:00
< div class = " flex xl:flex-row flex-col gap-2 " >
2024-06-05 09:44:25 +00:00
< x - forms . input label = " Username " id = " database.postgres_user " placeholder = " If empty: postgres "
helper = " If you change this in the database, please sync it here, otherwise automations (like backups) won't work. " />
< x - forms . input label = " Password " id = " database.postgres_password " type = " password " required
helper = " If you change this in the database, please sync it here, otherwise automations (like backups) won't work. " />
2023-10-04 08:34:44 +00:00
< x - forms . input label = " Initial Database " id = " database.postgres_db "
2023-08-11 18:19:42 +00:00
placeholder = " If empty, it will be the same as Username. " readonly
2023-10-04 08:34:44 +00:00
helper = " You can only change this in the database. " />
</ div >
@ else
2024-08-16 11:56:47 +00:00
< div class = " flex xl:flex-row flex-col gap-2 pb-2 " >
2023-10-04 08:34:44 +00:00
< x - forms . input label = " Username " id = " database.postgres_user " placeholder = " If empty: postgres " />
< x - forms . input label = " Password " id = " database.postgres_password " type = " password " required />
2024-06-05 09:44:25 +00:00
< x - forms . input label = " Initial Database " id = " database.postgres_db "
2023-10-04 08:34:44 +00:00
placeholder = " If empty, it will be the same as Username. " />
</ div >
@ endif
2023-08-08 12:35:01 +00:00
< div class = " flex gap-2 " >
2023-10-04 08:34:44 +00:00
< x - forms . input label = " Initial Database Arguments " id = " database.postgres_initdb_args "
2023-08-11 18:19:42 +00:00
placeholder = " If empty, use default. See in docker docs. " />
2023-08-08 12:35:01 +00:00
< x - forms . input label = " Host Auth Method " id = " database.postgres_host_auth_method "
2023-08-11 18:19:42 +00:00
placeholder = " If empty, use default. See in docker docs. " />
2023-08-08 12:35:01 +00:00
</ div >
2024-08-16 11:56:47 +00:00
< x - forms . input
helper = " You can add custom docker run options that will be used when your container is started.<br>Note: Not all options are supported, as they could mess up Coolify's automation and could cause bad experience for users.<br><br>Check the <a class='underline dark:text-white' href='https://coolify.io/docs/knowledge-base/docker/custom-commands'>docs.</a> "
placeholder = " --cap-add SYS_ADMIN --device=/dev/fuse --security-opt apparmor:unconfined --ulimit nofile=1024:1024 --tmpfs /run:rw,noexec,nosuid,size=65536k "
id = " database.custom_docker_run_options " label = " Custom Docker Options " />
2023-09-07 11:23:34 +00:00
< div class = " flex flex-col gap-2 " >
2023-08-08 12:35:01 +00:00
< h3 class = " py-2 " > Network </ h3 >
2023-09-07 11:23:34 +00:00
< div class = " flex items-end gap-2 " >
< x - forms . input placeholder = " 3000:5432 " id = " database.ports_mappings " label = " Ports Mappings "
2024-03-25 09:41:44 +00:00
helper = " A comma separated list of ports you would like to map to the host system.<br><span class='inline-block font-bold dark:text-warning'>Example</span>3000:5432,3002:5433 " />
2023-10-04 08:34:44 +00:00
</ div >
2024-06-09 19:33:17 +00:00
2023-11-08 11:26:57 +00:00
< x - forms . input label = " Postgres URL (internal) "
helper = " If you change the user/password/port, this could be different. This is with the default values. "
type = " password " readonly wire : model = " db_url " />
@ if ( $db_url_public )
< x - forms . input label = " Postgres URL (public) "
helper = " If you change the user/password/port, this could be different. This is with the default values. "
type = " password " readonly wire : model = " db_url_public " />
@ endif
2023-08-08 12:35:01 +00:00
</ div >
2025-01-29 12:25:05 +00:00
< div class = " flex flex-col gap-2 " >
2025-02-03 21:54:31 +00:00
< div class = " flex items-center justify-between py-2 " >
2025-02-03 22:21:09 +00:00
< div class = " flex items-center justify-between w-full " >
2025-02-03 21:54:31 +00:00
< h3 > SSL Configuration </ h3 >
2025-02-07 17:30:44 +00:00
@ if ( $database -> enable_ssl && $certificateValidUntil )
2025-02-03 22:21:09 +00:00
< x - modal - confirmation
title = " Regenerate SSL Certificates "
buttonTitle = " Regenerate SSL Certificates "
: actions = " ['The SSL certificate of this database will be regenerated.','You must restart the database after regenerating the certificate to start using the new certificate.'] "
submitAction = " regenerateSslCertificate "
: confirmWithText = " false "
: confirmWithPassword = " false "
/>
2025-02-03 21:54:31 +00:00
@ endif
</ div >
</ div >
2025-02-04 13:37:35 +00:00
@ if ( $database -> enable_ssl && $certificateValidUntil )
2025-02-03 22:21:09 +00:00
< span class = " text-sm " > Valid until :
@ if ( now () -> gt ( $certificateValidUntil ))
< span class = " text-red-500 " > {{ $certificateValidUntil -> format ( 'd.m.Y H:i:s' ) }} - Expired </ span >
@ elseif ( now () -> addDays ( 30 ) -> gt ( $certificateValidUntil ))
< span class = " text-red-500 " > {{ $certificateValidUntil -> format ( 'd.m.Y H:i:s' ) }} - Expiring soon </ span >
@ else
< span > {{ $certificateValidUntil -> format ( 'd.m.Y H:i:s' ) }} </ span >
@ endif
</ span >
@ endif
</ div >
< div class = " flex flex-col gap-2 " >
2025-01-29 12:25:05 +00:00
< div class = " flex flex-col gap-2 " >
< x - forms . checkbox id = " database.enable_ssl " label = " Enable SSL " wire : model . live = " database.enable_ssl " instantSave = " instantSaveSSL " />
@ if ( $database -> enable_ssl )
< x - forms . select id = " database.ssl_mode " label = " SSL Mode " wire : model . live = " database.ssl_mode " instantSave = " instantSaveSSL "
helper = " Choose the SSL verification mode for PostgreSQL connections " >
< option value = " allow " > allow </ option >
< option value = " prefer " > prefer </ option >
< option value = " require " > require </ option >
< option value = " verify-ca " > verify - ca </ option >
< option value = " verify-full " > verify - full </ option >
</ x - forms . select >
@ endif
</ div >
</ div >
< div class = " flex flex-col gap-2 " >
< div class = " flex items-center justify-between py-2 " >
< div class = " flex items-center gap-2 " >
< h3 > Proxy </ h3 >
< x - loading wire : loading wire : target = " instantSave " />
2024-11-07 11:32:44 +00:00
</ div >
2025-01-29 12:25:05 +00:00
@ if ( data_get ( $database , 'is_public' ))
< x - slide - over fullScreen >
< 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 " lazy />
</ x - slot : content >
< x - forms . button disabled = " { { !data_get( $database , 'is_public') }} "
@ click = " slideOverOpen=true " > Logs </ x - forms . button >
</ x - slide - over >
@ endif
</ div >
< div class = " flex flex-col gap-2 " >
2024-06-09 19:33:17 +00:00
< x - forms . checkbox instantSave id = " database.is_public " label = " Make it publicly available " />
2025-01-29 12:25:05 +00:00
< x - forms . input placeholder = " 5432 " disabled = " { { data_get( $database , 'is_public') }} "
id = " database.public_port " label = " Public Port " />
2024-06-09 19:33:17 +00:00
</ div >
</ div >
2025-01-29 12:25:05 +00:00
< div class = " flex flex-col gap-2 " >
< x - forms . textarea label = " Custom PostgreSQL Configuration " rows = " 10 " id = " database.postgres_conf " />
</ div >
2023-08-07 16:46:40 +00:00
</ form >
2025-01-29 12:25:05 +00:00
< div class = " flex flex-col gap-4 pt-4 " >
< h3 > Advanced </ h3 >
< div class = " flex flex-col " >
< x - forms . checkbox helper = " Drain logs to your configured log drain endpoint in your Server settings. "
instantSave = " instantSaveAdvanced " id = " database.is_log_drain_enabled " label = " Drain Logs " />
2023-08-08 12:35:01 +00:00
</ div >
2025-01-29 12:25:05 +00:00
< div class = " pb-16 " >
< div class = " flex items-center gap-2 pb-2 " >
< h3 > Initialization scripts </ h3 >
< x - modal - input buttonTitle = " + Add " title = " New Init Script " >
< form class = " flex flex-col w-full gap-2 rounded " wire : submit = 'save_new_init_script' >
< x - forms . input placeholder = " create_test_db.sql " id = " new_filename " label = " Filename " required />
< x - forms . textarea rows = " 20 " placeholder = " CREATE DATABASE test; " id = " new_content "
label = " Content " required />
< x - forms . button type = " submit " >
Save
</ x - forms . button >
</ form >
</ x - modal - input >
</ div >
< div class = " flex flex-col gap-2 " >
@ forelse ( data_get ( $database , 'init_scripts' , []) as $script )
< livewire : project . database . init - script : script = " $script " : wire : key = " $script['index'] " />
@ empty
< div > No initialization scripts found .</ div >
@ endforelse
</ div >
2023-08-08 12:35:01 +00:00
</ div >
</ div >
2023-08-07 16:46:40 +00:00
</ div >