Commit graph

1342 commits

Author SHA1 Message Date
Andras Bacsai
ca62f8dacc refactor(terminal): simplify command construction for SSH execution 2025-07-03 15:48:59 +02:00
Andras Bacsai
13a9816770 fix(service): ensure configuration changes are properly tracked and dispatched 2025-07-03 15:08:13 +02:00
Hicro
43bcfe8d02
fix: removing eager loading (#6071)
since the destionations relationship is not really needed, we could
remove it and avoid the issue with the missing eager constraint.

Co-authored-by: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com>
2025-07-01 11:10:47 +02:00
Andras Bacsai
a1ec86f433 fix(terminal): ensure shell execution only uses valid shell if available in terminal command 2025-07-01 10:37:34 +02:00
Andras Bacsai
90817914d9 refactor(ui): separate views for instance settings to separate paths to make it cleaner 2025-06-30 08:50:17 +02:00
Andras Bacsai
d00eb64acd
Update app/Livewire/Subscription/Index.php
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-06-26 09:06:38 +02:00
Andras Bacsai
8abb8b2328 feat(settings): add sponsorship popup toggle and corresponding database migration 2025-06-25 15:18:39 +02:00
Andras Bacsai
e746e212cb refactor(user): streamline user deletion process and enhance team management logic 2025-06-25 12:14:35 +02:00
Andras Bacsai
7fb85314e5 refactor(invitation): rename methods for consistency and enhance invitation deletion logic 2025-06-25 11:45:55 +02:00
Andras Bacsai
bcddba3569 refactor(email): streamline SMTP and resend settings logic for improved clarity 2025-06-24 18:27:09 +02:00
Andras Bacsai
ffaa2917d5 fix(ui): enhance status refresh buttons with loading indicators 2025-06-24 13:34:56 +02:00
Andras Bacsai
8fc79022f3 feat(service): enhance service status handling and UI updates 2025-06-24 12:52:22 +02:00
Andras Bacsai
3643a388bf fix(github): changing github app breaks the webhook. it does not anymore 2025-06-21 19:28:38 +02:00
Yassir Elmarissi
4375f52c5d
feat(auth): Add Discord OAuth Provider (#5552) 2025-06-18 14:19:01 +02:00
Andras Bacsai
9eab8897d8 fix(server): update sentinelUpdatedAt assignment to use server's sentinel_updated_at property 2025-06-18 13:02:21 +02:00
Andras Bacsai
f7daddce58 refactor(ui): terminal 2025-06-17 09:28:07 +02:00
Andras Bacsai
87225405a8 refactor(clone-project): enhance server retrieval by including destinations and filtering out build servers 2025-06-16 13:15:40 +02:00
Andras Bacsai
d1d899c0cf refactor(execute-container-command): simplify connection logic and improve terminal availability checks 2025-06-14 13:56:48 +02:00
Andras Bacsai
64dd648b3f fix(terminal): now it should work 2025-06-14 13:00:16 +02:00
Andras Bacsai
581151bb11 refactor(resource-operations): filter out build servers from the server list and clean up commented-out code in the resource operations view 2025-06-13 16:49:27 +02:00
Andras Bacsai
c3dd24ff43 refactor(navbar): simplify proxy status handling and enhance loading indicators for better user experience 2025-06-13 07:16:44 +02:00
Andras Bacsai
9ad2304229 refactor(proxy): streamline proxy status handling and improve dashboard availability checks 2025-06-11 12:02:39 +02:00
Andras Bacsai
23d5ada3b8 fix(cloudflare): update refresh method to correctly set Cloudflare tunnel status and improve user notification on IP address update 2025-06-10 11:47:29 +02:00
Andras Bacsai
433dcdbe78 refactor(proxy): remove commented-out listener and method for cleaner code structure 2025-06-10 10:58:28 +02:00
Andras Bacsai
d47d2f14f7 refactor(logs): remove unused methods and debug functionality from Logs.php for cleaner code 2025-06-10 10:48:08 +02:00
Andras Bacsai
8e70b2907f fix(terminal-connection): improve error handling and stability for auto-connection; enhance component readiness checks and retry logic 2025-06-06 21:40:52 +02:00
Andras Bacsai
7df6890920 refactor(terminal-connection): streamline auto-connection logic and improve component readiness checks 2025-06-06 21:34:27 +02:00
Andras Bacsai
ba970d909c feat(terminal-connection): enhance terminal connection handling with auto-connect feature and improved status messaging 2025-06-06 21:15:50 +02:00
Andras Bacsai
1cdc01194b feat(proxy-dashboard): implement ProxyDashboardCacheService to manage Traefik dashboard cache; clear cache on configuration changes and proxy actions 2025-06-06 19:18:32 +02:00
Andras Bacsai
2576e868b5 feat(navbar): add Traefik dashboard availability check and server IP handling; refactor dynamic configurations loading 2025-06-06 18:50:32 +02:00
Andras Bacsai
ddcb14500d refactor(proxy-status): refactored how the proxy status is handled on the UI and on the backend
feat(cloudflare): improved cloudflare tunnel automated installation
2025-06-06 14:47:54 +02:00
Andras Bacsai
4c887a3126 fix(database-heading): simplify stop database message for clarity 2025-06-05 13:33:02 +02:00
Andras Bacsai
618a7d459c refactor(logs): enhance container loading logic and improve UI for logs display across various resource types 2025-06-05 13:24:26 +02:00
Andras Bacsai
8f4b6f4403 fix(email-notifications): change notify method to notifyNow for immediate test email delivery 2025-06-04 17:10:06 +02:00
Andras Bacsai
908c587ea1 refactor(docker-compose): replace hardcoded Docker Compose configuration with external YAML template for improved database detection testing 2025-06-04 11:32:06 +02:00
Andras Bacsai
1704a25a24 fix(previews): escape container names in stopContainers method to prevent shell injection vulnerabilities 2025-06-04 09:11:08 +02:00
Andras Bacsai
ad98d135a1 refactor(activity-monitor): update dispatch method to use activityMonitor instead of deprecated newActivityMonitor 2025-06-02 15:36:45 +02:00
Andras Bacsai
a3dc3c861b refactor(activity-monitor): consolidate activity monitoring logic and remove deprecated NewActivityMonitor component 2025-06-02 15:36:37 +02:00
Andras Bacsai
32a14b0050 fix(select-component): handle exceptions during parameter retrieval and environment selection in the mount method 2025-06-02 13:02:01 +02:00
Andras Bacsai
ff20cb0b7c fix(application-configuration): prevent access to preview deployments for deploy_key applications and update menu visibility accordingly 2025-05-30 14:15:07 +02:00
Andras Bacsai
b0e33eb59d fix(application-management): improve stop messages for application, database, and service to enhance clarity and formatting 2025-05-30 14:04:43 +02:00
Andras Bacsai
a990cc01c2 refactor(activity-monitor): change activity property visibility and update view references for consistency 2025-05-30 12:56:34 +02:00
Andras Bacsai
200b5cd4fb refactor(service-management): enhance container stopping logic by implementing parallel processing and removing deprecated methods 2025-05-30 12:56:22 +02:00
Andras Bacsai
9f06e7193e feat(previews): add force deploy without cache functionality and update deploy method to accept force rebuild parameter 2025-05-30 10:09:13 +02:00
Andras Bacsai
9480fc2b2f refactor(environment-variables): remove debug logging from bulk submit handling for cleaner code 2025-05-30 09:11:40 +02:00
Andras Bacsai
05a03c44d3 refactor(terminal): enhance terminal connection management and error handling, including improved reconnection logic and cleanup procedures 2025-05-29 14:36:13 +02:00
Andras Bacsai
261a2fe564 feat(ca-certificate): add CA certificate management functionality with UI integration and routing 2025-05-29 14:27:28 +02:00
Andras Bacsai
9d71900952 refactor(terminal-access): streamline resource retrieval and enhance terminal access messaging in UI 2025-05-29 14:26:48 +02:00
Andras Bacsai
46b4cfac68 feat(terminal-access): implement terminal access control for servers and containers, including UI updates and backend logic 2025-05-29 14:09:05 +02:00
Andras Bacsai
58be59a7b3 refactor(service): remove informational dispatch during service stop for cleaner execution 2025-05-29 11:11:49 +02:00
Andras Bacsai
102bdb5bc3 refactor(application): enhance application stopping logic to support multiple servers 2025-05-26 21:44:34 +02:00
Andras Bacsai
be0453d9df fix: Traefik start on new server validation
fix: Multiple server selection ui flow
2025-05-26 21:06:00 +02:00
Andras Bacsai
6ea6d2742b feat(server): implement server patch check notifications
- Added a new job, ServerPatchCheckJob, to handle server patch checks and notifications.
- Introduced a new notification class, ServerPatchCheck, for sending updates via email, Discord, Slack, Pushover, and Telegram.
- Updated notification settings models to include server patch notification options for email, Discord, Slack, Pushover, and Telegram.
- Created a migration to add server patch notification fields to the respective settings tables.
- Enhanced the UI to allow users to enable/disable server patch notifications across different channels.
2025-05-26 14:03:59 +02:00
Andras Bacsai
0603ab13c2 fix(project): update selected environment handling to use environment name instead of UUID 2025-05-22 14:35:31 +02:00
peaklabs-dev
cb41670af9
refactor(ui): show toast when server does not work and on stop 2025-05-20 15:22:13 +02:00
Andras Bacsai
9c3817ee14 fix(deploy): update resource timestamp handling in deploy_resource method 2025-05-20 11:15:31 +02:00
Andras Bacsai
35b08453e1 refactor(service): consolidate configuration change dispatch logic and remove unused navbar component 2025-05-20 11:15:31 +02:00
Andras Bacsai
2424bd408b
Update app/Livewire/Project/Service/Heading.php
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-05-20 11:15:07 +02:00
Andras Bacsai
9651195318
Update app/Livewire/Server/Security/Patches.php
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-05-20 11:07:55 +02:00
peaklabs-dev
79e620eac5
fix(ui): add back missing service navbar components 2025-05-19 23:35:17 +02:00
Andras Bacsai
786bfa960f improvement(core): simplify events for app/db/service status changes 2025-05-19 21:50:32 +02:00
Andras Bacsai
daefe28fd8 fix(database): include DatabaseStatusChanged event in activityMonitor dispatch 2025-05-19 13:46:52 +02:00
Andras Bacsai
e7536d3fb8 feat(security): implement server patching functionality
- Add CheckUpdates and UpdatePackage actions for managing server updates.
- Create ServerPackageUpdated event for broadcasting update status.
- Introduce Patches Livewire component for user interface to check and apply updates.
- Update navigation and sidebar to include security patching options.
2025-05-15 22:21:54 +02:00
Andras Bacsai
24d7429e4f fix(ActivityMonitor): prevent multiple event dispatches during polling 2025-05-15 22:21:46 +02:00
Andras Bacsai
365bf3cbf0 fix(dev): mount points?! 2025-05-03 09:59:42 +02:00
Andras Bacsai
ed0961e0dc refactor(database): enhance application conversion logic and add existence checks for databases and applications 2025-04-30 18:30:33 +02:00
Andras Bacsai
0a1a403940
Update app/Livewire/Project/Service/Database.php
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-04-30 18:26:43 +02:00
Andras Bacsai
114fafb270 refactor(database): update DB facade usage for consistency across service files 2025-04-30 17:39:41 +02:00
Andras Bacsai
fe24296de7 feat(backup): implement custom database type selection and enhance scheduled backups management 2025-04-30 16:44:44 +02:00
Andras Bacsai
e062edb689 refactor(core): streamline container stopping process and reduce timeout duration; update related methods for consistency 2025-04-30 15:28:59 +02:00
Andras Bacsai
d8c3418e72 feat(Service): Add functionality to convert between applications and databases in docker-compose based applications
fix(ui): Fix service layout refresh on compose change
2025-04-29 14:27:17 +02:00
Andras Bacsai
65be880d70 fix(ui): Change application image validation to be nullable in service application view 2025-04-29 09:23:26 +02:00
Andras Bacsai
d47946a0ad fix(ui): Disable livewire navigate feature (causing spam of setInterval()) 2025-04-29 09:04:24 +02:00
Andras Bacsai
78ef80f800 refactor 2025-04-23 13:22:01 +02:00
Andras Bacsai
9e608f7ba5 refactor(http-basic-auth): rename 'http_basic_auth_enable' to 'http_basic_auth_enabled' across application files for consistency 2025-04-22 21:30:27 +02:00
Andras Bacsai
7e0373e439
Merge branch 'next' into feat/add-http-basic-auth 2025-04-22 21:18:43 +02:00
Andras Bacsai
00fe6e9003 refactor(environment-variables): remove protected variable checks from delete methods for cleaner logic 2025-04-22 11:40:35 +02:00
Andras Bacsai
cd2f71b463 feat(deployment): add repository_project_id handling for private GitHub apps and clean up unused Caddy label logic 2025-04-22 10:20:57 +02:00
Christopher Kaster
2634f516d5
feat: Add HTTP Basic Authentication 2025-04-17 14:14:32 +02:00
Andras Bacsai
9ae5ec0ed3
Update app/Livewire/Subscription/Index.php
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-04-14 13:57:41 +02:00
Andras Bacsai
32326bb7dd feat(subscription): enhance subscription management with loading states and Stripe status checks 2025-04-14 10:31:13 +02:00
Andras Bacsai
4bc9786046 refactor(DynamicConfigurations): improve handling of dynamic configuration content by ensuring fallback to empty string when content is null 2025-04-13 14:24:27 +02:00
Andras Bacsai
6eea3c50d8 refactor(Email): enhance error handling in SMTP and resend methods by passing context to handleError function 2025-04-12 14:04:34 +02:00
Andras Bacsai
de839e3fcb refactor(Email): streamline SMTP and resend settings handling in copyFromInstanceSettings method 2025-04-12 13:59:54 +02:00
Andras Bacsai
4c95dccfb3 refactor(SourceManagement): sort sources by name and improve UI for changing Git source with better error handling 2025-04-11 20:25:25 +02:00
Andras Bacsai
ec36825545 feat(SourceManagement): add functionality to change Git source and display current source in the application settings 2025-04-11 18:22:42 +02:00
Andras Bacsai
d075241289 feat(Deployment): enhance queue_application_deployment to handle existing deployments and return appropriate status messages 2025-04-11 15:27:56 +02:00
Andras Bacsai
68bd945b09 refactor(Application): rename network_aliases to custom_network_aliases across the application for clarity and consistency 2025-04-09 08:42:50 +02:00
Andras Bacsai
f8607ddf6a
Merge branch 'next' into docker-network-aliases 2025-04-08 13:27:59 +02:00
Andras Bacsai
f63415f027 feat(EnvironmentVariable): implement protection for critical environment variables and enhance deletion logic 2025-04-07 22:57:26 +02:00
Andras Bacsai
f31624c6eb fix(General): change redis_password property to nullable string 2025-04-06 21:13:15 +02:00
Andras Bacsai
d383344ab9 feat(EnvironmentVariable): add handling for Redis credentials in the environment variable component 2025-04-06 21:13:11 +02:00
Andras Bacsai
68c2c7fb81 fix(Status): conditionally check proxy status and refresh button based on force_stop state 2025-04-05 14:41:34 +02:00
Andras Bacsai
3176106222 fix(CheckProxy, Status): prevent proxy checks when force_stop is active; remove debug statement in General 2025-04-05 14:32:51 +02:00
peaklabs-dev
185eef0533
fix(email): transactional emails not sending 2025-04-03 15:02:04 +02:00
peaklabs-dev
331693546b
fix(proxy): proxy restart does not work on domain
- When you restart the proxy on an instance domain, the proxy stops and is removed, but never restarted. So you loose access over the domain and have to go in over IP and Port.
This is because we are doing the restart directly in the UI instead of in the background via a job, and the proxy is serving the UI domain.
2025-04-02 19:38:31 +02:00
peaklabs-dev
d15f1b9b94
fix(email): Emails are not sent in multiple cases
- fix(email): transactional emails are all not sent if `Use system wide (transactional) email settings` is disabled and no other email provide is setup on the Notifications page
- fix(email): no emails are sent if SMTP username and SMTP password are empty (which is the case in dev for example)
- fix(email): Wrong test email notification is used, causing the transactional email test notification to fail if no email provider is set up on the Notifications page.
2025-04-02 16:28:14 +02:00
peaklabs-dev
7519e6a939
fix(ui): Instance Backup settings
- Only show and enable instance backup settings when the server is functional
2025-04-01 14:31:38 +02:00
Andras Bacsai
fcfd00eebe feat(application): add SPA configuration and update Nginx generation logic 2025-03-31 15:10:50 +02:00
Andras Bacsai
d6d1c9ad82 feat(database): add CA certificate generation for database servers 2025-03-31 14:02:15 +02:00
Andras Bacsai
7686ebfd6c refactor(file-storage): add loadStorageOnServer method for improved error handling 2025-03-28 21:05:34 +01:00
Andras Bacsai
0b41378014 refactor(proxy): remove redundant stop call in restart method 2025-03-28 20:54:27 +01:00
Andras Bacsai
39cb270eb7 refactor(email): improve error handling by passing context to handleError 2025-03-28 18:44:03 +01:00
Andras Bacsai
3be6be4c1b refactor(database): require PEM key file for SSL certificate regeneration 2025-03-27 10:02:25 +01:00
Andras Bacsai
1857a54d92 refactor(database): update import statements for Auth in database components 2025-03-26 18:31:42 +01:00
Andras Bacsai
44bf3f4ee3 refactor(database): streamline event listeners in Redis General component 2025-03-26 18:30:52 +01:00
Andras Bacsai
d7ded7f8e5 refactor(database): enhance SSL configuration handling for various databases 2025-03-26 17:24:46 +01:00
Andras Bacsai
e891318396 refactor(configuration): centralize configuration management in ConfigurationRepository 2025-03-24 21:01:27 +01:00
Andras Bacsai
5e6c112fcc feat(github): enhance repository loading and validation in applications 2025-03-24 14:29:17 +01:00
Andras Bacsai
806d892031 refactor(application): streamline healthcheck parsing from Dockerfile 2025-03-24 11:43:10 +01:00
Andras Bacsai
d7d80e926e feat(user): implement session deletion on password reset 2025-03-21 15:45:29 +01:00
Andras Bacsai
26f4d37346 feat(notifications): add discord ping functionality and settings 2025-03-21 12:16:33 +01:00
Andras Bacsai
120facfca3 feat(api): unify service creation endpoint and enhance validation 2025-03-21 11:31:17 +01:00
Andras Bacsai
950acffe0b refactor(database): streamline SSL configuration handling across database types 2025-03-17 15:15:54 +01:00
Andras Bacsai
009cee1bbd
Merge branch 'next' into feat-db-ssl 2025-03-17 15:15:24 +01:00
Andras Bacsai
b8f99bbda0 fix(core): redirect healthcheck route for dockercompose applications 2025-03-17 11:28:43 +01:00
Piotr Wójcik
0baeaa982b
Merge branch 'next' into docker-network-aliases 2025-03-16 14:50:26 +01:00
Andras Bacsai
8a11de9b1a fix(core): improve instantSave logic and error handling 2025-03-15 22:26:59 +01:00
Andras Bacsai
798aab6955 refactor(ScheduledTask): clean up code formatting and remove unused import 2025-03-14 16:11:41 +01:00
Andras Bacsai
d894c3d903 feat(database): implement two-step confirmation for database deletion
Added a new delete method in the Database component that includes a two-step confirmation process requiring the user to enter their password. If two-step confirmation is disabled, the deletion proceeds without password verification. Additionally, a confirmation modal has been integrated into the database view to prompt users before deletion, enhancing the safety of this critical operation.
2025-03-12 16:33:35 +01:00
Andras Bacsai
a7318c2d77 fix(domain): dispatch refreshStatus event after successful domain update 2025-03-12 15:37:06 +01:00
Andras Bacsai
f73c74bd44 feat(github-source): Enhance GitHub App configuration with manual and private key support
- Add support for manual GitHub App configuration
- Introduce private key selection for GitHub Apps
- Enable editing of previously disabled GitHub App fields
- Add error handling for permission checks
- Implement a manual GitHub App creation method
2025-03-11 14:15:22 +01:00
Andras Bacsai
3f62225ec3 refactor(scheduled-tasks): Improve scheduled task creation and management 2025-02-27 13:26:35 +01:00
Andras Bacsai
1e28cf56ac fix(ui): Correct redirect routes after task deletion 2025-02-27 13:26:24 +01:00
Andras Bacsai
dea125f679 refactor(notifications): Improve transactional email settings handling
- Replace `! $type` checks with `blank($type)` for consistency
- Modify email settings configuration to handle null/disabled states
- Ensure proper fallback and configuration of email providers
2025-02-27 12:56:37 +01:00
Andras Bacsai
f98c58a0a3 fix(ui): Restrict service retrieval to current team 2025-02-27 12:17:23 +01:00
Andras Bacsai
27e4882d57 feat(core): You can validate compose files with docker compose config
fix(core): labels are now accepted with both compose styles
refactor: remove lots of ray's
2025-02-27 11:29:04 +01:00
Andras Bacsai
359806472b fix(ui): Set default SMTP encryption to starttls 2025-02-27 10:08:34 +01:00
Andras Bacsai
40ad118492 fix(core): add server functionality check before dispatching container status 2025-02-22 12:51:22 +01:00
peaklabs-dev
225f24e650
chore: improve code quality suggested by code rabbit 2025-02-19 18:04:58 +01:00
🏔️ Peak
9557957f18
Merge branch 'next' into feat-db-ssl 2025-02-19 17:57:59 +01:00
Andras Bacsai
65b925252c feat(core): prevent using servers with existing resources as build servers 2025-02-18 16:44:16 +01:00
Andras Bacsai
372b064dba fix(core): improve server selection error handling in Docker component 2025-02-18 16:44:05 +01:00
Andras Bacsai
6e802f43ba fix(core): update service status refresh event handling 2025-02-17 09:52:18 +01:00
Andras Bacsai
a25e2072d3 fix(deployment): improve server selection for deployment cancellation
- Add fallback for build server and deployment server selection
- Use `ownedByCurrentTeam()` scope when finding servers
- Handle cases where server IDs might be null
2025-02-12 10:51:26 +01:00
peaklabs-dev
4fdd5679c9
fix(ui): enable SSL is not working correctly for KeyDB 2025-02-11 20:18:42 +01:00
peaklabs-dev
3e95387e10
Full: SSL Support for KeyDB 2025-02-10 21:29:45 +01:00
peaklabs-dev
90e681e24b
feat: Full SSL support for DrangonflyDB 2025-02-10 21:29:20 +01:00
peaklabs-dev
4547647e98
feat(ssl): improve Redis and remove modes 2025-02-10 19:23:39 +01:00
peaklabs-dev
6b6a9f57f3
fix(ui): remove unused mode for MongoDB 2025-02-10 15:26:05 +01:00
peaklabs-dev
484fc5140b
fix(ssl): rename Redis mode to verify-ca as it is not verify-full 2025-02-08 16:43:15 +01:00
🏔️ Peak
c7840bdf1b
Merge branch 'next' into feat-db-ssl 2025-02-07 23:01:46 +01:00
peaklabs-dev
7b30b1aff1
feat(ssl): Full SSL support for Redis 2025-02-07 22:36:36 +01:00
peaklabs-dev
5b347f3d0f
fix(ssl): remove mode selection for MariaDB as it is not supported 2025-02-07 21:07:40 +01:00
peaklabs-dev
a539bfd765
fix(ssl): server id 2025-02-07 18:45:12 +01:00
peaklabs-dev
bd33f65c0a
feat(ssl): new modes for MongoDB and get caCert and mountPath correctly 2025-02-07 18:31:41 +01:00
peaklabs-dev
62fb2c2877
fix(ssl): ger caCert and mountPath correctly 2025-02-07 18:30:07 +01:00
peaklabs-dev
836006798f
fix(ssl): remove caCert even if it is a folder by accident 2025-02-07 18:28:58 +01:00
peaklabs-dev
367eebc9fc
feat: Add full SSL support to MongoDB 2025-02-05 22:56:29 +01:00
peaklabs-dev
951a454cbc
fix(ssl): regenerating certs for a specific DB
- fix: add mount path to make file mounts work correctly
- fix: get CA cert of the server not some random cert
2025-02-05 21:22:54 +01:00