* add back network chart
* don't show timestamp
* convert "total" to "real time"
* fix typo
* set min to 0
* sort data to make sure we actually get the previous value
* Fix `ServerNetworkChart`
* Many changes...
* small cleanup
---------
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
Co-authored-by: notCharles <charles@pelican.dev>
* Remove open in new tab since both are on filament now.
Removing the open in new tab since both are on filament now. And the tenant: null was function default so not needed aswell
* Rework permission tab loading
Reworked permission tab loading to make it easier to expand on it in the future. This is way more friendly if extensions are planned in the future.
* Rework permission tab loading
Reworked permission tab loading to make it easier to expand on it in the future. This is way more friendly if extensions are planned in the future.
* Rework permission tab loading
Reworked permission tab loading to make it easier to expand on it in the future. This is way more friendly if extensions are planned in the future.
* Update UserResource.php
Used wrong name. It's not the name, the label has to be checked there.
* Fix: wrong name used
Used wrong name. It's not the name, the label has to be checked there.
* Update permission loading
Moved permission list to app/Models/Permission.php and made UserResource.php and ListUsers.php use it.
* Fix Pint and PHPStan error
Added comments
* Update array key
Updated array key using the lowercase name. Suggested by https://github.com/Boy132
* Correct array key
Updated array key using the lowercase. Suggested by https://github.com/Boy132
* Revert/correct array key
Updated array key using the lowercase and the correct label.
* Add 'user' key
In the old $permission array was user an entry witch is missing in permissionTabs()
* Style and return
Added @return and removed empty lines
* pin
fix pint
* fix pint
remove @return
* fix pint
add () since pint is still not happy
* remove mb_strtolower
mb_strtolower is not necessary
* remove schema for control
remove ->schema for control tab.
* Remove import
Remove unused import
* correct translation key
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
* make columns optional,
checkboxList => columns is now optional and default to 2
* move user and control registration
removed control registration since it was duplicate and move user registration to permissionTabs
* update @return on permissionTabs()
* Fix array key warning
* simplify permissions data
* revert this
* fix edit modal
* update icons
---------
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
Co-authored-by: Boy132 <mail@boy132.de>
* Update `get_fonts`
This should fix docker, Has to be changed as we use alpine for docker which does not support GLOB_BRACE
* #2?
* #3
* FINAL BOSS FIGHT
Fixes Docker image <3
* Update resources/views/filament/components/server-console.blade.php
Co-authored-by: Lance Pioch <git@lance.sh>
---------
Co-authored-by: Lance Pioch <git@lance.sh>
* Resolve issue with avatar storage
This resolves the issue with getting avatar storage working
updates the entrypoint to create the `pelican-data/storage` folder on start.
Adds a dev dockerfile to build locally instead of needing to update the standard dockerfile.
* Move avatar folder
Moves the avatars folder in the storage folder in-case anything else needs storage as well.
Fixes an issue in the entrypoint where it wasn't creating the sub-folder correctly.
* Revert "Remove `NavigationGroups` for Admin Navbar (#1248)"
This reverts commit a1869002629b18500b346e5c505869bc45d43456.
* make navigation groups conditional
* use round instead of `Number::format`
* remove unused
* also replace `Number::format` in cpu & memory charts
---------
Co-authored-by: Boy132 <mail@boy132.de>
* show different roles checkbox list for root admins and non root admins
* simplify saveRelationshipsUsing
* remove disableOptionWhen
* add migration to remove additional roles from root admins
* fix notify in transfer service
* remove magical array
* fix phpstan
* better validation for allocation_additional and better docs generation
* update transfer ui
* update request body
* add some refreshs & notifications to EditServer action buttons
* reinstall server when trying to toggle failed state
* don't show modal on normal toggle install
* don't print raw exception on reinstall & suspension
* Just skip this table because it no longer exists
* Add postgresql
* This no longer needs to be there
* These are the same output in mysql, but different in postgresql
* Fix these migrations for postgresql
* This table no longer exists
* This is expected to be a json column for json operations, required for postgresql
* Shoot for the stars
* Fix pint
* Why was this missing
* Updates
* Restore this
* This needs to be explicit
* Don’t like strings
* Fix these classes
* Use different method to compare dates
* Apparently postgresql doesn’t like case insensitivity
* Postgresql orders it backwards
* Ordered different by postgresql
* Unnecessary and breaking
* Make sure the order is correct for postresql
* Fix this with the order too
* Remove this
* Force email to be lowercased
* Update app/Models/User.php
* Must use `Closure` since `MenuItem` does not leverage Concerns
* Translate `Profile` in `ServerPanelProvider`
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
---------
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
* Force `app` panel for `EditProfile`
* Force `app` panel for `OAuthController`
* Use translation in `AdminPanelProvider`
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
---------
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
* refactor captcha
* add default error message
* prevent rule from being called multiple times
* fixes
* use config
* Update this to latest
* Remove this
---------
Co-authored-by: Lance Pioch <git@lance.sh>
* Add url `Repeater` to `ImportEggAction`
* Addtranslation
* Requested changes
* Only allow `multiple` when not editing `Egg`
* Only `deletable` & `grid` if `multiple`
* Fix `FileUpload` & Make sure its a json file
* Make sure we are talking to the right wings using `getSystemInformation` as a gate keeper
* Re use method
Co-authored-by: Lance Pioch <git@lance.sh>
---------
Co-authored-by: Lance Pioch <git@lance.sh>
* fix viable node service to take into account tags
* Update app/Services/Deployment/FindViableNodesService.php
Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>
---------
Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>
* use user for subject
* add permissions to properties
* always add websocket.connect permission (because it's default)
* small cleanup
* also update editing
* Add address field to display `host:port` to enduser on `ListDatabases` & `EditServer`
* Add `CopyAction` to `EditServer`
* Update databaseHost `display_name_help`
* Replace `string` with `enum`
* Add title
* Allow sendCommand on `Starting` or `Running` servers
* refactor: Use Filament interfaces
* Use `getLabel` instead of `str->headline`
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
---------
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
* Not found property rule
* Make these “better”
* Day 1
* Day 2
* Day 3
* Dat 4
* Remove disabled check
* Day 4 continued
* Run pint
* Final changes hopefully
* Pint fixes
* Fix again
* Reset these
* Update app/Filament/Admin/Pages/Health.php
Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>
* Update app/Traits/CheckMigrationsTrait.php
Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>
---------
Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>
* Convert route options to fluent methods
Laravel 8 adopts the tuple syntax for controller actions. Since the old options array is incompatible with this syntax, Shift converted them to use modern, fluent methods.
* Slim `lang` files
* Shift core files
* Validate via object directly within Controllers
* Use `Gate` facade for controller authorization
* Dispatch jobs directly
* Remove base controller inheritance
* Default config files
In an effort to make upgrading the constantly changing config files easier, Shift defaulted them and merged your true customizations - where ENV variables may not be used.
* Set new `ENV` variables
* Add new Laravel `composer run dev` script
* Add `storage/app/private` folder
* Bump Composer dependencies
* Convert `$casts` property to method
* Adopt Laravel type hints
* Shift cleanup
* Apply suggestions from code review
Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>
* Add old key as backup
* Update composer
* Remove extra line
* Update this
---------
Co-authored-by: Shift <shift@laravelshift.com>
Co-authored-by: MartinOscar <40749467+rmartinoscar@users.noreply.github.com>
* add custom statblock
* add custom datablock
* Use real values, not placeholders
* More Changes
* remove unused var
* Remove old code
* Remove more
* Updates
* Add LineHeight
Changing the font size cut off the j/g and _
* Fix invisible console selection
Closes#874
* Add Missing to `offline` detection
* Use helper
* Update
* Removals
* Move to `SmallStatBlock`
* Add `Egg` `copy from` for Process & Install Script
* Add builtin `ReplicateAction`
* Use `CopyFrom` for less duplicated code
* Hide label & add tooltip to `ReplicateAction`
* use `iconButton()` instead of `hiddenLabel()`
* use `iconButton()` for every Actions
* Use our translation instead
* Copy egg_variables aswell
* remove `get()`
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
---------
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
* fix(docker): enable multi-arch builds
* Remove workflow_dispatch and add missing space
* There is no need for a matrix in the job build-and-push
* Update docker-publish.yml
* Only keep the artifacts for 7 days
* Bump dockerfile labs version to 1.13
* Added a comment in the Dockerfile explaining how to self-build it
* build-php-base cache should not be tagged
* Fix copy paste AllocationsRelationManager
* We shouldn't let the user know if the user is correct but the password isn't
* Add missing `trans()` `EditServer`
* Add missing `trans()` User `ServersRelationManager`
* Replace every `__()` with `trans()` helper
* Fix `exceptions` `User` Model
* Replace `Translator->get()` with `trans()` helper
* Revert "We shouldn't let the user know if the user is correct but the password isn't"
This reverts commit e156ee4b38e9e969662a532648c78fdc1e9b0166.
that's stock laravel, therefore it needs to stay
* Install Pest
* Don’t use bootstrap file anymore
* Fix comment
* Think this is needed
* Reset this
* Switch dataproviders to attributes
* Fix these
* Support in memory databases
* Fix this migration
* Switch this back for now
* Add missing import
* Truncate and reseed database
* These are replaced now
* Switch ci to use pest
* Add php 8.4
* Update ide helper
* Add php 8.4
* Update laravel sanctum
* Update laravel framework
* Hash rounds were increased
* This is always false
* Extend model now
* This does nothing
* Move model validation methods to trait
* Remove base model
* Backup routes were previously referenced by uuids
* Remove commented code
* Upgrade laravel/framework
* Fix migration
* Update ide helper
* Update sanctum
* Add version to composer
* Add this back in, fixed
* Make this protected to be safer
* Add front end badges
* I identify as a `string`
* Display even if there's no limit
* use `const`'s
---------
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
* Fix & Add to Server Settings page
* Add `request()->isSecure()`
CopyAction only works on SSL, no point in showing it when its not SSL
---------
Co-authored-by: notCharles <charles@pelican.dev>
* Fix schedules
* Only explode when payload isn't a power action
* Run only on first day of the month
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
---------
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
* handle "server:crashed" log
* update activity log list
* add event filter
* add email to user column
* fix phpstan
* only show the email if the actor is the server owner/ a subuser or if the viewing user is an admin
* Apply same logic from ViewAction & make sure user is admi for url
* Add pagination to avoid showing 2000 records at once
* update can check & pagination
---------
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
* add separate button for "save & close"
* make language selection for editor work
* fix download url
* add info banner for .pelicanignore files
* small cleanup
* fix import
* Move File Lang
* add `ctrl+shift+s` for save & close
* fix keybind
* cleanup and fix default value for edit
* remove unnecessary File::get & trait
* More EditorLanguages not matching their names
* mdx has its own highlighter
---------
Co-authored-by: notCharles <charles@pelican.dev>
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
* - Temporary fix for token refresh issue.
More testing is needed.
* Update server-console.blade.php
Removal of final old token var (no longer needed as livewire will handle it through piping)
* Rootless Dockerfile/Optimized build
Add unneeded files to .dockerignore
Split Dockerfile into more stages to allow Composer/Yarn to run concurrently
Don't log supervisord to a file, as file logging in a Docker container makes no sense
Redirect process output to container output for log processors
Run all processes as non-root
Minimize files with write permission for non-root user
Move docker folder out of .github, as it has nothing to do with GitHub
* Remove install-php-extensions utility after use and name final stage
* Test arm64 runner
* Allow Docker workflow caching multi-arch separately
* Fix Docker publish workflow branches
* Move Caddyfile/crontab config into docker directory, remove redundant supervisord user
* Further restrict permissions
* Supervisord logs
* fix translations for activity logs
* add backwards compatibility for old logs
* update lang file
* small cleanup
* fix singular/ plural for "file"
* fix for "rename" + disable bulk move (because it's not working)
* fix websocket error always displaying
* use livewire component with polling for alert banner container
* add id to alert banner
* cleanup blade file and add "closeable" property
* Fix these
* Update phpstan
* Transform these into their identifiers instead
* Fix custom rule
* License is wrong
* Update these
* Pint fixes
* Fix this
* Consolidate these
* Never supported PHP 7
* Better evaluation
* Fixes
* Don’t need ignore
* Replace trait with service
* Subusers are simply the many to many relationship between Servers and Users
* Adjust to remove ignores
* Use new query builder instead!
* wip
* Update composer
* Quick fixes
* Use realtime facade
* Small fixes
* Convert to static to avoid new
* Update to statics
* Don’t modify protected properties directly
* Run pint
* Change to correct method
* Give up and use the facade
* Make sure this route is available
* Filament hasn’t been loaded yet
* This can be readonly
* Typehint
* These are no longer used
* Quick fixes
* Need doc block help
* Always true
* We use caddy with docker
* Pint
* Fix phpstan issues
* Remove unused import
---------
Co-authored-by: MartinOscar <40749467+RMartinOscar@users.noreply.github.com>
* rework oauth provider creation & lodaing
* add separate setup form
* use wizard for setup
* add provider class for discord
* cleanup and fixes
* don't throw exception when creating duplicate provider
* update profile and login pages
* did not mean to remove the whole else, oops
* use import
* add alert banner
* replace old server conflict banner with alert banner
* improve color and icon size
* add alert for websocket errors
* update file loading error to alert banner
* remove old events
* add back `console-status` event
* move @php block under @isset
* remove phpstan ignore
so I'm not getting force choked
* Use temp config
* Change port when changing encryption
* Pint
* Use finally
* Pint please do your job next time
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
---------
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
* Remove limits in listing
* Enable Storage Graph
* Wings gives us bytes, use helper function
* Use Node Model
* Remove `?? 0`
* Re-Add `?? 0` remove local
* Add Locale on chart
* We should convert these too...
convert_bytes_to_readable follows the prefix config, so we should do it here too.
---------
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
* update health page with tailwind classes
* Move php from Blade to Page
---------
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
* Change TextInputColumn to SelectColumn
* Discard cache if wings is offline
* Return 0.0.0.0 instead of an empty array
* Adjustment & remove dns resolve
* Use handle instead of toggle & use const isnstead of string
* Avoid rollback if node is unreachable
* Use Enum & remove default action
* Remove useless test
* Fix 500 on duplicate ports
This should also address N+1 issues from the last PR
* Combine into one method
* Pint
* Add missing type
* Add 0.0.0.0
* Add notifications to help the user
* Pint
* Too verbose
* Show notification here
* Simplify code
* Reset the ports if the ip changes
* Don’t limit these anymore
---------
Co-authored-by: Lance Pioch <git@lance.sh>
* Replace tabler icon package
* Use new filled icons
note: not everything has a filled icon
* Add OAuth Settings to Settings Page
* Fix authentik base url
* replace hard coded oauth
* Update Server Listing
* Update Edit/Create Server Pages
Re-arrange limits, CPU->Memory->Disk
* Remove auto focus
its cancer on mobile...
* Hide Title, Quick yaml fix
* Hide columns on mobile
* Hide backup locked on mobile
* Fix schedules for mobile
* Hide Notes on mobile
* Consolidate and clean these up
* Simplify
* Remove unused imports
* Replace tabler icon package
* Update app/Filament/Server/Resources/FileResource/Pages/EditFiles.php
Co-authored-by: Lance Pioch <git@lance.sh>
* Allow the unit to be changed
* Use existing method
* Update composer and pint
* Update resources/views/tables/columns/server-entry-column.blade.php
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
* Simplify html and add small margin
* Unused
* Add enum
---------
Co-authored-by: Lance Pioch <git@lance.sh>
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
* add spatie health
* change slug for health page
* add check for panel version
* only check for debug mode if env isn't local
* add check for node versions
* improve short summary
* fix outdated check
* run pint
* fix health checks during tests
* add count to ok message
* fix typo
* temp fix for phpstan job
* fix pint...
* improve "outdated" count
Co-authored-by: MartinOscar <40749467+RMartinOscar@users.noreply.github.com>
* run pint
* skip node versions check if no nodes are created
* auto run health checks if they didn't run before
* small refactor
* update navigation
Co-authored-by: Charles <sir3lit@gmail.com>
* fix errors if tests didn't run yet
* fix disk usage check
* remove plugin and use own page
* use health status indicator from spatie
* fix after merge
* update icon
* update color classes
* fix after merge
* add back imports
oops...
* wrong import
oops²...
* update spatie/laravel-health to latest
* move Health page to correct namespace
* update NodeVersionsCheck
* use style instead of tailwind classes
workaround until we have vite
* cleanup custom checks
---------
Co-authored-by: MartinOscar <40749467+RMartinOscar@users.noreply.github.com>
Co-authored-by: Charles <sir3lit@gmail.com>
* add custom error pages
* move icon in front of header text
* show exception message if user is root admin
* add missing page for very important error: 418
* Update resources/views/errors/layout.blade.php
* Update resources/views/errors/layout.blade.php
* add dark mode to error pages
---------
Co-authored-by: Lance Pioch <lancepioch@gmail.com>
* Better readability
* Force refresh the server instance
* Use kebab case for these
* Fix phpstan
* Retry a little longer
* Updates
* Add pint
* Don’t need this
* Pint fix
* More console changes
* Update Console Page
* Edit console input
* oops
* Remove failed attempt of clearing input when server offline
* Update File Editor to match console
* a touch more style
* Show not-allowed on read-only input
* round bottom corners of command input
* Move custom css to file
* Update Console
Updates console to be more better <3.
Light Mode still needs some love, haven't figured that out with filaments light/dark options yet as it does not use the "bright<color>" colors...
* Add overflow to... Everything?
* Oops, Add Name label back
* Actually handle Transfer Status & remove useless switch
* Use switch case
* Readonly command input if server can't receive one
* lint
* Update app/Filament/Server/Widgets/ServerConsole.php
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
* Use filament::icon instead of raw svg
* Update resources/views/filament/components/server-console.blade.php
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
---------
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
* Server Listing tweaks.
* Use filament::icon instead of raw svg & add hover title
---------
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
* add placeholder to allocation notes
* add button to open server in admin area
* use new client area for "console" button on EditServer
* hide schedule presets on view
* use arrow functions for auth checks
* add placeholder to schedules last run
* change icon of "open in admin"
* fix parentheses
* Add new panel
* Add some basic resource pages
* Wip
* Wip terminal
* Wip
* Add new panel
* Add some basic resource pages
* Wip
* [Sub-Users] Add Invite
TODO: The logic with permissions
* [Sub-Users] Fix Creation
* [Cron] Add basics
* Add basic auth and messages
* Add basic buttons
* WIP on issue/353
* WIP on issue/353
* Add Database page
* Update Database Page
* Start of Backup Page
* Composer Update
* Changes
* Send input
* Remove this includes
* Better offline handling
* Consolidate top nav config
* Update Backups Page
* Update Backups
* Change name
* Add Assign All, Layout Fixes.
* conflict
* update schedule pages
* fix phpstan
* update pint.json
* add cron presets to schedule
* fix tests
* fix task creation
* schedules: disable task creation if limit is reached & disable backup action if backup limit is 0
* update activity pages
* update resources
* Update Edit User
TODO: actually save permissions when they're changed.
TODO: Figure out why Control does not update it's state... but the rest do...
* .... Sure it works.
TODO: Update permissions when you save editing a sub user.
* user: update canAccessPanel & canAccessTenant
* add helper to convert bytes into readable format
* very basic file explorer
* files: fix some stuff & remove dummy data
* files: better error handling
* files: basic file editor
* files: add some actions
* File manager updates
* files: fix paths
* Revery Composer Upgrade, Fixes SQLite
* fix: Pint (#517)
feat: MenuItems to and from admin
* Update File Editing
Updated File Editing to its own page,
Added Permission checks for file manager.
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
* add enum for editor langs
* files: add upload & pull actions
* fix build
* files: handle images
* Update to Filament v3.2.98
* files: add remaining actions
* use `authorize` instead of `hidden`
* fix canAccessTenant
* update date columns
* files: testing & fixes
* Fix File Names
Co-authored-by: lancepioch <git@lance.sh>
* Combine Pull/Upload
* Fix BulkDelete
* Uncontained tabs
* Hide Lang Selection, Move Actions
* Update Monaco, more custom
* Add livewire config
livewire limits uploads to 12MB... who knows why...
Fixed uploading a single files failing
* files: fix record url
* basic setup for settings & startup page
* make abstract class for simple app pages
* Basic Startup Page
* Update nav sort
* small cleanup
* startup: fix shouldHideComponent & getSelectOptionsFromRules
* startup: fix non editable fields & set default value
* startup: add todo for save button
* Save Variables after update & off click
Variables update when the user clicks off the input.
* Notifications are cool
* Add rule validation
* Sort variables by sortid
* pint
* Settings Page + Startup Changes
* settings: cleanup
* refactor: use server model for ServerFormPage (formerly known as SimplePage)
* Use Repeater for variables
* Add Network, Remove breadcrumbs
* Add paginated to file explorer
* Fix updating variables
* Add link to go to new client area
* fix after merge
* Add graphs to console page
Graphs still need to get the data from the web socket.
* fix pint & phpstan
* fix authorizeAccess for EditFiles and Startup page
* Fix rules on startup page
* Update console size
* Fix node name
* add "global search" to files list
requires https://github.com/pelican-dev/wings/pull/44
* remove debug dummy data
* update view action on ListServers
* enable SPA mode for app panel
* remove colors from app panel
they are defined globally in AppServiceProvider
* update global search ui a bit
(to be replaced with a custom page that is similar to the list files table)
* add own page for global search
untested - and route needs cleanup (if possible)
* fix File getRows
* remove "path" from SearchFiles (for now)
* fix caching for searched files
* add title and breadcrumbs to global search page
* make cpu & memory charts on console page working
* fix phpstan
* add missing import
* cleanup console views & widgets
* add overview stats to console
* don't be so lazy, console!
* make history working
* decode data to get array
* add missing On
* fix json_decode
* change polling to 1 sec
* hide "0" cpu/ memory
* add data to network chart
* Remove data labels
* fix data on network chart
* fix data on network chart (2nd try)
* WIP Network Stats
* Remove test
* Change MaxWidth
* run pint
* fix phpstan
* Fix storeStats cast
* make $data a string
this time for real
* update visible check for "admin" menu item
* remove account widget
* rebrand "Dashboard" to "Server List"
WIP - doesn't look good but is somewhat working
* fix canAccessPanel
* separate server list into own panel
* change path to avoid conflicts with old client area (and remove sidebar width)
* display correct icon and color on server list entries
* show total memory if server is offline
* replace custom server list page with ListRecords page
* fix tests
* fix namespace
* remove "open" button and make whole column clickable
* Update EditProfile
* run pint
* fix access to server list
* add new login page to panels
* fix next_run_at for new schedules
* use new DateTimeColumn
* add own column for file bytes
* return to server list when clicking title
* fix console loading
* handle server with "conflict state"
* add banner if server is in "conflict state"
* fix phpstan
* update docker image select
* fix permission checks on Settings & Startup pages
* fix query for activity log page
* fix activity log not being logged
* adjust ListActivities
* fix phpstan
* fix pint
* fix profile menu item link on server panel
* add ip tooltip to activity logs (and role permission)
* change backup icon
* update navigation sort
* general code cleanup
* more cleanup
* Disable Restart/Stop if server is offline
* Change rename notification
* Remove negation on abort_unless
* Add notification on save
* Single disabled closure & comment unused import
* Add required to Server Name & Nullable to description
* mutateFormDataBeforeSave doesn't work since we use forceFill
* Fix web socket connection not existing.
* Fix some subuser permissions
* add permission checks to resources
* do not allow self-deletion
* Update editing file permissions
* Fix of the previous fix
* add service for subuser updating
* Only allow save if they have file_update
* Remove unused import
* Update backup delete button
* Add Delete, remove bulks
* Update Database page
* Use Allocation Permissions
* add canAccess check to startup
* Add Permission checks to Settings page
* add service for subuser deletion
* Remove Kill permission
* Updates
* fix move files
* add redirects
* fix phpstan
* activity: remove properties from tans for now
* If alias, use that, else ip
---------
Co-authored-by: notCharles <charles@pelican.dev>
Co-authored-by: Boy132 <mail@boy132.de>
Co-authored-by: Senna <62171904+Poseidon281@users.noreply.github.com>
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
* Add Create Database btn on admin side
* Remove unused function
* readd function
* replace refreshform function
* add authorize, remove database limit check
* add random words, use proper name function, catch exceptions on creation
* add validation, match old client area more
* Add more authorize to Database tab
* Add confirmation to delete
* make password hidden / revealable
* better clarification
* Set default and remove placeholder.
* Remove server import, add database model to auth
* Make same changes for the database host page
* Update app/Filament/Resources/ServerResource/Pages/EditServer.php
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
* Update app/Filament/Resources/DatabaseHostResource/RelationManagers/DatabasesRelationManager.php
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
* Update app/Filament/Resources/DatabaseHostResource/RelationManagers/DatabasesRelationManager.php
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
* Remove each hidden
* Return nothing if user has no perms
* This is the way... Im done messing with it...
* Fix view permission for relationship manager
* Update app/Filament/Resources/DatabaseHostResource/RelationManagers/DatabasesRelationManager.php
* Pint
---------
Co-authored-by: Boy132 <Boy132@users.noreply.github.com>
Co-authored-by: MartinOscar <40749467+RMartinOscar@users.noreply.github.com>
* better oauth provider loading
* add auth frontend
* add configs for all default providers
* add more default providers
* add env variables to enable oauth providers
* small refactor to link/ unlink routes
* add oauth tab to (admin) profile
* use redirects instead of exceptions
* add notification if no oauth user is found
* use import in config
* remove whmcs provider
* replace hardcoded links with `route`
* redirect to account page on unlink
* remove unnecessary controller and handle linking/ unlinking in action
* only show oauth tab if at least one oauth provider is enabled
* force app timezone to be UTC
* remove asDateTime overwrite
* add custom column to display dates in user timezone
* use `APP_TIMEZONE` as default timezone for new users
* revert accidental pinting
* update web installer (again)
* set default values for mysql/ mariadb and redis
* add own step for queue setup
* create admin user in submit
* disable redis for queue if cache isn't redis
* remove separate user step and make session own step
* use `request()->isSecure()`
* use RESOURCE_NAME for requests
* use RESOURCE_NAME for transformers
* add permissions field to api key
* add migration for new permissions field
* update tests
* remove debug log
* set column type to "json"
* remove default attribute to fix tests
* fix default value for permissions
* fix after merge
* fix after merge
* allow to "register" custom permissions
* add "role" to default resource names
* fix after merge
* fix phpstan
* fix migrations
Adding :- Syntax which ensures that, if SKIP_CADDY is unset, it will be treated as an empty string, which will not match "true". This avoids potential issues with unbound variables in some shell configurations where set -u (treating unset variables as an error) is enabled.
(ChatGPT)
* add laravel turnstile
* add config & settings for turnstile
* publish view to center captcha
* completely replace reCAPTCHA
* update FailedCaptcha event
* add back config for domain verification
* don't set language so browser lang is used
* Move these
Move List/Create to their own pages to follow the flow of the other resources.
* Move EditPage aswell
* Move Save
* Labels
* Change Edit/Delete
---------
Co-authored-by: RMartinOscar <40749467+RMartinOscar@users.noreply.github.com>
This is a ready to use docker image for the panel.
## Requirements
This docker image requires some additional software to function. The software can either be provided in other containers (see the [docker-compose.yml](https://github.com/pelican-dev/panel/blob/develop/docker-compose.example.yml) as an example) or as existing instances.
A mysql database is required. We recommend the stock [MariaDB Image](https://hub.docker.com/_/mariadb/) image if you prefer to run it in a docker container. As a non-containerized option we recommend mariadb.
A caching software is required as well. We recommend the stock [Redis Image](https://hub.docker.com/_/redis/) image. You can choose any of the [supported options](#cache-drivers).
You can provide additional settings using a custom `.env` file or by setting the appropriate environment variables in the docker-compose file.
## Setup
Start the docker container and the required dependencies (either provide existing ones or start containers as well, see the [docker-compose.yml](https://github.com/pelican-dev/panel/blob/develop/docker-compose.example.yml) file as an example.
After the startup is complete you'll need to create a user.
If you are running the docker container without docker-compose, use:
There are multiple environment variables to configure the panel when not providing your own `.env` file, see the following table for details on each available option.
Note: If your `APP_URL` starts with `https://` you need to provide an `LE_EMAIL` as well so Certificates can be generated.
$this->output->error(sprintf('Unable to connect to the MySQL server using the provided credentials. The error returned was "%s".',$exception->getMessage()));
$this->output->error(sprintf('Unable to connect to the MariaDB server using the provided credentials. The error returned was "%s".',$exception->getMessage()));
// There are rare conditions where daemon encounters a panic condition and crashes the
// request being made after content has already been sent over the wire. In these cases
// you can end up with a "successful" response code that is actual an error.
//
// Handle those better here since we shouldn't ever end up in this exception state and
// be returning a 2XX level response.
if($this->statusCode<400){
$this->statusCode=Response::HTTP_BAD_GATEWAY;
}
}
if(is_null($response)){
$message='Could not establish a connection to the machine running this server. Please try again.';
}else{
$message=sprintf('There was an error while communicating with the machine running this server. This error has been logged, please try again. (code: %s) (request_id: %s)',$response->getStatusCode(),$this->requestId??'<nil>');
}
// Attempt to pull the actual error message off the response and return that if it is not
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.