Compare commits

...

3367 Commits

Author SHA1 Message Date
Mauricio Siu
2a89be6efc Merge pull request #2069 from Dokploy/2065-rollback-feature-dns-issues
Some checks failed
Auto PR to main when version changes / create-pr (push) Has been cancelled
Build Docker images / build-and-push-cloud-image (push) Has been cancelled
Build Docker images / build-and-push-schedule-image (push) Has been cancelled
Build Docker images / build-and-push-server-image (push) Has been cancelled
Dokploy Docker Build / docker-amd (push) Has been cancelled
Dokploy Docker Build / docker-arm (push) Has been cancelled
autofix.ci / format (push) Has been cancelled
Dokploy Monitoring Build / docker-amd (push) Has been cancelled
Dokploy Monitoring Build / docker-arm (push) Has been cancelled
Dokploy Docker Build / combine-manifests (push) Has been cancelled
Dokploy Docker Build / generate-release (push) Has been cancelled
Dokploy Monitoring Build / combine-manifests (push) Has been cancelled
feat(rollbacks): enhance fullContext type and refactor createRollback…
2025-06-22 18:01:21 +02:00
autofix-ci[bot]
412bb9e874 [autofix.ci] apply automated fixes 2025-06-22 16:00:36 +00:00
Mauricio Siu
6290c217f1 feat(rollbacks): add alert for storage usage in rollback settings
- Introduced an AlertBlock component to inform users about increased storage usage when rollbacks are enabled.
- Added cautionary note regarding the potential deletion of rollback images during manual cache cleaning.
2025-06-22 10:00:14 -06:00
Mauricio Siu
4babdd45ea chore: update version in package.json to v0.23.3 2025-06-22 09:58:35 -06:00
Mauricio Siu
24bff96898 feat(rollbacks): enhance fullContext type and refactor createRollback logic
- Updated fullContext type in rollbacks schema to include Application and Project types.
- Refactored createRollback function to separate fullContext from input and handle it more efficiently.
- Integrated environment variable preparation into the rollback process.
2025-06-22 09:56:36 -06:00
Mauricio Siu
892f272108 Merge pull request #2066 from nikolajjsj/feat/reset-2fa-script
Feat/reset 2fa script
2025-06-22 16:40:47 +02:00
Mauricio Siu
fca537ee40 feat(esbuild): add entry point for reset-2fa script 2025-06-22 08:40:13 -06:00
Mauricio Siu
ae24aa8be5 Merge pull request #2067 from Dokploy/fix/envs-not-reset
fix: simplify useEffect condition in ShowEnvironment component
2025-06-22 16:32:54 +02:00
Mauricio Siu
b74d3995ee chore: update version in package.json to v0.23.2 2025-06-22 08:32:20 -06:00
Mauricio Siu
f7fd77f7e9 fix: simplify useEffect condition in ShowEnvironment component 2025-06-22 08:31:46 -06:00
nikolajjsj
db8a4e6edf feat(scripts): add command to run reset-2fa script 2025-06-22 15:11:12 +02:00
nikolajjsj
fa16cfec2a feat(scripts): add script to reset 2fa for admin
Similar style to existing reset-password script
2025-06-22 15:10:57 +02:00
Mauricio Siu
f35d084dd4 chore: update version in package.json to v0.23.1
Some checks are pending
Auto PR to main when version changes / create-pr (push) Waiting to run
Build Docker images / build-and-push-cloud-image (push) Waiting to run
Build Docker images / build-and-push-schedule-image (push) Waiting to run
Build Docker images / build-and-push-server-image (push) Waiting to run
Dokploy Docker Build / docker-amd (push) Waiting to run
Dokploy Docker Build / docker-arm (push) Waiting to run
Dokploy Docker Build / combine-manifests (push) Blocked by required conditions
Dokploy Docker Build / generate-release (push) Blocked by required conditions
autofix.ci / format (push) Waiting to run
Dokploy Monitoring Build / docker-amd (push) Waiting to run
Dokploy Monitoring Build / docker-arm (push) Waiting to run
Dokploy Monitoring Build / combine-manifests (push) Blocked by required conditions
2025-06-22 00:58:00 -06:00
Mauricio Siu
274daf52c0 Merge pull request #2062 from Dokploy/fix/migration-git-permissions
refactor(git_provider): update userId assignment to use owner_id from…
2025-06-22 08:57:10 +02:00
Mauricio Siu
da52d767eb refactor(git_provider): update userId assignment to use owner_id from organization table
- Changed the SQL update statement to directly select the owner_id from the organization table instead of joining with the account table, simplifying the query.
2025-06-22 00:52:45 -06:00
Mauricio Siu
45a178e705 chore: update version in package.json to v0.23.0 2025-06-21 23:58:27 -06:00
Mauricio Siu
ebf9db7cc0 Merge pull request #2037 from Marukome0743/sort
chore: alphabetize the package.json dependencies
2025-06-22 07:50:55 +02:00
Mauricio Siu
ec6c685a28 Merge pull request #2019 from zuohuadong/canary
chore(server-setup.ts) support opencloudos
2025-06-22 07:37:22 +02:00
Mauricio Siu
7b14e4c5d2 Merge pull request #1986 from Dokploy/319-ability-to-roll-back-service-depoyments
Ability to roll back service deployments
2025-06-22 07:35:36 +02:00
Mauricio Siu
316f592e09 refactor(rollback): clean up unused code in rollback router
- Removed commented-out code and unused imports from the rollback router file to streamline the codebase and improve readability.
2025-06-21 23:35:11 -06:00
Mauricio Siu
bd82199ae0 feat(rollback): implement rollback creation in deployment process
- Added logic to create a rollback entry if the application has an active rollback during the deployment process.
- Enhanced the rollback handling by determining the appropriate tag image based on the application's source type (docker or app name).
2025-06-21 23:24:53 -06:00
Mauricio Siu
89d573a2f5 refactor: remove ShowEnv component from rollbacks
- Deleted the ShowEnv component responsible for displaying environment variables in the rollback context, streamlining the codebase.
2025-06-21 23:18:06 -06:00
Mauricio Siu
3d285ca437 feat(rollback): add rollback constraints and snapshots
- Introduced two new SQL files for rollback constraints, updating foreign key relationships with different delete actions (set null and cascade).
- Updated the journal and snapshot files to include the new rollback schema changes for versions 0096 and 0097.
- Enhanced the application service to handle rollback image tagging based on source type.
- Implemented rollback removal logic in the deployment service to ensure proper cleanup of rollback entries.
2025-06-21 23:17:21 -06:00
Mauricio Siu
8c5e34c528 refactor: remove limitRollback property from rollback settings schema
- Eliminated the limitRollback property from the form schema in show-rollback-settings.tsx to simplify the rollback configuration.
2025-06-21 21:53:14 -06:00
Mauricio Siu
98199e65bf refactor: remove limitRollback property and add rollback table schema
- Removed the limitRollback property from the baseApp configuration in drop.test.test.ts and traefik.test.ts files.
- Introduced a new SQL file to create a rollback table with relevant fields and constraints.
- Updated the journal and snapshot files to reflect the new rollback schema changes.
2025-06-21 21:21:29 -06:00
Mauricio Siu
bf1026af7a Merge branch 'canary' into 319-ability-to-roll-back-service-depoyments 2025-06-21 21:18:05 -06:00
Mauricio Siu
7c9767d90f chore: remove rollback-related SQL files and snapshots
- Deleted SQL files for the "rollback" table and related schema changes, including the "funny_leper_queen", "true_marvel_zombies", and "sweet_venom" migrations.
- Removed corresponding snapshot files to clean up the database schema history.
2025-06-21 21:17:54 -06:00
Mauricio Siu
688f6478f1 Merge pull request #1981 from ayham291/canary
feat: Git Provider Permissions
2025-06-22 05:16:11 +02:00
Mauricio Siu
cad17e0f7f fix(certificates): improve ASN.1 time parsing and handle edge cases
- Added TypeScript ignore directive to suppress type checking in the utility file.
- Refactored the time parsing logic to use Number.parseInt for better clarity.
- Adjusted the flow to throw an error for invalid ASN.1 time formats, ensuring robustness in certificate expiration date extraction.
2025-06-21 21:08:49 -06:00
Mauricio Siu
d97461d820 refactor(git-provider): update UnauthorizedGitProvider to use service prop and enhance access handling
- Changed the prop name from 'application' to 'service' in the UnauthorizedGitProvider component for clarity.
- Updated the logic to check for unauthorized access to the git provider in the compose router, returning a new field 'hasGitProviderAccess'.
- Implemented a disconnect functionality for git providers in the ShowProviderFormCompose component, providing user feedback on success or failure.
2025-06-21 21:03:31 -06:00
Mauricio Siu
9686848090 feat(git-provider): add userId column to git_provider table and update relationships
- Introduced a new userId column in the git_provider table to associate git providers with users.
- Updated the foreign key reference for userId to point to the users_temp table instead of the account table.
- Modified the UnauthorizedGitProvider component to include a dialog action for disconnecting repositories, enhancing user experience.
- Added a migration script to update existing git providers with the new userId values based on the organization owner.
2025-06-21 20:50:07 -06:00
Mauricio Siu
a7b644e403 Merge branch 'canary' into ayham291/canary 2025-06-21 20:21:41 -06:00
Mauricio Siu
96b4c334da remove: delete migration script and associated journal entries for 0093_elite_warlock
This commit removes the migration script for adding a userId column to the git_provider table, along with its corresponding journal entries. The migration was deemed unnecessary following recent changes to the handling of existing git providers.
2025-06-21 20:21:24 -06:00
Mauricio Siu
1b99c3ac23 Merge pull request #2059 from tarikyalcinkaya/fix/valid-name-regex
fix: allow dot character in project name validation (#2042)
2025-06-22 04:18:40 +02:00
Mauricio Siu
a12b514525 Merge pull request #2060 from Dokploy/2043-running-manual-backup-on-service-does-not-remove-outdated-backups-over-keep-latest
feat(backup): implement keepLatestNBackups function to manage backup …
2025-06-22 04:16:51 +02:00
Mauricio Siu
ea91b01461 feat(backup): implement keepLatestNBackups function to manage backup retention
- Added keepLatestNBackups function calls after each backup operation for Postgres, MySQL, MariaDB, Compose, and MongoDB to ensure only the latest N backups are retained.
2025-06-21 20:16:27 -06:00
Tarık Yalçınkaya
149b8f70d8 fix: allow dot character in project name validation (#2042) 2025-06-22 04:09:21 +03:00
Mauricio Siu
6be4984649 Merge pull request #2050 from dsincl12/canary
Fix typo: Clonning → Cloning
2025-06-22 01:55:10 +02:00
Mauricio Siu
7ec68e688b Merge pull request #2025 from onurguzel/fix-cert-expiration-date
fix: parse pem certificates correctly
2025-06-22 01:54:52 +02:00
autofix-ci[bot]
b30f8944c4 [autofix.ci] apply automated fixes 2025-06-21 23:53:09 +00:00
Mauricio Siu
f0d242b9b9 Merge pull request #2058 from Dokploy/2016-compose-and-environnement-variable-tab-keeps-resetting-themself
fix: update form reset conditions in environment and compose file edi…
2025-06-22 00:29:49 +02:00
Mauricio Siu
b6d86b4732 fix: update form reset conditions in environment and compose file editors
- Modified the reset logic in ShowEnvironment to only reset when there are no changes.
- Adjusted the reset condition in ComposeFileEditor to check if composeFile is empty before resetting.
- Cleaned up the query in the compose service page by removing unnecessary refetchInterval.
2025-06-21 16:27:58 -06:00
Mauricio Siu
304134cdda Merge pull request #2056 from Dokploy/1834-user-invite-email-not-sending
feat(invitation): add email provider selection and notification handl…
2025-06-21 21:10:38 +02:00
Mauricio Siu
c84b271511 feat(invitation): add email provider selection and notification handling for user invitations
- Introduced a new optional field for notificationId in the invitation form.
- Implemented fetching of email providers based on the active organization.
- Enhanced invitation sending logic to include email notifications when applicable.
- Updated UI to conditionally display email provider selection based on cloud status.
2025-06-21 13:08:49 -06:00
David Sinclair
96dd8d37a5 Fix typo: Clonning → Cloning 2025-06-20 11:30:38 +02:00
Mauricio Siu
be91b53c86 Merge pull request #2049 from Dokploy/1977-volumes-cant-be-edited
fix: update FormItem styles for better layout in UpdateVolume component
2025-06-20 08:41:15 +02:00
Mauricio Siu
98c77d539e fix: update FormItem styles for better layout in UpdateVolume component 2025-06-20 00:40:56 -06:00
Mauricio Siu
67f5befa48 Merge pull request #2007 from victorboudet/canary
fix api: return compose informations when created from template
2025-06-20 08:16:02 +02:00
Mauricio Siu
5b2056101f Merge pull request #1984 from TorstenDittmann/fix-ip-validation-behind-bunny-fastly
fix[domains]: Add CDN provider detection with dynamic display names
2025-06-20 08:15:39 +02:00
Mauricio Siu
000b4ba49e Merge pull request #2048 from Dokploy/1970-deploy-crashes-when-opening-requests
feat(database): set default value for logCleanupCron and update exist…
2025-06-20 07:44:22 +02:00
Mauricio Siu
4efa56aae5 Merge pull request #2034 from Marukome0743/syntax
build: add syntax directive to Dockerfiles
2025-06-20 07:37:27 +02:00
Mauricio Siu
a788a73fa3 feat(database): set default value for logCleanupCron and update existing records
- Added SQL script to set default value for "logCleanupCron" in "user_temp" table.
- Updated existing records with NULL "logCleanupCron" to the new default value.
- Updated user schema to reflect the default value for "logCleanupCron".
- Enhanced log cleanup functionality with error handling and logging.
2025-06-19 23:32:49 -06:00
Marukome0743
319ca6944d chore: sort the package.json dependencies 2025-06-16 13:06:44 +09:00
Marukome0743
238736db8d build: add syntax directive to Dockerfiles 2025-06-13 11:11:48 +09:00
Onur Güzel
556a437251 fix: parse pem certificates correctly 2025-06-10 16:10:19 +02:00
huadong zuo
ef5e1d6818 chore(server-setup.ts) support opencloudos 2025-06-09 16:10:48 +08:00
Mauricio Siu
1089a8247d refactor(auth): remove logger configuration for production environment
Some checks failed
Auto PR to main when version changes / create-pr (push) Has been cancelled
Build Docker images / build-and-push-cloud-image (push) Has been cancelled
Build Docker images / build-and-push-schedule-image (push) Has been cancelled
Build Docker images / build-and-push-server-image (push) Has been cancelled
Dokploy Docker Build / docker-amd (push) Has been cancelled
Dokploy Docker Build / docker-arm (push) Has been cancelled
autofix.ci / format (push) Has been cancelled
Dokploy Monitoring Build / docker-amd (push) Has been cancelled
Dokploy Monitoring Build / docker-arm (push) Has been cancelled
Dokploy Docker Build / combine-manifests (push) Has been cancelled
Dokploy Docker Build / generate-release (push) Has been cancelled
Dokploy Monitoring Build / combine-manifests (push) Has been cancelled
2025-06-08 16:56:31 -06:00
Mauricio Siu
ef0cef99a1 refactor: remove limitRollback from application settings and related UI components
- Eliminated the "limitRollback" property from the application schema and the ShowRollbackSettings component, streamlining rollback configuration.
- Updated the database schema to drop the "limitRollback" column from the "application" table, ensuring consistency across the application.
2025-06-08 16:53:23 -06:00
Victor Boudet
8737dc86c9 fix api: return compose informations when created from template 2025-06-05 14:24:43 +00:00
Mauricio Siu
cf06e5369a fix: update docker system prune command to remove unnecessary 'all' flag
- Modified the command in the cleanUpSystemPrune function to remove the '--all' flag, streamlining the Docker system prune operation.
2025-06-03 00:13:00 -06:00
Mauricio Siu
973de2a610 feat: add rollback configuration to base application settings
- Introduced "limitRollback" and "rollbackActive" properties to the base application configuration in both drop and traefik test files.
- These additions enhance the rollback functionality by allowing configuration of rollback limits and activation status.
2025-06-02 21:04:45 -06:00
Mauricio Siu
f8baf6fe41 feat: add fullContext column to rollback table and update related functionality
- Introduced a new "fullContext" JSONB column in the "rollback" table to store additional context for rollbacks.
- Removed the "env" column from the "rollback" table to streamline data management.
- Updated the rollbacks service to handle the new "fullContext" field during rollback creation.
- Adjusted the application service to eliminate environment variable handling in rollback operations.
2025-06-02 21:02:17 -06:00
ayham291
3e05be4513 fix(migration): handle existing git providers by assigning to org owner
Previously the migration would fail in production when trying to add
a NOT NULL userId column to git_provider table with existing data.
Now existing providers are automatically assigned to their organization owner.
2025-06-02 15:42:56 +02:00
ayham291
b3b009761a fix: made an opsie.. check the organization as well as the user for getAll git providers 2025-06-02 14:45:10 +02:00
autofix-ci[bot]
a659594134 [autofix.ci] apply automated fixes 2025-06-02 10:07:40 +00:00
Torsten Dittmann
9a1f0b467d fix: domain validation message display logic
Check for both message and cdnProvider before showing CDN status to
prevent displaying "Behind undefined" when cdnProvider is missing.
2025-06-02 12:07:18 +02:00
Torsten Dittmann
e8b3abb7c9 fix: Add validation for CIDR format in isIPInCIDR function 2025-06-02 12:03:14 +02:00
ayham291
8215d2e79f feat: implement unauthorized Git provider handling and disconnect functionality
- Added UnauthorizedGitProvider component to display information for applications connected to unauthorized Git providers.
- Implemented disconnectGitProvider mutation to allow users to disconnect from their Git provider, with success and error notifications.
- Updated application query to include access checks for Git providers, ensuring users can only interact with their authorized repositories.
2025-06-02 11:32:43 +02:00
Mauricio Siu
9c19b1efa3 Create SECURITY.md
Some checks failed
Auto PR to main when version changes / create-pr (push) Has been cancelled
Build Docker images / build-and-push-cloud-image (push) Has been cancelled
Build Docker images / build-and-push-schedule-image (push) Has been cancelled
Build Docker images / build-and-push-server-image (push) Has been cancelled
Dokploy Docker Build / docker-amd (push) Has been cancelled
Dokploy Docker Build / docker-arm (push) Has been cancelled
autofix.ci / format (push) Has been cancelled
Dokploy Monitoring Build / docker-amd (push) Has been cancelled
Dokploy Monitoring Build / docker-arm (push) Has been cancelled
Dokploy Docker Build / combine-manifests (push) Has been cancelled
Dokploy Docker Build / generate-release (push) Has been cancelled
Dokploy Monitoring Build / combine-manifests (push) Has been cancelled
2025-06-02 01:09:48 -06:00
Mauricio Siu
4966bbeb73 refactor: update icon in ShowDeployments component
- Replaced the ArrowDownToLine icon with RefreshCcw in the rollback button for improved clarity.
- Cleaned up unused imports from the component to streamline the code.
2025-06-01 22:56:18 -06:00
Mauricio Siu
df97dc0179 refactor: update ShowDeployments component and remove ShowRollbacks
- Enhanced the ShowDeployments component to conditionally display rollback options based on deployment status and type.
- Removed the ShowRollbacks component and its references from the application, streamlining the UI and functionality.
2025-06-01 22:56:00 -06:00
Mauricio Siu
b14b9300c0 feat: enhance rollback functionality with UI updates and database schema changes
- Updated Tailwind configuration for responsive design.
- Modified the ShowDeployments component to include rollback settings and actions.
- Introduced a new "rollback" table in the database schema with foreign key relationships.
- Updated deployment and application schemas to support rollback features.
- Added rollback mutation to the API for initiating rollbacks.
2025-06-01 22:52:33 -06:00
Mauricio Siu
a7d1fabd81 feat: add rollback functionality with new table and application schema updates
- Created a new "rollback" table to manage rollback operations.
- Added "rollbackActive" and "limitRollback" columns to the "application" table to support rollback features.
- Established foreign key constraints between the "rollback" and "application" tables for data integrity.
2025-06-01 19:45:33 -06:00
Mauricio Siu
d171e3da91 Merge branch 'canary' into 319-ability-to-roll-back-service-depoyments 2025-06-01 19:44:02 -06:00
Mauricio Siu
2c77029dad chore: remove rollback-related SQL files and snapshots
- Deleted SQL files for rollback table and related schema changes.
- Removed corresponding snapshot files to clean up the database schema history.
2025-06-01 19:43:48 -06:00
autofix-ci[bot]
030e482fce [autofix.ci] apply automated fixes 2025-06-02 00:15:31 +00:00
Mauricio Siu
e53c67f0d9 Merge pull request #1983 from TorstenDittmann/fix-railpack-env-vars
fix[railpack]: env parsing and update railpack to v0.0.66
2025-06-01 18:13:11 -06:00
Mauricio Siu
0c12d967e2 Update Dockerfile 2025-06-01 18:12:57 -06:00
Mauricio Siu
98aabd7bd8 Merge pull request #1930 from nktnet1/fix-traefik-failing-silently
fix: throw error if traefik container creation fails for a reason other than port taken
2025-06-01 15:42:00 -06:00
Torsten Dittmann
88e862544b fix[domains]: Add CDN provider detection with dynamic display names
Implements generic CDN detection service supporting Cloudflare, Fastly,
and Bunny CDN. Replaces hardcoded "Behind Cloudflare" text with
dynamic provider names and adds IP range validation for comprehensive
CDN detection.
2025-06-01 23:03:00 +02:00
Torsten Dittmann
7f9c19bc11 fix[railpack]: environment variable validation for empty strings
Allow empty string values to be processed as valid environment
variables by checking for existence rather than non-empty length.
2025-06-01 22:22:16 +02:00
Torsten Dittmann
9535276fe6 fix[railpack]: env parsing and update railpack to v0.0.66
Improve environment variable parsing to handle values containing equals
signs by extracting a dedicated parseEnvironmentKeyValuePair function
and updating Railpack secret formatting.
2025-06-01 22:03:16 +02:00
ayham291
56d21aff60 fix: add authorization checks in GitHub router to include userId validation
- Updated conditional checks to ensure that the GitHub provider's userId matches the session userId, in addition to the organizationId, for improved security and access control.
2025-06-01 20:53:54 +02:00
ayham291
8436d364be refactor: linter fixes 2025-06-01 20:46:32 +02:00
ayham291
5d5e56d144 feat: GitHub and GitLab provider integration with user association
- Added userId to the GitHub and GitLab provider setup to associate providers with the user who created them.
- Updated redirect URL in GitHub provider to include userId for better tracking.
- Modified API handlers and service functions to accommodate userId in provider creation and validation.
2025-06-01 20:45:29 +02:00
ayham291
0627b6fd3a refactor: clean up conditional checks in Bitbucket and Gitea routers for improved readability 2025-05-31 01:52:24 +02:00
ayham291
39af44daef feat: add user property to git-providers (bitbucket, gitea)
- relate a provider to the user who created it.
- for now the provider is only visible to its user.
2025-05-31 01:21:46 +02:00
Mauricio Siu
2619cb49d1 refactor: restore commented-out test cases and imports in drop.test.test.ts for improved functionality
Some checks failed
Auto PR to main when version changes / create-pr (push) Has been cancelled
Build Docker images / build-and-push-cloud-image (push) Has been cancelled
Build Docker images / build-and-push-schedule-image (push) Has been cancelled
Build Docker images / build-and-push-server-image (push) Has been cancelled
Dokploy Docker Build / docker-amd (push) Has been cancelled
Dokploy Docker Build / docker-arm (push) Has been cancelled
autofix.ci / format (push) Has been cancelled
Dokploy Monitoring Build / docker-amd (push) Has been cancelled
Dokploy Monitoring Build / docker-arm (push) Has been cancelled
Dokploy Docker Build / combine-manifests (push) Has been cancelled
Dokploy Docker Build / generate-release (push) Has been cancelled
Dokploy Monitoring Build / combine-manifests (push) Has been cancelled
2025-05-28 02:44:06 -06:00
Mauricio Siu
46d12fa9d8 Merge pull request #1967 from Dokploy/feat/add-chatwoot
Feat/add chatwoot
2025-05-28 02:41:45 -06:00
Mauricio Siu
51ee46496c chore: update pnpm lockfile with dependency version upgrades for improved stability and compatibility 2025-05-28 02:39:18 -06:00
Mauricio Siu
a13e24dab0 refactor: simplify Chatwoot widget condition in dashboard layout for improved readability 2025-05-28 02:33:44 -06:00
Mauricio Siu
4aac3476b6 refactor: update Chatwoot widget settings and types to enhance configuration options 2025-05-28 02:33:14 -06:00
Mauricio Siu
037343a796 feat: integrate Chatwoot widget into dashboard layout and replace project layout with dashboard layout in various pages 2025-05-28 02:22:56 -06:00
Mauricio Siu
274d80ea7c refactor: comment out test cases and imports in drop.test.test.ts for cleanup 2025-05-28 00:51:20 -06:00
Mauricio Siu
629889f1a8 refactor: reorganize imports and enhance backup functionality across various components 2025-05-28 00:38:53 -06:00
Mauricio Siu
3e74ce05a7 Merge pull request #1960 from Lux1L/feature/gitlab-subgroup-filtering
feat(gitlab): support nested group filtering using namespace.full_pat…
2025-05-28 00:37:05 -06:00
Mauricio Siu
d05218e848 Merge pull request #1958 from IPdotSetAF/git-lfs-fix
fix: moved git lfs from build stage to dokploy stage in dockerfile
2025-05-28 00:36:12 -06:00
Mauricio Siu
0fbad4f75e docs: remove supported OS section from README.md 2025-05-28 00:34:47 -06:00
IPdotSetAF
c3cbaf2a57 fix: moved git lfs from build stage to dokploy stage in dockerfile 2025-05-27 22:16:46 +03:30
avalolu
560d493d56 feat(gitlab): support nested group filtering using namespace.full_path.startsWith 2025-05-26 18:00:03 -04:00
Mauricio Siu
27b2106630 chore: bump version to v0.22.7 in package.json
Some checks failed
Auto PR to main when version changes / create-pr (push) Has been cancelled
Build Docker images / build-and-push-cloud-image (push) Has been cancelled
Build Docker images / build-and-push-schedule-image (push) Has been cancelled
Build Docker images / build-and-push-server-image (push) Has been cancelled
Dokploy Docker Build / docker-amd (push) Has been cancelled
Dokploy Docker Build / docker-arm (push) Has been cancelled
autofix.ci / format (push) Has been cancelled
Dokploy Monitoring Build / docker-amd (push) Has been cancelled
Dokploy Monitoring Build / docker-arm (push) Has been cancelled
Dokploy Docker Build / combine-manifests (push) Has been cancelled
Dokploy Docker Build / generate-release (push) Has been cancelled
Dokploy Monitoring Build / combine-manifests (push) Has been cancelled
2025-05-26 03:11:23 -06:00
Mauricio Siu
609954c366 Merge pull request #1931 from nktnet1/nginx-static-spa-build
feat: added SPA option for static sites
2025-05-26 03:10:51 -06:00
Mauricio Siu
84faa9747e chore: update Node.js version to 20.16.0 in configuration files 2025-05-26 03:09:09 -06:00
Mauricio Siu
4b370ef43e chore: update otpauth version to 9.4.0 in pnpm-lock.yaml 2025-05-26 03:01:57 -06:00
Mauricio Siu
b94a6bff92 Merge branch 'canary' into nginx-static-spa-build 2025-05-26 02:59:03 -06:00
Mauricio Siu
276b754377 chore: downgrade docker/build-push-action to version 4 in deploy workflows 2025-05-26 02:27:41 -06:00
Mauricio Siu
f3b3798362 chore: update docker/build-push-action to version 6 in deploy workflows 2025-05-26 02:15:08 -06:00
Mauricio Siu
461acc354e Merge pull request #1955 from Dokploy/1923-v0226-git-lfs-is-not-working-at-all-despite-1872
chore: add git-lfs to Dockerfile for large file support
2025-05-26 02:00:50 -06:00
Mauricio Siu
dfc75a9116 chore: remove Dockerfile for dokploy as part of project restructuring 2025-05-26 01:53:24 -06:00
Mauricio Siu
e1580bad23 chore: add git-lfs to Dockerfile for large file support 2025-05-26 01:52:41 -06:00
Mauricio Siu
b567ec1d83 Merge pull request #1954 from Dokploy/1943-error-backing-up-mysql-to-cloudflare-r2
feat: add pino and pino-pretty for logging, implement logger utility
2025-05-26 01:48:35 -06:00
Mauricio Siu
9c73b8dc36 feat: add pino and pino-pretty for logging, implement logger utility 2025-05-26 01:45:14 -06:00
Mauricio Siu
7348526873 Merge pull request #1953 from Dokploy/1898-remote-server-with-ipv6
fix: update slugIp formatting to handle colons in server IP
2025-05-26 00:55:43 -06:00
Mauricio Siu
6fc83f2db3 fix: update slugIp formatting to handle colons in server IP 2025-05-26 00:55:22 -06:00
Khiet Tam Nguyen
43d22c2bd4 test: fix typescript error for isStaticSpa 2025-05-20 16:33:34 +10:00
autofix-ci[bot]
38a5313967 [autofix.ci] apply automated fixes 2025-05-20 06:18:00 +00:00
Khiet Tam Nguyen
ba3645933f feat: added SPA option for static sites 2025-05-20 16:11:48 +10:00
Khiet Tam Nguyen
2fa2e76e2e fix: throw error if traefik container creation fails for a reason other than port 2025-05-20 15:28:45 +10:00
Mauricio Siu
17a26353b6 chore: bump version to v0.22.6 in package.json
Some checks failed
Auto PR to main when version changes / create-pr (push) Has been cancelled
Build Docker images / build-and-push-cloud-image (push) Has been cancelled
Build Docker images / build-and-push-schedule-image (push) Has been cancelled
Build Docker images / build-and-push-server-image (push) Has been cancelled
Dokploy Docker Build / docker-amd (push) Has been cancelled
Dokploy Docker Build / docker-arm (push) Has been cancelled
autofix.ci / format (push) Has been cancelled
Dokploy Monitoring Build / docker-amd (push) Has been cancelled
Dokploy Monitoring Build / docker-arm (push) Has been cancelled
Dokploy Docker Build / combine-manifests (push) Has been cancelled
Dokploy Docker Build / generate-release (push) Has been cancelled
Dokploy Monitoring Build / combine-manifests (push) Has been cancelled
2025-05-18 02:30:04 -06:00
Mauricio Siu
e2c163c6d5 Merge pull request #1919 from nktnet1/fix-randomise-compose-await
fix: randomize-compose missing await
2025-05-18 02:29:32 -06:00
Khiet Tam Nguyen
616e11722c fix: randomize-compose missing await 2025-05-18 18:26:44 +10:00
Mauricio Siu
91a44706df Merge pull request #1917 from nktnet1/fix-isolated-randomized-compose-notifs
fix: multiple notifications for isolated compose and randomize compose
2025-05-18 02:19:51 -06:00
Mauricio Siu
748de47a6d Merge pull request #1918 from Dokploy/fix/web-server-backup-maxlenght
fix: update rsync command in web server backup to remove verbose flag
2025-05-18 02:18:31 -06:00
Mauricio Siu
cbf9aef0df fix: remove console log for rsync command in web server backup 2025-05-18 02:18:05 -06:00
Mauricio Siu
e2befc24a5 fix: update rsync command in web server backup to remove verbose flag 2025-05-18 02:17:41 -06:00
autofix-ci[bot]
0f48f2c830 [autofix.ci] apply automated fixes 2025-05-18 05:12:06 +00:00
Khiet Tam Nguyen
5dfa7645f3 fix: multiple notifications for isolated compose and randomize compose 2025-05-18 15:07:05 +10:00
Mauricio Siu
7fe163dd33 Merge pull request #1913 from Dokploy/feat/add-appname-compose
Some checks are pending
Auto PR to main when version changes / create-pr (push) Waiting to run
Build Docker images / build-and-push-cloud-image (push) Waiting to run
Build Docker images / build-and-push-schedule-image (push) Waiting to run
Build Docker images / build-and-push-server-image (push) Waiting to run
Dokploy Docker Build / docker-amd (push) Waiting to run
Dokploy Docker Build / docker-arm (push) Waiting to run
Dokploy Docker Build / combine-manifests (push) Blocked by required conditions
Dokploy Docker Build / generate-release (push) Blocked by required conditions
autofix.ci / format (push) Waiting to run
Dokploy Monitoring Build / docker-amd (push) Waiting to run
Dokploy Monitoring Build / docker-arm (push) Waiting to run
Dokploy Monitoring Build / combine-manifests (push) Blocked by required conditions
Feat/add appname compose
2025-05-17 15:37:22 -06:00
Mauricio Siu
19b56771b8 style: update styling for environment display and increase scroll area height in import component 2025-05-17 15:28:52 -06:00
Mauricio Siu
cff01ed438 refactor: modify template processing to include APP_NAME variable in configuration 2025-05-17 15:27:42 -06:00
Mauricio Siu
10fa3c8cf1 fix: update environment file generation to include APP_NAME variable 2025-05-17 15:18:31 -06:00
Mauricio Siu
6c5497ed21 Merge pull request #1912 from Dokploy/1873-duplicate-clones-the-project-not-the-service
feat: enhance project duplication functionality with options for new …
2025-05-17 14:35:17 -06:00
Mauricio Siu
380656efee feat: enhance project duplication functionality with options for new or same project 2025-05-17 14:33:07 -06:00
Mauricio Siu
c64d2245ce Merge pull request #1897 from enie123/canary
Some checks are pending
Auto PR to main when version changes / create-pr (push) Waiting to run
Build Docker images / build-and-push-cloud-image (push) Waiting to run
Build Docker images / build-and-push-schedule-image (push) Waiting to run
Build Docker images / build-and-push-server-image (push) Waiting to run
Dokploy Docker Build / docker-amd (push) Waiting to run
Dokploy Docker Build / docker-arm (push) Waiting to run
Dokploy Docker Build / combine-manifests (push) Blocked by required conditions
Dokploy Docker Build / generate-release (push) Blocked by required conditions
autofix.ci / format (push) Waiting to run
Dokploy Monitoring Build / docker-amd (push) Waiting to run
Dokploy Monitoring Build / docker-arm (push) Waiting to run
Dokploy Monitoring Build / combine-manifests (push) Blocked by required conditions
build: update nixpacks to 1.39.0
2025-05-17 03:54:11 -06:00
Mauricio Siu
a985998b93 feat: add VPS provider recommendations and alerts in server settings 2025-05-17 03:53:37 -06:00
Mauricio Siu
4f3ba16dfa chore: bump version to v0.22.5 in package.json 2025-05-17 03:34:31 -06:00
Mauricio Siu
6c788429f1 Merge pull request #1910 from Dokploy/1894-gitlab-self-hosted-cannot-find-all-repository
refactor: streamline GitLab repository fetching by introducing valida…
2025-05-17 03:02:26 -06:00
Mauricio Siu
3176a9d7e3 refactor: streamline GitLab repository fetching by introducing validateGitlabProvider function for improved error handling and pagination 2025-05-17 02:51:40 -06:00
Mauricio Siu
94a6a9587e Merge pull request #1872 from IPdotSetAF/git-lfs-not-supported
fix: installed git-lfs in docker image
2025-05-17 02:09:03 -06:00
Mauricio Siu
911681f389 fix: add git-lfs installation to various OS setups in server-setup script 2025-05-17 02:03:04 -06:00
Mauricio Siu
5992688e85 Merge pull request #1909 from Dokploy/1868-backups-failing-due-to-a-directory-not-empty-error
refactor: improve cleanup process in web server backup utility to han…
2025-05-17 00:21:58 -06:00
Mauricio Siu
425061e481 refactor: improve cleanup process in web server backup utility to handle errors during temporary directory removal 2025-05-17 00:20:54 -06:00
Mauricio Siu
08c0bf8a21 Merge pull request #1908 from Dokploy/1863-pg_dump-backup-fails-stdout-maxbuffer-length-exceeded
refactor: update database backup process in web server utility to use…
2025-05-17 00:14:59 -06:00
Mauricio Siu
64a2c9e0a1 refactor: update database backup process in web server utility to use temporary file in container 2025-05-17 00:13:43 -06:00
Mauricio Siu
21e46f5382 Merge pull request #1907 from Dokploy/1878-dokploy-application-settings-not-linked-resulting-in-progress-lost-on-save
fix: update dependencies in save provider components to use optional …
2025-05-16 23:23:20 -06:00
autofix-ci[bot]
52b2158309 [autofix.ci] apply automated fixes 2025-05-17 05:22:55 +00:00
Mauricio Siu
178d84d438 fix: update dependencies in save provider components to use optional chaining for applicationId and composeId 2025-05-16 23:22:26 -06:00
Mauricio Siu
80016b57a8 Merge pull request #1906 from Dokploy/1888-docker-compose-preview-is-null
feat(ui): add loading state and no data message to converted compose …
2025-05-16 23:16:29 -06:00
Mauricio Siu
b4b2d12f6e feat(ui): add loading state and no data message to converted compose display 2025-05-16 23:16:02 -06:00
Mauricio Siu
294378d95b Merge pull request #1886 from oshanavishkapiries/canary
fix: Submit Log in issue on Github
2025-05-16 23:03:50 -06:00
Mauricio Siu
c52812f9d3 Merge pull request #1903 from yergom/fix/watch-path-wording
fix: more informative placeholder for watch path
2025-05-16 23:03:13 -06:00
Mauricio Siu
82f7c5d5f3 Merge pull request #1904 from darena-patrick/fix/compose-deploy-url
fix: Missing `/compose` in auto-deploy URL
2025-05-16 23:00:47 -06:00
Mauricio Siu
3d2ae52259 Merge pull request #1891 from nktnet1/fix-domain-responsiveness
Fix domain responsiveness
2025-05-16 22:59:41 -06:00
Patrick Schiess
bf115c7895 fix: Missing /compose in auto-deploy URL 2025-05-16 16:12:09 -06:00
yergom
c2c29dbaba fix: more informative placeholder for watch path 2025-05-16 13:25:28 +00:00
Eric Nie
d4032f34bf build: update nixpacks to 1.39.0 2025-05-15 00:45:48 +07:00
Tam Nguyen
136570b36c fix(ui): compose grid responsiveness starts from xl instead of lg 2025-05-13 16:01:25 +10:00
Tam Nguyen
7d0075c230 fix(ui): domain responsiveness with screen width 2025-05-13 15:43:52 +10:00
Tam Nguyen
19b4edee8d refactor: remove redundant class bg-card due to bg-transparent set later 2025-05-13 15:15:54 +10:00
153918928+oshanavishkapiries@users.noreply.github.com
7f04eb856e fix: Submit Log in issue on Github 2025-05-13 01:56:55 +05:30
IPdotSetAF
5156b45ffc fix: installed git-lfs in docker image 2025-05-11 10:36:52 +03:30
Mauricio Siu
80e6f21840 chore: bump version to v0.22.4 in package.json
Some checks failed
Auto PR to main when version changes / create-pr (push) Has been cancelled
Build Docker images / build-and-push-cloud-image (push) Has been cancelled
Build Docker images / build-and-push-schedule-image (push) Has been cancelled
Build Docker images / build-and-push-server-image (push) Has been cancelled
Dokploy Docker Build / docker-amd (push) Has been cancelled
Dokploy Docker Build / docker-arm (push) Has been cancelled
autofix.ci / format (push) Has been cancelled
Dokploy Monitoring Build / docker-amd (push) Has been cancelled
Dokploy Monitoring Build / docker-arm (push) Has been cancelled
Dokploy Docker Build / combine-manifests (push) Has been cancelled
Dokploy Docker Build / generate-release (push) Has been cancelled
Dokploy Monitoring Build / combine-manifests (push) Has been cancelled
2025-05-10 20:54:36 -06:00
Mauricio Siu
5b519151e8 refactor: streamline Remove Invitation dropdown menu item in ShowInvitations component 2025-05-10 20:40:11 -06:00
Mauricio Siu
2ad8bf355b feat: implement rollback functionality with UI components and database schema updates
- Added ShowEnv and ShowRollbackSettings components for displaying and configuring rollback settings.
- Implemented ShowRollbacks component to list and manage rollbacks for applications.
- Created rollback database schema and updated application schema to include rollback settings.
- Added API routes for managing rollbacks, including fetching, creating, and deleting rollbacks.
- Integrated rollback functionality into the application deployment process.
2025-05-10 20:28:34 -06:00
Mauricio Siu
aa475e6123 Merge pull request #1860 from yusoofsh/pgrestore-no-owner
Some checks are pending
Auto PR to main when version changes / create-pr (push) Waiting to run
Build Docker images / build-and-push-cloud-image (push) Waiting to run
Build Docker images / build-and-push-schedule-image (push) Waiting to run
Build Docker images / build-and-push-server-image (push) Waiting to run
Dokploy Docker Build / docker-amd (push) Waiting to run
Dokploy Docker Build / docker-arm (push) Waiting to run
Dokploy Docker Build / combine-manifests (push) Blocked by required conditions
Dokploy Docker Build / generate-release (push) Blocked by required conditions
autofix.ci / format (push) Waiting to run
Dokploy Monitoring Build / docker-amd (push) Waiting to run
Dokploy Monitoring Build / docker-arm (push) Waiting to run
Dokploy Monitoring Build / combine-manifests (push) Blocked by required conditions
Add no owner options to pg_restore
2025-05-10 15:22:41 -06:00
Mauricio Siu
66756c34fe chore: update AmericanCloud logo in README to PNG format and adjust height
Some checks are pending
Auto PR to main when version changes / create-pr (push) Waiting to run
Build Docker images / build-and-push-cloud-image (push) Waiting to run
Build Docker images / build-and-push-schedule-image (push) Waiting to run
Build Docker images / build-and-push-server-image (push) Waiting to run
Dokploy Docker Build / docker-amd (push) Waiting to run
Dokploy Docker Build / docker-arm (push) Waiting to run
Dokploy Docker Build / combine-manifests (push) Blocked by required conditions
Dokploy Docker Build / generate-release (push) Blocked by required conditions
autofix.ci / format (push) Waiting to run
Dokploy Monitoring Build / docker-amd (push) Waiting to run
Dokploy Monitoring Build / docker-arm (push) Waiting to run
Dokploy Monitoring Build / combine-manifests (push) Blocked by required conditions
2025-05-10 03:30:01 -06:00
Mauricio Siu
946a5739dc chore: replace AmericanCloud SVG logo with PNG format 2025-05-10 03:29:38 -06:00
Mauricio Siu
6c817a9e5d feat: add AmericanCloud sponsorship to README and include SVG logo 2025-05-10 03:28:19 -06:00
Mauricio Siu
6aea937e86 chore: remove bun.lock file to clean up unused lockfile 2025-05-10 03:10:49 -06:00
Mauricio Siu
19612d4b66 Revert "refactor: remove unused volume suffix function from collision utility"
This reverts commit 47dd003461.
2025-05-10 02:58:01 -06:00
Mauricio Siu
47dd003461 refactor: remove unused volume suffix function from collision utility 2025-05-10 02:57:21 -06:00
Mauricio Siu
def99225fc Merge pull request #1865 from Dokploy/fix/isolated-docker-stack
fix: update Docker network creation command to support overlay driver in docker stack deployments
2025-05-10 02:33:04 -06:00
Mauricio Siu
32405fc61a fix: update Docker network creation command to support overlay driver for stack deployments 2025-05-10 02:13:57 -06:00
Mauricio Siu
25e1a9af57 Merge pull request #1859 from yusoofsh/fix-swarm-database-backup-restore
Fix container not found upon backup/restore on compose stack
2025-05-10 01:45:12 -06:00
Mauricio Siu
1fcb1f2c5e fix: update Docker command filter for service name in backup utility 2025-05-10 01:43:57 -06:00
Mauricio Siu
fdaba7e752 Merge pull request #1864 from Dokploy/fix/404-unauthorized-endpoints
chore: update better-auth to v1.2.8-beta.7 in package.json and pnpm-l…
2025-05-10 01:37:51 -06:00
Mauricio Siu
c1640cba29 chore: update better-auth to v1.2.8-beta.7 in package.json and pnpm-lock.yaml 2025-05-10 01:30:03 -06:00
Yusoof Moh
3bd54ff61e fix: add no owner options to pg_restore 2025-05-10 00:12:33 +07:00
Yusoof Moh
5853d18bc1 fix: container not found upon backup/restore on compose stack 2025-05-09 23:42:34 +07:00
Mauricio Siu
f575317906 Merge pull request #1848 from Dokploy/feat/add-builders-alert
Some checks failed
Auto PR to main when version changes / create-pr (push) Has been cancelled
Build Docker images / build-and-push-cloud-image (push) Has been cancelled
Build Docker images / build-and-push-schedule-image (push) Has been cancelled
Build Docker images / build-and-push-server-image (push) Has been cancelled
Dokploy Docker Build / docker-amd (push) Has been cancelled
Dokploy Docker Build / docker-arm (push) Has been cancelled
autofix.ci / format (push) Has been cancelled
Dokploy Monitoring Build / docker-amd (push) Has been cancelled
Dokploy Monitoring Build / docker-arm (push) Has been cancelled
Dokploy Docker Build / combine-manifests (push) Has been cancelled
Dokploy Docker Build / generate-release (push) Has been cancelled
Dokploy Monitoring Build / combine-manifests (push) Has been cancelled
feat: add alert block to ShowBuildChooseForm for resource usage guidance
2025-05-06 23:37:24 -06:00
Mauricio Siu
e6028e73ac feat: add alert block to ShowBuildChooseForm for resource usage guidance 2025-05-06 23:37:05 -06:00
Mauricio Siu
bcbed151e8 Merge pull request #1841 from MauruschatM/canary
Some checks are pending
Auto PR to main when version changes / create-pr (push) Waiting to run
Build Docker images / build-and-push-cloud-image (push) Waiting to run
Build Docker images / build-and-push-schedule-image (push) Waiting to run
Build Docker images / build-and-push-server-image (push) Waiting to run
Dokploy Docker Build / docker-amd (push) Waiting to run
Dokploy Docker Build / docker-arm (push) Waiting to run
Dokploy Docker Build / combine-manifests (push) Blocked by required conditions
Dokploy Docker Build / generate-release (push) Blocked by required conditions
autofix.ci / format (push) Waiting to run
Dokploy Monitoring Build / docker-amd (push) Waiting to run
Dokploy Monitoring Build / docker-arm (push) Waiting to run
Dokploy Monitoring Build / combine-manifests (push) Blocked by required conditions
update railpack to 0.0.64
2025-05-06 23:22:27 -06:00
Mauricio Siu
c708f7ba62 Update version in package.json to v0.22.3 2025-05-06 23:13:42 -06:00
Mauricio Siu
95a538f261 Merge pull request #1846 from Dokploy/fix/dockerfile-env-vars
fix: wrap build arguments in single quotes for Docker command
2025-05-06 23:12:35 -06:00
Mauricio Siu
f854457d69 fix: wrap build arguments in single quotes for Docker command 2025-05-06 23:11:37 -06:00
Mauricio Siu
cd998c37f1 refactor: update railpack 2025-05-06 23:04:58 -06:00
Mauricio Siu
d46a61098b Merge pull request #1840 from Smip/canary
fix: use root password instead of user one
2025-05-06 22:58:16 -06:00
Moritz Mauruschat
8f14d854a0 Update railpack to 0.064 2025-05-06 13:32:16 +02:00
Aleksandr Sokolov
388399b370 fix: use root password instead of user one 2025-05-06 13:02:26 +02:00
Mauricio Siu
a8b4bb9c41 Merge pull request #1835 from Dokploy/feat/add-impersionation-cloud
Some checks are pending
Auto PR to main when version changes / create-pr (push) Waiting to run
Build Docker images / build-and-push-cloud-image (push) Waiting to run
Build Docker images / build-and-push-schedule-image (push) Waiting to run
Build Docker images / build-and-push-server-image (push) Waiting to run
Dokploy Docker Build / docker-amd (push) Waiting to run
Dokploy Docker Build / docker-arm (push) Waiting to run
Dokploy Docker Build / combine-manifests (push) Blocked by required conditions
Dokploy Docker Build / generate-release (push) Blocked by required conditions
autofix.ci / format (push) Waiting to run
Dokploy Monitoring Build / docker-amd (push) Waiting to run
Dokploy Monitoring Build / docker-arm (push) Waiting to run
Dokploy Monitoring Build / combine-manifests (push) Blocked by required conditions
Feat/add impersionation cloud
2025-05-06 02:39:24 -06:00
Mauricio Siu
ebc8c2f73d Add default user role and impersonation settings in tests
- Updated the baseAdmin user object in the update-server-config test to include default values for allowImpersonation and role, ensuring comprehensive test coverage for user management features.
2025-05-06 02:37:41 -06:00
Mauricio Siu
1227d2b5fc Update version in package.json to v0.22.2 2025-05-06 02:35:08 -06:00
Mauricio Siu
314438b84c Enhance impersonation functionality and user management
- Updated the ImpersonationBar component to fetch users dynamically and handle impersonation actions more efficiently.
- Refactored the ProfileForm to set the allowImpersonation value directly, improving form handling.
- Modified the DashboardLayout to conditionally render the ImpersonationBar based on user permissions and cloud settings.
- Added a new role column to the user_temp table to support user role management.
- Updated API routes to include checks for root access and improved user listing functionality.
2025-05-06 02:32:08 -06:00
Mauricio Siu
cc5574e08a Add impersonation feature to user management
- Introduced an ImpersonationBar component for admin users to impersonate other users, enhancing user management capabilities.
- Updated the ProfileForm to include an option for allowing impersonation, with a description for clarity.
- Modified the DashboardLayout to conditionally display the impersonation bar based on user roles and cloud settings.
- Added database schema changes to support the new impersonation feature, including a new column for allowImpersonation in the user table.
- Implemented necessary API updates to handle impersonation actions and user data retrieval.
2025-05-06 01:46:20 -06:00
Mauricio Siu
11a8fcc476 Merge pull request #1829 from Dokploy/Siumauricio-patch-1
Some checks are pending
Auto PR to main when version changes / create-pr (push) Waiting to run
Build Docker images / build-and-push-cloud-image (push) Waiting to run
Build Docker images / build-and-push-schedule-image (push) Waiting to run
Build Docker images / build-and-push-server-image (push) Waiting to run
Dokploy Docker Build / docker-amd (push) Waiting to run
Dokploy Docker Build / docker-arm (push) Waiting to run
Dokploy Docker Build / combine-manifests (push) Blocked by required conditions
Dokploy Docker Build / generate-release (push) Blocked by required conditions
autofix.ci / format (push) Waiting to run
Dokploy Monitoring Build / docker-amd (push) Waiting to run
Dokploy Monitoring Build / docker-arm (push) Waiting to run
Dokploy Monitoring Build / combine-manifests (push) Blocked by required conditions
Update README.md
2025-05-05 03:09:16 -06:00
Mauricio Siu
c50229a33c Update README.md 2025-05-05 03:09:02 -06:00
Mauricio Siu
0609d74d2b Replace agentdock sponsorship image with a PNG format in README
- Updated the README to use a new PNG image for agentdock.ai sponsorship, replacing the previous JPG file to improve image quality and compatibility.
2025-05-05 03:04:44 -06:00
Mauricio Siu
fce8eca894 Update image dimensions in README for sponsorships
- Adjusted the height attributes of images for Supafort and agentdock in the Premium Supporters section to improve visual consistency and alignment.
2025-05-05 03:01:50 -06:00
Mauricio Siu
3de0d674ed Refactor Premium Supporters section in README
- Updated the layout of the Premium Supporters section for better alignment and spacing.
- Adjusted the gap between elements to enhance visual appeal and readability.
2025-05-05 02:59:50 -06:00
Mauricio Siu
7faab54a65 Update version in package.json to v0.22.1 2025-05-05 02:58:57 -06:00
Mauricio Siu
40d9db7ccf Add agentdock sponsorship to README
- Included a new sponsorship section in the README to feature agentdock.ai.
- Added an image link for agentdock.ai alongside existing sponsorships, enhancing visibility for premium supporters.
2025-05-05 02:58:52 -06:00
Mauricio Siu
c7c01f57d4 Merge pull request #1827 from Dokploy/fix/backups-shell
Update backup command execution to use bash shell in multiple backup …
2025-05-05 02:54:10 -06:00
Mauricio Siu
45cf295be0 Update backup command execution to use bash shell in multiple backup utilities
- Modified the `execAsync` calls in `compose.ts`, `mariadb.ts`, `mongo.ts`, and `mysql.ts` to specify the bash shell for executing backup commands, ensuring compatibility with bash-specific features across all backup utilities.
2025-05-05 02:52:50 -06:00
Mauricio Siu
79372527e6 Update backup command execution to use bash shell
- Modified the `execAsync` call in `postgres.ts` to specify the bash shell for executing backup commands, ensuring compatibility with bash-specific features.
- Removed the shebang line from the backup command script in `utils.ts` to streamline the script's execution context.
2025-05-05 02:37:49 -06:00
Mauricio Siu
edcfc7d670 Add shebang to backup command script in utils.ts
- Introduced a shebang line to the backup command script for improved compatibility and execution in a bash environment.
- This change enhances the script's portability and ensures it runs correctly in various shell contexts.
2025-05-05 02:09:03 -06:00
Mauricio Siu
6277ebaaec Merge pull request #1823 from Dokploy/fix/dokploy-backups-race-condition
Some checks are pending
Auto PR to main when version changes / create-pr (push) Waiting to run
Build Docker images / build-and-push-cloud-image (push) Waiting to run
Build Docker images / build-and-push-schedule-image (push) Waiting to run
Build Docker images / build-and-push-server-image (push) Waiting to run
Dokploy Docker Build / docker-amd (push) Waiting to run
Dokploy Docker Build / docker-arm (push) Waiting to run
Dokploy Docker Build / combine-manifests (push) Blocked by required conditions
Dokploy Docker Build / generate-release (push) Blocked by required conditions
autofix.ci / format (push) Waiting to run
Dokploy Monitoring Build / docker-amd (push) Waiting to run
Dokploy Monitoring Build / docker-arm (push) Waiting to run
Dokploy Monitoring Build / combine-manifests (push) Blocked by required conditions
Fix/dokploy backups race condition
2025-05-04 22:22:03 -06:00
Mauricio Siu
2b081166f9 Update version in package.json to v0.22.0 2025-05-04 22:19:58 -06:00
Mauricio Siu
d8f12f1780 Update Dockerfile to include rsync and refactor backup command in web-server.ts
- Added `rsync` to the Dockerfile for improved file synchronization capabilities.
- Refactored the backup command in `web-server.ts` to use `rsync` instead of `cp`, enhancing error handling and performance during filesystem copying.
2025-05-04 22:19:24 -06:00
Mauricio Siu
95d949f112 Add databaseType prop to HandleBackup component in ShowBackups
- Enhanced the HandleBackup component by passing the databaseType prop, improving the context for backup handling.
- This update aims to streamline the backup process and provide better integration with the database type information.
2025-05-04 21:37:40 -06:00
Mauricio Siu
1ec0c8e8b3 Merge pull request #1821 from Dokploy/1798-gitea-provider-only-returns-a-subset-of-repositories-to-choose-from
Refactor Gitea repository fetching to handle pagination
2025-05-04 21:07:47 -06:00
Mauricio Siu
b9ac25ef42 Refactor schedule run handling in ShowSchedules component
- Simplified the schedule run logic by directly displaying a success toast upon execution.
- Removed redundant error handling for schedule runs, streamlining the code for better readability and maintainability.
2025-05-04 21:06:34 -06:00
Mauricio Siu
9fe2460b88 Add message for empty branches in Gitea provider
- Introduced a conditional rendering for displaying a message when no branches are found in the Gitea provider component, enhancing user feedback during branch selection.
- This update improves the overall user experience by clearly indicating the absence of branches.
2025-05-04 21:05:16 -06:00
Mauricio Siu
44af0ec975 Refactor Gitea repository fetching to handle pagination
- Updated the `testGiteaConnection` and `getGiteaRepositories` functions to implement pagination when fetching repositories from the Gitea API, ensuring all repositories are retrieved.
- Enhanced error handling for API responses and improved the structure of the returned repository data.
- Removed deprecated code related to direct repository fetching, streamlining the overall logic.
2025-05-04 21:03:31 -06:00
Mauricio Siu
b84b4549a0 Merge pull request #1820 from Dokploy/1818-supporting-non-english-letters-in-the-title-when-creating-an-application-service
Refactor appName generation in dashboard components
2025-05-04 20:19:54 -06:00
Mauricio Siu
c110fae965 Remove console log from appName generation in AddDatabase component 2025-05-04 20:15:17 -06:00
Mauricio Siu
86b56e2597 Refactor appName generation in dashboard components
- Updated the appName generation logic in `AddApplication`, `AddCompose`, and `AddDatabase` components to use the `slugify` function for improved consistency and readability.
- Enhanced the `slugify` function to return a default value of "service" if the input is empty, ensuring robustness in name generation.
- Improved project name validation in `handle-project.tsx` to enforce stricter rules on naming conventions.
2025-05-04 20:14:49 -06:00
Mauricio Siu
7e365e1947 Merge pull request #1817 from Rxflex/patch-1
limit rawLogs to max number of lines by trimming old entries
2025-05-04 20:00:49 -06:00
autofix-ci[bot]
d458536803 [autofix.ci] apply automated fixes 2025-05-05 01:57:10 +00:00
Mauricio Siu
9cb5b9a7d0 Update deployments tab styling for improved layout
- Added a full-width class to the `TabsContent` for deployments, enhancing the visual layout.
- Introduced a border and rounded corners to the deployment container for better aesthetics and user experience.
2025-05-04 19:31:18 -06:00
Mauricio Siu
7e9fccfcb0 Merge pull request #1819 from Dokploy/1811-security-issue-with-service-access-across-organization-users
Refactor user role handling in TRPC context and routers
2025-05-04 19:29:26 -06:00
Mauricio Siu
1c73dab719 Refactor user role handling in TRPC context and routers
- Updated the user role property from `rol` to `role` across multiple TRPC context and router files to ensure consistency and clarity in role management.
- Adjusted conditional checks for user roles in various procedures to reflect the updated property name, enhancing code readability and maintainability.
2025-05-04 19:26:09 -06:00
Andy
3ec339fc89 limit rawLogs to max number of lines by trimming old entries
https://github.com/Dokploy/dokploy/issues/1815
2025-05-05 02:10:34 +02:00
Mauricio Siu
c13a68dab4 Merge pull request #1814 from Dokploy/1690-remove-unused-networks-when-removing-projects-or-apps
Enhance compose removal process by adding network disconnection command
2025-05-04 16:50:27 -06:00
Mauricio Siu
eb5ba2f219 Enhance compose removal process by adding network disconnection command
- Updated the `removeCompose` function to include a command for disconnecting the Docker network before removing the stack or compose application, improving cleanup reliability.
- Removed unnecessary console logging in the `getServiceImageDigest` function to streamline output and enhance code clarity.
2025-05-04 16:50:03 -06:00
Mauricio Siu
1eda6513df Merge pull request #1813 from Dokploy/fix/backup-appName-migration
Enhance backup table schema with dynamic appName generation
2025-05-04 15:53:00 -06:00
Mauricio Siu
4bb60b9f7e Enhance backup table schema with dynamic appName generation
- Modified the `backup` table to include a new `appName` column, which is now populated with a dynamically generated name combining random selections from predefined arrays and a random hash.
- Ensured the `appName` column is set to NOT NULL after the update, maintaining data integrity.
- Retained existing columns and added new ones for improved backup management.
2025-05-04 15:52:37 -06:00
Mauricio Siu
9948dd7f19 Merge pull request #1801 from Dokploy/187-backups-for-docker-compose
187 backups for docker compose for cloud version
2025-05-04 15:17:08 -06:00
Mauricio Siu
e3ec8f1589 Add backup and deployment schema updates for improved data handling
- Introduced new SQL file `0089_noisy_sandman.sql` to create a new enum type `backupType` and add relevant columns to the `backup` and `deployment` tables, enhancing data structure for backup management.
- Removed outdated SQL files `0090_lame_gressill.sql` and `0091_colossal_lifeguard.sql` that contained redundant column definitions, streamlining the database schema.
- Updated journal and snapshot JSON files to reflect the latest schema changes, ensuring consistency across the database structure.
2025-05-04 15:13:49 -06:00
Mauricio Siu
9aa56870b0 Update deployment and backup components for improved handling and user experience
- Refined the `ShowDeployments` component to conditionally render `CancelQueues` and `RefreshToken` based on deployment type, enhancing flexibility.
- Removed unnecessary console logging in `RestoreBackup` and updated input field to disable when the database type is "web-server", improving user guidance.
- Enhanced logging in `runWebServerBackup` to provide clearer output during backup operations, ensuring better traceability of actions.
2025-05-04 13:19:45 -06:00
Mauricio Siu
06c9e43143 Refactor deployment handling by moving formatDuration function and removing ShowSchedulesLogs component
- Moved the `formatDuration` function from `show-schedules-logs.tsx` to `show-deployments.tsx` for better accessibility.
- Deleted the `ShowSchedulesLogs` component to streamline the codebase and improve maintainability, as its functionality is no longer needed.
2025-05-04 13:00:50 -06:00
Mauricio Siu
e09447d4b4 Add ShowDeploymentsModal component and refactor ShowDeployments for enhanced deployment handling
- Introduced `ShowDeploymentsModal` component to manage deployment logs and details in a modal interface.
- Updated `ShowDeployments` to accept `serverId` and `refreshToken` props, allowing for more flexible deployment data handling.
- Refactored API queries in `ShowDeployments` to utilize a unified query for fetching deployments by type, improving code efficiency.
- Replaced instances of `ShowSchedulesLogs` with `ShowDeploymentsModal` in relevant components to streamline deployment log access.
2025-05-04 12:58:46 -06:00
Mauricio Siu
2fa0c7dfd2 Refactor deployment components to unify application and compose handling
- Updated `CancelQueues`, `RefreshToken`, and `ShowDeployments` components to accept a unified `id` and `type` prop, allowing for streamlined handling of both applications and compose deployments.
- Removed redundant compose-specific components (`CancelQueuesCompose`, `RefreshTokenCompose`, `ShowDeploymentCompose`, and `ShowDeploymentsCompose`) to simplify the codebase.
- Enhanced loading state management in `ShowDeployments` to improve user experience during data fetching.
2025-05-04 12:39:17 -06:00
Mauricio Siu
27521decbd Enhance loading state and UI for provider selection in dashboard components
- Added loading indicators using the Loader2 icon to improve user experience while fetching provider data in both ShowProviderForm and ShowProviderFormCompose components.
- Updated the minimum height of the provider selection messages to enhance visual consistency and user guidance during loading states.
- Refactored data fetching logic to include loading states for GitHub, GitLab, Bitbucket, and Gitea providers, ensuring a smoother user interface.
2025-05-04 12:29:37 -06:00
Mauricio Siu
4bec311ad0 Refactor domain handling layout in AddDomain component
- Updated the structure of the AddDomain component to improve layout consistency by replacing fragment elements with a div container.
- This change enhances the visual organization of the domain management interface, contributing to a better user experience.
2025-05-04 12:23:41 -06:00
Mauricio Siu
432f616896 Add ValidationStates type for improved domain validation handling
- Introduced `ValidationStates` type to enhance the structure and clarity of domain validation logic in the ShowDomains component.
- This addition aims to streamline the management of validation states, contributing to better code organization and maintainability.
2025-05-04 12:16:56 -06:00
Mauricio Siu
4575f16be4 Add DNS helper modal and refactor domain handling components
- Introduced `DnsHelperModal` for guiding users on DNS configuration, including steps for adding A records and verifying configurations.
- Refactored domain handling by consolidating domain management into `handle-domain.tsx`, replacing the previous `add-domain.tsx`.
- Updated `ShowDomains` and related components to utilize the new domain handling structure, improving code organization and maintainability.
- Enhanced user experience by integrating domain validation and service selection features in the domain management interface.
2025-05-04 12:07:09 -06:00
Mauricio Siu
d6f5f6e6cb Refactor backup and command execution utilities for improved robustness
- Removed unnecessary console logging in the backup scheduling utility to streamline output.
- Updated container ID retrieval to handle potential null values gracefully, enhancing error handling.
- Modified command execution logging to use single quotes for consistency and improved readability.
2025-05-04 03:42:55 -06:00
Mauricio Siu
96b1df2199 Enhance backup scheduling interface and logging
- Updated the backup scheduling form to include a tooltip explaining cron expression format and examples, improving user guidance.
- Integrated a selection component for predefined cron expressions, allowing users to choose or enter custom schedules more easily.
- Added logging for backup details in the server utility to aid in debugging and monitoring backup schedules.
2025-05-04 03:31:51 -06:00
Mauricio Siu
614b9d25a8 Implement restore functionality for various database types
- Added `apiRestoreBackup` schema to define input requirements for restore operations.
- Refactored restore utilities for PostgreSQL, MySQL, MariaDB, and MongoDB to utilize a unified command generation approach, enhancing maintainability.
- Improved logging during restore processes to provide clearer feedback on command execution and success/failure states.
- Streamlined the handling of database credentials and backup file paths across different database types, ensuring consistency and reducing redundancy.
2025-05-04 03:25:58 -06:00
Mauricio Siu
66dd890448 Enhance backup command generation and logging for database backups
- Refactored backup utilities for PostgreSQL, MySQL, MariaDB, and MongoDB to streamline command generation and improve logging.
- Introduced a unified `getBackupCommand` function to encapsulate backup command logic, enhancing maintainability.
- Improved error handling and logging during backup processes, providing clearer feedback on command execution and success/failure states.
- Updated container retrieval methods to return null instead of throwing errors when no containers are found, improving robustness.
2025-05-04 00:15:09 -06:00
Mauricio Siu
557c89ac6d Enhance backup logging and error handling in web server backup utility
- Added detailed logging for PostgreSQL container retrieval and command execution, improving traceability during backup processes.
- Updated success and error messages to provide clearer feedback on backup operations, including specific command outputs and error details.
- Ensured proper stream handling for logging messages, enhancing the overall robustness of the backup utility.
2025-05-03 13:41:19 -06:00
Mauricio Siu
b3e2af3b40 Remove unused backup utility and refactor service container retrieval
- Deleted the `createBackupLabels` function from the backup utilities as it was no longer needed.
- Removed the `getServiceContainerIV2` function from the Docker utilities and updated references to use the existing `getServiceContainer` function, streamlining the codebase and improving maintainability.
2025-05-03 13:36:49 -06:00
Mauricio Siu
a8159e5f99 Implement enhanced backup logging and deployment tracking for database backups
- Refactored backup utilities for MariaDB, MongoDB, MySQL, and PostgreSQL to include detailed logging of command execution, improving traceability and debugging.
- Introduced deployment tracking for backups, allowing for better management of backup statuses and notifications.
- Updated backup command execution to utilize writable streams, ensuring efficient data handling during backup processes.
- Enhanced error handling and logging for backup operations, providing clearer feedback on success or failure.
2025-05-03 13:33:37 -06:00
Mauricio Siu
89306a7619 Refactor backup and restore utilities for improved container handling
- Removed the `getRemoteServiceContainer` function and updated the `getServiceContainer` function to handle both local and remote service containers more efficiently.
- Refactored backup and restore commands for MariaDB, MongoDB, MySQL, and PostgreSQL to utilize new utility functions for generating backup and restore commands, enhancing code clarity and maintainability.
- Streamlined command execution logic in backup and restore processes, ensuring consistent handling of container IDs across different database types.
2025-05-03 13:24:05 -06:00
Mauricio Siu
0690f07262 Enhance backup validation and improve backup display
- Added validation to require a service name for compose backups in the backup handling logic, improving user feedback.
- Refactored the ShowBackups component to sort deployments by creation date and enhance the display of backup information, including service names and statuses, for better user experience.
- Updated logging in the compose backup utility to include command execution details, aiding in debugging and monitoring.
2025-05-03 12:59:22 -06:00
Mauricio Siu
e437903ef8 Enhance backup and deployment features
- Updated the RestoreBackupSchema to require serviceName for compose backups, improving validation and user feedback.
- Refactored the ShowBackups component to include deployment information, enhancing the user interface and experience.
- Introduced new SQL migration files to add backupId to the deployment table and appName to the backup table, improving data relationships and integrity.
- Enhanced deployment creation logic to support backup deployments, ensuring better tracking and management of backup processes.
- Improved backup and restore utility functions to streamline command execution and error handling during backup operations.
2025-05-03 12:39:52 -06:00
Mauricio Siu
50aeeb2fb8 Refactor backup management and enhance database schema
- Updated the ShowBackups component to improve layout and user experience by adding a minimum height and centering content when no backups are available.
- Removed the outdated SQL file `0089_dazzling_marrow.sql` and replaced it with a new schema file `0089_eminent_winter_soldier.sql` that introduces new columns and types for the `backup` table, enhancing data structure.
- Updated the journal and snapshot metadata to reflect the new schema changes and maintain consistency in the database structure.
- Adjusted the service component layout to accommodate new grid configurations for better responsiveness.
2025-05-03 09:58:50 -06:00
Mauricio Siu
d85fc2e513 Merge branch 'canary' into 187-backups-for-docker-compose 2025-05-03 09:48:24 -06:00
Mauricio Siu
cfba9a7d79 Merge pull request #1805 from Dokploy/679-cronjob-feature
Some checks failed
Auto PR to main when version changes / create-pr (push) Has been cancelled
Build Docker images / build-and-push-cloud-image (push) Has been cancelled
Build Docker images / build-and-push-schedule-image (push) Has been cancelled
Build Docker images / build-and-push-server-image (push) Has been cancelled
Dokploy Docker Build / docker-amd (push) Has been cancelled
Dokploy Docker Build / docker-arm (push) Has been cancelled
autofix.ci / format (push) Has been cancelled
Dokploy Monitoring Build / docker-amd (push) Has been cancelled
Dokploy Monitoring Build / docker-arm (push) Has been cancelled
Dokploy Docker Build / combine-manifests (push) Has been cancelled
Dokploy Docker Build / generate-release (push) Has been cancelled
Dokploy Monitoring Build / combine-manifests (push) Has been cancelled
679 cronjob feature
2025-05-03 09:46:01 -06:00
Mauricio Siu
4a8cadc6ee Update schedule access control to restrict access to owners only
- Modified the `isEnabled` function in the side menu to check if the user has the "owner" role in addition to the non-cloud environment condition.
- Updated the server-side props validation in the schedules page to redirect users who are not owners, enhancing security and access control.
2025-05-03 09:42:28 -06:00
Mauricio Siu
b2d938d2fc Remove the schedule table from the database schema to streamline the overall structure and eliminate outdated components. 2025-05-03 09:40:18 -06:00
Mauricio Siu
9277427153 Add new schedule management schema and update deployment tracking
- Introduced a new `schedule` table with fields for `scheduleId`, `name`, `cronExpression`, `appName`, `serviceName`, `shellType`, `scheduleType`, `command`, `script`, `applicationId`, `composeId`, `serverId`, `userId`, `enabled`, and `createdAt`.
- Added ENUM types `scheduleType` and `shellType` for better data integrity.
- Updated the `deployment` table to include `startedAt`, `finishedAt`, and `scheduleId` columns for enhanced tracking of deployment timing and associations.
- Established foreign key constraints between `schedule` and related tables to maintain referential integrity.
- Removed outdated SQL files to streamline the schema management process.
2025-05-03 01:23:19 -06:00
Mauricio Siu
ccb141339b Enhance schedule management and job handling features
- Updated the scheduleRouter to manage job scheduling and removal based on the enabled status of schedules, improving job lifecycle management.
- Refactored the scheduleJob and removeJob utilities to support scheduling and removing jobs for both server and schedule types.
- Introduced a new schema for jobQueue to accommodate schedule jobs, enhancing the flexibility of job definitions.
- Improved the runJobs function to execute scheduled jobs based on their enabled status, ensuring proper execution of active schedules.
- Enhanced the initialization process for schedules to automatically schedule active jobs from the database, streamlining the setup process.
2025-05-03 00:54:01 -06:00
Mauricio Siu
c87af312ca Update LICENSE.MD to include Schedules in terms for multi-node support and related features
- Revised the terms in the LICENSE.MD to specify that Schedules are included alongside multi-node support, Docker Compose file support, Preview Deployments, and Multi Server features.
- Ensured clarity in the restrictions on resale and modification distribution for the updated features.
2025-05-03 00:14:18 -06:00
Mauricio Siu
a5fb5532fd Update drizzle-zod dependency and enhance deployment tracking features
- Downgraded the drizzle-zod package from version 0.7.1 to 0.5.1 for compatibility.
- Added new fields `startedAt` and `finishedAt` to the deployment schema to track deployment timing.
- Enhanced deployment creation logic to set `startedAt` and `finishedAt` timestamps during deployment processes.
- Improved the ShowDeployments and ShowSchedulesLogs components to display deployment duration using a new Badge component.
- Refactored deployment removal logic to streamline the process of cleaning up old deployments.
2025-05-03 00:12:49 -06:00
Mauricio Siu
43ab1aa7b8 Enhance ShowSchedules component with improved user feedback and schedule execution
- Updated the ShowSchedules component to include a delay before refetching schedules after a successful manual run, enhancing user experience by providing a brief confirmation period.
- Removed unnecessary console logging in the updateSchedule function to streamline the code and improve maintainability.
- Modified the scheduleJob utility to accept scheduleId as the first parameter, improving clarity and consistency in job scheduling.
2025-05-02 23:11:21 -06:00
Mauricio Siu
3072795232 Enhance schedule initialization and management features
- Introduced a new `initSchedules` function to initialize and schedule active schedules from the database, improving the management of scheduled tasks.
- Updated the `createSchedule` and `updateSchedule` functions to handle scheduling jobs based on the enabled status of schedules, ensuring proper job management.
- Refactored the `removeScheduleJob` utility to cancel existing scheduled jobs, enhancing the flexibility of schedule updates.
- Improved the `HandleSchedules` and `ShowSchedules` components by removing unused imports and enhancing the user interface for better clarity and usability.
2025-05-02 23:05:39 -06:00
Mauricio Siu
98d0f1d5bf Enhance schedule management with new fields and improved components
- Introduced new fields in the schedule schema: `serviceName`, `scheduleType`, and `script`, allowing for more flexible schedule configurations.
- Updated the `HandleSchedules` component to incorporate the new fields, enhancing user input options for schedule creation and updates.
- Refactored the `ShowSchedules` component to support the new `scheduleType` and display relevant information based on the selected type.
- Improved API handling for schedule creation and updates to accommodate the new fields, ensuring proper validation and error handling.
- Added a new `ShowSchedulesModal` component for better integration of schedule viewing in server settings, enhancing user experience.
2025-05-02 20:17:21 -06:00
Mauricio Siu
49e55961db Refactor ShowSchedules component for improved layout and user interaction
- Replaced the table layout with a grid layout for better visual organization of schedules.
- Enhanced the display of schedule details, including status badges and command information.
- Updated action buttons for running schedules and managing them with improved icons and tooltips.
- Streamlined the code for better readability and maintainability.
2025-05-02 16:26:47 -06:00
Mauricio Siu
4ee220c1d8 Refactor HandleSchedules component for improved UI and user experience
- Updated the layout of the HandleSchedules component to enhance the selection of predefined schedules and custom cron expressions.
- Introduced a flexbox layout for better spacing and organization of form elements.
- Improved placeholder text for clarity in the schedule selection dropdown.
2025-05-02 16:19:30 -06:00
Mauricio Siu
c69992c4f0 Improve error handling in ShowSchedules component and remove unnecessary logging in schedule API
- Updated error messaging in the ShowSchedules component to provide more informative feedback when a schedule fails to run.
- Removed redundant console logging in the schedule API to streamline error handling and improve code cleanliness.
2025-05-02 16:18:05 -06:00
Mauricio Siu
1f6ba45c12 Refactor ShowSchedules component and enhance error handling in schedule API
- Simplified the mutation calls in the ShowSchedules component by removing success callbacks, streamlining the code.
- Improved the display logic to conditionally render the HandleSchedules component when schedules are present.
- Enhanced error handling in the runManually mutation within the schedule API, ensuring proper logging and error messaging for better debugging.
2025-05-02 16:16:44 -06:00
Mauricio Siu
ef02ba22b5 Refactor delete schedule action in ShowSchedules component
- Replaced the delete button with a DialogAction component for improved user interaction.
- Added confirmation dialog for deleting schedules, enhancing user experience and preventing accidental deletions.
- Updated success and error notifications for better feedback upon schedule deletion.
2025-05-02 16:07:46 -06:00
Mauricio Siu
d7daa6d8e0 Refactor ShowSchedulesLogs and ShowSchedules components
- Updated the ShowSchedulesLogs component to replace the trigger prop with children for better flexibility in rendering.
- Enhanced the display logic in ShowSchedulesLogs to show a message when no logs are found, improving user feedback.
- Added a Play icon to the ShowSchedules component for the manual run action, along with a tooltip for better user guidance.
- Refactored the delete schedule button to provide success notifications upon deletion, enhancing user experience.
2025-05-02 16:05:49 -06:00
Mauricio Siu
fafa14c10a Enhance schedule management with shell type selection
- Added a new `shellType` field to the schedule form, allowing users to select between 'bash' and 'sh' for command execution.
- Updated the `HandleSchedules` component to include the `shellType` in the form and reset logic.
- Modified the `ShowSchedules` component to display the selected shell type for each schedule.
- Ensured proper handling of the new field in the API for schedule creation and updates.
2025-05-02 16:00:05 -06:00
Mauricio Siu
2c90103823 Update schedule management with shell type support and version upgrades
- Updated the `drizzle-zod` package to version 0.7.1 across the project for enhanced schema validation.
- Introduced a new `shellType` column in the `schedule` schema to specify the shell used for executing commands, defaulting to 'bash'.
- Enhanced the `HandleSchedules` component to include the new `shellType` field, allowing users to select the shell type when creating or updating schedules.
- Updated the `runCommand` utility to utilize the selected shell type when executing commands, improving flexibility in command execution.
- Refactored the API to accommodate the new `shellType` in schedule creation and updates, ensuring proper handling of the new field.
2025-05-02 15:56:40 -06:00
Mauricio Siu
f2bb01c800 Add schedule logs feature and enhance schedule management
- Introduced a new component `ShowSchedulesLogs` to display logs for each schedule, allowing users to view deployment logs associated with their schedules.
- Updated the `ShowSchedules` component to integrate the new logs feature, providing a button to access logs for each schedule.
- Enhanced the `schedule` schema by adding an `appName` column to better identify applications associated with schedules.
- Updated the API to support fetching deployments with their associated schedules, improving data retrieval for the frontend.
- Implemented utility functions for managing schedule-related operations, including creating and removing deployments linked to schedules.
2025-05-02 04:29:32 -06:00
Mauricio Siu
442f051457 Add 'enabled' field to schedule management
- Introduced a new boolean field `enabled` in the `schedule` schema to indicate the active status of schedules.
- Updated the `HandleSchedules` component to include a toggle switch for enabling/disabling schedules.
- Enhanced the `ShowSchedules` component to display the status of each schedule with a badge indicating whether it is enabled or disabled.
- Added a new API mutation to run schedules manually, ensuring proper error handling for non-existent schedules.
- Updated database schema to reflect the new `enabled` field with a default value of true.
2025-05-02 03:45:07 -06:00
Mauricio Siu
e84ce38994 Add scheduleId to deployment schema and establish foreign key relationship
- Introduced a new column `scheduleId` in the `deployment` table to link deployments with schedules.
- Added a foreign key constraint on `scheduleId` referencing the `schedule` table, ensuring referential integrity.
- Updated the `deployment` schema to include the new relationship with the `schedules` table.
- Enhanced the `schedules` schema to establish a one-to-many relationship with deployments.
2025-05-02 03:27:35 -06:00
Mauricio Siu
0ea264ea42 Enhance schedule management UI
- Updated `HandleSchedules` component to include predefined cron expressions and improved form descriptions for better user guidance.
- Refactored `ShowSchedules` component to utilize a card layout, enhancing visual presentation and user experience.
- Added icons and tooltips for better context on schedule creation and management actions.
- Improved accessibility and responsiveness of the schedule management interface.
2025-05-02 03:26:05 -06:00
Mauricio Siu
d4064805eb Add schedule management features
- Implemented `HandleSchedules` component for creating and updating schedules with validation.
- Added `ShowSchedules` component to display a list of schedules with options to edit and delete.
- Created API routes for schedule management including create, update, delete, and list functionalities.
- Defined the `schedule` table schema in the database with necessary fields and relationships.
- Integrated schedule management into the application service dashboard, allowing users to manage schedules directly from the UI.
2025-05-02 03:21:13 -06:00
Mauricio Siu
d5c77fded3 Update Props interface in RestoreBackup and ShowBackups components to make databaseType optional, enhancing flexibility in component usage. 2025-05-01 20:41:06 -06:00
Mauricio Siu
d853b1d326 Enhance server package exports to support ES module and CommonJS formats. Update main entry point and include compose backup utility in utils for improved backup functionality. 2025-05-01 20:37:54 -06:00
Mauricio Siu
d57e347fdc Refactor runJobs and initializeJobs functions to incorporate backupType handling and improve server status checks. Enhance database backup logic for better clarity and maintainability, ensuring only active servers are initialized. 2025-05-01 20:34:16 -06:00
Mauricio Siu
25f3980492 Remove unnecessary console logs from backup and restore compose functions to improve code cleanliness and maintainability. 2025-05-01 20:28:20 -06:00
Mauricio Siu
c8e2f4bfdc Refactor RestoreBackup component to enhance validation schema and improve database type handling. Update metadata requirements for different database types and streamline form initialization. Add alert for compose backups in ShowBackups to inform users about running services. 2025-05-01 19:48:47 -06:00
Mauricio Siu
4afc6ac250 Update HandleBackup component to increase dialog content width for improved user experience during backup creation and updates. 2025-04-30 01:42:51 -06:00
Mauricio Siu
52a660add3 Update validation error messaging in ShowDomainsCompose and refine button styling in ShowBackups for improved UI consistency. 2025-04-30 01:32:38 -06:00
Mauricio Siu
3ad5982f39 Add removeInvitation mutation and UI integration in ShowInvitations component 2025-04-30 01:28:56 -06:00
Mauricio Siu
8ba4ac22cc Enhance domain validation feedback in ShowDomains and AddDomain components. Add descriptive tooltips for container port input and improve validation state messaging to indicate Cloudflare status. Remove unnecessary console logs for cleaner code. 2025-04-30 01:23:54 -06:00
Mauricio Siu
bcebcfdfdf Refactor ShowDomains component to enhance domain validation functionality with real-time feedback and improved UI. Integrate tooltips for domain details and validation status, and update API queries for better data handling. 2025-04-30 01:13:30 -06:00
Mauricio Siu
77b1ec4733 Add DnsHelperModal component for DNS configuration guidance and integrate it into ShowDomainsCompose. Enhance domain validation functionality with server IP checks and improve UI with tooltips for better user experience. 2025-04-30 01:08:08 -06:00
Mauricio Siu
cfae5f7e6c Remove console log from HandleBackup component and update button class for consistent styling. This improves code cleanliness and maintains UI consistency. 2025-04-29 23:56:28 -06:00
Mauricio Siu
0f67e9e222 Refactor HandleBackup component to improve database selection logic. Simplify the initialization of the database field in the form by using a conditional expression for better readability and maintainability. 2025-04-29 22:56:11 -06:00
Mauricio Siu
c4045795ee Refactor ShowBackups component to improve UI and enhance backup information display. Introduce database type icons for better visual representation and reorganize backup details layout for clarity. Update styles for hover effects and button sizes to enhance user experience. 2025-04-29 22:01:30 -06:00
Mauricio Siu
24f3be3c00 Add HandleBackup component to manage backup creation and updates, replacing the deprecated UpdateBackup component. Integrate dynamic form handling for various database types and metadata requirements. Update ShowBackups to utilize HandleBackup for both creating and updating backups, enhancing the user interface for better backup management. 2025-04-29 21:47:55 -06:00
Mauricio Siu
5055994bd3 Enhance RestoreBackup component to support compose backups by adding a database type selection and metadata handling. Update related API routes and schemas to accommodate new backup types, ensuring flexibility for various database configurations. Modify UI components to allow dynamic input for service names and database credentials based on the selected database type. 2025-04-28 02:17:42 -06:00
Mauricio Siu
ddcb22dff9 Implement support for compose backups in runJobs function. Enhance backup handling by checking server status and executing runComposeBackup for compose database types. Update backup structure to include compose details. 2025-04-27 23:12:11 -06:00
Mauricio Siu
77d7dc1f22 Enhance backup functionality by adding support for compose backups in various components. Update ShowBackups to clarify backup update requirements, modify initCronJobs to include compose backups, and improve logging for backup scheduling. Additionally, ensure that the scheduleBackup function retains the latest backups for compose types and document the addition of domains and backups in the Docker compose process. 2025-04-27 23:09:39 -06:00
Mauricio Siu
19bf4f27b6 Update UpdateBackup component to enforce DatabaseType casting for backup databaseType. Modify backups schema to allow optional metadata field, enhancing flexibility for various database types. 2025-04-27 23:06:38 -06:00
Mauricio Siu
6b9765a26c Refactor backup components to utilize a unified DatabaseType type. Update AddBackup and UpdateBackup components to handle database type selection for compose backups. Enhance UI to allow users to select database types dynamically. Update backup schema to include databaseType field for better metadata management. 2025-04-27 23:00:26 -06:00
Mauricio Siu
8d91053c3a Refactor backup mutation selection logic in ShowBackups component. Simplify key determination for mutation mapping based on backup type. 2025-04-27 22:45:06 -06:00
Mauricio Siu
7c2eb63625 Implement metadata handling for database and compose backups. Update backup schemas to include metadata fields for various database types. Enhance backup creation and update processes to accommodate new metadata requirements. Modify UI components to support metadata input for different database types during backup operations. 2025-04-27 22:14:06 -06:00
Mauricio Siu
2ea2605ab1 Enhance backup functionality by introducing support for compose backups. Update backup schema to include serviceName and backupType fields. Modify related components to handle new backup types and integrate service selection for compose backups. Update API routes and database schema accordingly. 2025-04-27 20:17:49 -06:00
Mauricio Siu
7ae3ff22ee Merge pull request #1613 from TheoD02/feat/github-triggerType
Some checks failed
Auto PR to main when version changes / create-pr (push) Has been cancelled
Build Docker images / build-and-push-cloud-image (push) Has been cancelled
Build Docker images / build-and-push-schedule-image (push) Has been cancelled
Build Docker images / build-and-push-server-image (push) Has been cancelled
Dokploy Docker Build / docker-amd (push) Has been cancelled
Dokploy Docker Build / docker-arm (push) Has been cancelled
autofix.ci / format (push) Has been cancelled
Dokploy Monitoring Build / docker-amd (push) Has been cancelled
Dokploy Monitoring Build / docker-arm (push) Has been cancelled
Dokploy Docker Build / combine-manifests (push) Has been cancelled
Dokploy Docker Build / generate-release (push) Has been cancelled
Dokploy Monitoring Build / combine-manifests (push) Has been cancelled
feat(github): add triggerType field to GitHub provider and handle tag creation events
2025-04-27 18:43:28 -06:00
Mauricio Siu
fa6baa0c1a Merge pull request #1786 from Dokploy/feat/add-flush-redis
Some checks are pending
Auto PR to main when version changes / create-pr (push) Waiting to run
Build Docker images / build-and-push-cloud-image (push) Waiting to run
Build Docker images / build-and-push-schedule-image (push) Waiting to run
Build Docker images / build-and-push-server-image (push) Waiting to run
Dokploy Docker Build / docker-amd (push) Waiting to run
Dokploy Docker Build / docker-arm (push) Waiting to run
Dokploy Docker Build / combine-manifests (push) Blocked by required conditions
Dokploy Docker Build / generate-release (push) Blocked by required conditions
autofix.ci / format (push) Waiting to run
Dokploy Monitoring Build / docker-amd (push) Waiting to run
Dokploy Monitoring Build / docker-arm (push) Waiting to run
Dokploy Monitoring Build / combine-manifests (push) Blocked by required conditions
Add Redis management actions to server settings
2025-04-27 00:18:40 -06:00
Mauricio Siu
5b43df92c1 Add Redis management actions to server settings
Implement 'Clean Redis' and 'Reload Redis' actions in the dashboard settings. These actions allow users to flush all data in Redis and restart the Redis service, respectively. Update the API to handle these new mutations with appropriate error handling and success notifications.
2025-04-27 00:18:25 -06:00
Mauricio Siu
f3032bc94f Update dokploy version to v0.21.8 in package.json 2025-04-26 23:38:43 -06:00
Mauricio Siu
eef874ecd4 Merge pull request #1784 from Dokploy/1782-valid-certificate-shows-how-expired
Refactor expiration date extraction logic in certificate utility to i…
2025-04-26 23:38:09 -06:00
Mauricio Siu
d6daa5677a Refactor expiration date extraction logic in certificate utility to improve handling of ASN.1 date formats. Update to correctly identify and parse "not after" dates for both UTCTime and GeneralizedTime formats. 2025-04-26 23:37:49 -06:00
Mauricio Siu
dc03ba73b3 Merge branch 'main' into canary 2025-04-26 23:29:51 -06:00
Mauricio Siu
5c2159f7b2 Merge pull request #1783 from Dokploy/1747-backup-issues-doesnt-list-all-files
Enhance backup restoration UI and API by adding file size formatting,…
2025-04-26 23:26:35 -06:00
Mauricio Siu
ffcdbcf046 Enhance backup restoration UI and API by adding file size formatting, improving search debounce timing, and updating file listing to include additional metadata. Refactor file handling to ensure proper path resolution and error handling during JSON parsing. 2025-04-26 23:23:51 -06:00
Mauricio Siu
bb5c6bebff Add conditional rendering for watchPaths field based on triggerType in SaveGithubProvider and SaveGithubProviderCompose components. 2025-04-26 22:20:37 -06:00
Mauricio Siu
144d48057c Add triggerType field to baseApp configuration in drop and traefik test files 2025-04-26 22:18:43 -06:00
Mauricio Siu
55dc08b6ba Refactor GitHub deployment handler: simplify owner extraction logic by removing fallback to login name. 2025-04-26 22:17:09 -06:00
Mauricio Siu
56f525803b Add triggerType field to GitHub provider forms: implement selection for deployment triggers (push/tag) and update form handling in SaveGithubProvider and SaveGithubProviderCompose components. 2025-04-26 21:58:34 -06:00
Mauricio Siu
91bcd1238f Refactor triggerType implementation: remove old SQL triggerType column definitions and replace with ENUM type in application and compose tables. Update shared schema to include triggerType enum. 2025-04-26 21:14:30 -06:00
Mauricio Siu
120646c77b Merge branch 'canary' into feat/github-triggerType 2025-04-26 21:09:23 -06:00
Mauricio Siu
c0b35efaca Merge pull request #1781 from Dokploy/1760-docker-compose-raw-editor-autocomplete-appending-to-previously-typed-characters
Refactor code editor completion logic to use explicit from/to paramet…
2025-04-26 19:25:27 -06:00
Mauricio Siu
22dee88e51 Refactor code editor completion logic to use explicit from/to parameters for insertion and selection handling 2025-04-26 19:25:05 -06:00
Mauricio Siu
1645f7e932 Merge pull request #1780 from Dokploy/1775-dokploy-unable-to-start-if-gotify-server-is-unreachable
Some checks are pending
Auto PR to main when version changes / create-pr (push) Waiting to run
Build Docker images / build-and-push-cloud-image (push) Waiting to run
Build Docker images / build-and-push-schedule-image (push) Waiting to run
Build Docker images / build-and-push-server-image (push) Waiting to run
Dokploy Docker Build / docker-amd (push) Waiting to run
Dokploy Docker Build / docker-arm (push) Waiting to run
Dokploy Docker Build / combine-manifests (push) Blocked by required conditions
Dokploy Docker Build / generate-release (push) Blocked by required conditions
autofix.ci / format (push) Waiting to run
Dokploy Monitoring Build / docker-amd (push) Waiting to run
Dokploy Monitoring Build / docker-arm (push) Waiting to run
Dokploy Monitoring Build / combine-manifests (push) Blocked by required conditions
Refactor notification sending in Dokploy restart process to include e…
2025-04-26 17:27:40 -06:00
Mauricio Siu
b4aeb6577e Refactor notification sending in Dokploy restart process to include error handling for Discord, Gotify, Telegram, and Slack notifications. 2025-04-26 17:25:10 -06:00
Mauricio Siu
fdd330ca19 Merge pull request #1779 from Dokploy/feat/allow-to-pass-hostname-to-dokploy-server
Update server configuration to include HOST variable and enhance serv…
2025-04-26 17:09:16 -06:00
Mauricio Siu
33de620893 Update server configuration to include HOST variable and enhance server start log message 2025-04-26 17:05:21 -06:00
Mauricio Siu
6518407c0c Merge pull request #1563 from yusoofsh/add-disable-recurse-submodules-option
Add option to disable recurse submodules
2025-04-26 16:52:05 -06:00
Mauricio Siu
6f47999a2e Merge pull request #1521 from yni9ht/fix-mount-update
refactor(mount): streamline mount update logic and improve readability
2025-04-26 16:50:09 -06:00
Mauricio Siu
fe69d5d405 Enhance Bitbucket provider and application tests by adding enableSubmodules field. This update includes the integration of a switch component in the UI and updates to the test files to reflect the new feature. 2025-04-26 16:46:50 -06:00
autofix-ci[bot]
a6880fd38c [autofix.ci] apply automated fixes 2025-04-26 22:45:14 +00:00
Mauricio Siu
5d25de13dd Merge branch 'canary' into fix-mount-update 2025-04-26 16:44:49 -06:00
Mauricio Siu
5611dcccfd refactor(mount): enhance updateMount function with transaction handling and improved error management 2025-04-26 16:44:40 -06:00
autofix-ci[bot]
e2a1882fe3 [autofix.ci] apply automated fixes 2025-04-26 22:35:49 +00:00
Mauricio Siu
ceb16ae9f7 Implement enableSubmodules feature across various Git provider components and update database schema. This change introduces a new boolean field enableSubmodules to control submodule behavior in Git operations, replacing the previous recurseSubmodules field. Updates include modifications to the UI components, API routers, and database schema to accommodate this new feature. 2025-04-26 16:35:02 -06:00
Mauricio Siu
1911b5b674 Merge branch 'canary' into add-disable-recurse-submodules-option 2025-04-26 16:10:59 -06:00
Mauricio Siu
6b818bbb51 Merge pull request #1737 from Walzen665/feature/ctrl-s-saving-1736
Add Ctrl+S keyboard shortcut to save compose file
2025-04-26 16:09:46 -06:00
Mauricio Siu
79796185d6 Merge pull request #1744 from barbarbar338/fix/web-server-pg-backup
Some checks are pending
Build Docker images / build-and-push-cloud-image (push) Waiting to run
Build Docker images / build-and-push-schedule-image (push) Waiting to run
Build Docker images / build-and-push-server-image (push) Waiting to run
Dokploy Docker Build / docker-amd (push) Waiting to run
Dokploy Docker Build / docker-arm (push) Waiting to run
Dokploy Docker Build / combine-manifests (push) Blocked by required conditions
Dokploy Docker Build / generate-release (push) Blocked by required conditions
Dokploy Monitoring Build / docker-amd (push) Waiting to run
Dokploy Monitoring Build / docker-arm (push) Waiting to run
Dokploy Monitoring Build / combine-manifests (push) Blocked by required conditions
fix(backup): handle multiple container IDs in backup command
2025-04-26 16:08:46 -06:00
Mauricio Siu
461d7c530a fix(restore): streamline container ID retrieval for database operations
Refactor the database restore process to consistently use a single container ID for the PostgreSQL container. This change enhances reliability by ensuring that commands are executed against the correct container, preventing potential errors from multiple matches.

Co-authored-by: Merloss 54235902+Merloss@users.noreply.github.com
2025-04-26 16:07:50 -06:00
Mauricio Siu
ade4b8dd1b Merge pull request #1749 from malko/template-helpers
Template helpers: Enhanced JWT generation
2025-04-26 16:00:06 -06:00
Mauricio Siu
f49a67f8df refactor(jwt generation): Simplify payload property assignments and secret initialization 2025-04-26 01:50:26 -06:00
autofix-ci[bot]
c3986d7a08 [autofix.ci] apply automated fixes 2025-04-26 07:40:07 +00:00
Mauricio Siu
0bf4e5560c Merge pull request #1771 from LexiconAlex/build/update-nixpacks-to-1.35.0
Some checks are pending
Auto PR to main when version changes / create-pr (push) Waiting to run
Build Docker images / build-and-push-cloud-image (push) Waiting to run
Build Docker images / build-and-push-schedule-image (push) Waiting to run
Build Docker images / build-and-push-server-image (push) Waiting to run
Dokploy Docker Build / docker-amd (push) Waiting to run
Dokploy Docker Build / docker-arm (push) Waiting to run
Dokploy Docker Build / combine-manifests (push) Blocked by required conditions
Dokploy Docker Build / generate-release (push) Blocked by required conditions
autofix.ci / format (push) Waiting to run
Dokploy Monitoring Build / docker-amd (push) Waiting to run
Dokploy Monitoring Build / docker-arm (push) Waiting to run
Dokploy Monitoring Build / combine-manifests (push) Blocked by required conditions
Update Nixpacks to 1.35.0
2025-04-26 01:12:03 -06:00
autofix-ci[bot]
79d55d8d34 [autofix.ci] apply automated fixes 2025-04-25 08:17:18 +00:00
Alexander Sjösten
d4c6e5b048 build: update nixpacks to 1.35.0 2025-04-25 09:58:52 +02:00
Mauricio Siu
cd4eed3507 Merge pull request #1769 from Dokploy/cloud/use-app-dokploy-instead-of-main-domain
Some checks failed
Auto PR to main when version changes / create-pr (push) Has been cancelled
Build Docker images / build-and-push-cloud-image (push) Has been cancelled
Build Docker images / build-and-push-schedule-image (push) Has been cancelled
Build Docker images / build-and-push-server-image (push) Has been cancelled
Dokploy Docker Build / docker-amd (push) Has been cancelled
Dokploy Docker Build / docker-arm (push) Has been cancelled
autofix.ci / format (push) Has been cancelled
Dokploy Monitoring Build / docker-amd (push) Has been cancelled
Dokploy Monitoring Build / docker-arm (push) Has been cancelled
Dokploy Docker Build / combine-manifests (push) Has been cancelled
Dokploy Docker Build / generate-release (push) Has been cancelled
Dokploy Monitoring Build / combine-manifests (push) Has been cancelled
fix(auth): update invite link host to use app.dokploy.com
2025-04-25 01:41:40 -06:00
Mauricio Siu
a650bd16fb Merge pull request #1770 from Dokploy/1742-400-error-on-settings-page
refactor(user-nav): remove settings dropdown for owner role
2025-04-25 01:41:33 -06:00
Mauricio Siu
4e5b5f219e fix(auth): update invite link host to use app.dokploy.com 2025-04-25 01:41:03 -06:00
Mauricio Siu
dfda934726 refactor(user-nav): remove settings dropdown for owner role 2025-04-25 01:38:14 -06:00
Jonathan Gotti
e6d0b7b4ee test(templates): Add test for jwt generation 2025-04-21 16:12:34 +02:00
Jonathan Gotti
d0dbc1837f feat(template-helpers): Add timestamps and timestampms helpers 2025-04-21 16:05:08 +02:00
Jonathan Gotti
2b5af1897f fix(template-helpers): hash not working without parameter 2025-04-21 16:04:00 +02:00
Jonathan Gotti
11b9cee73d feat(template-helpers): Add more parameters to jwt helper
- jwt without parameter now generate a real jwt
- keep length parameter as is for backward compatibility
- add secret and payload parameters
- payload properties iss, iat, exp are automaticly set if not provided
2025-04-21 16:00:16 +02:00
Jonathan Gotti
bc17991580 test: Add some template helpers test 2025-04-21 15:53:38 +02:00
Theo D
459c94929a fix GitHub event handling for tag deployments. 2025-04-21 02:25:41 +02:00
Barış DEMİRCİ
8d28a50a17 fix(backup): handle multiple container IDs in backup command
Ensure only one container ID is used when running `docker exec` for pg_dump to avoid errors caused by multiple matching containers.

Fixes INTERNAL_SERVER_ERROR from backup.manualBackupWebServer path.

Co-authored-by: Merloss 54235902+Merloss@users.noreply.github.com
2025-04-20 12:14:41 +00:00
Max W.
08bbeceeba Add Ctrl+S keyboard shortcut to save compose file
https://github.com/Dokploy/dokploy/issues/1736
2025-04-19 16:10:35 +02:00
Yusoof Moh
b7bf09bf21 Merge remote-tracking branch 'upstream/canary' into add-disable-recurse-submodules-option 2025-04-19 15:27:13 +07:00
Mauricio Siu
546c6ade82 Merge pull request #1732 from nktnet1/fix-overflow-toolbar
Some checks failed
Auto PR to main when version changes / create-pr (push) Has been cancelled
Build Docker images / build-and-push-cloud-image (push) Has been cancelled
Build Docker images / build-and-push-schedule-image (push) Has been cancelled
Build Docker images / build-and-push-server-image (push) Has been cancelled
Dokploy Docker Build / docker-amd (push) Has been cancelled
Dokploy Docker Build / docker-arm (push) Has been cancelled
autofix.ci / format (push) Has been cancelled
Dokploy Monitoring Build / docker-amd (push) Has been cancelled
Dokploy Monitoring Build / docker-arm (push) Has been cancelled
Dokploy Docker Build / combine-manifests (push) Has been cancelled
Dokploy Docker Build / generate-release (push) Has been cancelled
Dokploy Monitoring Build / combine-manifests (push) Has been cancelled
Fix overflow toolbar
2025-04-18 03:52:14 -06:00
Khiet Tam Nguyen
db2e3691a5 fix: grid cols start from lg instead of md for compose 2025-04-18 13:01:43 +10:00
Khiet Tam Nguyen
a6dca144a8 fix: add overflow-x-scroll to tab list container 2025-04-18 12:54:42 +10:00
Khiet Tam Nguyen
43a17e7e75 style: remove double space 2025-04-18 12:49:02 +10:00
Mauricio Siu
da60c4f3a8 Merge pull request #1707 from Dokploy/canary
Some checks failed
Build Docker images / build-and-push-cloud-image (push) Has been cancelled
Build Docker images / build-and-push-schedule-image (push) Has been cancelled
Build Docker images / build-and-push-server-image (push) Has been cancelled
Dokploy Docker Build / docker-amd (push) Has been cancelled
Dokploy Docker Build / docker-arm (push) Has been cancelled
Dokploy Monitoring Build / docker-amd (push) Has been cancelled
Dokploy Monitoring Build / docker-arm (push) Has been cancelled
Dokploy Docker Build / combine-manifests (push) Has been cancelled
Dokploy Docker Build / generate-release (push) Has been cancelled
Dokploy Monitoring Build / combine-manifests (push) Has been cancelled
🚀 Release v0.21.7
2025-04-17 02:30:26 -06:00
Mauricio Siu
e14f2780af Merge pull request #1656 from lorenzomigliorero/support-multiple-gitlab-groups
feat(gitlab): add support for multiple group names with a single provider
2025-04-17 02:20:29 -06:00
Mauricio Siu
33ab87f3db fix(gitlab): enhance group name matching logic to support multiple names
- Updated the group name check to allow for a comma-separated list of names, improving flexibility in group name validation.
2025-04-17 02:20:03 -06:00
Mauricio Siu
571d73a5b6 Merge pull request #1720 from unleashit/docs/contributing-edits
docs(contributing): tips added for nvm use and biome ide addon
2025-04-17 02:04:05 -06:00
Mauricio Siu
a630909612 Merge pull request #1634 from f3liiix/canary
Update language "Simplified Chinese"
2025-04-17 01:59:35 -06:00
Mauricio Siu
8eaa006f0f Merge pull request #1723 from Dokploy/1682-dokploy-backup-fails
Enhance PostgreSQL backup command in web server utility
2025-04-17 01:59:05 -06:00
Mauricio Siu
8e8bc3e71e Enhance PostgreSQL backup command in web server utility
- Added error handling to check for the existence of the PostgreSQL container before executing the backup command.
- Updated the backup command to use the retrieved container ID, ensuring the command runs correctly.
2025-04-17 01:58:25 -06:00
Mauricio Siu
f4cd617107 Merge pull request #1722 from Dokploy/1715-pin-field-auto-populated-with-issuer-name-and-cannot-be-cleared-during-2fa-setup
Refactor 2FA enablement flow in Enable2FA component
2025-04-17 00:27:04 -06:00
Mauricio Siu
48cfe66a6b Refactor 2FA enablement flow in Enable2FA component
- Simplified the password submission and verification processes.
- Introduced a new state for OTP input, allowing for direct user input.
- Updated error handling to provide clearer feedback during the verification process.
- Enhanced the user experience by resetting the OTP value when switching steps and modifying the form structure for better clarity.
2025-04-17 00:25:27 -06:00
unleashit
bdc10cacef docs(contributing): recommendations to use biome IDE addons and nvm for node version
- emphasis added since using later versions of Node cause errors in the terminal
- since the project uses biome but most IDEs have eslint/prettier addons, this tip will avoid commit/build suprises
2025-04-15 14:38:37 -07:00
Mauricio Siu
8fbad8a26e Merge pull request #1709 from Axodouble/fix-missing-nl
Fix: #1708, missing Dutch translation and sorted list by population
2025-04-14 23:26:06 -06:00
F3LIIIX
0f36bcb04e Merge branch 'Dokploy:canary' into canary 2025-04-15 05:09:46 +08:00
autofix-ci[bot]
f4054453b4 [autofix.ci] apply automated fixes 2025-04-14 06:46:16 +00:00
Axodouble
dbd36fc024 Fix for #1708, missing dutch translation and sorted list by population 2025-04-14 08:42:30 +02:00
Mauricio Siu
850d06a32c chore: bump version to v0.21.7 in package.json 2025-04-13 21:59:36 -06:00
Mauricio Siu
dfd3dc180d Merge pull request #1706 from Dokploy/1649-webserver-restore-backups-bug
feat: implement debounced search functionality in RestoreBackup compo…
2025-04-13 20:30:55 -06:00
Mauricio Siu
3d42bfc81b feat: implement debounced search functionality in RestoreBackup component
- Added a new state for debounced search term to improve search performance.
- Updated search handling to use the debounced value when querying backup files.
- Modified the search input to reflect the current search value and handle changes accordingly.
2025-04-13 20:30:31 -06:00
Mauricio Siu
764f8ec993 Merge pull request #1695 from Dokploy/canary
🚀 Release v0.21.6
2025-04-13 00:05:04 -06:00
Mauricio Siu
d2eaa4b40b chore: bump version to v0.21.6 in package.json 2025-04-12 22:12:24 -06:00
Mauricio Siu
7d7f2b4b1f Merge pull request #1692 from ron-tayler/canary
Fixed network search in Traefik Labels for the service
2025-04-12 22:10:20 -06:00
autofix-ci[bot]
8c36e48fe7 [autofix.ci] apply automated fixes 2025-04-13 03:27:40 +00:00
autofix-ci[bot]
8e97c63faa [autofix.ci] apply automated fixes 2025-04-13 03:23:00 +00:00
Mauricio Siu
74ec8f4594 Merge pull request #1651 from Axodouble/Dutch-NL
feat: Add Dutch / NL language translations
2025-04-12 21:22:17 -06:00
Mauricio Siu
76c0bff13a Merge pull request #1694 from Dokploy/1593-add-way-to-customize-issuer-name-in-totp-app
chore: update dependencies and enhance 2FA form
2025-04-12 21:11:43 -06:00
Mauricio Siu
9b5cd0f5fe chore: update dependencies and enhance 2FA form
- Updated `better-auth` to version 1.2.6 in multiple package.json files.
- Updated `@better-auth/utils` to version 0.2.4 in server package.json.
- Added optional `issuer` field to the 2FA form for enhanced user experience.
- Removed unnecessary console log from the profile form component.
2025-04-12 21:11:21 -06:00
Ron_Tayler
efee798880 Fixed network search in Traefik Labels for the service 2025-04-12 22:02:27 +03:00
Mauricio Siu
1c470b8ba7 Merge pull request #1671 from vytenisstaugaitis/canary
fix: correct message on preview deployments disabling
2025-04-12 02:39:47 -06:00
Mauricio Siu
692864ced1 Merge pull request #1687 from Dokploy/git-fetch-origin-git-checkout-1659-environment-variable-parsing-issue-with-character-in-railpack-nuxt-app-or-other
fix(railpack): update environment variable handling to include quotes…
2025-04-12 02:30:47 -06:00
Mauricio Siu
9ca61476d2 Merge pull request #1688 from Dokploy/1675-password-input-on-profile-page-gets-cleared-unepxectedly
fix(profile-form): disable refetch on window focus for user query
2025-04-12 02:28:04 -06:00
Mauricio Siu
773a610be1 fix(profile-form): disable refetch on window focus for user query 2025-04-12 02:27:43 -06:00
Mauricio Siu
37f9e073f0 fix(railpack): update environment variable handling to include quotes for consistency 2025-04-12 02:16:39 -06:00
autofix-ci[bot]
d335a9515d [autofix.ci] apply automated fixes 2025-04-09 15:53:37 +00:00
vytenisstaugaitis
7a5a3de43d fix: correct message on preview deployments disabling 2025-04-09 18:47:34 +03:00
Mauricio Siu
ef7918a33a Merge pull request #1665 from Dokploy/canary
🚀 Release v0.21.5
2025-04-08 23:24:19 -06:00
Mauricio Siu
ee6ad07c0a Update package.json 2025-04-08 22:44:17 -06:00
Mauricio Siu
48fe26b204 Merge pull request #1661 from henriklovhaug/canary
Fix(Traefik) Move `passHostHeader` to correct indentation
2025-04-08 22:43:52 -06:00
autofix-ci[bot]
3ede89fe8a [autofix.ci] apply automated fixes 2025-04-08 20:27:50 +00:00
Henrik Tøn Løvhaug
fa698d173e Move passHostHeader to correct position 2025-04-08 22:24:19 +02:00
autofix-ci[bot]
1279fac137 [autofix.ci] apply automated fixes 2025-04-07 19:46:14 +00:00
Lorenzo Migliorero
0e1f0b42ee fix(gitlab): update group name label and enhance group name handling
- Updated the label for the group name input field to indicate it accepts a comma-separated list.
- Modified the logic for checking group name inclusion to support multiple names separated by commas.
2025-04-07 21:43:56 +02:00
Axodouble
05f43ad06b FEAT: Add Dutch / NL language translations 2025-04-07 10:36:37 +02:00
Mauricio Siu
af4511040f Merge pull request #1645 from Dokploy/canary
🚀 Release v0.21.4
2025-04-06 17:07:04 -06:00
Mauricio Siu
8f0697b0e9 Update package.json 2025-04-06 15:29:13 -06:00
Mauricio Siu
4b15177260 Merge branch 'canary' into feat/github-triggerType 2025-04-06 15:09:45 -06:00
Mauricio Siu
61a20f13e2 Merge pull request #1629 from krokodaws/fix/bulk-actions
fix: resolve incorrect endpoints for database bulk actions (#1626)
2025-04-06 11:09:48 -06:00
autofix-ci[bot]
f5cffca37c [autofix.ci] apply automated fixes (attempt 2/3) 2025-04-06 10:56:32 +00:00
Mauricio Siu
148b1ff2db refactor(user-nav): remove settings option for owner role and delete settings page
- Removed the "Settings" dropdown menu item for users with the "owner" role in the UserNav component.
- Deleted the settings page implementation, including all related components and logic.
2025-04-06 03:32:39 -06:00
Mauricio Siu
1beceb7ee7 Merge pull request #1641 from Dokploy/1590-backup-maxing-buffer-size
fix(backups): suppress output during backup and restore processes
2025-04-06 03:22:24 -06:00
Mauricio Siu
bea0316bbd fix(backups): suppress output during backup and restore processes
- Updated the backup command in runWebServerBackup to suppress output by redirecting it to /dev/null.
- Modified the restore command in restoreWebServerBackup to also suppress output during the extraction of backups.
2025-04-06 03:22:03 -06:00
Mauricio Siu
b2a8572d10 Merge pull request #1640 from Dokploy/1633-bug-using-reload-for-an-application-with-multiple-replicas
fix(application): enhance application reload process with error handl…
2025-04-06 03:06:48 -06:00
Mauricio Siu
2352939e87 fix(application): enhance application reload process with error handling and Docker container management
- Added mechanizeDockerContainer function to manage Docker container state during application reload.
- Improved error handling to update application status on failure and provide more informative error messages.
- Refactored authorization check to throw an error if the user is not authorized to reload the application.
2025-04-06 03:05:46 -06:00
autofix-ci[bot]
e5ee06b67e [autofix.ci] apply automated fixes 2025-04-06 08:59:02 +00:00
Mauricio Siu
48ec0a74ad Merge pull request #1637 from Dokploy/1601-duplicate-domain-bug
feat(settings): add HTTPS support and update user schema
2025-04-06 02:42:04 -06:00
Mauricio Siu
bca6af77fd fix(traefik): update server configuration to use new host parameter and ensure HTTPS is set correctly
- Modified the updateServerTraefik function to utilize the newHost parameter instead of user.host.
- Ensured the HTTPS field is correctly initialized in the test for server configuration.
2025-04-06 02:37:15 -06:00
Mauricio Siu
b3bd9ba1ce Merge pull request #1616 from vicke4/webserver-backup-auto-delete
fix(backups): web-server backups auto-deletion
2025-04-06 02:31:09 -06:00
Mauricio Siu
5a9c763c4f Merge pull request #1631 from lorenzomigliorero/fix/remove-sensitive-files-from-static-build
fix(security): remove sensitive files on static build
2025-04-06 02:30:35 -06:00
Mauricio Siu
4b51744d0d Merge pull request #1638 from Dokploy/1588-invalid-behavior-when-using-s3-prefix-destination-for-backups
feat(backups): implement normalizeS3Path utility and integrate into b…
2025-04-06 02:15:37 -06:00
Mauricio Siu
e5a3e56e13 fix(tests): initialize HTTPS field in user schema for server config tests 2025-04-06 02:11:46 -06:00
Mauricio Siu
42fa4008ab feat(backups): implement normalizeS3Path utility and integrate into backup processes
- Added normalizeS3Path function to standardize S3 path formatting by trimming whitespace and removing leading/trailing slashes.
- Updated backup-related modules (MySQL, MongoDB, PostgreSQL, MariaDB, and web server) to utilize normalizeS3Path for consistent S3 path handling.
- Introduced unit tests for normalizeS3Path to ensure correct functionality across various input scenarios.
2025-04-06 02:09:23 -06:00
Mauricio Siu
1605aedd6e feat(settings): add HTTPS support and update user schema
- Introduced a new boolean field 'https' in the user schema to manage HTTPS settings.
- Updated the web domain form to include an HTTPS toggle, allowing users to enable or disable HTTPS.
- Enhanced validation logic to ensure certificate type is required when HTTPS is enabled.
- Modified Traefik configuration to handle HTTPS routing based on user settings.
2025-04-06 01:41:47 -06:00
Mauricio Siu
14bc26e065 feat(websocket): enhance WebSocket server with request validation and client instantiation
- Added request validation to ensure user authentication before establishing WebSocket connections.
- Refactored WebSocket client instantiation to simplify connection management.
2025-04-06 00:07:41 -06:00
Mauricio Siu
6c8eb3b711 Merge pull request #1635 from Dokploy/fix/use-exec-file
feat(registry): refactor Docker login command execution to use execFi…
2025-04-05 23:05:17 -06:00
Mauricio Siu
cb20950dd9 feat(registry): refactor Docker login command execution to use execFileAsync for improved input handling 2025-04-05 23:03:57 -06:00
Hoofei
350bed217c Delete the extract script 2025-04-06 12:37:52 +08:00
Hoofei
7ac7481343 Update Simplified Chinese 2025-04-06 12:34:47 +08:00
Hoofei
d9c34c4524 Update Simplified Chinese 2025-04-06 12:09:30 +08:00
Mauricio Siu
e83efa3379 Merge pull request #1630 from lorenzomigliorero/feat/improve-projects-show-grid
feat: improve projects grid
2025-04-04 23:45:09 -06:00
Lorenzo Migliorero
5863e45c13 remove sensitive files on static build 2025-04-04 20:18:56 +02:00
Lorenzo Migliorero
2c09b63bf9 feat: improve projects show grid 2025-04-04 19:19:09 +02:00
krokodaws
eff2657e70 fix: resolve incorrect endpoints for database bulk actions (#1626)
Update bulk action endpoints for database services:
- Use `/api/trpc/redis.start` and `/api/trpc/redis.stop` for Redis
- Use `/api/trpc/postgres.start` and `/api/trpc/postgres.stop` for PostgreSQL
- Retain `/api/trpc/compose.start` and `/api/trpc/compose.stop` for Docker Compose services

Tested with a project including Gitea, Redis, and PostgreSQL. Bulk start/stop operations now function correctly for all service types.

Closes #1626
2025-04-04 19:21:30 +03:00
Mauricio Siu
36172491a4 refactor(websocket): streamline WebSocket server setup and client instantiation
- Removed the request validation logic from the WebSocket connection handler.
- Added a cleanup function to close the WebSocket server.
- Introduced a singleton pattern for the WebSocket client to manage connections more efficiently.
2025-04-04 01:55:29 -06:00
Mauricio Siu
d43b098a7a Merge pull request #1623 from Dokploy/1606-project-name-starting-with-a-number-causes-a-conflict-with-application-name
feat(handle-project): enhance project name validation to disallow sta…
2025-04-04 01:28:07 -06:00
Mauricio Siu
8479f20205 feat(handle-project): enhance project name validation to disallow starting with a number 2025-04-04 01:27:53 -06:00
Ganapathy S
6cb4159d54 Merge branch 'Dokploy:canary' into webserver-backup-auto-delete 2025-04-03 15:31:48 +05:30
Mauricio Siu
1bbbdfba60 Merge pull request #1618 from Dokploy/canary
🚀 Release v0.21.3
2025-04-03 00:24:36 -06:00
Mauricio Siu
031d0ce315 Update dokploy version to v0.21.3 in package.json 2025-04-03 00:22:57 -06:00
Mauricio Siu
131a1acbbe Merge pull request #1617 from Dokploy/fix/cover-edge-cases-processor-template
fix(templates): add optional chaining to prevent errors when accessin…
2025-04-03 00:22:44 -06:00
Mauricio Siu
9a839de022 feat(templates): add username and email generation using faker 2025-04-03 00:22:29 -06:00
Mauricio Siu
b9de05015f fix(templates): add optional chaining to prevent errors when accessing template properties 2025-04-03 00:17:09 -06:00
autofix-ci[bot]
e176def5b6 [autofix.ci] apply automated fixes 2025-04-03 06:12:08 +00:00
vicke4
94c947e288 fix(backups): web-server backups auto-deletion 2025-04-03 11:41:21 +05:30
Theo D
fcb8a2bded feat(github): add triggerType field to GitHub provider and handle tag creation events 2025-04-02 22:28:12 +02:00
Mauricio Siu
116e33ce37 Merge pull request #1609 from Dokploy/canary
🚀 Release v0.21.2
2025-04-02 07:22:22 -06:00
Mauricio Siu
0bdaa81263 fix(backups): replace findAdmin with db query to fetch admin by role for cron job initialization 2025-04-02 07:10:19 -06:00
Mauricio Siu
baf36b6fb6 Merge pull request #1608 from Dokploy/fix/move-cron-to-after-migration
Fix/move cron to after migration
2025-04-02 06:58:38 -06:00
Mauricio Siu
d632e83799 Update dokploy version to v0.21.2 in package.json 2025-04-02 06:53:41 -06:00
Mauricio Siu
6f52edd845 fix(backups): ensure initCronJobs is awaited before migration to improve backup reliability 2025-04-02 06:53:32 -06:00
Mauricio Siu
e9b92d2641 Merge pull request #1600 from Dokploy/canary
🚀 Release v0.21.1
2025-04-02 00:39:10 -06:00
Mauricio Siu
9d0f5bc8cd Update package.json 2025-04-02 00:31:55 -06:00
Mauricio Siu
3dc558c260 Merge pull request #1599 from vicke4/backup-cron-fix-attempt
fix(backups): awaiting initCronJobs call in an attempt to fix backups cron
2025-04-02 00:31:20 -06:00
vicke4
180aa34140 fix(backups): awaiting initcronjobs in an attempt to fix backups cron 2025-04-02 11:07:48 +05:30
Yusoof Moh
96e9799afb Merge branch 'Dokploy:canary' into add-disable-recurse-submodules-option 2025-03-30 21:11:25 +07:00
Mauricio Siu
3e07be38df Merge pull request #1583 from Dokploy/canary
🚀 Release v0.21.0
2025-03-30 04:01:46 -06:00
Mauricio Siu
ffc85b04a8 Merge pull request #1572 from thebadking/refactor-show-build-form-and-prettier
build form optimization
2025-03-30 03:36:19 -06:00
Mauricio Siu
dbcfc702d4 Merge branch 'canary' into refactor-show-build-form-and-prettier 2025-03-30 03:31:49 -06:00
autofix-ci[bot]
67e85cabcb [autofix.ci] apply automated fixes 2025-03-30 08:51:24 +00:00
Mauricio Siu
7805efc738 Merge pull request #1584 from Dokploy/1294-duplicate-project-andor-services-accross-projects
1294 duplicate project andor services accross projects
2025-03-30 02:50:09 -06:00
Mauricio Siu
3910e22412 Refactor Duplicate Project component and integrate with project detail page
- Updated the DuplicateProject component to accept projectId and selectedServiceIds as props, enhancing its flexibility.
- Removed unnecessary state management for service selection within the component.
- Integrated the DuplicateProject component directly into the project detail page, allowing for easier access to duplication functionality.
- Improved the user interface by utilizing DialogTrigger for initiating the duplication process and displaying selected services more clearly.
2025-03-30 02:42:35 -06:00
Mauricio Siu
2f16034cb0 Add Duplicate Project functionality
- Introduced a new component for duplicating projects, allowing users to create a new project with the same configuration as an existing one.
- Implemented a mutation in the project router to handle project duplication, including optional service duplication.
- Updated the project detail page to include a dropdown menu for initiating the duplication process.
- Enhanced the API to validate and process the duplication request, ensuring proper handling of services associated with the project.
2025-03-30 02:38:53 -06:00
Mauricio Siu
d4925dd2b7 Update dokploy version to v0.21.0 in package.json 2025-03-30 01:59:43 -06:00
Mauricio Siu
5aba6c79a0 Merge pull request #1582 from Dokploy/fix/allow-false-values-in-env
Fix/allow false values in env
2025-03-30 01:40:06 -06:00
Mauricio Siu
84f5627471 Enhance environment variable handling in processTemplate: support boolean and number types in env configuration, with tests for both array and object formats. 2025-03-30 01:29:23 -06:00
Mauricio Siu
4eaf8fee0f Add toml package and update configuration parsing in Dokploy
- Added toml package version 3.0.0 to package.json files in both apps/dokploy and packages/server.
- Replaced js-yaml load function with toml parse function for configuration parsing in compose.ts and github.ts files, ensuring compatibility with TOML format.
- Updated pnpm-lock.yaml to reflect the new toml dependency.
2025-03-30 01:12:27 -06:00
Mauricio Siu
adee87b6da Enhance volume handling in Docker Compose: update addSuffixToVolumesInServices to correctly manage volume paths with subdirectories and improve test coverage for suffix changes in volume names. 2025-03-30 00:32:09 -06:00
Mauricio Siu
e5e987fcf9 Merge branch 'canary' into fix/allow-false-values-in-env 2025-03-29 23:51:48 -06:00
Mauricio Siu
d0a6373dcc Update Dockerfile to include 'zip' package in production environment for enhanced file handling capabilities. 2025-03-29 23:49:45 -06:00
Mauricio Siu
8ed44066ad Update Card component in server settings page: adjust width class for better responsiveness and layout consistency. 2025-03-29 23:38:28 -06:00
Mauricio Siu
befe2193a7 Merge pull request #1581 from Dokploy/709-back-ups-for-dokploy
709 back ups for dokploy
2025-03-29 23:27:29 -06:00
Mauricio Siu
f20c73cdee Refactor temporary directory creation in web server backup: replace static path with dynamic temp directory using mkdtemp for improved file management and isolation during backup operations. 2025-03-29 23:27:13 -06:00
Yusoof Moh
64a77decfd Merge branch 'Dokploy:canary' into add-disable-recurse-submodules-option 2025-03-30 12:02:06 +07:00
Mauricio Siu
16bfc09202 Refactor serverId assignment in ShowBackups component: update logic to check for serverId presence in postgres object, improving code clarity and consistency. 2025-03-29 20:24:39 -06:00
Mauricio Siu
d54a61b2a4 Remove commented-out backup commands from restoreWebServerBackup function for cleaner code and improved readability. 2025-03-29 20:14:55 -06:00
Mauricio Siu
60c09a6434 Implement cloud check in backup and restore functions: add IS_CLOUD condition to skip operations for cloud environments in runWebServerBackup and restoreWebServerBackup functions. 2025-03-29 20:14:36 -06:00
Mauricio Siu
5361e9074f Refactor backup scheduling: consolidate backup handling for multiple database types into a single loop, enhance error logging, and integrate web server backup functionality. 2025-03-29 20:12:55 -06:00
Mauricio Siu
13d4dea504 Enhance ShowBackups component: add Database icon to title for improved UI clarity and wrap ShowBackups in a Card component for better layout in server settings page. 2025-03-29 19:53:25 -06:00
Mauricio Siu
ffc2d593e4 Refactor restoreWebServerBackup function: implement temporary directory creation outside BASE_PATH, streamline filesystem restoration process, and enhance logging for database restore operations. 2025-03-29 19:47:02 -06:00
Mauricio Siu
297439a348 Update restore-backup component and backup router for web server support: set default database name based on type, disable input for web server, and streamline backup restoration process with improved logging and error handling. 2025-03-29 19:27:05 -06:00
Mauricio Siu
ff3e067866 Implement web server backup and restore functionality: add new backup and restore methods for web servers, including S3 integration and improved logging. Refactor existing backup process to support web server type and streamline temporary file management. 2025-03-29 18:43:35 -06:00
Mauricio Siu
f008a45bf2 Enhance backup process: implement temporary directory structure for backups, add filesystem backup, and create zip file of database and filesystem contents. Update logging for better visibility during backup operations. 2025-03-29 18:00:13 -06:00
Mauricio Siu
50c8503cf9 Enhance backup functionality: add support for 'web-server' database type in backup components, update related schemas, and implement new backup procedures. Introduce userId reference in backups schema and adjust UI components to accommodate the new type. 2025-03-29 17:53:57 -06:00
Mauricio Siu
930a03de60 Merge pull request #1523 from jrparks/feat/add-gitea-repo
Feat/add gitea repo
2025-03-29 15:43:55 -06:00
autofix-ci[bot]
2d3d86e823 [autofix.ci] apply automated fixes 2025-03-29 21:18:08 +00:00
André Ferreira
7bab166e1b increased type safety 2025-03-29 21:17:32 +00:00
Mauricio Siu
7a6e1dbc1b Refactor SecurityAudit component: remove unused root login security check and related UI elements to streamline the code and improve readability. 2025-03-29 15:04:33 -06:00
Mauricio Siu
17a859d26d Refactor ShowConvertedCompose component: simplify conditional rendering of the compose file display by removing unnecessary null check and ensuring consistent layout. 2025-03-29 15:01:55 -06:00
Mauricio Siu
d793c6a2ec Add Gitea repository link in SaveGiteaProvider: integrate dynamic repository URL display and enhance user experience with a view link for existing repositories. 2025-03-29 15:00:23 -06:00
Mauricio Siu
3adb9d54f4 Refactor ShowProviderFormCompose component: streamline provider rendering logic and ensure Gitea integration is fully functional with updated tab and content handling. 2025-03-29 14:57:36 -06:00
Mauricio Siu
7144adbf0c Add migration for '0081_lovely_mentallo': remove gitea_username column and update journal with new version 2025-03-29 14:47:51 -06:00
Mauricio Siu
55328468d1 Refactor Gitea integration: remove giteaProjectId references and update related schemas. Add new fields for gitea repository details in application tests and components. 2025-03-29 14:44:33 -06:00
Mauricio Siu
6968cb6930 Merge pull request #1465 from zaaakher/docs/guides
docs: update `CONTRIBUTING.md` and add `GUIDES.md`
2025-03-29 14:28:24 -06:00
Mauricio Siu
a431e4c58e Update CONTRIBUTING.md 2025-03-29 14:28:11 -06:00
Mauricio Siu
fe967239b4 Merge branch 'canary' into feat/add-gitea-repo 2025-03-29 13:47:18 -06:00
Mauricio Siu
c5b4b85470 Merge pull request #1578 from Dokploy/fix/biome-lint
chore(workflow): add Biome code formatting workflow for canary branch
2025-03-29 13:41:49 -06:00
Mauricio Siu
b1ef9d25b1 chore(workflow): add autofix.ci workflow for automatic code formatting on canary branch 2025-03-29 13:41:05 -06:00
Mauricio Siu
74f7c51530 chore(workflow): add autofix.ci workflow for automatic code formatting with Biome 2025-03-29 13:39:57 -06:00
Mauricio Siu
4ba2b9fe8d chore(workflow): add new Biome formatting workflow for canary branch 2025-03-29 13:38:55 -06:00
Mauricio Siu
413eda50f4 chore(workflow): simplify AutoFix action usage in Biome workflow 2025-03-29 13:37:43 -06:00
Mauricio Siu
9f09681708 chore(workflow): streamline Biome setup by replacing Node.js and pnpm steps with biomeJs action 2025-03-29 13:37:01 -06:00
Mauricio Siu
8eb174812d chore(workflow): replace manual commit step with AutoFix action for Biome formatting 2025-03-29 13:35:50 -06:00
Mauricio Siu
be77f114eb Merge ca42708035 into beadcf871a 2025-03-29 19:30:24 +00:00
Mauricio Siu
ca42708035 chore(workflow): configure git user for automated commits and enforce push 2025-03-29 13:30:18 -06:00
Mauricio Siu
8b03454a87 chore(workflow): update Biome workflow to push changes to the correct branch 2025-03-29 13:28:50 -06:00
Mauricio Siu
fa7f749f84 refactor(dokploy): standardize code formatting and improve readability across multiple components 2025-03-29 13:26:44 -06:00
Mauricio Siu
3daecd7d71 chore(workflow): update pnpm version to 9.5.0 in Biome workflow 2025-03-29 13:20:48 -06:00
Mauricio Siu
0666b5b292 chore(workflow): add pnpm setup step to Biome workflow 2025-03-29 13:20:07 -06:00
Mauricio Siu
b288ddd826 chore(workflow): add Biome code formatting workflow for canary branch 2025-03-29 13:18:50 -06:00
Mauricio Siu
beadcf871a Merge pull request #1577 from Dokploy/1568-dokploy---nextjs-affected-by-cve-2025-29927
refactor(dokploy): remove lucia-auth adapter and related authenticati…
2025-03-29 12:23:26 -06:00
Mauricio Siu
ee49dadf0b refactor(dokploy): remove lucia-auth adapter and related authentication logic; update next.js version to 15.2.4 2025-03-29 12:17:14 -06:00
Mauricio Siu
46de83a1de Merge pull request #1576 from Dokploy/1564-downloaded-ssh-keys-are-always-named-as-id_rsa-keys
refactor(ssh-keys): simplify downloadKey function and filename genera…
2025-03-29 12:13:38 -06:00
Mauricio Siu
fee5024b7d refactor(ssh-keys): simplify downloadKey function and filename generation logic 2025-03-29 12:13:22 -06:00
André Ferreira
1f28a21835 remove prettier 2025-03-28 19:21:39 +00:00
André Ferreira
0114b371f5 prettier and build form optimization 2025-03-28 17:31:53 +00:00
Jason Parks
66d6cb5710 Fixed compose bug and formatted. Updated the refresh token to check the expired time. 2025-03-27 15:27:53 -06:00
Jason Parks
5927c7c3c5 Added back in compose alert block 2025-03-27 13:26:24 -06:00
Jason Parks
84afcf0de5 Removed apps/dokploy/templates/infisical/index.ts 2025-03-27 13:12:02 -06:00
Mauricio Siu
e3527f7d69 fix(processors): ensure environment variable processing handles non-string values correctly 2025-03-26 01:48:50 -06:00
Yusoof Moh
cc5a3e6873 Add option to disable recurse submodules
Add option to disable recurse submodules under "Provider Select the source of your code" form.

* Add a checkbox to disable recurse submodules in `apps/dokploy/components/dashboard/application/general/generic/save-git-provider.tsx`, `apps/dokploy/components/dashboard/application/general/generic/save-github-provider.tsx`, and `apps/dokploy/components/dashboard/application/general/generic/save-gitlab-provider.tsx`.
* Update the form schema in the above files to include the new option.
* Conditionally include the `--recurse-submodules` flag in the `git clone` command in the above files.
* Update the "Provider Select the source of your code" form in `apps/dokploy/components/dashboard/application/general/generic/show.tsx` to include the new option.
* Conditionally include the `--recurse-submodules` flag in the `git clone` command in `packages/server/src/utils/providers/bitbucket.ts`, `packages/server/src/utils/providers/git.ts`, `packages/server/src/utils/providers/github.ts`, and `packages/server/src/utils/providers/gitlab.ts`.
* Add the `--depth` flag to optimize submodule cloning performance in the `git clone` command in `packages/server/src/utils/providers/bitbucket.ts`, `packages/server/src/utils/providers/git.ts`, `packages/server/src/utils/providers/github.ts`, and `packages/server/src/utils/providers/gitlab.ts`.

---

For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/Dokploy/dokploy?shareId=XXXX-XXXX-XXXX-XXXX).
2025-03-25 22:04:35 +07:00
Jason Parks
39f4a35cc8 fix: remove giteaPathNamespace 2025-03-24 01:53:00 -06:00
Mauricio Siu
e0433e9f7b Merge pull request #1554 from Dokploy/1061-custom-docker-service-hostname
1061 custom docker service hostname
2025-03-23 23:58:28 -06:00
Mauricio Siu
d29ff881fc fix(redis-connection): update Redis host configuration to use environment variable for production 2025-03-23 23:43:38 -06:00
Mauricio Siu
568c3a1d06 chore(workflow): update branches for Dokploy Docker build to use custom hostname 2025-03-23 23:38:55 -06:00
Mauricio Siu
e9fd280fa2 refactor(server): comment out initialization of Postgres, Traefik, and Redis for testing purposes 2025-03-23 23:28:53 -06:00
Jason Parks
5d5913f39d fix: resolve aria-hidden accessibility error in dialog component
Remove custom onOpenAutoFocus handler that was preventing proper focus management in the EditGiteaProvider dialog. This fixes the 'Blocked aria-hidden on an element because its descendant retained focus' error by allowing the dialog component to handle focus naturally.
2025-03-23 16:13:16 -06:00
Jason Parks
f04c8a36af Fix Gitea repository integration and preview compose display 2025-03-23 15:35:22 -06:00
Jason Parks
d5137d5d3a fix: handle repository id null case consistently 2025-03-23 14:04:30 -06:00
Mauricio Siu
9535fca28f Merge pull request #1540 from vicke4/backup-deletion-fix
fix(backups): auto deletion of backups
2025-03-23 04:31:37 -06:00
Mauricio Siu
dd62d603e0 Merge pull request #1550 from Dokploy/1543-preview-docker-compose-button-null-when-git-is-provider
feat(dashboard): add informational alert for docker-compose preview r…
2025-03-23 04:30:58 -06:00
Mauricio Siu
8d227e2a2c feat(dashboard): add informational alert for docker-compose preview requirements 2025-03-23 04:30:00 -06:00
Mauricio Siu
048c8ffc11 feat: Add Docker image push notification in commit message extraction
- Enhanced the extractCommitMessage function to include a specific message format for Docker image pushes when the user-agent indicates a Go-http-client. This improves clarity in deployment notifications by providing detailed information about the repository and the pusher.
2025-03-23 04:12:08 -06:00
Mauricio Siu
b59597630c refactor: Remove commented-out Gitea requirements check in Git providers component
- Eliminated unnecessary commented code related to Gitea access token checks in the ShowGitProviders component to enhance code clarity and maintainability.
2025-03-23 04:10:00 -06:00
Mauricio Siu
707463f973 refactor: Streamline Docker service management and error handling
- Removed unnecessary console logging in the mechanizeDockerContainer function to enhance code clarity.
- Simplified error handling by directly creating a new service if the existing one is not found, improving the deployment logic.
- Updated the buildNixpacks function to ensure container cleanup is attempted without additional error handling, streamlining the process.
2025-03-23 04:09:06 -06:00
Mauricio Siu
4b3e0805a4 chore: Update dependencies and clean up code formatting
- Downgraded '@trpc/server' version in package.json and pnpm-lock.yaml to match other TRPC packages.
- Removed unused dependencies 'node-fetch', 'data-uri-to-buffer', 'fetch-blob', and 'formdata-polyfill' from pnpm-lock.yaml and package.json.
- Improved code formatting in various components for better readability, including adjustments in 'edit-gitea-provider.tsx' and 'security-audit.tsx'.
- Refactored imports in 'auth.ts' for better organization and clarity.
2025-03-23 04:06:35 -06:00
Mauricio Siu
148c30f604 refactor: Remove unnecessary logging in Gitea repository fetching
- Eliminated console logging of repositories in the Gitea API router to streamline the code and improve performance.
2025-03-23 03:57:37 -06:00
Mauricio Siu
95f79f2afb feat: Enhance deployment logic for multiple Git providers
- Added support for handling commit normalization across GitHub, GitLab, and Gitea in the deployment API.
- Implemented a new utility function to determine the provider based on request headers.
- Improved deployment path validation to ensure consistency across different source types.
- Cleaned up the code by removing redundant checks and enhancing readability.
2025-03-23 03:55:11 -06:00
Mauricio Siu
a067abd3e4 refactor: Enhance Gitea repository handling and clean up token refresh logic
- Updated Gitea repository cloning to use the remote variant for better consistency.
- Removed unnecessary logging and comments in the token refresh function to streamline the code.
- Improved type handling in the cloneGiteaRepository function for better clarity.
2025-03-23 03:35:02 -06:00
Mauricio Siu
9359ee7a04 refactor: Update Gitea provider components and API handling
- Adjusted GiteaProviderSchema to ensure watchPaths are correctly initialized and validated.
- Refactored SaveGiteaProvider and SaveGiteaProviderCompose components for improved state management and UI consistency.
- Simplified API router methods for Gitea, enhancing readability and error handling.
- Updated database schema and service functions for better clarity and maintainability.
- Removed unnecessary comments and improved logging for better debugging.
2025-03-23 03:27:19 -06:00
Jason Parks
fc7eff94b6 fix: Security Audit SSH Errors #1377
- Fixed SSH key authentication detection in server-audit.ts
- Added proper handling for prohibit-password and other secure root login options
- Fixed typos in security audit UI labels
- Improved error handling with optional chaining
2025-03-22 14:26:40 -06:00
Jason Parks
ff3d444b89 fix: prevent form dropdown flicker in Gitea provider modal
Prevents the brief appearance of dropdown options when opening the Edit Gitea Provider modal by:
- Adding onOpenAutoFocus event handler to prevent automatic focus
- Setting autoFocus={false} on the first input field
- Simplifying component state management

This improves the UI experience by eliminating visual artifacts when the dialog opens.
2025-03-22 13:30:47 -06:00
Jason Parks
530ad31aaa Simplify Gitea authorization flow with shared utilities 2025-03-20 16:48:59 -06:00
vicke4
68d0a48843 fix(backups): auto deletion of backups 2025-03-21 01:36:11 +05:30
Jason Parks
a4e4d1c467 Fix Gitea watch branch validation logic 2025-03-20 13:50:55 -06:00
Jason Parks
56d8defebe Added watchlist paths for Gitea and some minor typescript fixes. 2025-03-19 16:48:51 -06:00
Jason Parks
997e755b6f Merge remote-tracking branch 'upstream/canary' into feat/add-gitea-repo 2025-03-19 14:06:29 -06:00
Jason Parks
852011dde8 Merge branch 'feat/add-gitea-repo' of https://github.com/jrparks/dokploy into feat/add-gitea-repo 2025-03-19 11:32:29 -06:00
Jason Parks
d7ef201adb Refactor Gitea integration and update related components 2025-03-19 11:31:08 -06:00
Mauricio Siu
b1d1763988 Merge pull request #1535 from Dokploy/canary
🚀 Release v0.20.8
2025-03-19 00:57:24 -06:00
Mauricio Siu
91183056f0 Merge pull request #1534 from Dokploy/feat/enable-swarm-overview
Feat/enable swarm overview
2025-03-19 00:52:22 -06:00
Mauricio Siu
03bd4398d0 chore(package): bump version to v0.20.8 2025-03-19 00:51:49 -06:00
Mauricio Siu
8c260eff72 feat(cluster): enhance AddNode and ShowNodes components for better user guidance and functionality
- Added an AlertBlock in AddNode to inform users about architecture compatibility when adding nodes.
- Updated ShowNodes to correctly handle node deletion actions based on ManagerStatus.
- Refactored cluster API to remove cloud-specific checks and improve command execution for remote servers.
2025-03-19 00:51:27 -06:00
Mauricio Siu
4eef65f1b7 fix(git): update Gitea provider instructions and improve Git providers display
- Enhanced the Gitea provider setup instructions by specifying the navigation path for creating a new OAuth2 application.
- Added a blank line for better readability in the Git providers display component.
2025-03-18 21:50:01 -06:00
Mauricio Siu
a7535c6862 Merge branch 'canary' into feat/add-gitea-repo 2025-03-18 21:42:42 -06:00
Mauricio Siu
b5d199057d Merge pull request #1532 from Dokploy/canary
🚀 Release v0.20.7
2025-03-18 21:38:47 -06:00
Mauricio Siu
6e28196b0e chore(package): bump version to v0.20.7 2025-03-18 21:36:39 -06:00
Mauricio Siu
18bacae175 Merge pull request #1507 from nb5p/fix-alpine-linux-compatibility
fix(server-setup): resolve Alpine Linux compatibility issues
2025-03-18 21:35:43 -06:00
Mauricio Siu
f2be5a378e Merge pull request #1522 from ensarkurrt/canary
fix(ui): Improve Numeric Input Handling in Swarm Cluster Settings, Traefik Port Mappings, and Email Notifications
2025-03-18 21:27:20 -06:00
Mauricio Siu
aef24296b9 Merge pull request #1531 from Dokploy/fix/loader-swarm
Fix/loader swarm
2025-03-18 21:18:17 -06:00
Mauricio Siu
7123b9b109 feat(cluster): add error handling in AddManager and AddWorker components
- Integrated error handling in AddManager and AddWorker components to display error messages using AlertBlock when data fetching fails.
- Updated API query hooks to include error and isError states for improved user feedback during data operations.
2025-03-18 21:17:11 -06:00
Mauricio Siu
891dc840f5 feat(cluster): enhance node management UI with loading indicators and improved tab content
- Added loading indicators in AddManager and AddWorker components to enhance user experience during data fetching.
- Updated AddNode component to include overflow handling for tab content.
- Renamed "Show Nodes" to "Show Swarm Nodes" in ShowNodesModal for clarity.
2025-03-18 21:11:50 -06:00
Zakher Masri
bc78100613 remove redis part 2025-03-18 12:02:03 +03:00
Mauricio Siu
ff22404b3b feat(gitea): add Gitea integration with database schema updates
- Introduced Gitea support by adding necessary database tables and columns.
- Updated enum types to include 'gitea' for source and git provider types.
- Established foreign key relationships between Gitea and application/compose tables.
- Removed obsolete Gitea-related SQL files and updated journal entries for clarity.
2025-03-18 01:16:38 -06:00
Mauricio Siu
bfb6baf572 Merge pull request #1529 from Dokploy/canary
🚀 Release v0.20.6
2025-03-18 01:01:21 -06:00
Mauricio Siu
17330ca71a refactor: standardize import statements and improve code structure across multiple components
- Updated import statements to maintain consistency and clarity.
- Refactored components to enhance readability and organization.
- Ensured proper usage of type imports and removed unnecessary comments.
- Improved user feedback mechanisms in forms and alerts for better user experience.
2025-03-18 00:52:34 -06:00
Mauricio Siu
2898a5e575 Merge branch 'canary' into feat/add-gitea-repo 2025-03-18 00:50:27 -06:00
Mauricio Siu
172694be30 Merge pull request #1530 from Dokploy/feat/add-date-to-restore-item
feat(backup): enhance RestoreBackup component and API to include serv…
2025-03-18 00:49:02 -06:00
Mauricio Siu
ea6cfc9d29 feat(backup): enhance RestoreBackup component and API to include serverId
- Added serverId prop to RestoreBackup component for better context during backup restoration.
- Updated ShowBackups component to pass serverId from the Postgres object.
- Modified backup API to handle serverId, allowing remote execution of backup commands when specified.
- Improved file display in RestoreBackup for better user experience.
2025-03-18 00:47:50 -06:00
Mauricio Siu
4fa5e10789 chore(package): bump version to v0.20.6 2025-03-18 00:18:39 -06:00
Mauricio Siu
cb7fbb777c Merge pull request #1528 from Dokploy/1524-getting-502-bad-gateway
1524 getting 502 bad gateway
2025-03-18 00:15:12 -06:00
Mauricio Siu
6a388fe370 feat(domain): add validation for traefik.me domain IP address requirement
- Implemented a check to ensure an IP address is set for traefik.me domains in the AddDomain and AddDomainCompose components.
- Integrated a new API query to determine if traefik.me domains can be generated based on the server's IP address.
- Added user feedback through alert messages when the IP address is not configured.
2025-03-18 00:13:55 -06:00
Mauricio Siu
0722182650 feat(auth): implement user creation validation and IP update logic
- Added validation for user creation to check for existing admin presence and validate x-dokploy-token.
- Integrated public IP retrieval for user updates when not in cloud environment.
- Enhanced error handling with APIError for better feedback during user creation process.
2025-03-17 23:59:39 -06:00
Mauricio Siu
5e1095d199 Merge pull request #1526 from Dokploy/fix/mongo-db-button-deploy
refactor: improve code formatting and structure in ShowGeneralMongo c…
2025-03-17 23:18:18 -06:00
Mauricio Siu
c80a31e8c4 refactor: improve code formatting and structure in ShowGeneralMongo component
- Standardized indentation and formatting for better readability.
- Enhanced tooltip integration within button elements for improved user experience.
- Maintained functionality for deploying, reloading, starting, and stopping MongoDB instances while ensuring consistent code style.
2025-03-17 23:16:29 -06:00
Jason Parks
fac8ea7a30 Merge branch 'canary' into feat/add-gitea-repo 2025-03-17 15:25:02 -06:00
Jason Parks
9a11d0db97 feat(gitea): add Gitea repository support 2025-03-17 15:17:35 -06:00
Ensar Kurt
3cdf4c426c revert commit from #1513 2025-03-18 00:05:59 +03:00
Ensar Kurt
7cb184dc97 email notification port, last digit staying error fix 2025-03-17 23:48:17 +03:00
Ensar Kurt
fe57333f84 manage port inputs, default zero fix 2025-03-17 23:47:54 +03:00
Ensar Kurt
04fd77c3a9 replicas input cannot be zero and empty 2025-03-17 23:42:09 +03:00
yni9ht
371c6317aa refactor(mount): streamline mount update logic and improve readability 2025-03-17 20:44:13 +08:00
Mauricio Siu
1f81794904 Merge pull request #1517 from Dokploy/canary
refactor: improve button structure and tooltip integration across das…
2025-03-16 20:54:15 -06:00
Mauricio Siu
7c17cfb5c7 refactor: improve button structure and tooltip integration across dashboard components
- Refactored button components in the dashboard to enhance structure and readability.
- Integrated tooltips directly within button elements for better user experience.
- Updated tooltip descriptions for clarity across various database actions (Deploy, Reload, Start, Stop) for Redis, MySQL, PostgreSQL, and MariaDB.
- Ensured consistent formatting and improved code maintainability.
2025-03-16 20:52:57 -06:00
Mauricio Siu
d5d3831d54 Merge pull request #1515 from Dokploy/canary
🚀 Release v0.20.5
2025-03-16 20:32:45 -06:00
Mauricio Siu
c6a288781f Merge pull request #1516 from Dokploy/1475-multiple-deployments-triggered-for-a-single-action-when-using-multiple-organizations-linked-to-the-same-github-account
fix(api): enhance GitHub deployment handling with additional GitHub …
2025-03-16 20:19:16 -06:00
Mauricio Siu
724bed9832 feat(api): enhance GitHub deployment handling with additional GitHub ID checks
- Added GitHub ID checks to the deployment logic for applications and composes.
- Improved the extraction of deployment title and hash from the request headers and body.
- Ensured consistency in handling deployment data across different branches and repositories.
2025-03-16 20:15:51 -06:00
Mauricio Siu
2405e5a93a refactor: standardize code formatting and improve component structure across dashboard components
- Updated component props formatting for consistency.
- Refactored API query hooks and mutation calls for better readability.
- Enhanced tooltip descriptions for clarity in user actions.
- Maintained functionality for deploying, reloading, starting, and stopping applications, composes, and Postgres instances.
2025-03-16 19:50:04 -06:00
Mauricio Siu
e97c8f42b3 chore(package): bump version to v0.20.5 2025-03-16 19:45:48 -06:00
Mauricio Siu
d805f6a7aa Merge pull request #1510 from Alm0stEthical/canary
Fix: Consistent Component Styling and Server URL
2025-03-16 19:09:26 -06:00
Mauricio Siu
45d05b2aa4 Merge pull request #1514 from Dokploy/338-how-to-restore-a-database-backup
338 how to restore a database backup
2025-03-16 19:00:10 -06:00
Mauricio Siu
6d350a23a9 feat(tests): add cleanCache property to baseApp in drop and traefik test files 2025-03-16 18:57:41 -06:00
Mauricio Siu
5965b73342 Merge pull request #1513 from ensarkurrt/canary
fix(ui): Prevent Zero from Persisting in Numeric Input
2025-03-16 18:56:59 -06:00
Mauricio Siu
b8e06feaff refactor(show-backups): remove commented-out restore backup section 2025-03-16 18:53:55 -06:00
Mauricio Siu
3c5a005165 feat(backup): implement restore backup functionality
- Added a new component `RestoreBackup` for restoring database backups.
- Integrated the restore functionality with a form to select destination, backup file, and database name.
- Implemented API endpoints for listing backup files and restoring backups with logs.
- Enhanced the `ShowBackups` component to include the `RestoreBackup` option alongside existing backup features.
2025-03-16 18:53:20 -06:00
Ensar KURT
12d31c89f3 If number input is empty, make 0 when focus is lost 2025-03-17 01:25:14 +03:00
Jason Parks
cf28640188 Merge branch 'Dokploy:canary' into canary 2025-03-16 13:13:41 -06:00
David Tanasescu
3cf7c697b8 Fix: Consistent Component Styling and Server URL 2025-03-16 13:36:42 +01:00
Mauricio Siu
856399550a Merge pull request #1509 from Dokploy/canary
🚀 Release v0.20.4
2025-03-16 03:34:37 -06:00
Mauricio Siu
75fc030984 Merge pull request #1508 from Dokploy/feat/add-invalidation-cache
feat(application): add cleanCache feature to application management
2025-03-16 03:21:42 -06:00
Mauricio Siu
060a170aee chore(package): bump version to v0.20.4 2025-03-16 03:21:08 -06:00
Mauricio Siu
40718293a1 feat(application): add cleanCache feature to application management
- Introduced a new boolean column `cleanCache` in the application schema to manage cache cleaning behavior.
- Updated the application form to include a toggle for `cleanCache`, allowing users to enable or disable cache cleaning.
- Enhanced application deployment logic to utilize the `cleanCache` setting, affecting build commands across various builders (Docker, Heroku, Nixpacks, Paketo, Railpack).
- Implemented success and error notifications for cache updates in the UI.
2025-03-16 03:20:47 -06:00
Jason Parks
ea39b152f4 fix: resolved merge conflicts with fork/canary 2025-03-16 03:02:15 -06:00
Jason Parks
027406547e feat(gitea): Added Gitea Repo Integration 2025-03-16 02:11:48 -06:00
nb5p
2974a8183e fix(server-setup): resolve Alpine Linux compatibility issues with setup scripts
Resolves #1482
2025-03-16 15:37:28 +08:00
Mauricio Siu
9ac68985e0 Merge pull request #1506 from Dokploy/feat/add-swarm-to-remote-servers
feat(cluster-nodes): enhance node management by adding serverId prop …
2025-03-16 00:43:35 -06:00
Mauricio Siu
35ff8dcfe6 feat(cluster-nodes): enhance node management by adding serverId prop to components and implementing ShowNodesModal 2025-03-16 00:42:19 -06:00
Mauricio Siu
86b8b0987b Merge pull request #1505 from Dokploy/canary
🚀 Release v0.20.3
2025-03-16 00:18:54 -06:00
Mauricio Siu
60c03e1ca7 refactor(manage-traefik-ports): remove error handling for port update failure 2025-03-16 00:18:08 -06:00
Mauricio Siu
d42fa738ea refactor(side-layout): adjust SidebarMenu gap for improved spacing 2025-03-15 23:59:18 -06:00
Mauricio Siu
160742c2cf refactor(manage-traefik-ports): remove publishMode from port management and update related logic 2025-03-15 23:55:29 -06:00
Mauricio Siu
4c5bc541d6 refactor(show-traefik-actions): remove error handling for Traefik reload failure 2025-03-15 23:00:54 -06:00
Mauricio Siu
d13871cd08 refactor(save-github-provider): remove unused GitHub link from save component 2025-03-15 22:51:09 -06:00
Mauricio Siu
a12beb6748 refactor(monitoring-card): simplify node mapping in dashboard component for better performance 2025-03-15 22:50:24 -06:00
Mauricio Siu
4c90f4754f refactor(monitoring-card): change node display from row to grid layout for improved responsiveness 2025-03-15 22:48:25 -06:00
Mauricio Siu
69fdda505d chore(package): bump version from v0.20.2 to v0.20.3 2025-03-15 22:37:30 -06:00
Mauricio Siu
16e84e431a feat(railpack): add Docker buildx container management to buildRailpack function 2025-03-15 22:36:43 -06:00
Mauricio Siu
5d4db4d0f3 Merge pull request #1504 from Dokploy/refactor/adjust-expiration-session
feat(auth): add session configuration with expiration and update age …
2025-03-15 22:11:56 -06:00
Mauricio Siu
10d2493bcc feat(auth): add session configuration with expiration and update age settings 2025-03-15 22:11:37 -06:00
Mauricio Siu
ce97bc6c27 Merge pull request #1503 from Dokploy/revert-1429-feat/update-zh-Hans-translation
Revert "feat(i18n): update zh-Hans translation"
2025-03-15 22:09:08 -06:00
Mauricio Siu
c2e05e86d9 Revert "feat(i18n): update zh-Hans translation" 2025-03-15 22:08:49 -06:00
Mauricio Siu
5cd743eb10 Merge pull request #1429 from PaiJi/feat/update-zh-Hans-translation
feat(i18n): update zh-Hans translation
2025-03-15 21:53:09 -06:00
Mauricio Siu
cd32c55031 chore: remove combine-translations script as it is no longer needed 2025-03-15 21:40:39 -06:00
Mauricio Siu
7f2ebab66c refactor: standardize translation usage across components and pages by removing specific namespace references 2025-03-15 21:38:49 -06:00
Mauricio Siu
0bc2734925 Merge branch 'canary' into feat/update-zh-Hans-translation 2025-03-15 20:55:16 -06:00
Mauricio Siu
f74d02381f Merge pull request #1477 from Mautriz/canary
Allow traefik labels customization in docker-composes
2025-03-15 20:48:46 -06:00
Mauricio Siu
d46afbef2d Merge pull request #1502 from Dokploy/1493-railpack-spawns-multiple-build-kit-containers
1493 railpack spawns multiple build kit containers
2025-03-15 20:45:47 -06:00
Mauricio Siu
be64a1554d chore: remove commented-out Docker build command from Railpack builder utility 2025-03-15 20:45:38 -06:00
Mauricio Siu
8d9d00d0c6 refactor: streamline container parsing logic in Docker service functions 2025-03-15 20:43:22 -06:00
Mauricio Siu
31164c9798 chore: remove console log statements from WebSocket connection handling and ensure builder container for Railpack is created 2025-03-15 20:42:53 -06:00
Mauricio Siu
4d4de1424e Merge pull request #1501 from Dokploy/1492-deploy-vs-rebuild-on-docker-compose-are-using-different-volumes
refactor: remove console log statements on WebSocket connection close…
2025-03-15 18:37:36 -06:00
Mauricio Siu
fa954c3bbd refactor: remove console log statements on WebSocket connection close and adjust compose file handling based on source type 2025-03-15 18:36:40 -06:00
Mauricio Siu
005f73d665 refactor: enhance Railpack build process by introducing preparation step and environment variable handling 2025-03-15 17:11:20 -06:00
Mauricio Siu
bbe7d5bdc5 Merge pull request #1499 from Dokploy/1455-invalid-origin-on-login
chore: update better-auth package to version 1.2.4 and kysely to vers…
2025-03-15 14:46:28 -06:00
Mauricio Siu
6f7a5609a3 chore: update better-auth package to version 1.2.4 and kysely to version 0.27.6; enhance error handling in 2FA feature 2025-03-15 14:45:21 -06:00
Mauricio Siu
c3a5e2a8d6 Merge pull request #1498 from Dokploy/1486-mongodb-external-url-visual-bug
feat: add alert block for IP address requirement in database credenti…
2025-03-15 14:30:09 -06:00
Mauricio Siu
1ca965268e feat: add alert block for IP address requirement in database credential components 2025-03-15 14:29:16 -06:00
Mauricio Siu
e323ade29e Merge pull request #1473 from gentslava/fix/service_layout
fix(ui): projects layout
2025-03-15 13:41:08 -06:00
Mauricio Siu
8c916bc431 Merge pull request #1491 from tswymer/fix/duplicate-percentage-unit
fix: removed duplicate percentage label
2025-03-15 13:39:57 -06:00
Mauricio Siu
0670f9b910 Merge pull request #1474 from drudge/canary
Various Improvements
2025-03-15 13:24:39 -06:00
Mauricio Siu
44f002d8d0 Merge pull request #1497 from Dokploy/fix/adjust-images-templates
fix: update template logo URL to use the new domain for consistency
2025-03-15 13:23:17 -06:00
Mauricio Siu
27f6c945e0 fix: update template logo URL to use the new domain for consistency 2025-03-15 13:22:47 -06:00
Tobias Wymer
e61c216ea0 fix: removed duplicate percentage label 2025-03-14 19:34:15 +01:00
Nicholas Penree
9f9492af79 fix: generate domains from templates using slugified project name 2025-03-12 22:44:49 -04:00
Nicholas Penree
68f608bdc9 chore(ui): replace placeholder company name 2025-03-12 22:44:49 -04:00
Nicholas Penree
8f671d1691 chore(ui): standardize view logs / terminal menu items 2025-03-12 22:44:49 -04:00
Nicholas Penree
7afbe8b208 chore(ui): standardize status badge for containers 2025-03-12 22:44:48 -04:00
Nicholas Penree
8c05214e78 fix(monitoring): remove extra percent from cpu usage 2025-03-12 22:44:48 -04:00
Mauro Insacco
07769e69d6 Allow traefik labels customization in docker-composes 2025-03-13 01:44:04 +01:00
Vyacheslav Shcherbinin
2ace36f035 fix(ui): projects layout for large screen 2025-03-12 19:16:16 +07:00
Vyacheslav Shcherbinin
b7196a3494 fix(config): large screens support 2025-03-12 19:16:16 +07:00
Mauricio Siu
3b737ca55b Merge pull request #1468 from ChrisvanChip/style-remove-gap-from-container
style: remove inconsistent gap between header and content
2025-03-12 00:55:32 -06:00
Chris
581e590f65 style: remove inconsistent gap between header and content 2025-03-11 12:18:17 +00:00
Zakher Masri
ac0922d742 docs: update CONTRIBUTING.md and add GUIDES.md 2025-03-11 14:38:37 +03:00
Mauricio Siu
d66a5d55a3 docs: update template contribution guidelines to reference external repository 2025-03-11 01:36:20 -06:00
Mauricio Siu
0dac1fefe6 Merge pull request #1460 from Dokploy/canary
🚀 Release v0.20.2
2025-03-11 00:51:50 -06:00
Mauricio Siu
47db6831b4 Merge pull request #1461 from Dokploy/fix/envs-array-templates
feat(templates): support array-based environment variable configuration
2025-03-11 00:42:03 -06:00
Mauricio Siu
56cbd1abb3 test(templates): enhance secret key and base64 validation in template tests
Improve test coverage for secret key generation by:
- Adding more robust base64 validation checks
- Verifying base64 string format and length
- Ensuring generated keys meet specific cryptographic requirements
2025-03-11 00:41:53 -06:00
Mauricio Siu
cb40ac5c6b Merge branch 'canary' into fix/envs-array-templates 2025-03-11 00:38:50 -06:00
Mauricio Siu
7218b3f79b feat(templates): support array-based environment variable configuration
Add support for processing environment variables defined as an array in template configurations, allowing more flexible env var definitions with direct string values and variable interpolation
2025-03-11 00:38:10 -06:00
Mauricio Siu
19ea4d3fcd Merge pull request #1459 from Dokploy/fix/tweak-processor-template
refactor: update project name reference in compose template processing
2025-03-11 00:29:33 -06:00
Mauricio Siu
6edfd1e547 Merge branch 'canary' into fix/tweak-processor-template 2025-03-11 00:29:26 -06:00
Mauricio Siu
666a8ede97 chore(version): bump project version to v0.20.2
Update package.json version to reflect minor release
2025-03-11 00:29:07 -06:00
Mauricio Siu
08e4b8fe33 refactor: update project name reference in compose template processing
Change references from `compose.project.name` to `compose.appName` when processing compose templates to ensure correct project naming
2025-03-11 00:27:59 -06:00
Mauricio Siu
5fc265d14f Merge pull request #1458 from nktnet1/fix-domain-overflow
fix: truncate domain overflow for external links
2025-03-11 00:24:11 -06:00
Khiet Tam Nguyen
c3887af5d1 fix: truncate domain overflow for external links 2025-03-11 12:42:21 +11:00
Mauricio Siu
633ba899e0 Merge pull request #1454 from Dokploy/canary
🚀 Release v0.20.1
2025-03-10 03:26:01 -06:00
Mauricio Siu
a6684af57e fix(templates): add null checks for template config properties
Prevent potential runtime errors by adding null checks for domains, env, and mounts in template processors
2025-03-10 03:25:04 -06:00
Mauricio Siu
8df2b20c3b Merge branch 'main' into canary 2025-03-10 02:41:10 -06:00
Mauricio Siu
f159dc11eb fix(traefik): increase service removal wait time to 15 seconds
Extend the timeout duration when removing Traefik service to ensure complete service removal and prevent potential initialization issues
2025-03-10 02:23:17 -06:00
Mauricio Siu
fce22ec1d0 fix(traefik): increase migration wait time for service removal
Adjust sleep/timeout duration in Traefik migration scripts to ensure proper service removal and container initialization
2025-03-10 01:54:25 -06:00
Mauricio Siu
e63eed57dd refactor: remove throw 2025-03-10 01:49:00 -06:00
Mauricio Siu
acc8ce80ad fix(backups): prevent error propagation in backup cleanup
Remove unnecessary error throwing in backup cleanup to allow partial success and logging
2025-03-10 01:48:28 -06:00
Mauricio Siu
e317772367 Merge pull request #1452 from Dokploy/canary
🚀 Release v0.20.0
2025-03-10 01:30:25 -06:00
Mauricio Siu
a15d9234be fix(preview): correctly access domain host in preview deployment
Update preview deployment to use `previewDeployment?.domain?.host` instead of `previewDeployment?.domain` when setting the DOKPLOY_DEPLOY_URL environment variable
2025-03-10 01:19:17 -06:00
Mauricio Siu
bd65f566fa Revert "Merge branch 'main' into canary"
This reverts commit 7c8594aadb, reversing
changes made to b8c1a9164a.
2025-03-10 01:17:25 -06:00
Mauricio Siu
7c8594aadb Merge branch 'main' into canary 2025-03-10 01:15:50 -06:00
Mauricio Siu
b8c1a9164a chore(version): bump project version to v0.20.0
- Update package.json version to reflect new release
- Prepare for next development iteration
2025-03-10 01:12:18 -06:00
Mauricio Siu
698118074a Merge pull request #1450 from Dokploy/feat/migration-templates
Feat/migration templates
2025-03-10 01:06:54 -06:00
Mauricio Siu
2fa691c5bd chore(templates): update template source URL to official domain
- Change base URL for template fetching from GitHub Pages to official templates domain
- Update both `fetchTemplatesList` and `fetchTemplateFiles` functions
- Ensure consistent template source URL across template-related functions
2025-03-10 01:06:31 -06:00
Mauricio Siu
87b007201a refactor(templates): replace ${randomDomain} with ${domain} in template processing 2025-03-10 00:02:28 -06:00
Mauricio Siu
b3b9b1956c test(templates): remove console log in template processing test
- Remove unnecessary console.log statement in config template test
- Maintain clean test code without debugging output
- Ensure test readability and performance
2025-03-09 21:35:27 -06:00
Mauricio Siu
d42a859679 feat(templates): add JWT generation and expand template variable processing
- Implement generateJwt function for creating JWT tokens
- Add support for 'jwt' and 'jwt:length' template variables
- Introduce new base64 and password generation shortcuts
- Enhance template variable processing with additional utility functions
2025-03-09 21:27:45 -06:00
Mauricio Siu
3a1fa95d17 chore(dependencies): remove unused webpack and related dependencies
- Remove copy-webpack-plugin from package.json
- Simplify next.config.mjs by removing webpack configuration
- Clean up pnpm-lock.yaml by removing unnecessary webpack-related packages
- Streamline project dependencies and configuration
2025-03-09 21:19:14 -06:00
Mauricio Siu
a45af37b5d feat(templates): add utility functions for template variable generation
- Implement new utility functions in template processing
- Add support for generating UUID, timestamp, and random port
- Extend template variable processing capabilities
2025-03-09 21:18:05 -06:00
Mauricio Siu
53312f6fa7 test(templates): add test for template processing without variables
- Implement test case for processing templates with empty variables
- Verify correct population of domains, environment variables, and mounts
- Ensure template processing works when no custom variables are provided
2025-03-09 21:14:10 -06:00
Mauricio Siu
cd8b6145f6 refactor(templates): update import paths in template test file
- Adjust import statements to reflect new template processing module locations
- Maintain consistent import structure for template-related utilities
- Ensure test file compatibility with recent template processing refactoring
2025-03-09 21:10:50 -06:00
Mauricio Siu
d4a98eb85e refactor(templates): remove legacy template files and update project structure
- Delete all template-related files in `apps/dokploy/templates`
- Remove template image files from `apps/dokploy/public/templates`
- Update server-side template processing with new implementation
- Clean up unused configuration and utility files
2025-03-09 21:09:05 -06:00
Mauricio Siu
152b2e1a5d refactor(templates): replace Github icon with custom GithubIcon component
- Update icon import to use custom GithubIcon from data-tools-icons
- Remove redundant Github icon import
- Maintain consistent icon styling and component usage
2025-03-09 18:55:27 -06:00
Mauricio Siu
19827fce84 feat(templates): add loading state and error handling for template fetching
- Implement loading spinner during template retrieval
- Add error alert for template fetching failures
- Enhance user experience with informative loading and error messages
- Import Loader2 icon for loading state visualization
2025-03-09 18:53:13 -06:00
Mauricio Siu
58f4d3561e feat(compose): enhance template import with improved error handling and user experience
- Refactor import process to use dedicated `import` mutation
- Add warning alert about configuration replacement
- Implement form reset on successful import
- Improve error handling and user feedback
- Remove unnecessary console logs and update UI text
2025-03-09 18:29:20 -06:00
Mauricio Siu
791a6c6f35 feat(compose): add Docker Compose template import functionality
- Implement new ShowImport component for importing Docker Compose configurations
- Add processTemplate mutation to handle base64-encoded template processing
- Integrate import feature into Compose service management page
- Support parsing and displaying template details including domains, environment variables, and mounts
2025-03-09 18:10:58 -06:00
Mauricio Siu
7580a5dcd6 fix(templates): update template file and logo paths to use 'blueprints' directory
- Modify template logo URL to use 'blueprints' instead of 'templates'
- Update GitHub template file fetching to use 'blueprints' directory
- Ensure consistent path structure for template resources
2025-03-09 17:06:43 -06:00
Mauricio Siu
6def84d456 feat(templates): add custom base URL support for template management
- Implement dynamic base URL configuration for template fetching
- Add localStorage persistence for base URL
- Update template rendering to use dynamic base URL
- Modify API routes to support optional base URL parameter
- Enhance template browsing flexibility
2025-03-09 14:08:08 -06:00
Mauricio Siu
6e7e7b3f9a feat(templates): refactor template processing and GitHub template fetching
- Implement new template processing utility in `processors.ts`
- Simplify GitHub template fetching with a more lightweight approach
- Add comprehensive test suite for template processing
- Improve type safety and modularity of template-related functions
2025-03-09 13:50:34 -06:00
Mauricio Siu
466fdf20b8 Merge branch 'canary' into feat/migration-templates 2025-03-09 13:14:41 -06:00
Mauricio Siu
991141460b Merge pull request #1448 from Dokploy/feat/autocomplete
feat(ui): add Docker Compose file editor autocomplete
2025-03-09 13:09:25 -06:00
Mauricio Siu
1a060d4204 fix(ui): improve Docker Compose autocomplete formatting
- Add space after colon in Docker Compose service options
- Remove unnecessary console.log statement
2025-03-09 13:02:30 -06:00
Mauricio Siu
64643c11aa feat(ui): add Docker Compose file editor autocomplete
- Implement Docker Compose file autocompletion in CodeMirror
- Add comprehensive suggestions for top-level and service-level keys
- Include a JSON schema for Docker Compose file validation
- Enhance code editor with intelligent YAML editing support
2025-03-09 13:00:22 -06:00
Mauricio Siu
b73bb0db5f Merge branch 'canary' into feat/migration-templates 2025-03-09 12:36:14 -06:00
Mauricio Siu
6287f3be4a Merge pull request #1371 from Dokploy/1345-domain-not-working-after-server-restart-or-traefik-reload
refactor(traefik): migrate from Docker Swarm service to standalone co…
2025-03-09 12:00:11 -06:00
Mauricio Siu
978cd61592 Merge pull request #1446 from Dokploy/feat/latest-n-backups
Feat/latest n backups
2025-03-09 11:57:57 -06:00
Mauricio Siu
6467ce0a24 feat(backups): improve backup retention across different database types
- Add serverId parameter to keepLatestNBackups function
- Execute backup retention commands on the specific server for each database type
- Remove global backup retention call in favor of per-database type retention
2025-03-09 11:54:36 -06:00
Mauricio Siu
f9f70efd2f Merge pull request #1447 from gentslava/canary
fix(ui): sorting
2025-03-09 11:38:32 -06:00
JiPai
6df0878ed4 feat(i18n):add i18n for auth page 2025-03-09 23:12:35 +08:00
JiPai
a1bbfaebf4 feat(i18n): add translations to dashboard pages 2025-03-09 23:12:35 +08:00
JiPai
ed89f5aa8a chore(i18n): add home.json demo file 2025-03-09 23:12:35 +08:00
JiPai
888e904d75 feat(i18n): add i18n for organization management 2025-03-09 23:12:35 +08:00
JiPai
3e522b9cae feat(i18n): update sidebar tooltips for internationalization 2025-03-09 23:12:35 +08:00
JiPai
7903ddba89 feat(i18n): add i18n support for sidebar 2025-03-09 23:12:34 +08:00
JiPai
3a0dbc26d1 feat(i18n): add date-fns locale support 2025-03-09 23:12:34 +08:00
JiPai
6df680e9da feat(i18n): add internationalization support for 2FA setup and error messages 2025-03-09 23:11:15 +08:00
JiPai
2bced3e9b6 feat(i18n): update password labels in profile form for better clarity 2025-03-09 23:11:15 +08:00
JiPai
911a7730f9 feat(i18n): enable reload on prerender in development mode 2025-03-09 23:11:15 +08:00
JiPai
2902648188 chore(package.json): auto format package.json 2025-03-09 23:11:14 +08:00
Mauricio Siu
688601107c Merge branch 'canary' into vicke4/canary 2025-03-09 02:48:19 -06:00
Vyacheslav Shcherbinin
6b4ec55e64 fix(ui): sorting created at 2025-03-09 15:33:29 +07:00
Mauricio Siu
b7f63fdad4 refactor(traefik): improve migration and removal of Traefik services
- Update Traefik service detection and removal logic in server and traefik setup
- Use Docker service and container inspection methods for more robust service management
- Add graceful migration and removal of existing Traefik services
- Simplify image pulling and service removal process
2025-03-09 02:32:02 -06:00
Mauricio Siu
404579b434 Merge pull request #1445 from gentslava/fix/autocomplete
fix(ui): Autocomplete
2025-03-09 01:43:26 -06:00
Vyacheslav Shcherbinin
b98d57e99a fix(ui): better autocomplete work 2025-03-09 14:22:06 +07:00
Vyacheslav Shcherbinin
dc5d79085c fix(ui): first letter case 2025-03-09 14:22:06 +07:00
Vyacheslav Shcherbinin
b95c90e6d8 fix(ui): disable default autocomplete 2025-03-09 14:22:00 +07:00
Mauricio Siu
988e5cb23e fix(traefik): improve error handling in container startup
Log Traefik container startup errors instead of throwing, preventing potential deployment interruptions
2025-03-09 01:14:45 -06:00
Mauricio Siu
19f574e168 Merge branch 'canary' into 1345-domain-not-working-after-server-restart-or-traefik-reload 2025-03-09 01:12:04 -06:00
Mauricio Siu
c462ad6144 Merge pull request #1431 from Gity37/fix-database-empty-backups
Database empty backups fix
2025-03-09 01:10:58 -06:00
Mauricio Siu
3acf80cec1 feat(ui): display Dokploy version in sidebar footer
- Uncomment and re-enable Dokploy version query
- Add version display in sidebar footer with responsive layout
- Show version text in both expanded and collapsed sidebar states
2025-03-09 00:02:35 -06:00
Mauricio Siu
0372372ae3 Merge pull request #1443 from Dokploy/873-can-monorepo-autoploy-base-on-different-paths
feat(applications): add watch paths for selective deployments
2025-03-08 23:49:48 -06:00
Mauricio Siu
492d51337c chore(github): remove debug console log in GitHub deployment handler 2025-03-08 23:46:06 -06:00
Mauricio Siu
467bca3efb feat(ui): add repository link buttons for git providers
- Implement "View Repository" links for GitHub, GitLab, Bitbucket, and Git providers
- Add repository icons and direct links to source repositories
- Support links for both application and compose service git provider forms
- Enhance user experience with quick access to repository pages
2025-03-08 23:45:21 -06:00
Mauricio Siu
9d50f384d1 chore(tests): add watchPaths to application test fixtures
- Update test fixtures for drop and traefik tests
- Add empty watchPaths array to base application configurations
- Ensure test files are consistent with recent watch paths feature implementation
2025-03-08 23:36:49 -06:00
Mauricio Siu
4371e7e033 chore(settings): add OpenAPI metadata for readStats endpoint 2025-03-08 23:34:57 -06:00
Mauricio Siu
c1aeb828d8 feat(applications): add watch paths for selective deployments
- Implement watch paths feature for GitHub and GitLab applications and compose services
- Add ability to specify paths that trigger deployments when changed
- Update database schemas to support watch paths
- Integrate micromatch for flexible path matching
- Enhance deployment triggers with granular file change detection
2025-03-08 23:32:08 -06:00
Mauricio Siu
1ad25ca6d1 Merge pull request #1442 from Dokploy/996-allow-customisation-of-a-domains-certresolver
feat(domains): add custom certificate resolver support
2025-03-08 21:22:59 -06:00
Mauricio Siu
1884a3d041 chore(preview): add previewCustomCertResolver to test files 2025-03-08 21:21:11 -06:00
Mauricio Siu
de48c81192 feat(preview): add custom certificate type for preview deployments 2025-03-08 21:16:18 -06:00
Mauricio Siu
e4197d6565 chore(domains): update domain configuration types and form handling
- Add `customCertResolver` to domain-related test files and form components
- Ensure consistent handling of optional custom certificate resolver
- Minor UI adjustment in code editor disabled state
2025-03-08 20:49:31 -06:00
Mauricio Siu
0c6625fff7 Merge pull request #1441 from eni4sure/update-isolated-deployment-label
fix(frontend): update isolated deployment label for clarity
2025-03-08 20:48:28 -06:00
Mauricio Siu
cc8ffca4d4 feat(domains): add custom certificate resolver support
- Extend domain configuration to support custom certificate resolvers
- Add new "custom" certificate type option in domain forms
- Update database schema and validation to include custom certificate resolver
- Implement custom certificate resolver handling in Traefik and Docker domain configurations
- Enhance domain management with more flexible SSL/TLS certificate options
2025-03-08 20:46:31 -06:00
Eniola Osabiya
c0b5f9e51a fix: update isolated deployment label for clarity 2025-03-08 20:40:14 -06:00
Mauricio Siu
4730845a40 fix(databases): improve rebuild database button loading state 2025-03-08 20:17:46 -06:00
Mauricio Siu
00fc1a9c96 Merge pull request #1440 from Dokploy/1120-rebuild-database
feat(databases): add database rebuild functionality
2025-03-08 20:15:57 -06:00
Mauricio Siu
624eedd74d feat(databases): add database rebuild functionality
- Implement RebuildDatabase component for all database types
- Create ShowDatabaseAdvancedSettings component to consolidate advanced settings
- Add rebuild API endpoints for Postgres, MySQL, MariaDB, MongoDB, and Redis
- Implement server-side database rebuild utility with volume and service removal
- Enhance database management with a dangerous zone for complete database reset
2025-03-08 20:12:28 -06:00
Mauricio Siu
c5272aa915 Merge pull request #1439 from Dokploy/981-ui-toggle-button-is-difficult-to-see-in-addedit-domain
fix(ui): update switch component background color for unchecked state
2025-03-08 19:32:15 -06:00
Mauricio Siu
2fdb7c6757 fix(ui): update switch component background color for unchecked state 2025-03-08 19:32:00 -06:00
Mauricio Siu
777aa3e4be feat(api): enhance API key display with code editor and clipboard copy 2025-03-08 19:26:18 -06:00
Mauricio Siu
55bab4bba4 Merge pull request #1438 from Dokploy/558-cancel-button-when-editing-environment-settings-and-other-text
feat(environment): add unsaved changes handling for environment settings
2025-03-08 19:18:36 -06:00
Mauricio Siu
6afd1bf531 feat(environment): add unsaved changes handling for environment settings
- Implement form change tracking for environment variables
- Add cancel and save buttons with conditional rendering
- Disable save button when no changes are detected
- Show unsaved changes warning in description
- Improve user experience with form state management
2025-03-08 19:17:59 -06:00
Mauricio Siu
62bd8e3c95 feat(services): add role-based delete service permissions
- Restrict bulk delete action to owners and users with delete service permissions
- Conditionally render delete button based on user role and authorization
- Improve service management security by implementing fine-grained access control
2025-03-08 18:51:59 -06:00
Mauricio Siu
85734c0a24 Merge pull request #1437 from Dokploy/700-reorganize-services-order
700 reorganize services order
2025-03-08 18:50:26 -06:00
Mauricio Siu
8d18aeda45 refactor(ui): improve responsive layout for project services view
- Update responsive breakpoints for service list layout
- Use more semantic breakpoint classes (xl, lg) for better responsiveness
- Adjust flex direction and alignment for improved mobile and desktop views
2025-03-08 18:50:09 -06:00
Mauricio Siu
45923d3a1f feat(services): add sorting functionality for services
- Implement local storage-based sorting for services
- Add sorting options by name, type, and creation date
- Provide ascending and descending sort order selection
- Enhance service list usability with dynamic sorting
2025-03-08 18:48:34 -06:00
Mauricio Siu
043843f714 Merge pull request #1436 from Dokploy/feat/add-bulk-delete
feat(services): add bulk delete functionality for services
2025-03-08 18:43:54 -06:00
Mauricio Siu
7dda252b7c feat(services): add bulk delete functionality for services
- Implement bulk delete feature for applications, compose, and various database services
- Add delete mutation endpoints for each service type
- Provide user-friendly bulk delete action with error handling and success notifications
- Integrate Trash2 icon for delete action in bulk service management
2025-03-08 18:43:37 -06:00
Mauricio Siu
bf0668c319 Merge pull request #1435 from Dokploy/969-move-services-between-projects
feat(services): add bulk service move functionality across projects
2025-03-08 18:40:33 -06:00
Mauricio Siu
fc1dbcf51a feat(services): improve bulk move project selection UX
- Add empty state handling when no other projects are available
- Disable move button when no target projects exist
- Provide clear guidance for users to create a new project before moving services
2025-03-08 18:40:23 -06:00
Mauricio Siu
b34987530e feat(services): add bulk service move functionality across projects
- Implement service move feature for applications, compose, databases, and other services
- Add move dialog with project selection for bulk service transfer
- Create move mutation endpoints for each service type
- Enhance project management with cross-project service relocation
- Improve user experience with error handling and success notifications
2025-03-08 18:39:02 -06:00
Mauricio Siu
ff8d922f2b Merge pull request #1434 from Dokploy/1301-add-information-tooltips-to-buttons
feat(ui): add tooltips to service action buttons for improved user gu…
2025-03-08 18:27:46 -06:00
Mauricio Siu
01c33ad98b feat(ui): add tooltips to service action buttons for improved user guidance
- Integrate tooltips for Deploy, Rebuild, Start, and Stop buttons across various service components
- Provide context-specific explanations for each action button
- Enhance user understanding of service management actions
- Consistent tooltip styling and implementation using TooltipProvider
2025-03-08 18:26:39 -06:00
Mauricio Siu
9816ecaea1 Merge pull request #1433 from Dokploy/1334-increase-the-size-of-environment-window
refactor(ui): improve environment code editor styling and layout
2025-03-08 18:09:04 -06:00
Mauricio Siu
832fa526dd refactor(ui): improve environment code editor styling and layout
- Adjust CodeEditor component wrapper and class names
- Enhance font and styling for environment configuration
- Optimize form item and control rendering
2025-03-08 18:08:49 -06:00
Mauricio Siu
2a5eceb555 Merge pull request #1432 from Dokploy/1315-show-containers-sorted-by-name
refactor(docker): sort container lists by name
2025-03-08 17:56:49 -06:00
Mauricio Siu
08d7c4e1c3 refactor(docker): sort container lists by name
- Add sorting to container retrieval methods in docker service
- Ensure consistent container list ordering across different container fetching functions
- Improve readability and predictability of container list results
2025-03-08 17:56:20 -06:00
Mauricio Siu
c89f957133 refactor(ui): enhance update server button and sidebar layout
- Improve UpdateServer component with flexible rendering and tooltip support
- Modify sidebar layout to integrate update server button more cleanly
- Add conditional rendering and styling for update availability
- Introduce more consistent button and tooltip interactions
2025-03-08 15:31:08 -06:00
Mauricio Siu
8ba3a42c1e Merge pull request #1430 from Dokploy/1278-dokploy-oom-issue-on-requests-tab
feat(monitoring): add date range filtering and log cleanup scheduling
2025-03-08 14:56:17 -06:00
César González Tarín
a96af6536b fix: database empty backups fix 2025-03-08 21:42:59 +01:00
Mauricio Siu
2c3ff5794d refactor(user): update log cleanup configuration
- Replace enableLogRotation boolean with logCleanupCron configuration
- Align with recent log scheduling and monitoring improvements
2025-03-08 14:23:52 -06:00
Mauricio Siu
673e0a6880 feat(monitoring): add date range filtering and log cleanup scheduling
- Implement date range filtering for access logs and request statistics
- Add log cleanup scheduling with configurable cron expression
- Update UI components to support date range selection
- Refactor log processing and parsing to handle date filtering
- Add new database migration for log cleanup cron configuration
- Remove deprecated log rotation management logic
2025-03-08 14:20:27 -06:00
Mauricio Siu
b64ddf1119 Merge pull request #1392 from ali-issa/feature/project-view-tab-reorg
feat: reorganize project view tabs into logical workflow groups #1261
2025-03-08 12:36:46 -06:00
Mauricio Siu
2f074ac734 Merge pull request #1405 from frostming/patch-1
feat: fallback to openai compatible provider if url host doesn't match
2025-03-07 00:56:33 -06:00
Mauricio Siu
96e3721b4b chore(ai): remove debug logging in model fetching 2025-03-07 00:56:12 -06:00
Mauricio Siu
b8e5cae88f feat(ai): improve model fetching and error handling
- Add server-side model fetching endpoint with flexible provider support
- Refactor client-side AI settings component to use new API query
- Implement dynamic header generation for different AI providers
- Enhance error handling and toast notifications
- Remove local model fetching logic in favor of server-side implementation
2025-03-07 00:55:11 -06:00
Mauricio Siu
fa20444a14 Merge pull request #1414 from gentslava/fix/template-superset
fix(template): superset
2025-03-07 00:12:43 -06:00
Mauricio Siu
668ccabec8 Merge pull request #1390 from hexaaagon/feat/zipline
feat(zipline): update zipline version
2025-03-07 00:12:19 -06:00
Mauricio Siu
aa07a0c574 Merge pull request #1417 from vinumzz/vinumzz-remove-shadow-monitoring
refactor: remove unnecessary extra shadow from monitoring page
2025-03-07 00:10:22 -06:00
Mauricio Siu
0b64b43376 Merge pull request #1415 from gentslava/feature/template-datalens
feat(template): DataLens
2025-03-07 00:10:03 -06:00
Mauricio Siu
5c65dc9a21 Update apps/dokploy/templates/datalens/docker-compose.yml 2025-03-07 00:06:20 -06:00
Mauricio Siu
58262606d4 Update apps/dokploy/templates/datalens/docker-compose.yml 2025-03-07 00:06:16 -06:00
Mauricio Siu
f73959db41 Update apps/dokploy/templates/datalens/docker-compose.yml 2025-03-07 00:06:10 -06:00
Mauricio Siu
e6c664e65f Update apps/dokploy/templates/datalens/docker-compose.yml 2025-03-07 00:06:06 -06:00
Mauricio Siu
36cc157566 Merge pull request #1355 from drudge/templates/hoarder
feat: add Hoarder template
2025-03-07 00:03:42 -06:00
Mauricio Siu
7e070623cc Merge pull request #1411 from gentslava/canary
fix: breadcrumbs UX
2025-03-06 23:58:42 -06:00
Mauricio Siu
b2c0a685f8 fix(destinations): validate server selection for cloud destinations 2025-03-06 23:57:39 -06:00
Mauricio Siu
c14528886d Merge pull request #1424 from Dokploy/1382-automated-postgres-backup-always-empty
feat(destinations): add createdAt timestamp and display creation date
2025-03-06 23:54:03 -06:00
Mauricio Siu
29eb490e2d feat(destinations): add createdAt timestamp and display creation date 2025-03-06 23:46:21 -06:00
Mauricio Siu
6166963b00 fix(gitlab): remove debug console logs from connection testing 2025-03-06 22:27:30 -06:00
Mauricio Siu
f544efed35 Merge pull request #1422 from Dokploy/1418-fetching-gitlab-repositories-0-found
fix(gitlab): update repository filtering and connection testing
2025-03-06 22:17:34 -06:00
Mauricio Siu
598d095241 fix(gitlab): update repository filtering and connection testing
- Change repository filtering to use 'user' kind instead of 'member'
- Add console logging for debugging GitLab provider and repository connection
- Ensure consistent filtering logic in both getGitlabRepositories and testGitlabConnection
2025-03-06 22:17:20 -06:00
Mauricio Siu
457a8e05fd chore(issue-template): update bug report label emoji 2025-03-06 22:05:31 -06:00
Mauricio Siu
3ca057c44a chore(issue-template): update bug report label and add cloud version option 2025-03-06 22:04:46 -06:00
Nicholas Penree
ad3a0198e9 feat: add Hoarder template 2025-03-06 08:23:49 -05:00
Peter Vinum
ab5f62604c refactor: remove unnecessary extra shadow from monitoring page 2025-03-06 14:08:23 +01:00
Vyacheslav Shcherbinin
bf9e886b9a Disable demo 2025-03-06 14:14:01 +07:00
Vyacheslav Shcherbinin
f5cd0fbdd8 Restart policy 2025-03-06 11:32:13 +07:00
Vyacheslav Scherbinin
8859cc97b4 fix: superset docker-compose 2025-03-06 10:46:10 +07:00
Vyacheslav Scherbinin
3bdd5e4dd0 Template DataLens 2025-03-06 10:34:13 +07:00
Vyacheslav Scherbinin
b0c710aa92 Tab instead space 2025-03-05 21:25:11 +07:00
Vyacheslav Scherbinin
c83d0a95b7 Remove ending separator 2025-03-05 20:53:38 +07:00
Vyacheslav Scherbinin
71ca5babfd Remove duplicate breadcrumb 2025-03-05 20:51:09 +07:00
Vyacheslav Scherbinin
f342613503 Text format 2025-03-05 20:27:16 +07:00
vicke4
cf4d6539e4 feat(server): function to keep only the latest N backups 2025-03-05 17:52:38 +05:30
vicke4
401f8d9be4 fix(ui): showing manual backup indicator only against the current backup 2025-03-05 17:52:38 +05:30
vicke4
1d2da0ac35 feat(ui): add keep latest backup count to show backups page 2025-03-05 17:52:38 +05:30
vicke4
d1391d7ddb feat(ui): add keep the latest input in create backups dialog 2025-03-05 17:52:38 +05:30
vicke4
b35bd9b719 feat(ui): coarsing number to avoid form validation error & placeholder change 2025-03-05 17:52:38 +05:30
vicke4
faab80bee1 feat(ui): add keep the latest input on backups dialog 2025-03-05 17:52:38 +05:30
vicke4
54a3c6efff feat(database): add keepLatestCount column to backup table 2025-03-05 17:52:38 +05:30
Frost Ming
efd176451f fix: default case correct 2025-03-05 16:19:28 +08:00
Frost Ming
a7fd64e019 fix: use a named case 2025-03-05 16:17:50 +08:00
Frost Ming
21c8b98f9c feat: fallback to openai compatible provider if url host doesn't match 2025-03-05 16:12:46 +08:00
Mauricio Siu
69dd704e1c Merge pull request #1403 from Dokploy/canary
🚀 Release v0.19.1
2025-03-05 00:55:21 -06:00
Mauricio Siu
6ff06576d0 fix(dockerfile): update Railpack installation script to use bash 2025-03-05 00:36:20 -06:00
Mauricio Siu
24cc08a1ac Merge pull request #1402 from Dokploy/feat/add-railpack
feat(application): add Railpack as a new build type
2025-03-05 00:24:37 -06:00
Mauricio Siu
e039826d50 chore(version): bump project version to v0.19.1 2025-03-05 00:21:36 -06:00
Mauricio Siu
a947b4915a Merge pull request #1398 from shaunjanssens/feature/bitbucket-branches-length
feat: Bitbucket branch length
2025-03-05 00:19:25 -06:00
Mauricio Siu
fc1d9ad202 Merge pull request #1399 from nktnet1/profile-moved-to-top
feat(ui): move profile to top of account dropdown
2025-03-05 00:18:43 -06:00
Mauricio Siu
5489e3b0a5 feat(application): add Railpack as a new build type
- Introduce Railpack as a new build method for applications
- Update database schema to include 'railpack' in buildType enum
- Add Railpack installation and validation scripts for servers
- Implement Railpack build and command generation utilities
- Update UI to include Railpack as a build option with a 'New' badge
2025-03-05 00:18:10 -06:00
Khiet Tam Nguyen
e43b907a8d feat(ui): move profile to first item in account dropdown 2025-03-04 22:42:04 +11:00
Shaun Janssens
62fae661a1 feat: bitbucket branch length 2025-03-04 10:50:42 +01:00
Ali Issa
6846e0e5a3 feat: reorganize project view tabs into logical workflow groups #1261
Restructure the project view tabs to follow a more intuitive user journey:
- Group tabs into "Initial Setup", "Deployment", and "Monitoring" sections
- Maintain "Advanced" as a standalone option
- Order tabs to match typical project workflow (configuration → deployment → monitoring)

This reorganization reduces cognitive load by grouping related functions,
minimizes tab switching during common tasks, and provides a clearer
mental model of the platform's workflow for new users.
2025-03-03 06:45:36 -05:00
Mauricio Siu
a27e523b0d Merge pull request #1389 from Dokploy/canary
🚀 Release v0.19.0
2025-03-02 23:33:13 -06:00
Hexaa
49d4cea06f feat(zipline): update zipline version 2025-03-03 12:17:42 +07:00
Mauricio Siu
5db7508530 feat(organization): prevent deletion of last owned organization 2025-03-02 22:32:56 -06:00
Mauricio Siu
4da4e1c17d feat(side-menu): restrict AI settings to owner role 2025-03-02 22:16:10 -06:00
Mauricio Siu
126dad498c chore(version): bump project version to v0.19.0 2025-03-02 21:59:31 -06:00
Mauricio Siu
8063673a7c refactor(traefik): streamline container removal and service management
- Remove dokploy-service before Traefik container initialization
- Simplify error handling and logging during container setup
- Add support for remote server service removal
2025-03-02 05:17:42 -06:00
Mauricio Siu
bf04dfa757 feat(traefik): add HTTP/3 support with UDP port configuration
- Introduce TRAEFIK_HTTP3_PORT environment variable
- Configure UDP port binding for HTTP/3
- Enable HTTP/3 with advertisedPort in Traefik websecure configuration
2025-03-02 04:35:58 -06:00
Mauricio Siu
d2e0536355 feat(traefik): add HTTP/3 support with UDP port configuration
- Introduce TRAEFIK_HTTP3_PORT environment variable
- Configure UDP port binding for HTTP/3
- Enable HTTP/3 with advertisedPort in Traefik websecure configuration
2025-03-02 04:31:06 -06:00
Mauricio Siu
f75d802749 Merge branch 'canary' into 1345-domain-not-working-after-server-restart-or-traefik-reload 2025-03-02 03:58:37 -06:00
Mauricio Siu
9c74b18e37 Merge pull request #1387 from Dokploy/1347-see-all-the-10-last-deployments-for-this-compose-show-all
feat(deployments): improve deployment list display and cleanup logic
2025-03-02 03:52:44 -06:00
Mauricio Siu
b13b906d75 feat(deployments): improve deployment list display and cleanup logic
- Add deployment index numbering in the UI
- Adjust deployment cleanup to retain 9 instead of 10 deployments
- Update deployment list rendering to show numbered status
2025-03-02 03:52:29 -06:00
Mauricio Siu
f63d582530 chore(dependencies): add Ollama AI provider to project dependencies
- Integrate Ollama AI provider in package.json
- Update pnpm-lock.yaml with Ollama AI provider dependency
2025-03-02 03:35:32 -06:00
Mauricio Siu
2ae14c65cf refactor(web-server): make type prop optional in ShowModalLogs component
- Update type prop to be optional in the Props interface
- Improve component flexibility by allowing undefined type
2025-03-02 03:24:29 -06:00
Mauricio Siu
0fa728d905 chore(dependencies): add AI SDK providers to project dependencies
- Integrate multiple AI SDK providers including Anthropic, Azure, Cohere, DeepInfra, Mistral, and OpenAI Compatible
- Update package.json and pnpm-lock.yaml with new AI SDK dependencies
2025-03-02 03:22:11 -06:00
Mauricio Siu
7f8f6ac64c refactor(traefik): migrate from Docker Swarm to standalone container
- Replace Docker service commands with standalone container management
- Update Traefik initialization to use container-based deployment
- Modify port inspection and environment variable retrieval methods
- Improve container creation and port binding logic
- Remove Swarm-specific constraints and deployment strategies
2025-03-02 03:14:54 -06:00
Mauricio Siu
3f45eb467b Merge branch 'canary' into 1345-domain-not-working-after-server-restart-or-traefik-reload 2025-03-02 02:34:10 -06:00
Mauricio Siu
b56272871f Merge pull request #1384 from Dokploy/mauricio/feature
Feat/AI
2025-03-02 02:31:24 -06:00
Mauricio Siu
1ffdebf60b Merge branch 'canary' into mauricio/feature 2025-03-02 02:16:45 -06:00
Mauricio Siu
0e81a027c1 Merge pull request #1385 from Dokploy/fix/migration
fix(database): ensure adminId is not null for certificates, notificat…
2025-03-02 02:16:06 -06:00
Mauricio Siu
cf3b3a2dcd fix(database): ensure adminId is not null for certificates, notifications, ssh-keys, and git providers 2025-03-02 02:15:49 -06:00
Mauricio Siu
a8fc27e830 feat(ai): add configuration files support for AI template generation
- Enhance template generation with configFiles feature
- Update StepTwo and StepThree components to display and edit configuration files
- Modify AI router and schemas to support configuration file mounting
- Refine AI service prompt to provide stricter guidelines for config file usage
2025-03-02 01:54:39 -06:00
Mauricio Siu
e7db3a196c feat(ai): enhance AI service prompt generation with strict guidelines
- Update project suggestion prompt to enforce plain text descriptions
- Add detailed rules for description, shortDescription, and response format
- Improve docker compose generation guidelines with comprehensive configuration rules
- Specify strict requirements for environment variables, volumes, and config files
2025-03-02 01:35:34 -06:00
Mauricio Siu
f78cda9cce feat(ai): update AI settings to use organization-based access control
- Refactor AI-related schemas and services to use organizationId instead of adminId
- Update AI router to check organization-level permissions
- Modify AI settings creation and retrieval to work with organization context
- Adjust server-side props and access checks for AI settings
2025-03-02 00:54:46 -06:00
Mauricio Siu
747c2137c9 Reapply "Merge branch 'canary' into kucherenko/canary"
This reverts commit e6cb6454db.
2025-03-02 00:30:02 -06:00
Mauricio Siu
e6cb6454db Revert "Merge branch 'canary' into kucherenko/canary"
This reverts commit 819822f30b, reversing
changes made to bda9b05134.
2025-03-02 00:26:59 -06:00
Mauricio Siu
819822f30b Merge branch 'canary' into kucherenko/canary 2025-03-02 00:23:58 -06:00
Mauricio Siu
5b3005eb89 Merge pull request #1376 from 190km/templates/listmonk-uploads
fix(templates): listmonk needed files volumes
2025-03-01 23:19:12 -06:00
Mauricio Siu
85a13eed00 Update apps/dokploy/templates/listmonk/docker-compose.yml 2025-03-01 23:19:02 -06:00
Mauricio Siu
e1b94dfe5b Merge pull request #1314 from vicke4/canary
feat: notifications to specific Telegram topics
2025-03-01 23:16:31 -06:00
Mauricio Siu
948fdbc22b chore(auth): remove default credentials from login and register forms 2025-03-01 23:09:43 -06:00
Mauricio Siu
eed38860b9 feat(database): add messageThreadId column to telegram table 2025-03-01 23:08:53 -06:00
Mauricio Siu
fefb5d14e0 Merge branch 'canary' into vicke4/canary 2025-03-01 23:05:30 -06:00
Mauricio Siu
8946f68af9 Merge pull request #1351 from Dokploy/feat/better-auth-2
Feat/Organizations & Better auth
2025-03-01 23:00:10 -06:00
Mauricio Siu
5fb2866660 feat(auth): conditionally disable authentication logger in production 2025-03-01 22:48:09 -06:00
Mauricio Siu
c51d63a4df chore: remove TODO comments and clean up code annotations 2025-03-01 22:21:03 -06:00
Mauricio Siu
13eccaf8d9 feat(user): add organization count check before user deletion 2025-03-01 22:14:12 -06:00
Mauricio Siu
adeb8498f9 refactor(auth): remove commented-out debug logging in TRPC context 2025-03-01 21:56:22 -06:00
Mauricio Siu
43599e7a97 fix(auth): handle null session and user with TypeScript ignore 2025-03-01 21:54:47 -06:00
Mauricio Siu
d7c94174b9 refactor(auth): simplify API key export in authentication module 2025-03-01 21:49:56 -06:00
Mauricio Siu
5c38a8265f feat(auth): improve email verification and invitation link generation for cloud environment 2025-03-01 21:47:31 -06:00
Mauricio Siu
a3362e0b15 feat(auth): add Google sign-in support for cloud environment 2025-03-01 21:30:30 -06:00
Mauricio Siu
0ad9233087 feat(logs): enable dynamic log rotation with database state management 2025-03-01 20:55:18 -06:00
Mauricio Siu
5dc5292928 feat(api): implement advanced API key management with granular controls 2025-03-01 19:58:15 -06:00
Mauricio Siu
5568629839 refactor: organize imports and improve template utility modules 2025-03-01 14:45:50 -06:00
Mauricio Siu
9aff4bc10b refactor: update template system with new configuration structure and processing 2025-03-01 03:11:29 -06:00
Mauricio Siu
49b37d531a feat: add GitHub-based template fetching and caching mechanism 2025-03-01 00:57:32 -06:00
190km
5aff345aa8 feat: added uploads volume for images upload 2025-02-26 22:36:03 +01:00
Mauricio Siu
37ca8f41f5 refactor(ui): remove loading text in sidebar layout 2025-02-25 23:37:22 -06:00
Mauricio Siu
cbec0603bd feat(ui): add loading state to sidebar layout 2025-02-25 23:36:53 -06:00
Mauricio Siu
8c2707c4ea refactor(organization): migrate to react-hook-form with zod validation 2025-02-25 23:33:26 -06:00
Mauricio Siu
7d77e14319 feat(organization): add logo support for organizations 2025-02-25 23:28:19 -06:00
Mauricio Siu
d3c59ff8af refactor(ui): enhance sidebar layout with responsive design and collapsed state 2025-02-25 23:13:55 -06:00
Mauricio Siu
7048e7e37e Merge branch 'canary' into feat/better-auth-2 2025-02-25 23:05:57 -06:00
Mauricio Siu
29c1e4691e feat(docker): add support for standalone container log retrieval 2025-02-25 23:04:19 -06:00
Mauricio Siu
203da1a8fe refactor(traefik): migrate from Docker Swarm service to standalone container 2025-02-25 22:51:02 -06:00
Mauricio Siu
0a6382a731 Merge pull request #1360 from Dokploy/remove-permit-root-login-advice
Remove permit root login advice
2025-02-23 18:11:58 -06:00
Mauricio Siu
d3b2cee7fb refactor(ui): improve log highlighting and template formatting 2025-02-23 18:11:27 -06:00
Mauricio Siu
125e44812b refactor(security): remove permit root login status row 2025-02-23 18:11:21 -06:00
Mauricio Siu
ac3378ccb8 feat(sponsors): add Synexa to sponsors section 2025-02-23 15:38:25 -06:00
Mauricio Siu
81e1161ba0 Merge pull request #1340 from wish-oss/glance-template
refactor: update glance template
2025-02-23 15:05:50 -06:00
Mauricio Siu
b35a8a1ecc Merge pull request #1343 from SkyfallWasTaken/canary
fix: make spacing between sidebar elements consistent
2025-02-23 14:53:09 -06:00
Mauricio Siu
9aa13c5ac3 Merge pull request #1356 from drudge/templates/pocket-id
feat: add Pocket ID template
2025-02-23 14:51:53 -06:00
Mauricio Siu
398fd54815 Merge pull request #1354 from drudge/templates/linkwarden
feat: add Linkwarden template
2025-02-23 14:46:41 -06:00
Mauricio Siu
7f4e4ab8d2 Merge pull request #1346 from Cohvir/canary
feat(template): add Wiki.js
2025-02-23 14:36:35 -06:00
Mauricio Siu
211697acaf Merge branch 'canary' into canary 2025-02-23 14:36:13 -06:00
Mauricio Siu
c0b64c6e55 Update apps/dokploy/templates/wikijs/docker-compose.yml 2025-02-23 14:35:39 -06:00
Mauricio Siu
5871a91da5 Update apps/dokploy/templates/wikijs/docker-compose.yml 2025-02-23 14:35:33 -06:00
Mauricio Siu
f4d13c3030 Update apps/dokploy/templates/wikijs/docker-compose.yml 2025-02-23 14:35:28 -06:00
Mauricio Siu
e00e19ec01 Merge pull request #1341 from drudge/templates/mailpit
feat: add Mailpit template
2025-02-23 14:30:38 -06:00
Mauricio Siu
c995268b39 Merge pull request #1349 from 190km/fix/logs-highlight-search-terms
fix: fixed highligh search terms color
2025-02-23 14:29:22 -06:00
Mauricio Siu
c8828b5620 Merge pull request #1357 from sondreal/fix-outline-typo
fixes typo outline->getoutline #1352
2025-02-23 14:10:12 -06:00
Mauricio Siu
ddd3101aeb Merge pull request #1348 from skyfall-sh/update-umami
chore: update umami to v2.16.1
2025-02-23 14:09:36 -06:00
sondreal
51310dae1d fixed the links 2025-02-23 19:15:17 +01:00
sondreal
0b7996adde removed my linting 2025-02-23 19:13:42 +01:00
sondreal
fb4b507250 fixes typo outline->getoutline #1352 2025-02-23 19:03:46 +01:00
Nicholas Penree
1294c2ad8e feat: add Pocket ID template 2025-02-23 12:07:54 -05:00
Nicholas Penree
733f9a0024 feat: add Linkwarden template 2025-02-23 10:51:50 -05:00
Mauricio Siu
73d3b58867 feat: add GitHub sign-in option for cloud environment 2025-02-23 01:59:00 -06:00
Mauricio Siu
0ea138571d refactor: update auth module to separate handler and API 2025-02-23 00:35:08 -06:00
Mauricio Siu
b1e7ffea21 chore: enable TypeScript size limit bypass in server tsconfig 2025-02-23 00:22:35 -06:00
Mauricio Siu
c0a7347ef5 chore: remove additional TypeScript configuration options in server tsconfig 2025-02-23 00:22:17 -06:00
Mauricio Siu
579faf2f58 chore: adjust TypeScript configuration in server tsconfig 2025-02-23 00:20:27 -06:00
Mauricio Siu
7429a1f65f chore: enable TypeScript declaration generation in server tsconfig 2025-02-23 00:16:51 -06:00
Mauricio Siu
716c1db799 Revert "chore: disable TypeScript declaration generation in server tsconfig"
This reverts commit 87836d23c3.
2025-02-23 00:13:35 -06:00
Mauricio Siu
9dd7f51eeb chore: disable TypeScript declaration generation in schedules tsconfig 2025-02-23 00:07:38 -06:00
Mauricio Siu
4a1a5a9bb1 chore: comment out database schema definitions in auth-schema 2025-02-23 00:04:24 -06:00
Mauricio Siu
87836d23c3 chore: disable TypeScript declaration generation in server tsconfig 2025-02-22 23:25:22 -06:00
Mauricio Siu
30cbad93d2 refactor: improve Traefik error handling in service initialization 2025-02-22 23:22:15 -06:00
Mauricio Siu
038b021043 Merge branch 'canary' into feat/better-auth-2 2025-02-22 23:22:11 -06:00
Mauricio Siu
0ec8e2baa1 chore: update GitHub workflow branch trigger for authentication feature branch 2025-02-22 23:20:27 -06:00
Mauricio Siu
3f2722f28d refactor: remove unused imports and simplify auth router 2025-02-22 22:38:38 -06:00
Mauricio Siu
47f7648cb3 feat: improve user profile update and password change functionality
This commit adds enhanced password change validation and handling:

- Add password change validation in user update route
- Implement password verification before allowing changes
- Update user schema to support optional password fields
- Fix token display in generate token component
- Disable migration script temporarily
2025-02-22 22:37:57 -06:00
Mauricio Siu
0478419f7c refactor: migrate authentication routes to user router and update related components
This commit continues the refactoring of authentication-related code by:

- Moving authentication routes from `auth.ts` to `user.ts`
- Updating import paths and function calls across components
- Removing commented-out authentication code
- Simplifying user-related queries and mutations
- Updating server-side authentication handling
2025-02-22 22:02:12 -06:00
Mauricio Siu
b00c12965a refactor: update reset password and authentication flows
This commit removes several authentication-related components and simplifies the password reset process:

- Removed login-2fa component
- Deleted confirm-email page
- Updated reset password logic to use Drizzle ORM directly
- Removed unused authentication-related functions
- Simplified server-side authentication routes
2025-02-22 21:09:21 -06:00
Mauricio Siu
8ab6d6b282 chore: clean up unused variables and improve error handling across codebase
This commit focuses on removing unused variables, adding placeholder error handling, and generally tidying up various files across the Dokploy application. Changes include:

- Removing unused imports and variables
- Adding placeholder error handling in catch blocks
- Cleaning up commented-out code
- Removing deprecated utility files
- Improving type safety and code consistency
2025-02-22 20:35:21 -06:00
190km
2470d672d4 fix: fixed highligh search terms color 2025-02-23 01:18:18 +00:00
Mahad Kalam
3403f8ab36 chore: update umami to v2.16.1 2025-02-23 00:47:04 +00:00
Mauricio Siu
1a415b96c9 refactor: remove unused auth service and clean up server-side code 2025-02-22 18:03:12 -06:00
Mauricio Siu
81a881b07e feat: enhance organization invitation UI and add organization details 2025-02-22 13:53:57 -06:00
Cohvir
baf555af52 feat(template): add Wiki.js 2025-02-22 14:16:14 +01:00
Mauricio Siu
c52725420e refactor: use organization context for server creation 2025-02-22 02:35:44 -06:00
Mauricio Siu
b02195db17 feat: add organization invitation system and update user profile management 2025-02-22 02:31:04 -06:00
Mauricio Siu
5ae103e779 refactor: update permission checks to use organization context 2025-02-21 00:48:04 -06:00
Mauricio Siu
a317f0c4cc refactor: simplify user permission checks across application 2025-02-21 00:40:35 -06:00
Mauricio Siu
24c9d3f7ad refactor: update user permissions and API queries 2025-02-21 00:30:55 -06:00
Mauricio Siu
63638bde33 refactor: consolidate database migration and clean up legacy user tables 2025-02-21 00:07:36 -06:00
Mauricio Siu
725bd1a381 refactor: migrate permissions from user_temp to member table 2025-02-21 00:00:22 -06:00
Mauricio Siu
790894ab93 refactor: migrate admin API calls to user router 2025-02-20 23:02:02 -06:00
Mahad Kalam
498a8523da fix: make spacing between sidebar elements consistent 2025-02-21 00:50:09 +00:00
Mauricio Siu
5a1145996d feat: add backup code authentication for 2FA login 2025-02-20 01:50:01 -06:00
Mauricio Siu
a9e12c2b18 refactor: update organization context in API routers 2025-02-20 01:42:35 -06:00
Nicholas Penree
c8b1fd36bd feat: add Mailpit template 2025-02-19 22:29:36 -05:00
vishalkadam47
609fea7daa refactor: update glance template 2025-02-20 08:35:14 +05:30
Mauricio Siu
b73e4102dd feat: add organizations and members 2025-02-17 02:48:42 -06:00
Mauricio Siu
c7d47a6003 refactor: update database foreign key constraints and user management 2025-02-17 00:30:15 -06:00
Mauricio Siu
8c28223343 refactor: remove 2fa migration 2025-02-17 00:10:34 -06:00
Mauricio Siu
7abe060fcf feat: enhance two-factor authentication and auth client implementation 2025-02-17 00:07:36 -06:00
Mauricio Siu
9e4efaeca6 Merge pull request #1331 from Dokploy/canary
🚀 Release v0.18.4
2025-02-16 21:46:57 -06:00
Mauricio Siu
56af89468a Merge pull request #1313 from nktnet1/superset-networks
docs(template): note on networking for superset
2025-02-16 21:34:40 -06:00
Mauricio Siu
b1502f5f82 Merge pull request #1329 from drudge/templates/registry
feat(template): add docker registry template
2025-02-16 21:33:54 -06:00
Mauricio Siu
c78b8cfead Update package.json 2025-02-16 21:30:57 -06:00
Mauricio Siu
0e8e92c715 refactor: add 2fa 2025-02-16 20:56:50 -06:00
Mauricio Siu
e1632cbdb3 refactor: update user and authentication schema with two-factor support 2025-02-16 15:32:57 -06:00
Nicholas Penree
48c4ec55f9 fix(template): switch outline to png for dark mode 2025-02-16 15:52:15 -05:00
Mauricio Siu
90156da570 refactor: remove tables 2025-02-16 14:11:47 -06:00
Mauricio Siu
9856502ece refactor: remove old references 2025-02-16 13:55:27 -06:00
Mauricio Siu
a8d1471b16 refactor: update 2025-02-16 13:28:29 -06:00
Mauricio Siu
27736c7c97 refactor: update role and validation handling across multiple pages 2025-02-16 03:06:22 -06:00
Mauricio Siu
e7db0ccb70 refactor: update invitation 2025-02-16 02:57:49 -06:00
Mauricio Siu
4a1a14aeb4 refactor: update 2025-02-15 23:24:45 -06:00
Mauricio Siu
ed62b4e1a3 refactor: lint 2025-02-15 23:01:44 -06:00
Mauricio Siu
515d65d993 refactor: adjust queries 2025-02-15 23:01:36 -06:00
Nicholas Penree
2ebb02dc20 feat(template): add docker registry template 2025-02-15 22:46:37 -05:00
Mauricio Siu
78c72b6337 refactor: update 2025-02-15 20:49:10 -06:00
Mauricio Siu
e3e35ce792 refactor: update to use organization resources 2025-02-15 20:43:23 -06:00
Mauricio Siu
6d0e195a4d refactor: update 2025-02-15 20:26:05 -06:00
Mauricio Siu
53ce5e57fa refactor: update organization 2025-02-15 20:25:58 -06:00
Mauricio Siu
87b12ff6e9 refactor: update 2025-02-15 20:06:33 -06:00
Mauricio Siu
8b71f963cc refactor: update logic 2025-02-15 19:35:22 -06:00
Mauricio Siu
1c5cc5a0db refactor: update roles 2025-02-15 19:23:08 -06:00
Mauricio Siu
d233f2c764 feat: adjust roles 2025-02-15 19:12:44 -06:00
Mauricio Siu
1bbb4c9b64 refactor: update migration 2025-02-15 18:13:20 -06:00
Mauricio Siu
9ca3ab3845 Merge pull request #1327 from Krobys/canary
feat(template): Add Appwrite template
2025-02-15 16:00:19 -06:00
Krobys
0baf9d8962 feat(template): add Appwrite 2025-02-15 21:46:18 +00:00
Mauricio Siu
71c609df0e Merge pull request #1326 from Dokploy/1304-preview-deployments-dont-work-when-enabling-auth-or-redirects
fix: inherit security & redirects from application
2025-02-15 15:24:36 -06:00
Mauricio Siu
450302b2c2 fix: inherit security & redirects from application 2025-02-15 15:23:33 -06:00
Mauricio Siu
71a007a4b3 Merge pull request #1325 from Dokploy/1257-main-server-error-error-http-code-409-unexpected---rpc-error
fix: handle race condition to catch recreation base containers
2025-02-15 14:26:52 -06:00
Mauricio Siu
871931b460 fix: handle race condition to catch recreation base containers 2025-02-15 14:23:54 -06:00
Mauricio Siu
3a7bb5016c Merge pull request #1324 from Dokploy/1320-missing-path-option-when-adding-a-template-in-dokploy
refactor: add missing path option
2025-02-15 14:09:33 -06:00
Mauricio Siu
23b59076b8 refactor: add missing path option 2025-02-15 13:35:25 -06:00
Mauricio Siu
2ddfc83f36 Merge pull request #1322 from drudge/ui/compose-monitoring-status
style(monitoring): use status badges for compose monitoring
2025-02-15 13:30:07 -06:00
Mauricio Siu
ba54124a56 Merge pull request #1321 from drudge/templates/outline
feat(template): add outline
2025-02-15 13:29:18 -06:00
Mauricio Siu
64bdf07dbd Merge pull request #1319 from mafrasil/feat-add-convex-tpl
feat(template): add convex.dev
2025-02-15 13:19:15 -06:00
Mauricio Siu
8366219266 refactor: format 2025-02-15 13:18:54 -06:00
Mauricio Siu
f38fb96eaf Merge branch 'canary' into feat-add-convex-tpl 2025-02-15 13:17:16 -06:00
Nicholas Penree
3b1ade804f style(monitoring): use status badges for compose monitoring 2025-02-15 14:16:30 -05:00
Mauricio Siu
fd69b45e5e refactor: update envs 2025-02-15 13:15:32 -06:00
Mauricio Siu
6ec60b6bab refactor: update validation 2025-02-15 13:14:48 -06:00
Mauricio Siu
12034e460e Merge pull request #1316 from mezotv/patch-2
feat(template): update plausible
2025-02-15 13:08:23 -06:00
Mauricio Siu
2b5a1d90b0 Merge pull request #1309 from jeffersoncbd/canary
feat: Add Trilium app template
2025-02-15 13:07:38 -06:00
Mauricio Siu
e7195c8acf Update apps/dokploy/templates/trilium/docker-compose.yml 2025-02-15 13:07:33 -06:00
Nicholas Penree
9ace0f38cd chore(lint): fix lint 2025-02-15 02:22:51 -05:00
Nicholas Penree
796e50ed5f feat(template): add outline 2025-02-15 02:22:37 -05:00
Mauricio Siu
55abac3f2f refactor: migrate endpoints 2025-02-14 02:52:37 -06:00
Mauricio Siu
b6c29ccf05 refactor: update 2025-02-14 02:40:11 -06:00
Mauricio Siu
ca217affe6 feat: update references 2025-02-14 02:18:53 -06:00
mafrasil
ed54df9bd2 feat(template): add convex.dev 2025-02-14 09:23:41 +04:00
vicke4
a4242d45d3 style: commitlint fix 2025-02-14 10:05:19 +05:30
vicke4
121755d9cc refactor: add field description to message thread id 2025-02-14 10:04:38 +05:30
Dominik Koch
bf6c2698d4 fix: update plausible version 2025-02-13 21:52:01 +01:00
Dominik Koch
bbdda014d8 feat(template): update plausible 2025-02-13 21:46:06 +01:00
vicke4
316dfa6b2e style: consistent formatting of code 2025-02-13 22:27:39 +05:30
vicke4
e228325e37 feat: notifications to specific Telegram topics 2025-02-13 22:20:52 +05:30
Khiet Tam Nguyen
d9c83b7010 docs(template): note on networking for superset 2025-02-13 20:36:03 +11:00
Mauricio Siu
5c24281f72 refactor: return correct information 2025-02-13 02:45:33 -06:00
Mauricio Siu
bc901bcb25 refactor: update 2025-02-13 02:36:08 -06:00
Mauricio Siu
7c0d223e17 refactor: add fields 2025-02-13 01:42:58 -06:00
Mauricio Siu
74ee024cf9 refactor: update temps 2025-02-13 01:24:25 -06:00
Mauricio Siu
140a871275 refactor: update 2025-02-13 01:21:49 -06:00
Mauricio Siu
d1f72a2e20 refactor: update migration 2025-02-13 00:57:22 -06:00
Mauricio Siu
0d525398a8 feat: migrate rest schemas 2025-02-13 00:45:29 -06:00
Mauricio Siu
7c62408070 refactor: delete 2025-02-13 00:38:39 -06:00
Mauricio Siu
23f1ce17de refactor: add migration 2025-02-13 00:38:22 -06:00
Mauricio Siu
60eee55f2d refactor: test migrastion 2025-02-12 23:41:04 -06:00
Mauricio Siu
209029214e Merge pull request #1307 from vytenisstaugaitis/canary
chore: update wordpress version to v6.7.1
2025-02-12 22:16:14 -06:00
Jefferson Carlos
9de3bf3c32 Add files via upload 2025-02-13 00:33:11 -03:00
Jefferson Carlos
2c65fc22b0 Update templates.ts 2025-02-13 00:32:45 -03:00
Jefferson Carlos
6688b14753 Create docker-compose.yml 2025-02-13 00:22:18 -03:00
Jefferson Carlos
6ea2a82bb0 Create index.ts for Trilium app 2025-02-13 00:21:23 -03:00
Mauricio Siu
8f562eefc1 Merge branch 'canary' into feat/better-auth 2025-02-12 20:56:23 -06:00
vytenisstaugaitis
e01347673e chore: update wordpress version to v6.7.1 2025-02-12 22:31:52 +02:00
Mauricio Siu
6179cef1ee refactor: update name 2025-02-10 02:13:52 -06:00
Mauricio Siu
b7112b89fd refactor: add migration 2025-02-10 00:39:46 -06:00
Mauricio Siu
0db9cb4418 Merge pull request #1300 from Dokploy/canary
🚀 Release v0.18.3
2025-02-10 00:35:31 -06:00
Mauricio Siu
030c8a312d Update package.json 2025-02-10 00:24:58 -06:00
Mauricio Siu
1db6ba94f4 refactor: remove 2025-02-09 21:36:36 -06:00
Mauricio Siu
afd3d2eea3 refactor: lint 2025-02-09 20:53:14 -06:00
Mauricio Siu
8bd72a8a34 refactor: add organizations system 2025-02-09 20:53:06 -06:00
Mauricio Siu
fafc238e70 refactor: migration 2025-02-09 18:56:17 -06:00
Mauricio Siu
c04bf3c7e0 feat: add migration 2025-02-09 18:19:21 -06:00
Mauricio Siu
6b9fd596e5 feat: add openalternative 2025-02-09 03:17:13 -06:00
Mauricio Siu
7e36433144 Merge pull request #1282 from wish-oss/feat/bulk-actions
feat: added bulk actions for services start and stop and added service status for domain dropdown
2025-02-09 03:07:01 -06:00
Mauricio Siu
0a6554c275 refactor: add loading action 2025-02-09 03:06:18 -06:00
Mauricio Siu
fcc55355f2 refactor: add catch to prevent throw error 2025-02-09 03:02:39 -06:00
Mauricio Siu
78e606876a Merge pull request #1297 from mohabgabber/canary
Update unsend version to v1.3.2
2025-02-09 02:37:31 -06:00
Mauricio Siu
7e99baa267 Merge branch 'canary' into canary 2025-02-09 02:37:23 -06:00
Mauricio Siu
92c03bb7cc Merge pull request #1276 from Dokploy/1004-network-conflict
1004 network conflict
2025-02-09 02:36:17 -06:00
Mauricio Siu
3a5ecb2f64 refactor: remove unused imports 2025-02-09 02:33:30 -06:00
Mauricio Siu
c0a00f4957 refactor: remove dokploy-network 2025-02-09 02:31:01 -06:00
Mauricio Siu
a8f94540f9 refactor: lint 2025-02-09 02:20:40 -06:00
Mauricio Siu
3e2cfe6eb8 refactor: agroupate utilities 2025-02-09 02:20:28 -06:00
Mohab Gabber
b2d5090b36 Merge branch 'canary' of https://github.com/mohabgabber/dokploy into canary 2025-02-09 03:22:27 +02:00
Mohab Gabber
0a0f53e9de chore: update unsend version to v1.3.2 2025-02-09 03:22:23 +02:00
Vishal kadam
17ce03e529 Merge branch 'Dokploy:canary' into feat/bulk-actions 2025-02-09 01:47:55 +05:30
Mauricio Siu
f44512a437 refactor: add condition to deploy on remote servers 2025-02-06 01:52:53 -06:00
Mauricio Siu
8379068fe3 refactor: remove services 2025-02-06 00:40:03 -06:00
Mauricio Siu
a71de72a3c refactor: remove services 2025-02-06 00:39:42 -06:00
Mauricio Siu
b024060eed refactor: delete unneeded container_name 2025-02-06 00:38:04 -06:00
Mauricio Siu
56b26ce0d5 refactor: use appname in network connect 2025-02-06 00:19:34 -06:00
Mauricio Siu
a9e3a65782 Merge branch 'canary' into 1004-network-conflict 2025-02-06 00:17:26 -06:00
Mauricio Siu
52e34b64a3 Merge pull request #1285 from laem/patch-1
Fix deploy env variable URL : should be a string, not an object
2025-02-06 00:16:43 -06:00
Mauricio Siu
bc8f54a2b9 Update packages/server/src/services/application.ts 2025-02-06 00:16:25 -06:00
Mauricio Siu
8b3e643ce7 Update packages/server/src/services/application.ts 2025-02-06 00:16:20 -06:00
Mauricio Siu
7a472df753 Merge pull request #1239 from NagariaHussain/template-frappe-hr
feat(template): frappe HR, open source HR & Payroll software
2025-02-06 00:14:59 -06:00
Mael
068dd33033 Fix deploy env variable URL : should be a string, not an object 2025-02-05 16:31:52 +01:00
vishalkadam47
bd809c8dca feat: added bulk actions for services start and stop and added service status for domain dropdown 2025-02-05 08:17:15 +05:30
Hussain Nagaria
48642979c5 chore: make erpnext template more configurable 2025-02-04 17:17:43 +05:30
Hussain Nagaria
46411a5f4e fix: create site should use configured db 2025-02-04 14:30:55 +05:30
Hussain Nagaria
82cf0643d7 fix: site volume configurable 2025-02-04 14:15:47 +05:30
Hussain Nagaria
65780ee852 feat: make db configurable 2025-02-04 13:57:49 +05:30
Mauricio Siu
0f99ca9c67 Merge pull request #1280 from Dokploy/canary
🚀 Release v0.18.2
2025-02-03 21:51:23 -06:00
Mauricio Siu
9d988c9a9b Update package.json 2025-02-03 21:49:20 -06:00
Mauricio Siu
eb211b933e Merge pull request #1277 from Blueshadow58/revert-1259-pocketbase
revert "feat<templates>: Updated PocketBase version to 0.25.0" #1259
2025-02-03 21:47:59 -06:00
Franco Gamonal
20eb6d7985 Revert "feat<templates>: Updated PocketBase version to 0.25.0" 2025-02-03 10:27:35 -03:00
Mauricio Siu
d424524d69 refactor: lint 2025-02-03 00:57:27 -06:00
Mauricio Siu
6f2148c060 feat: add deployable option to randomize and prevent colission in duplicate templates 2025-02-03 00:57:18 -06:00
Mauricio Siu
54b9f7b699 Merge pull request #1275 from Dokploy/canary
🚀 Release v0.18.1
2025-02-02 22:19:56 -06:00
Mauricio Siu
97b77e526d Merge pull request #1274 from Dokploy/fix/compose-builder
fix: add missing command
2025-02-02 22:19:05 -06:00
Mauricio Siu
077f47f2d8 chore: bump version 2025-02-02 22:18:47 -06:00
Mauricio Siu
5d6847b970 fix: add missing command 2025-02-02 22:18:21 -06:00
Mauricio Siu
cbc74b1c5e Merge pull request #1272 from Dokploy/canary
🚀 Release v0.18.0
2025-02-02 20:41:27 -06:00
Mauricio Siu
2630a73bd8 Merge pull request #1268 from mohabgabber/canary
chore: update unsend image version to v1.2.5
2025-02-02 20:26:24 -06:00
Mauricio Siu
df5ef4a34e Merge pull request #1269 from nktnet1/superset-unofficial-template
fix(template): superset SQLALCHEMY_EXAMPLES_URI env + warning
2025-02-02 20:26:11 -06:00
Mauricio Siu
48a8c6021d chore: bump version 2025-02-02 20:25:45 -06:00
Mauricio Siu
d84a22fa72 feat: add monitoring arm-amd version 2025-02-02 20:23:49 -06:00
Mauricio Siu
1661022d56 Fix/monitoring (#1271)
* refactor: make request to dokploy server to proxy requests

* refactor: lint

* refactor: use dokploy/monitoring tag image

* refactor: use canary in development or canary tags

* refactor: adjust logic

* refactor: update name
2025-02-02 19:51:19 -06:00
Mauricio Siu
2a295d6492 Merge branch 'canary' into fix/monitoring 2025-02-02 19:50:28 -06:00
Mauricio Siu
51851567db refactor: update name 2025-02-02 19:49:30 -06:00
Mauricio Siu
d1aaeb9a7b refactor: adjust logic 2025-02-02 19:43:28 -06:00
Mauricio Siu
f9b4035c20 refactor: use canary in development or canary tags 2025-02-02 19:41:07 -06:00
Mauricio Siu
d492ff87f2 Fix/monitoring (#1270)
* refactor: make request to dokploy server to proxy requests

* refactor: lint

* refactor: use dokploy/monitoring tag image
2025-02-02 19:35:36 -06:00
Mauricio Siu
f638f49ab6 refactor: use dokploy/monitoring tag image 2025-02-02 19:33:52 -06:00
Mauricio Siu
d1610855bb refactor: lint 2025-02-02 19:32:45 -06:00
Mauricio Siu
0c8c0844b1 refactor: make request to dokploy server to proxy requests 2025-02-02 19:32:37 -06:00
Tam Nguyen
98b19bb433 chore(template): resolve conflicts with main 2025-02-03 11:54:09 +11:00
Tam Nguyen
d8c5244d19 fix(template): superset SQLALCHEMY_EXAMPLES_URI env + warning 2025-02-03 11:47:57 +11:00
Mohab Gabber
7bb8456cb7 chore: update unsend image version to v1.2.5 2025-02-03 02:13:44 +02:00
Mauricio Siu
74a0f5e992 Feat/monitoring (#1267) Cloud Version
* feat: add start monitoring remote servers

* reafctor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor:

* refactor: add metrics

* feat: add disk monitoring

* refactor: translate to english

* refacotor: add stats

* refactor: remove color

* feat: add log server metrics

* refactor: remove unused deps

* refactor: add origin

* refactor: add logs

* refactor: update

* feat: add series monitoring

* refactor: add system monitoring

* feat: add benchmark to optimize data

* refactor: update fn

* refactor: remove comments

* refactor: update

* refactor: exclude items

* feat: add refresh rate

* feat: add monitoring remote servers

* refactor: update

* refactor: remove unsued volumes

* refactor: update monitoring

* refactor: add more presets

* feat: add container metrics

* feat: add docker monitoring

* refactor: update conversion

* refactor: remove unused code

* refactor: update

* refactor: add docker compose logs

* refactor: add docker cli

* refactor: add install curl

* refactor: add get update

* refactor: add monitoring remote servers

* refactor: add containers config

* feat: add container specification

* refactor: update path

* refactor: add server filter

* refactor: simplify logic

* fix: verify if file exist before get stats

* refactor: update

* refactor: remove unused deps

* test: add test for containers

* refactor: update

* refactor add memory collector

* refactor: update

* refactor: update

* refactor: update

* refactor: remove

* refactor: add memory

* refactor: add server memory usage

* refactor: change memory

* refactor: update

* refactor: update

* refactor: add container metrics

* refactor: comment code

* refactor: mount proc bind

* refactor: change interval with node cron

* refactor: remove opening file

* refactor: use streams

* refactor: remove unused ws

* refactor: disable live when is all

* refactor: add sqlite

* refactor: update

* feat: add golang benchmark

* refactor: update go

* refactor: update dockerfile

* refactor: update db

* refactor: add env

* refactor: separate logic

* refactor: split logic

* refactor: update logs

* refactor: update dockerfile

* refactor: hide .env

* refactor: update

* chore: hide ,.ebnv

* refactor: add end angle

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update monitoring

* refactor: add mount db

* refactor: add metrics and url callback

* refactor: add middleware

* refactor: add threshold property

* feat: add memory and cpu threshold notification

* feat: send notifications to the server

* feat: add metrics for dokploy server

* refactor: add dokploy server to monitoring

* refactor: update methods

* refactor: add admin to useeffect

* refactor: stop monitoring containers if elements are 0

* refactor: cancel request if appName is empty

* refactor: reuse methods

* chore; add feat monitoring

* refactor: set base url

* refactor: adjust monitoring

* refactor: delete migrations

* feat: add columns

* fix: add missing flag

* refactor: add free metrics

* refactor: add paid monitoring

* refactor: update methods

* feat: improve ui

* feat: add container stats

* refactor: add all container metrics

* refactor: add color primary

* refactor: change default rate limiting refresher

* refactor: update retention days

* refactor: use json instead of individual properties

* refactor: lint

* refactor: pass json env

* refactor: update

* refactor: delete

* refactor: update

* refactor: fix types

* refactor: add retention days

* chore: add license

* refactor: create db

* refactor: update path

* refactor: update setup

* refactor: update

* refactor: create files

* refactor: update

* refactor: delete

* refactor: update

* refactor: update token metrics

* fix: typechecks

* refactor: setup web server

* refactor: update error handling and add monitoring

* refactor: add local storage save

* refactor: add spacing

* refactor: update

* refactor: upgrade drizzle

* refactor: delete

* refactor: uppgrade drizzle kit

* refactor: update search with jsonB

* chore: upgrade drizzle

* chore: update packages

* refactor: add missing type

* refactor: add serverType

* refactor: update url

* refactor: update

* refactor: update

* refactor: hide monitoring on self hosted

* refactor: update server

* refactor: update

* refactor: update

* refactor: pin node version
2025-02-02 14:08:06 -06:00
Mauricio Siu
8c69d2a085 Merge pull request #1265 from Dokploy/1199-error-log-spam-in-traefik-logs-err-errorservice-dokploy-traefik-error-port-is-missing
refactor: delete label
2025-02-01 23:05:24 -06:00
Mauricio Siu
c8a4a826ca refactor: delete label 2025-02-01 23:04:31 -06:00
Mauricio Siu
e1b114a63b Merge pull request #1264 from Dokploy/1202-dates-are-not-shown-in-logs
fix: don't cut log
2025-02-01 23:00:45 -06:00
Mauricio Siu
0b4d19abd6 fix: don't cut log 2025-02-01 23:00:28 -06:00
Mauricio Siu
1c0f6a8e60 Merge pull request #1262 from Dokploy/1235-monitoring-404-not-found---mcpuvalue-is-null
refactor: update docker stats
2025-02-01 21:49:03 -06:00
Mauricio Siu
c41aa0ccf7 refactor: uypdate 2025-02-01 19:31:44 -06:00
Mauricio Siu
96bb72eb99 refactor: update docker stats 2025-02-01 19:27:10 -06:00
Mauricio Siu
ee2fed07b2 Merge pull request #1252 from mateodemuynck/fix/stack-domains
fix: expose docker stack services
2025-02-01 13:50:19 -06:00
Mauricio Siu
af083ffa5d refactor: remove duplicate case 2025-02-01 13:38:24 -06:00
Mauricio Siu
f14ed5170d Merge pull request #1249 from ali-issa/fix/domains-page-ux-improvements
fix: improve domains page UX and button placement consistency
2025-02-01 13:32:45 -06:00
Mauricio Siu
cd1c7e60bf refactor: update domains 2025-02-01 13:32:10 -06:00
Mauricio Siu
79c6b7389c Merge pull request #1259 from Blueshadow58/pocketbase
feat<templates>: Updated PocketBase version to 0.25.0
2025-02-01 11:20:40 -06:00
Mauricio Siu
e48f1431a9 Merge pull request #1238 from wish-oss/feat/copy-ip
feat: added clipboard functionality to copy IP address from badge in services pages
2025-02-01 11:20:11 -06:00
blueshadow58
c2ecdb2d76 feat<templates>: Updated PocketBase version to 0.25.0 2025-02-01 13:25:33 -03:00
Vishal kadam
5c889e81a9 Merge branch 'Dokploy:canary' into feat/copy-ip 2025-02-01 14:12:07 +00:00
Mauricio Siu
407e2e1137 Merge pull request #1250 from MuhammadM1998/patch-1
chore: remove duplicated sentence in projects dialog
2025-02-01 02:41:21 -06:00
vishalkadam47
2c6c89e4c1 refactor: added copy-to-clipboard library and replaced navigator.clipboard.writeText with copy function 2025-01-31 20:31:16 +05:30
Vishal kadam
41a8014585 Merge branch 'Dokploy:canary' into feat/copy-ip 2025-01-31 14:12:31 +00:00
Motysten
fffe1d6249 fix: labels not added correctly when using "stack" type docker dompose file 2025-01-31 14:15:52 +01:00
Muhammad Mahmoud
cf0f5c8b97 chore: remove duplicated sentence 2025-01-31 13:55:18 +02:00
Ali Issa
777980618f fix: improve domains page UX and button placement consistency 2025-01-31 02:59:23 -05:00
Mauricio Siu
dcd1df31c7 Merge pull request #637 from xenonwellz/feat/stack-env-support
Feat: added env support to Dokploy stack compose
2025-01-31 01:38:29 -06:00
Mauricio Siu
7369b54f32 refactor: update 2025-01-31 01:20:52 -06:00
Mauricio Siu
009859faa9 refactor: add .env docker stack 2025-01-31 01:20:10 -06:00
Mauricio Siu
f7a29accb1 refactor: lint 2025-01-30 23:40:01 -06:00
Mauricio Siu
50c518a63a Merge branch 'canary' into feat/stack-env-support 2025-01-30 23:39:54 -06:00
Mauricio Siu
79fca72d06 Merge branch 'canary' into template-frappe-hr 2025-01-30 23:32:56 -06:00
Mauricio Siu
18c6d08b9a Merge pull request #1237 from bernabedev/canary
feat(template): add Formbricks template with Docker Compose and environment setup
2025-01-30 23:32:32 -06:00
Mauricio Siu
208094cd3e Update apps/dokploy/templates/formbricks/index.ts 2025-01-30 23:31:43 -06:00
Mauricio Siu
1342f73a02 Update apps/dokploy/templates/formbricks/index.ts 2025-01-30 23:31:39 -06:00
Mauricio Siu
1787c524f0 Update apps/dokploy/templates/formbricks/docker-compose.yml 2025-01-30 23:31:33 -06:00
Mauricio Siu
5899dc9394 Merge pull request #1114 from joaotonaco/feat/template-evolution-api
feat(template): added evolution api
2025-01-30 23:24:25 -06:00
Mauricio Siu
6b48c0f354 fix: correct env values 2025-01-30 23:24:12 -06:00
Mauricio Siu
33f3d1d87e Merge branch 'canary' into feat/template-evolution-api 2025-01-30 23:16:09 -06:00
Mauricio Siu
4bfb172373 Merge pull request #1232 from muhammetakalan/patch-1
fix: teable template
2025-01-30 23:11:34 -06:00
Mauricio Siu
6cf96df6ec Merge pull request #1231 from jannismilz/canary
feat: upgrade listmonk version
2025-01-30 23:09:01 -06:00
Hussain Nagaria
62a3707c10 feat(template): frappe HR, open source HR & Payroll software 2025-01-29 18:49:27 +05:30
Freilyn Bernabe
00d2b3b572 fix: changing the description of formbricks to english 2025-01-29 07:26:14 -04:00
vishalkadam47
d8f1548076 feat: added clipboard functionality to copy IP address from badge in services pages 2025-01-29 13:09:58 +05:30
Freilyn Bernabe
de4d1c0911 feat(template): add Formbricks template with Docker Compose and environment setup 2025-01-29 00:39:01 -04:00
Muhammet Emin Akalan
b96169fa55 fix: teable template 2025-01-28 15:31:20 +03:00
Jannis Milz
e21e0e1865 feat: Upgrade listmonk version and remove automatic admin credentials creation 2025-01-28 12:24:54 +01:00
Mauricio Siu
dc9a194bbe Merge pull request #1229 from nktnet1/shlink-template
fix(template): shlink version stable in index.ts
2025-01-27 22:57:48 -06:00
Khiet Tam Nguyen
27738d253e fix(template): shlink version stable in index.ts 2025-01-28 01:47:14 +11:00
Mauricio Siu
d37bde00bc Merge pull request #1226 from nktnet1/shlink-template
feat(template): added shlink, a url shortener service
2025-01-26 23:44:13 -06:00
Khiet Tam Nguyen
55fae23ce3 feat(template): added shlink, a url shortener service 2025-01-27 14:36:07 +11:00
Mauricio Siu
ea910db9d1 Merge pull request #1225 from Dokploy/canary
🚀 Release v0.17.9
2025-01-26 20:51:04 -06:00
Mauricio Siu
d43cd52762 refactor: update 2025-01-26 19:58:35 -06:00
Mauricio Siu
094491ecbf refactor: add missing deps 2025-01-26 19:47:26 -06:00
Mauricio Siu
3d5bed0915 chore: add missing dependency 2025-01-26 19:30:21 -06:00
Mauricio Siu
23de14f0b4 chore: bump version 2025-01-26 19:15:11 -06:00
Mauricio Siu
215811ae82 Merge pull request #1224 from Dokploy/1093-expose-deploy-preview-url-in-env
feat: add DOKPLOY_DEPLOY_URL in enviroment variables for previews
2025-01-26 19:14:01 -06:00
Mauricio Siu
34b4956630 feat: add DOKPLOY_DEPLOY_URL in enviroment variables for previews 2025-01-26 19:13:43 -06:00
Mauricio Siu
7ed0282ce1 Merge pull request #1223 from Dokploy/fix/remove-cron-jobs-after-delete
Fix/remove cron jobs after delete
2025-01-26 19:01:32 -06:00
Mauricio Siu
24327139b8 refactor: make optional field name 2025-01-26 19:00:58 -06:00
Mauricio Siu
0fb67ced5d fix: remove cron jobs after delete service 2025-01-26 18:59:27 -06:00
Mauricio Siu
1e56364f93 refactor: update typo 2025-01-26 18:26:49 -06:00
Mauricio Siu
f980e459d9 Merge pull request #1220 from bernabedev/canary
feat(template): added answer template
2025-01-26 17:57:40 -06:00
Mauricio Siu
3209550edc Update apps/dokploy/templates/answer/docker-compose.yml 2025-01-26 17:57:31 -06:00
Mauricio Siu
9835ead2b9 Merge pull request #1222 from Dokploy/1164-when-creating-a-service-and-selecting-a-server-display-description-information
refactor: add server IP address
2025-01-26 17:50:07 -06:00
Mauricio Siu
73f93f8a13 refactor: add server IP address 2025-01-26 17:49:51 -06:00
Mauricio Siu
46ddaa68fa Merge pull request #1221 from Dokploy/1170-0176-copy-to-clipboard-stopped-working-on-the-project-delete-confirm-dialog
refactor: add back delete with confirmation
2025-01-26 17:45:03 -06:00
Mauricio Siu
64e68cfde1 refactor: update styles 2025-01-26 17:44:31 -06:00
Mauricio Siu
36c1a615c6 refactor: use copy package 2025-01-26 17:42:04 -06:00
Mauricio Siu
eeb97645b5 refactor: add back delete with confirmation 2025-01-26 17:40:28 -06:00
Freilyn Bernabe
9a052c4657 Merge branch 'Dokploy:canary' into canary 2025-01-26 19:25:44 -04:00
Freilyn Bernabe
165cdd27da feat(template): added answer template 2025-01-26 19:22:17 -04:00
Mauricio Siu
13551f6065 Merge pull request #1219 from Dokploy/706-ability-to-use-a-custom-port-for-git
fix: set extracted port on ssh connection
2025-01-26 17:21:09 -06:00
Mauricio Siu
f2ad1c5a57 fix: set extracted port on ssh connection 2025-01-26 17:20:33 -06:00
Mauricio Siu
4d5565895c Merge pull request #1218 from Dokploy/1059-inconsistence-layout-resource
refactor: adjust order
2025-01-26 16:28:17 -06:00
Mauricio Siu
8e51dedb78 refactor: adjust order 2025-01-26 16:28:00 -06:00
Mauricio Siu
780fa6b9cd Merge pull request #1217 from Dokploy/1177-when-deploying-applications-through-autodeploy-docker-cannot-update
refactor: make less aggressive cleanups
2025-01-26 16:25:16 -06:00
Mauricio Siu
95e642e63a refactor: make less aggressive cleanups 2025-01-26 16:20:02 -06:00
Mauricio Siu
5801c69034 Merge pull request #1216 from Dokploy/1190-cant-reach-my-app-by-assigned-domain
refactor: add dokploy-network on new installations to prevent gateway…
2025-01-26 15:54:47 -06:00
Mauricio Siu
2c98b4267f refactor: add dokploy-network on new installations to prevent gateway 504 errors randomly 2025-01-26 15:53:50 -06:00
Mauricio Siu
1874ffaa55 Merge pull request #1215 from Dokploy/1210-search-repository-function-is-not-working-correctly
fix: search by name and not on url
2025-01-26 15:46:11 -06:00
Mauricio Siu
11c4101dc3 fix: search by name and not on url 2025-01-26 15:45:53 -06:00
Mauricio Siu
4c3b5ef271 Merge pull request #1214 from NagariaHussain/template-erpnext
feat: add erpnext template
2025-01-26 15:29:58 -06:00
Mauricio Siu
4105353109 Merge branch 'canary' into template-erpnext 2025-01-26 15:20:30 -06:00
Mauricio Siu
8a971072e4 Merge pull request #1205 from nktnet1/superset-avoid-host-conflict
fix(template): prepend superset_ to postgres/redis
2025-01-26 15:19:46 -06:00
Mauricio Siu
dab12d6162 Merge pull request #1204 from gentslava/fix/issue_1198-muliple_preview_deployments
fix: Multiple Preview Deployments
2025-01-26 15:19:00 -06:00
Mauricio Siu
8d31574e5f refactor: add continue to is cloud 2025-01-26 15:17:26 -06:00
Mauricio Siu
0012ca7357 Merge pull request #1203 from wish-oss/fix/xterm
fix: terminal paste visibility
2025-01-26 15:02:26 -06:00
Mauricio Siu
1aed53e6fe refactor: add missing load 2025-01-26 15:01:49 -06:00
Mauricio Siu
d6b966cfea refactor: merge canary 2025-01-26 15:01:30 -06:00
Mauricio Siu
772341fb1e refactor: remove unused settings 2025-01-26 14:57:33 -06:00
Mauricio Siu
e7a6247297 refactor: lint 2025-01-26 14:56:01 -06:00
Mauricio Siu
b1beb7b71b fix: adjust color paste on terminal 2025-01-26 14:55:22 -06:00
Mauricio Siu
6254644fa6 Merge pull request #1196 from rahadi23/bugfix/1165-navigation-items-permissions
fix(ui): add condition to show update server button to admin only
2025-01-26 14:30:39 -06:00
Mauricio Siu
bcb86f3d6d Merge pull request #1195 from bernabedev/canary
feat(template): added maybe finance
2025-01-26 14:30:17 -06:00
Mauricio Siu
b96103247a Merge branch 'canary' into canary 2025-01-26 14:30:11 -06:00
Mauricio Siu
87697147da Update apps/dokploy/templates/maybe/docker-compose.yml 2025-01-26 14:29:51 -06:00
Mauricio Siu
074e3b6ec6 Merge pull request #1194 from wish-oss/feat/spacedrive-template
feat: add spacedrive file manager template
2025-01-26 14:24:52 -06:00
Mauricio Siu
7061e06736 Merge branch 'canary' into feat/spacedrive-template 2025-01-26 14:24:46 -06:00
Mauricio Siu
de35812d5a Merge pull request #1193 from wish-oss/feat/domain-navigation
feat: restore domain dropdown menu functionality
2025-01-26 14:22:34 -06:00
Mauricio Siu
c5ac5f84b1 Merge pull request #1186 from gentslava/canary
feat(i18n): add missing keys to Russian translation
2025-01-26 14:21:20 -06:00
Mauricio Siu
2e42fa7014 Merge pull request #1185 from RoodyCode/patch-1
style: fix incosistent spacing in Card-Footer
2025-01-26 14:21:05 -06:00
Mauricio Siu
0fe8a1a221 Merge pull request #1183 from yni9ht/feat-alist-template
feat(template): add alist template
2025-01-26 14:20:15 -06:00
Hussain Nagaria
829e77a6b8 feat: add erpnext template
Co-authored-by: Revant <revant.one@gmail.com>
2025-01-26 21:50:10 +05:30
Khiet Tam Nguyen
adfe598671 fix(template): prepend superset_ to postgres/redis 2025-01-25 19:14:58 +11:00
Vyacheslav Shcherbinin
ac49235916 Pull Request actions filter 2025-01-25 10:51:22 +07:00
vishalkadam47
d7210e9d7b fix: terminal paste visibility 2025-01-25 00:42:46 +05:30
Rahadi Jalu
52ea9ffa67 fix(ui): add condition to show update server button to admin only 2025-01-24 15:05:02 +07:00
Freilyn Bernabe
fd570ff861 feat(template): added maybe finance 2025-01-23 23:41:58 -04:00
vishalkadam47
130567dd78 feat: add Spacedrive file manager template 2025-01-24 08:17:39 +05:30
vishalkadam47
0a826fbf1c feat: add dropdown menu for service domains and add download functionality for SSH keys 2025-01-24 06:13:54 +05:30
Vyacheslav Shcherbinin
081d08c20a Update ru translation 2025-01-23 20:20:59 +07:00
Roody
41cf3d7b77 style: fix incosistent spacing 2025-01-23 11:32:08 +01:00
yni9ht
b05af62b7b feat: add alist template 2025-01-23 14:58:45 +08:00
Mauricio Siu
bfec980e45 Merge pull request #1181 from Dokploy/canary
🚀 Release v0.17.8
2025-01-23 00:54:53 -06:00
Mauricio Siu
c6569f70e4 Merge pull request #1182 from Dokploy/fix/disable-turn-off-cleanup
fix: turnoff cleanup cache
2025-01-23 00:54:30 -06:00
Mauricio Siu
d5c9338f51 fix: turnoff cleanup cache 2025-01-23 00:53:21 -06:00
Mauricio Siu
dba39b6364 Merge pull request #1180 from Dokploy/feat/add-error-logs-remote-server
Feat/add error logs remote server
2025-01-23 00:50:35 -06:00
Mauricio Siu
22de0fef49 chore: bump version 2025-01-23 00:44:48 -06:00
Mauricio Siu
03e1c17675 feat: add remote logs error when is not reachable 2025-01-23 00:44:31 -06:00
Mauricio Siu
c94f03804b Merge pull request #1179 from Dokploy/canary
🚀 Release v0.17.7
2025-01-22 23:57:05 -06:00
Mauricio Siu
6edd2a81e5 refactor: lint 2025-01-22 23:45:03 -06:00
Mauricio Siu
fe5b8782e9 chore: bump version 2025-01-22 23:44:43 -06:00
Mauricio Siu
71f28fae70 Merge pull request #1176 from wish-oss/feat/refactor-templates
feat:update templates glance and homarr
2025-01-22 23:43:53 -06:00
Mauricio Siu
c44618aa95 Merge pull request #1169 from SHABIN-K/add-malayalam-language
style(i18n) add malayalamlanguage
2025-01-22 23:39:37 -06:00
Mauricio Siu
c7d86dd430 Merge pull request #1178 from Dokploy/1175-preview-deployment-not-found-correctly
fix: set right branch in preview remote deployments
2025-01-22 23:33:29 -06:00
Mauricio Siu
e50bbd1a6a fix: set right branch in preview remote deployments 2025-01-22 23:33:05 -06:00
vishalkadam47
d5ff91563a fix: docker-compose.yaml to docker-compose.yml 2025-01-23 10:08:50 +05:30
vishalkadam47
210fe0759c feat:update templates glance and homarr 2025-01-23 03:43:04 +05:30
Shabin k
edff66900e add malayalam support 2025-01-22 12:26:05 +05:30
Shabin k
4cf2177928 add malayalam support 2025-01-22 12:23:38 +05:30
Shabin k
4a8306b015 Merge branch 'Dokploy:canary' into add-malayalam-language 2025-01-22 12:22:54 +05:30
Shabin k
f92d6693c3 add malayalam support 2025-01-22 12:22:27 +05:30
Mauricio Siu
0fde5a74cc Merge pull request #1168 from Dokploy/canary
🚀 Release v0.17.6
2025-01-22 00:39:41 -06:00
Mauricio Siu
81248ed03f fix: add continue to process all applications 2025-01-22 00:39:28 -06:00
Mauricio Siu
c7d5900e11 chore: bump version 2025-01-22 00:25:25 -06:00
Mauricio Siu
d0608f43a9 Merge pull request #1166 from rahadi23/bugfix/1165-navigation-items-permissions
fix: filter navigation items based on user's permissions and role
2025-01-22 00:24:55 -06:00
Mauricio Siu
adaf12a9a4 refactor: update 2025-01-22 00:16:00 -06:00
Mauricio Siu
baa2ca20f4 Merge branch 'canary' into bugfix/1165-navigation-items-permissions 2025-01-22 00:15:31 -06:00
Mauricio Siu
537caf02e5 Merge pull request #1167 from Dokploy/fix/creation-users
refactor: make protected instead of admin
2025-01-22 00:14:49 -06:00
Mauricio Siu
02ff507094 refactor: update lint 2025-01-22 00:14:30 -06:00
Mauricio Siu
53df7d969e refactor: make protected instead of admin 2025-01-22 00:13:22 -06:00
Rahadi Jalu
9e6e68558a fix: adjust dialog title based on add/update condition 2025-01-22 11:26:18 +07:00
Rahadi Jalu
a2e9ea2986 fix: add condition to show create project button 2025-01-22 11:26:18 +07:00
Rahadi Jalu
026e1bece6 fix: filter navigation items based on user's permissions and role 2025-01-22 11:26:18 +07:00
Mauricio Siu
51f6e08e16 Merge pull request #1158 from nktnet1/superset-unofficial-template
feat(template): added apache superset (unofficial)
2025-01-21 21:59:04 -06:00
Mauricio Siu
c0f8218ad9 Merge pull request #1161 from nktnet1/volume-file-mount-content-line-clamp
fix(ui): volume file mount content, line clamp and preserve whitespace
2025-01-21 21:51:07 -06:00
Mauricio Siu
35dd6bff7a Merge pull request #1160 from nktnet1/fix-invisible-mount-path
fix(ui): volume mountPath undefined for file mount - meant to display filePath instead?
2025-01-21 21:50:33 -06:00
Mauricio Siu
8dad8fd008 Merge pull request #1162 from mikield/add-ukrainian-language
style(i18n) add ukrainian language
2025-01-21 21:31:33 -06:00
Tam Nguyen
52dbc0d8f1 fix(template): superset healthchecks 2025-01-22 09:14:21 +11:00
Vladyslav G
692f883064 style(i18n) add ukrainian language 2025-01-21 16:21:29 +01:00
Khiet Tam Nguyen
6d90e268f7 fix(ui): volume file mount content, line clamp and preserve whitespace 2025-01-22 01:09:44 +11:00
Khiet Tam Nguyen
1d86f1a0fc fix(template): added analytics tag to superset 2025-01-22 00:05:55 +11:00
Khiet Tam Nguyen
c7338983b8 refactor(ui): clearer ui display condition for volume mount display 2025-01-21 23:45:54 +11:00
Khiet Tam Nguyen
ce06cd42b3 fix(ui): show filePath instead of mountPath for file mounts 2025-01-21 23:41:05 +11:00
Khiet Tam Nguyen
1a44a0ea5a refactor(template): use dokploy mount volume for superset_config.py 2025-01-21 23:14:28 +11:00
Khiet Tam Nguyen
444121f8d8 fix(template): more appropriate tags for superset 2025-01-21 20:40:46 +11:00
Khiet Tam Nguyen
05a75edbec feat(template): added apache superset (unofficial) 2025-01-21 19:03:35 +11:00
Mauricio Siu
c91f5dfc68 Merge pull request #1149 from Dokploy/canary
🚀 Release v0.17.5
2025-01-19 13:27:06 -06:00
Mauricio Siu
f5d81f434c chore: bump package 2025-01-19 13:25:44 -06:00
Mauricio Siu
10353d1f29 Merge pull request #1147 from eltociear/patch-2
chore(logs): update utils.ts
2025-01-19 13:24:54 -06:00
Mauricio Siu
6226c75959 Merge pull request #1148 from Dokploy/fix/clean-cache
Fix/clean cache
2025-01-19 13:24:37 -06:00
Mauricio Siu
42c9cd5901 chore: bump package 2025-01-19 13:24:22 -06:00
Mauricio Siu
49edcdb99e fix: clean cache at the start of deployments 2025-01-19 13:22:23 -06:00
Ikko Eltociear Ashimine
ad71e8b36a chore(logs): update utils.ts
Exemple -> Example
2025-01-20 03:15:02 +09:00
Mauricio Siu
e2275100a9 Merge pull request #1146 from Dokploy/canary
🚀 Release v0.17.4
2025-01-19 11:44:43 -06:00
Mauricio Siu
b166cd5bfa refactor: add settings page to user nav 2025-01-19 11:30:44 -06:00
Mauricio Siu
0045608acc chore: remove release title 2025-01-19 11:22:31 -06:00
Mauricio Siu
b140e81210 chore: update release 2025-01-19 11:20:22 -06:00
Mauricio Siu
9298d6c693 Merge pull request #1144 from Dokploy/canary
🚀 Release v0.17.3
2025-01-19 11:11:36 -06:00
Mauricio Siu
23df3fba85 refactor: regenerate migrations 2025-01-19 11:01:41 -06:00
Mauricio Siu
93c7f1ce76 chore: update 2025-01-19 10:56:43 -06:00
Mauricio Siu
1323394589 chore: remove draft 2025-01-19 10:51:05 -06:00
Mauricio Siu
4f11fc2547 chore: remove spaces 2025-01-19 10:49:08 -06:00
Mauricio Siu
6d052ad455 chore: add quotes 2025-01-19 10:47:04 -06:00
Mauricio Siu
60748da144 chore: update 2025-01-19 10:45:51 -06:00
Mauricio Siu
1956836cde refactor: update 2025-01-19 10:45:12 -06:00
Mauricio Siu
7dca4fe430 refactor: update 2025-01-19 10:43:32 -06:00
Mauricio Siu
84690c5f75 chore: update pr 2025-01-19 10:41:44 -06:00
Mauricio Siu
95b67ef2e9 chore: update 2025-01-19 10:36:47 -06:00
Mauricio Siu
3f8bc47ce5 refactor: update 2025-01-19 10:35:07 -06:00
Mauricio Siu
498678c4ae Revert "refactor: update"
This reverts commit 3d602c232d.
2025-01-19 10:21:30 -06:00
Mauricio Siu
3d602c232d refactor: update 2025-01-19 10:19:59 -06:00
Mauricio Siu
94ffa7d578 chore: update 2025-01-19 10:15:28 -06:00
Mauricio Siu
64fc3c7677 chore: remove pr 2025-01-19 10:14:58 -06:00
Mauricio Siu
f27830daf0 refactor: update version 2025-01-19 10:08:53 -06:00
Mauricio Siu
3ec2e2dd1a Revert "chore: bump version"
This reverts commit 1e006cb094.
2025-01-19 10:06:50 -06:00
Mauricio Siu
1e006cb094 chore: bump version 2025-01-19 10:00:54 -06:00
Mauricio Siu
8aa655af2c chore: add pr 2025-01-19 10:00:09 -06:00
Mauricio Siu
65659e27f1 Merge pull request #1137 from Dokploy/feat/github-runners
Feat/GitHub runners
2025-01-19 09:58:27 -06:00
Mauricio Siu
4b6f9108d4 refactor: update 2025-01-19 02:56:08 -06:00
Mauricio Siu
1e4a41a8e3 chore: replace circle with github actions 2025-01-19 02:55:05 -06:00
Mauricio Siu
539aa7a85b refactor: print version 2025-01-19 02:47:14 -06:00
Mauricio Siu
b6ae502b92 refactor: update 2025-01-19 02:38:38 -06:00
Mauricio Siu
e82db47ec4 refactor: add github docker 2025-01-19 02:33:53 -06:00
Mauricio Siu
f9b4f008c2 Merge pull request #1134 from Dokploy/1031-excessive-unused-docker-cache-generated-by-dokploy-deployments
feat: add cleanup cache on deployments
2025-01-19 02:08:48 -06:00
Mauricio Siu
adb204ec1f refactor: add sidebar persistence 2025-01-19 01:44:42 -06:00
Mauricio Siu
5310a559b0 refactor: improve sidebar 2025-01-19 01:29:29 -06:00
Mauricio Siu
43b7db00f9 refactor: add missing values to test 2025-01-19 01:21:03 -06:00
Mauricio Siu
52c83fd6fc refactor: update text 2025-01-19 01:07:41 -06:00
Mauricio Siu
25a8df567e feat: add cleanup cache on deployments 2025-01-19 00:57:42 -06:00
Mauricio Siu
bda9b05134 refactor: add ts ignore 2025-01-18 23:54:39 -06:00
Mauricio Siu
e7329a727f refactor: use stepper 2025-01-18 23:49:47 -06:00
Mauricio Siu
e68465f9e6 refactor: improve error 2025-01-18 23:07:36 -06:00
Mauricio Siu
5e7d344110 feat: add missing functions 2025-01-18 22:58:27 -06:00
Mauricio Siu
87546b4558 feat: add domains 2025-01-18 22:55:35 -06:00
Mauricio Siu
08ab18eebf refactor: add many AI providers & improve prompt 2025-01-18 21:35:03 -06:00
Mauricio Siu
ad642ab4e0 refactor: update migrations 2025-01-18 18:29:28 -06:00
Mauricio Siu
d5d8064b38 Merge branch 'canary' into kucherenko/canary 2025-01-18 18:29:12 -06:00
Mauricio Siu
089274492d Merge pull request #1125 from SlavenIvanov/feat/add-couch-db-template
feat: added couchdb template
2025-01-18 17:39:12 -06:00
Mauricio Siu
65c0ea829f Merge branch 'canary' into feat/add-couch-db-template 2025-01-18 17:39:02 -06:00
Mauricio Siu
d060eec465 Update apps/dokploy/templates/couchdb/docker-compose.yml 2025-01-18 17:38:33 -06:00
Mauricio Siu
2dca0d343e Merge pull request #1069 from nktnet1/accessed-typo
chore: typo "accesed" changed to "accessed" for TS code
2025-01-18 17:35:04 -06:00
Mauricio Siu
a8f63bb4d3 Merge pull request #1131 from agustints/fix/db-backups-destination-url
fix: Update link text and destination for db backup settings
2025-01-18 17:34:09 -06:00
Mauricio Siu
cecd371988 Merge pull request #1081 from depado/gotify-notifications
feat(notifications): implement gotify provider
2025-01-18 17:33:55 -06:00
Mauricio Siu
6c4d94cb4f Merge pull request #1118 from izayl/feature/ci-skip
feat: add ci skip check
2025-01-18 17:30:41 -06:00
Mauricio Siu
c4e5c818f3 Merge branch 'canary' into gotify-notifications 2025-01-18 17:23:35 -06:00
Mauricio Siu
31a35d91e8 Merge pull request #1088 from shiqocred/canary
Update telegram message notification
2025-01-18 17:22:50 -06:00
Mauricio Siu
74a2f79a36 Merge pull request #1123 from nktnet1/it-tools-template
feat(template): added it-tools
2025-01-18 11:02:42 -06:00
Mauricio Siu
a8f8a727bd Merge pull request #1128 from TheLetslook/patch-1
feat(style): custom scrollbar styling
2025-01-18 11:00:42 -06:00
Mauricio Siu
e8f2ab35c9 Merge pull request #1121 from thebadking/canary
style: fix tablet and mobile (Create from Template)
2025-01-18 10:52:24 -06:00
depado
9806a5d607 feat(notifications): fix gotify style 2025-01-18 14:23:53 +01:00
depado
e25d0c0c68 feat(notifications): implement notifications for gotify 2025-01-18 14:23:27 +01:00
depado
1f8a476264 chore(lint): run biome 2025-01-18 14:23:27 +01:00
depado
cc473b3e87 feat(notifications): implement gotify provider 2025-01-18 14:23:27 +01:00
Agustin Tornielli
10b3543d39 fix: Update link text and destination for db backup settings 2025-01-18 01:19:33 -03:00
thebadking
0893149db0 style: grid fix 2025-01-17 20:45:17 +00:00
Vasiliy
e257f86194 feat(style): custom scrollbar styling 2025-01-17 21:49:44 +03:00
Slaven Ivanov
a9a0b4cb03 feat: added couchdb template 2025-01-17 18:09:02 +02:00
Khiet Tam Nguyen
c5073c9f30 feat(template): added it-tools 2025-01-18 01:02:39 +11:00
João Gabriel
34ab01fcae Merge branch 'canary' into feat/template-evolution-api 2025-01-17 10:38:14 -03:00
João Gabriel
df43f8318a fix: evolution api database provider 2025-01-17 10:37:01 -03:00
izayl
e69c602d1c chore: enhance deployment skip message to include reason for skipping 2025-01-17 15:47:18 +08:00
izayl
0116d995d9 test: extractCommitMessage 2025-01-17 15:32:59 +08:00
Mauricio Siu
ad479c4be1 Merge pull request #1112 from nktnet1/conduwuit-template
feat(template): added conduwuit
2025-01-16 22:24:46 -06:00
Mauricio Siu
f70192a71c refactor: lint 2025-01-16 22:24:31 -06:00
Mauricio Siu
abff70f081 refactor: lint 2025-01-16 22:24:17 -06:00
Mauricio Siu
9f03faaec2 Merge branch 'canary' into conduwuit-template 2025-01-16 22:24:03 -06:00
Mauricio Siu
1d760bd25f Merge pull request #1104 from nktnet1/cloudflared-template
feat(template): added cloudflared
2025-01-16 22:20:59 -06:00
Mauricio Siu
26a67dd175 Merge pull request #1119 from wish-oss/extrernal-link
refactor: update icon handling and restructure sidebar external links
2025-01-16 22:15:57 -06:00
thebadking
013ee89a56 style: fix tablet and mobile (Create from Template) 2025-01-16 21:12:11 +00:00
vishalkadam47
c3d3c7b96a refactor: update icon handling and restructure sidebar external links 2025-01-16 19:31:55 +05:30
izayl
4e724d88aa feat: add ci skip check 2025-01-16 16:26:28 +08:00
Mauricio Siu
351e4b6103 Merge pull request #1115 from TheLetslook/patch-1
fix: db type typo
2025-01-15 23:30:29 -06:00
Vasiliy
5b633ec6c5 fix: db type typo
Postgres -> Mongo
2025-01-14 23:25:22 +03:00
João Gabriel
a46cbf4f2c feat: evolution api template 2025-01-14 08:36:29 -03:00
Andrey Kucherenko
d98fc82fbf fix: code review issues 2025-01-14 08:34:56 +01:00
Khiet Tam Nguyen
ca9552d618 chore: sort conduwuit tags 2025-01-14 17:30:45 +11:00
Khiet Tam Nguyen
23b40c1aa7 feat(template): added conduwuit 2025-01-14 17:21:05 +11:00
Mauricio Siu
5e0b7ba143 Merge pull request #1109 from 190km/fix/sidebar
fix: fixed missing cluster side item
2025-01-13 23:50:02 -06:00
Mauricio Siu
cb1203e302 refactor: exclude cluster from cloud 2025-01-13 23:49:22 -06:00
Mauricio Siu
373c5bc507 Merge pull request #1106 from DJKnaeckebrot/fix/styling-after-sidebar-fixes
fix(style): clean up sidebar related style issue
2025-01-13 23:41:00 -06:00
Mauricio Siu
ee5afa4793 Merge pull request #1110 from szwabodev/fix/wslCheck
fix: isWSL check was not awaited
2025-01-13 22:58:15 -06:00
Mauricio Siu
7b9426586d Merge pull request #1107 from joaotonaco/refactor/improve_sidebar_animation
refactor(sidebar): improve animation
2025-01-13 22:38:41 -06:00
190km
772b24a415 fix: fixed missing cluster side item 2025-01-13 14:12:19 +00:00
UndefinedPony
1922437115 fix: isWSL check was not awaited causing always true 2025-01-13 14:48:13 +01:00
João Gabriel
c5eb8b087d refactor: transition logo size 2025-01-13 09:20:02 -03:00
João Gabriel
94ee5391fb refactor: apply ease-out to sidebar toggle animation 2025-01-13 09:19:32 -03:00
djknaeckebrot
b3ff14f792 style: clean up class names for consistency in dashboard components 2025-01-13 12:09:06 +01:00
djknaeckebrot
b68273c8ca style: adjust grid layout for monitoring card and clean up class names 2025-01-13 12:02:59 +01:00
djknaeckebrot
8b203c48b4 feat: update sidebar with Traefik File System title and add support link 2025-01-13 11:55:58 +01:00
djknaeckebrot
fb33a5b6a5 style: make sure card do use the full width of the div 2025-01-13 11:53:05 +01:00
Khiet Tam Nguyen
b17ab6d8cb feat(template): added cloudflared 2025-01-13 20:02:18 +11:00
Mauricio Siu
30d20bd267 Merge pull request #1101 from Dokploy/canary
v0.17.2
2025-01-13 02:28:37 -06:00
Mauricio Siu
f9b1c2575e refactor: lint 2025-01-13 02:28:00 -06:00
Mauricio Siu
b0b22224c3 revert: add missing installation buttons 2025-01-13 02:27:49 -06:00
shiqocred
2de0e73284 Merge branch 'Dokploy:canary' into canary 2025-01-13 13:31:31 +07:00
shiqocred
537950dd9f Revision notification (#7)
* Update build-success.ts

* Update compose.ts

* Update application.ts

* Update notification.ts

* Update utils.ts

* Update dokploy-restart.ts

* Update docker-cleanup.ts

* Update database-backup.ts

* Update build-success.ts

* Update build-success.ts
2025-01-13 13:13:13 +07:00
Mauricio Siu
f2f3986c56 Merge pull request #1100 from Dokploy/canary
v0.17.1
2025-01-13 00:00:05 -06:00
Mauricio Siu
dd3fccea02 refactor: adjust sizes 2025-01-12 23:59:35 -06:00
Mauricio Siu
5052688aaf Merge pull request #1099 from Dokploy/fix/version
fix: adjust size of cards and add ssh keys
2025-01-12 23:52:58 -06:00
Mauricio Siu
5825b3eae7 Merge pull request #1098 from nktnet1/fix-ssh-keys-create-server
fix: query for ssh keys to show servers, rather than default empty
2025-01-12 23:52:28 -06:00
Mauricio Siu
dbca102178 fix: adjust size of cards and add ssh keys 2025-01-12 23:51:57 -06:00
Tam Nguyen
32a757a247 fix: query for ssh keys to show servers, rather than default empty 2025-01-13 16:44:34 +11:00
Mauricio Siu
8e4d8d68ca Merge pull request #1096 from Dokploy/canary
v0.17.0
2025-01-12 19:07:28 -06:00
Mauricio Siu
48e6c40a38 chore: bump version 2025-01-12 18:29:01 -06:00
Mauricio Siu
0a06c0aa28 refactor: add breadcrumb redis 2025-01-12 15:18:36 -06:00
Mauricio Siu
a965c0e924 fix: add prefix and remove resolution esm flag (#1095)
* fix: add prefix and remove resolution esm flag

* refactor: revert
2025-01-12 15:10:25 -06:00
Khiet Tam Nguyen
ae97595610 feat(template): added Actual Budget, a super fast and privacy-focused app for managing your finances (#1080)
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
2025-01-12 14:46:11 -06:00
João Gabriel
106a660a2b fix: discord decoration tiny adjustment (#1086) 2025-01-12 14:42:39 -06:00
Alexis Loiseau
c25e7c53aa feat(template): added conduit, a matrix homeserver (#1087)
* feat(template): added conduit, a matrix homeserver

* Update apps/dokploy/templates/conduit/index.ts

* Update apps/dokploy/templates/conduit/index.ts

---------

Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
2025-01-12 14:41:50 -06:00
Vishal kadam
c9308aebc2 style: enhance template selection UI and add view modes toggle (#1094)
* feat: enhance template selection UI and add view modes toggle

* fix: show template tags only in detailed view mode

* refactor: set detailed

---------

Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
2025-01-12 14:34:28 -06:00
sao-coding
c0a2d2c399 feat(i18n): add missing keys and improve wording in Traditional Chinese translations (#1091)
* feat(i18n): add missing keys to Traditional Chinese translation

* feat(i18n): add missing keys to Traditional Chinese translation
2025-01-12 14:31:07 -06:00
Mauricio Siu
a104867ed2 Feat/add sidebar (#1084)
* refactor: add sidebar

* chore: add deps

* refactor: update sidebar

* refactor: another layout

* refactor: update variant

* refactor: change layout

* refactor: change variant

* refactor: enhance sidebar navigation with active state management

* feat: add project button to dashboard

* Merge branch 'canary' into feat/add-sidebar

* refactor: add loader

* refactor: update destinations and refactor

* refactor: ui refactor certificates

* refactor: delete unused files

* refactor: remove unused files and duplicate registry

* refactor: update style registry

* refactor: add new design registry

* refactor: enhance git providers

* refactor: remove duplicate files

* refactor: update

* refactor: update users

* refactor: delete unused files

* refactor: update profile

* refactor: apply changes

* refactor: update UI

* refactor: enhance Docker monitoring UI layout

* refactor: add theme toggle and language selection to user navigation (#1083)

* refactor: remove unused files

* feat: add filter to services

* refactor: add active items

* refactor: remove tab prop

* refactor: remove unused files

* refactor: remove duplicated files

* refactor: remove unused files

* refactor: remove duplicate files

* refactor: remove unused files

* refactor: delete unused files

* refactor: remove unsued files

* refactor: delete unused files

* refactor: lint

* refactor: remove unused secuirty

* refactor: delete unused files

* refactor: delete unused files

* remove imports

* refactor: add update button

* refactor: delete unused files

* refactor: remove unused code

* refactor: remove unused files

* refactor: update login page

* refactor: update login UI

* refactor: update ui reset password

* refactor: add justify end

* feat: add suscriptions

* feat: add sheet

* feat: add logs for postgres

* feat: add logs for all databases

* feat: add server logs with drawer logs

* refactor: remove unused files

* refactor: add refetch when closing

* refactor: fix linter

* chore: bump node-20

* revert

* refactor: fix conflicts

* refactor: update

* refactor: add missing deps

* refactor: delete duplicate files

* refactor: delete unsued files

* chore: lint

* refactor: remove unsued file

* refactor: add refetch

* refactor: remove duplicated files

* refactor: delete unused files

* refactor: update setup onboarding

* refactor: add breadcrumb

* refactor: apply updates

* refactor: add faker

* refactor: use 0 in validation

* refactor: show correct state

* refactor: update

---------

Co-authored-by: vishalkadam47 <vishal@jeevops.com>
Co-authored-by: Vishal kadam <107353260+vishalkadam47@users.noreply.github.com>
2025-01-12 14:29:43 -06:00
Tobias Barsnes
87f4c7b71b refactor: better focus-visible a11y (#1017)
* refactor: better focus-visible a11y

* style: fix tree leaf width

* style: input focus ring size

* refactor: focus a11y on project pages

* fix: project-environment import statement

* style: `ring-border` on input

* refactor: use ring border

---------

Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
2025-01-11 17:42:05 -06:00
shiqocred
d2094d6d76 Update notification.ts (#6)
fix router notification
2025-01-12 02:14:09 +07:00
shiqocred
c0b8a411bd Update build-success.ts (#5)
add format
2025-01-12 02:04:10 +07:00
shiqocred
1d8db07fa1 Add inline button telegram (#4)
* Update utils.ts

add type inline button

* Update dokploy-restart.ts

fixing format massage and adding [] for inline button type

* Update docker-cleanup.ts

fixing telegram message

* Update database-backup.ts

fixing telegram message

* Update build-error.ts

fixing message and adding button logs view

* Update build-success.ts

fixing message, adding domains props, adding inline button

* Update compose.ts

adding get domains compose and send to notif

* Update application.ts

adding get domains and send it to notif

* Update build-success.ts

fix space

* Update dokploy-restart.ts

fixing space
2025-01-12 01:20:39 +07:00
shiqocred
dd3618bfd9 Add inline button telegram (#3)
* Update utils.ts

add type inline button

* Update dokploy-restart.ts

fixing format massage and adding [] for inline button type

* Update docker-cleanup.ts

fixing telegram message

* Update database-backup.ts

fixing telegram message

* Update build-error.ts

fixing message and adding button logs view

* Update build-success.ts

fixing message, adding domains props, adding inline button

* Update compose.ts

adding get domains compose and send to notif

* Update application.ts

adding get domains and send it to notif
2025-01-12 00:55:31 +07:00
Khiet Tam Nguyen
9db979e43f fix(ui): full width for body tag (#1078) 2025-01-10 22:02:40 -06:00
shiqocred
553ae70656 feat(i18n): indonesian language (#1082)
* Update languages.ts

* Create common.json

* Create settings.json
2025-01-10 22:01:53 -06:00
Andrey Kucherenko
b58b6636e3 feat: add AI assistant to dokploy 2025-01-10 08:18:43 +01:00
Mauricio Siu
15fd663972 Merge pull request #1066 from szwabodev/fix/localServerTerminal
fix: connection to local server terminal
2025-01-10 00:45:11 -06:00
Mauricio Siu
123605dc0d Merge pull request #1068 from yiiman-dev/canary
Update wordpress version to latest
2025-01-08 22:20:38 -06:00
Mauricio Siu
d3f3265728 Merge pull request #1065 from nktnet1/gotenberg-template
feat(template): added Gotenberg, a Docker-powered stateless API for PDF files
2025-01-08 22:19:10 -06:00
Mauricio Siu
1a956314f8 Update apps/dokploy/templates/gotenberg/docker-compose.yml 2025-01-08 22:17:07 -06:00
Mauricio Siu
15cc8440f2 Merge pull request #1064 from nktnet1/template-generateBase64-import-index.ts
docs(contribution): fix template index.ts
2025-01-08 22:15:21 -06:00
Tam Nguyen
4a9d7225c9 chore: typo "accesed" changed to "accessed" for TS code 2025-01-08 13:44:59 +11:00
Saman Beheshtian (YiiMan)
103654d678 Update wordpress version to latest 2025-01-08 02:07:19 +00:00
Khiet Tam Nguyen
34a375776e docs: added the "tools" tag for gotenberg 2025-01-07 09:23:58 +11:00
Khiet Tam Nguyen
644fb1ef43 fix: switch to using gotenberg "latest" tag 2025-01-07 09:07:38 +11:00
Khiet Tam Nguyen
4e581bae99 fix: updated gotenberg from 8.15.2 -> 8.15.3 2025-01-07 09:03:49 +11:00
UndefinedPony
ee9f4796c3 style: remove spaces from commands 2025-01-06 12:12:23 +01:00
UndefinedPony
41a970c526 feat: add permission grant command when key generation fails 2025-01-06 12:09:54 +01:00
UndefinedPony
76c6d02566 feat: add ssh key comment for auto generated key 2025-01-06 12:09:15 +01:00
UndefinedPony
d0a5427c66 fix: connecting to local server terminal 2025-01-06 11:41:34 +01:00
UndefinedPony
aa3541b67b feat: add utils to get docker host and check if running on WSL 2025-01-06 11:39:19 +01:00
UndefinedPony
c31ed2b2b0 feat: add iproute2 as dependency to dockerfile 2025-01-06 11:38:08 +01:00
Khiet Tam Nguyen
a42b0ba32b docs(template): more concise description for gotenberg 2025-01-06 19:20:40 +11:00
Tam Nguyen
6866da97dd feat(template): added gotenberg, a pdf API service 2025-01-06 15:26:18 +11:00
Tam Nguyen
fdaea01b5b docs(contribution): added missing generateBase64 import for template index.ts 2025-01-06 14:00:43 +11:00
Khiet Tam Nguyen
fa2d81d2e7 docs(contribution): added missing generateBase64 import for template index.ts 2025-01-06 13:50:38 +11:00
Mauricio Siu
332416b7e7 Merge pull request #1054 from kerimovok/canary
feat(i18n): azerbaijani language
2025-01-05 15:34:17 -06:00
Mauricio Siu
7a4ee76eb6 Merge pull request #1039 from CyberHotline/canary
Added GLPI template
2025-01-05 14:50:09 -06:00
Mauricio Siu
0c304bd304 Merge pull request #1053 from SIPC/patch-1
Updated Chinese translation
2025-01-05 14:48:34 -06:00
Orkhan Karimov
8314c1a0a5 fix(indention): tab -> 4 spaces 2025-01-06 00:16:09 +04:00
Mauricio Siu
46a4e31e71 chore: add new sponsors 2025-01-03 16:19:48 -06:00
Mauricio Siu
acd3e0dd7d Merge pull request #1060 from jmsx/canary
fix: Update Vaultwarden version to 1.32.7 [CVE fix]
2025-01-03 14:58:18 -06:00
Mohab Gabber
f4e7a4d79a Merge branch 'canary' into canary 2025-01-03 19:11:33 +02:00
Jose Manuel Gonzalez
c7e5eba086 fix: Update Vaultwarden version to 1.32.7 [CVE fix] 2025-01-03 10:51:42 +01:00
Mauricio Siu
65361d18c2 Merge pull request #1055 from wish-oss/fix/console-error
refactor: remove unnecessary error logging in GPU setup functions
2025-01-02 16:21:04 -06:00
Mohab Gabber
bb5fd9895d fix: update MySQL image reference in docker-compose.yml 2025-01-02 21:28:52 +02:00
vishalkadam47
49a6b72c60 refactor: remove unnecessary error logging in GPU setup functions 2025-01-02 21:01:03 +05:30
Orkhan Karimov
84a88299ea feat(i18n): azerbaijani language 2025-01-02 16:27:57 +04:00
ink
d0fe635620 Update settings.json 2025-01-02 19:43:20 +08:00
Mauricio Siu
41d4ff8489 Merge pull request #1051 from wyattjoh/canary
fix: added unzip to server setup
2025-01-02 01:25:32 -06:00
Mauricio Siu
b9d8a48ae6 Merge pull request #1052 from Dokploy/1050-dokploy-ignore-run-command
refactor: add text for run command
2025-01-01 19:29:48 -06:00
Mauricio Siu
3e8708d2b9 refactor: add text for run command 2025-01-01 19:29:33 -06:00
Mauricio Siu
2b0232a24c Merge pull request #1047 from Pi-Bouf/environment-style-improvement
style: environment style improvement
2025-01-01 19:25:26 -06:00
Mauricio Siu
cbdea7cf48 Merge pull request #1049 from designorant/style/favicon-theme
style: enhance favicon with dark mode support
2025-01-01 19:19:56 -06:00
Mauricio Siu
f042cb720f Merge pull request #1042 from szwabodev/feat/newUpdateModalInNavbar
feat: use check updates modal for update available in navbar
2025-01-01 19:15:12 -06:00
Mauricio Siu
02b977bfc4 Merge pull request #1037 from 190km/feat-shows-req-when-is-active
feat: shows req when is active
2025-01-01 19:05:47 -06:00
Mauricio Siu
9f24f24de3 refactor: improve requests 2025-01-01 19:05:06 -06:00
Mauricio Siu
cbc8c24985 Merge pull request #1038 from 190km/swarm-style-improvement
style: swarm style improvement
2025-01-01 19:02:57 -06:00
Mauricio Siu
b17369264c refactor: remove min-h-screen 2025-01-01 19:02:24 -06:00
Mauricio Siu
9c783177c8 Merge pull request #1033 from DJKnaeckebrot/feature/check-mate-template
feat(template): add checkmate template
2025-01-01 18:57:32 -06:00
Mauricio Siu
f2159a3439 Update apps/dokploy/templates/checkmate/docker-compose.yml 2025-01-01 18:57:27 -06:00
Mauricio Siu
eec0a55212 Update apps/dokploy/templates/checkmate/docker-compose.yml 2025-01-01 18:57:23 -06:00
Mauricio Siu
16bab629de Merge pull request #1030 from DJKnaeckebrot/feature/fix-2fa-style
style(2fa): make pin input centered and make boarder more white to make it more visible
2025-01-01 18:54:49 -06:00
Mauricio Siu
592bf9292e Merge pull request #1032 from DJKnaeckebrot/feature/fix-huly-template
fix(huly-template): resolve issue with wrong domain
2025-01-01 18:54:33 -06:00
Mauricio Siu
b93d26f937 refactor: use shadcn ui classes 2025-01-01 18:53:30 -06:00
Mauricio Siu
c0e7f4ad8c Merge pull request #1029 from wish-oss/refactor/port-mapping-ui
refactor: enhance ManageTraefikPorts with ScrollArea for better UI
2025-01-01 18:52:09 -06:00
Mauricio Siu
05cf51bfb3 Merge pull request #1028 from designorant/feat/complete-polish
feat(i18n): add missing keys to Polish translation
2025-01-01 18:48:10 -06:00
Wyatt Johnson
7cf5cb4032 fix: added unzip to server setup
The installation script for rclone requires unzip to be present
in order to install. This adds this dep to the deps installed
as it's not present on Debian.
2025-01-01 16:44:41 -07:00
Michał Ordon
76787b9056 style: enhance favicon with dark mode support 2025-01-01 17:46:39 +00:00
Pierre B
513b17105e style: environment style improvement 2025-01-01 15:47:47 +01:00
UndefinedPony
187f051484 fix: check health endpoint instead of awaiting service restart to fix update success status 2024-12-31 11:20:59 +01:00
UndefinedPony
2be79304fb refactor: allow using already fetched updateData, remove ping icon 2024-12-31 11:19:22 +01:00
UndefinedPony
29a8cb63c0 refactor: pass update data and use updates modal in navbar 2024-12-31 11:13:58 +01:00
UndefinedPony
ed5936ede7 feat: add health endpoint for frontend app 2024-12-31 11:11:33 +01:00
Mohab Gabber
d4f89425db Added GLPI template 2024-12-30 23:45:59 +02:00
190km
a7983f32a6 style: added gap for cards title & gap for tls status & availability 2024-12-30 20:05:44 +01:00
190km
198ace236b feat: shows req when is active 2024-12-30 19:23:31 +01:00
djknaeckebrot
931f3fc28e feat: add checkmate template 2024-12-30 16:08:04 +01:00
DJKnaeckebrot
a4cc3b619a fix: resolve issue with wrong domain 2024-12-30 11:07:28 +01:00
DJKnaeckebrot
cb5077cfcc style(2fa): make pin input centered and make boarder more white to make it more visible 2024-12-30 10:54:47 +01:00
vishalkadam47
9122a1e4b2 refactor: enhance ManageTraefikPorts with ScrollArea for better UI and port management display 2024-12-30 07:32:34 +05:30
Michał Ordon
b2cf442d9b feat(i18n): add missing keys to Polish translation 2024-12-30 01:52:09 +00:00
Mauricio Siu
973b54408e Merge pull request #1027 from Dokploy/canary
v0.16.1
2024-12-29 18:39:17 -06:00
Mauricio Siu
638fbe17a6 refactor: update paths 2024-12-29 18:23:07 -06:00
Mauricio Siu
75e0d0ba78 refactor: add is cloud validation 2024-12-29 18:14:32 -06:00
Mauricio Siu
0f1b911236 chore: bump version 2024-12-29 18:08:20 -06:00
Mauricio Siu
da148a6c50 Merge pull request #959 from szwabodev/feat/localServerTerminal
feat: local server terminal access
2024-12-29 18:06:32 -06:00
Mauricio Siu
c168648cce Merge pull request #1026 from 190km/fix/missing-norwegian-select
fix: missing norwegian lang in select
2024-12-29 17:40:16 -06:00
190km
efd3ad4102 fix: missing norwegian lang in select 2024-12-30 00:30:57 +01:00
Mauricio Siu
a9577395eb Merge pull request #1025 from Dokploy/998-add-unifi-applicaton
feat: add unifi template
2024-12-29 17:19:33 -06:00
Mauricio Siu
1d02d4308f feat: add unifi template 2024-12-29 17:19:17 -06:00
Mauricio Siu
e93e15a9c8 Merge pull request #995 from 190km/refactor-i18n
feat: i18n displays real lang name
2024-12-29 16:14:03 -06:00
Mauricio Siu
511a9beaa5 Merge pull request #1024 from Dokploy/fix/add-fallback-getIp
refactor: add fallback ipv4
2024-12-29 16:13:48 -06:00
Mauricio Siu
ac8c180ba6 refactor: add fallback ipv4 2024-12-29 16:13:06 -06:00
Mauricio Siu
9a2898ba4f Merge pull request #1023 from Dokploy/1008-s3-provider-dropdown-default-value-reset
fix: add provider value in edit destination
2024-12-29 15:56:50 -06:00
Mauricio Siu
2c258c84eb fix: add provider value in edit destination 2024-12-29 15:56:30 -06:00
Mauricio Siu
36511f34f8 Merge branch 'canary' into refactor-i18n 2024-12-29 15:51:17 -06:00
Mauricio Siu
fee5bbc535 Merge pull request #1022 from Dokploy/fix/cron-jobs
fix: add try catch inside of cron jobs
2024-12-29 15:49:28 -06:00
Mauricio Siu
84ad9a5bb3 refactor: revert notifications 2024-12-29 15:45:54 -06:00
Mauricio Siu
69576988eb Merge pull request #1021 from Dokploy/fix/memory-reservation
Fix/memory reservation
2024-12-29 15:36:14 -06:00
Mauricio Siu
d65d050494 fix: add try catch inside of cron jobs 2024-12-29 15:35:15 -06:00
Mauricio Siu
46a5adf793 refactor: remove muted text 2024-12-29 14:17:15 -06:00
Mauricio Siu
5558ee3248 fix: add tooltip and placeholder values 2024-12-29 14:10:41 -06:00
Mauricio Siu
5d8ebd027e fix: parse correctly numbers 2024-12-29 13:53:38 -06:00
Mauricio Siu
9aa49ce9be Merge pull request #1019 from jocubeit/canary
Spelling and grammar corrections
2024-12-29 13:52:31 -06:00
Mauricio Siu
7bcfc17fe9 Merge pull request #1020 from champ3oy/patch-1
convert email to lower case when loging in
2024-12-29 13:34:27 -06:00
cirlorm
5d2d4104f0 convert email to lower case when loging in
I had an issue signing in to my dashboard only to find out it was because the first letter of my email was in caps.
2024-12-29 17:46:44 +00:00
Dom
2af8d6f565 Spelling and grammar corrections 2024-12-29 22:34:57 +10:00
Mauricio Siu
ba45b27608 Merge pull request #1010 from joaotonaco/canary
feat: prevent layout shifting from scrollbar
2024-12-28 19:31:36 -06:00
Mauricio Siu
5aa1c6efb7 Merge pull request #1011 from joaotonaco/fix/inconsistent-service-card-height
fix: inconsistent service card height
2024-12-28 19:30:42 -06:00
Mauricio Siu
e9dad8f9f8 Merge pull request #1016 from 190km/style/swarm
feat: swarm overview style
2024-12-28 19:30:13 -06:00
Mauricio Siu
0c2a382541 Update apps/dokploy/components/dashboard/settings/servers/show-swarm-overview-modal.tsx 2024-12-28 19:29:51 -06:00
190km
81408985d4 feat: swarm overview style 2024-12-29 01:07:47 +01:00
João Gabriel
d45b558251 fix: inconsistent service card height 2024-12-27 11:08:55 -03:00
João Gabriel
a30b1a0cb8 refactor: prevent layout shifting from scrollbar 2024-12-27 10:51:31 -03:00
João Gabriel
c946e3e01b refactor: prevent layout shifting from scrollbar 2024-12-27 10:50:36 -03:00
Mauricio Siu
eb7bae2ef5 Merge pull request #1006 from Dokploy/canary
v0.16.0
2024-12-26 22:52:02 -06:00
Mauricio Siu
4533b193a4 chore: bump version 2024-12-26 22:32:44 -06:00
Mauricio Siu
c22f744e6c Merge pull request #1000 from faytranevozter/feat/simplify-node-logs
Feat: simplify node service log & add badge color on list service/container
2024-12-26 22:23:43 -06:00
Mauricio Siu
d3663eba6b Merge pull request #1005 from Dokploy/fix/swarm-overview
fix: remove unused parsed
2024-12-26 22:18:52 -06:00
Mauricio Siu
f9e4a71144 fix: remove unused parsed 2024-12-26 22:14:18 -06:00
faytranevozter
985b8bc2e0 refactor: extract badgeStateColor function for reuse across log components 2024-12-27 08:48:36 +07:00
Mauricio Siu
87ef889114 Merge pull request #999 from 190km/logs-typo
fix: typo Logssss > Logs
2024-12-26 13:31:57 -06:00
Mauricio Siu
f3494922be Merge pull request #997 from Barsnes/feat/norwegian-lang
feat(i18n): add Norwegian language support
2024-12-26 13:31:21 -06:00
faytranevozter
27252cf58d feat: add badge component to display container state with color coding 2024-12-27 01:44:46 +07:00
faytranevozter
f69fb7684b fix: normalize state string to lowercase and update filter quotes in docker service functions 2024-12-27 01:44:10 +07:00
faytranevozter
20a7995d73 fix: update docker logs command to conditionally include raw flag for swarm 2024-12-27 01:43:52 +07:00
faytranevozter
6df66c3871 fix: correct typo in logs title 2024-12-27 01:34:20 +07:00
usopp
cbfdda1928 fix: typo Logssss > Logs 2024-12-26 17:20:18 +01:00
Tobias Barsnes
766279f265 fix: add norwegian common.json file 2024-12-26 13:30:29 +01:00
Tobias Barsnes
f6e4ae700a feat(i18n): add Norwegian language support 2024-12-26 13:26:16 +01:00
Mauricio Siu
8c8ffe04a7 Merge pull request #926 from thewilloftheshadow/feat/mongo-replica-sets
feat: mongo replica sets
2024-12-25 23:37:29 -06:00
190km
f242f5c65e chore: lint 2024-12-26 01:29:18 +01:00
190km
46348f43f6 chore: lint 2024-12-26 01:26:53 +01:00
190km
c3476a1fdf refactor: refactored i18n to display real lang name 2024-12-26 00:04:50 +01:00
Mauricio Siu
379ea2ac65 Merge pull request #994 from jmsx/canary
feat(i18n): add Spanish language support
2024-12-25 16:34:24 -06:00
Jose Manuel Gonzalez
a172abaee4 feat(i18n): add Spanish language support 2024-12-25 22:44:31 +01:00
Mauricio Siu
a325b293b6 Merge pull request #990 from Dokploy/986-error-to-save-the-deployment
fix: omit macos files and create folders every time
2024-12-25 13:48:48 -06:00
Mauricio Siu
364c2e192e fix: adjust types 2024-12-25 13:45:24 -06:00
Mauricio Siu
d4a3c5cff9 fix: omit macos files and create folders every time 2024-12-25 04:51:49 -06:00
Mauricio Siu
229a9a3a5e Merge pull request #989 from Dokploy/refactor/add-no-trunc
Refactor/add no trunc
2024-12-25 03:54:51 -06:00
Mauricio Siu
5c1993a647 refactor: exclude dokploy services 2024-12-25 03:54:25 -06:00
Mauricio Siu
64a449a09d refactor: add swarm improvements 2024-12-25 03:45:21 -06:00
Mauricio Siu
e65e6d225f refactor: add no trunc 2024-12-25 03:35:21 -06:00
Mauricio Siu
b4fcdc433e feat: add migration 2024-12-25 03:27:46 -06:00
Mauricio Siu
5ce6172187 Merge branch 'canary' into feat/mongo-replica-sets 2024-12-25 03:27:00 -06:00
Mauricio Siu
0affeea5dd remove 2024-12-25 03:26:06 -06:00
Mauricio Siu
8f76d520c8 feat: add replica sets migration 2024-12-25 03:24:18 -06:00
Mauricio Siu
566d9e0bee Merge pull request #931 from faytranevozter/feature/node-cluster-logs
feat: add support for viewing docker logs in swarm mode
2024-12-25 02:52:49 -06:00
Mauricio Siu
da858e215d refactor: add toggle for normal containers & stack 2024-12-25 02:51:44 -06:00
Mauricio Siu
f672c429c4 Merge branch 'canary' into feature/node-cluster-logs 2024-12-25 02:15:14 -06:00
Mauricio Siu
ce34fe3cd8 Merge pull request #985 from Barsnes/chore/autocomplete-off
fix: turn off `autoComplete` for some inputs
2024-12-25 00:48:36 -06:00
Tobias Barsnes
d8dbdb2b9e fix: turn off autoComplete for some inputs 2024-12-25 03:23:02 +01:00
Mauricio Siu
4065ad4428 Update apps/dokploy/components/dashboard/project/add-database.tsx
Co-authored-by: Dominik Koch <dominik@koch-bautechnik.de>
2024-12-24 15:34:09 -06:00
Mauricio Siu
e035062a10 Merge pull request #971 from drudge/cert-enhancements
fix(certificates): ensure certificates are accessible by traefik
2024-12-24 15:33:26 -06:00
Mauricio Siu
36a1daae4b Merge pull request #984 from Dokploy/feat/add-hide-extra-logs
feat: add hide extra logs
2024-12-24 15:13:18 -06:00
Mauricio Siu
830a254837 Merge pull request #979 from drudge/compose-builder-error
fix: show error message when compose builder throws
2024-12-24 15:10:19 -06:00
Mauricio Siu
b8580d69d6 feat: add hide extra logs 2024-12-24 15:09:57 -06:00
Mauricio Siu
e3f1518b0d Merge pull request #977 from drudge/ports-ui
feat(traefik/ports): improved UI
2024-12-24 14:47:58 -06:00
Mauricio Siu
ce19a42aee refactor: use react hook form 2024-12-24 14:47:42 -06:00
Mauricio Siu
28a2ab9aa5 Merge pull request #974 from drudge/preview-deployments
feat(preview-deployments): new UI
2024-12-24 14:31:37 -06:00
Mauricio Siu
0535d780b1 refactor: add missing running state 2024-12-24 14:31:05 -06:00
Mauricio Siu
e1dd666e24 Merge pull request #972 from drudge/traefik-port
fix(setup): use traefik port/version from env
2024-12-24 14:28:10 -06:00
Mauricio Siu
ce71fa4f4d Merge pull request #962 from joaotonaco/feat/discord-emoji-toggle
feat(notifications): discord decoration toggle
2024-12-24 14:13:09 -06:00
Nicholas Penree
364d04f238 fix: show error message when compose builder throws
(cherry picked from commit 3633e3d66ab73a89382d0a2f079af63f57289419)
2024-12-23 22:13:49 -05:00
Nicholas Penree
0db98c0b92 feat(traefik/ports): improved UI 2024-12-23 21:39:16 -05:00
Nicholas Penree
8410d94283 feat(preview-deployments): new UI 2024-12-23 16:55:13 -05:00
Nicholas Penree
56cfd35e7d feat(certificates): clarify you are selecting the cert provider 2024-12-23 12:37:53 -05:00
Nicholas Penree
e7beb5c75b fix(setup): use traefik port/version from env 2024-12-23 10:32:31 -05:00
Nicholas Penree
9c5a61e42f fix(certificates): show proper placeholder for private key format 2024-12-23 09:17:11 -05:00
Nicholas Penree
0ee5a6f13e fix(certificates): ensure certificates are accessible by traefik 2024-12-23 09:16:10 -05:00
João Gabriel
1d35d218ca Merge branch 'canary' into feat/discord-emoji-toggle 2024-12-23 10:08:56 -03:00
Mauricio Siu
96cdffb5b9 Merge pull request #886 from DJKnaeckebrot/feature/delete-docker-volumes
feat: option to delete docker volumes on service deletion
2024-12-23 02:38:28 -06:00
Mauricio Siu
353effd720 refactor: delete log 2024-12-23 02:37:04 -06:00
Mauricio Siu
8bfe1632fa refactor: remove delete volumes 2024-12-23 02:32:43 -06:00
Mauricio Siu
ed543e5397 refactor: lint 2024-12-23 02:28:40 -06:00
djknaeckebrot
c6892ba188 format: fix formatting 2024-12-23 08:39:50 +01:00
djknaeckebrot
fa710d4855 format: fix formatting 2024-12-23 08:39:11 +01:00
djknaeckebrot
375decebb2 chore: remove application delete volume 2024-12-23 08:36:18 +01:00
djknaeckebrot
be2e70a17e chore: only make this apply to compose files 2024-12-23 08:27:45 +01:00
djknaeckebrot
3b4214e040 Merge remote-tracking branch 'origin/feature/delete-docker-volumes' into feature/delete-docker-volumes 2024-12-23 08:13:57 +01:00
djknaeckebrot
43a493bb5a Merge branch 'canary' into feature/delete-docker-volumes 2024-12-23 08:13:12 +01:00
Mauricio Siu
455cae6b8c Merge pull request #938 from 190km/preview-deployment-view
style(preview-deployment): better preview deployment card
2024-12-23 00:40:51 -06:00
Mauricio Siu
869843d9ac Merge pull request #921 from DJKnaeckebrot/feature/swarm-overview
feat: add swarm overview page
2024-12-23 00:09:09 -06:00
Mauricio Siu
d2b662f547 Merge pull request #904 from acgonzales/fix/api-appname
fix: fixed/improved handling of app names in api
2024-12-23 00:08:40 -06:00
Mauricio Siu
31336152ce Merge pull request #968 from drudge/fix-esc-vi
fix: prevent Esc key from closing terminal modals
2024-12-23 00:07:47 -06:00
Mauricio Siu
6afd443257 feat: add swarm overview for servers 2024-12-23 00:03:30 -06:00
Mauricio Siu
1d023ac9f3 Merge pull request #965 from drudge/fancy-ansi
feat(logs): use fancy-ansi for ansi colors
2024-12-22 23:09:02 -06:00
Devin AI
49616e53ea fix: prevent Esc key from closing terminal modals
Co-Authored-By: Nicholas Penree <nick@penree.com>
(cherry picked from commit ee469d5ac3f72cc8e010728cc7c6273c711875b0)
2024-12-22 23:59:57 -05:00
Mauricio Siu
a32e934969 Merge pull request #967 from 190km/white-theme-notifications
style(notifications): fixed white style
2024-12-22 22:59:49 -06:00
190km
eb495b7b99 style: fixed white style 2024-12-23 03:15:11 +01:00
190km
65ddc22010 refactor: removed useless export 2024-12-23 02:41:08 +01:00
190km
7a5b9e3b76 refactor: deleted separate component, and add it to show preview build 2024-12-23 02:34:50 +01:00
Nicholas Penree
5a302d3c47 feat(logs): use fancy-ansi for ansi colors 2024-12-22 15:20:54 -05:00
DJKnaeckebrot
5c5066bc72 chore: remove server from swarms page 2024-12-22 20:07:48 +01:00
UndefinedPony
228d12a61c refactor: code cleanup 2024-12-22 19:01:02 +01:00
UndefinedPony
fd0a9b8b58 feat: add local server config, add local server support in terminal modal, add fixed terminal container height 2024-12-22 18:46:02 +01:00
UndefinedPony
1ea7d2e1bf feat: enable server translations for servers page 2024-12-22 18:44:38 +01:00
UndefinedPony
7e08c8881e refactor: adapt terminal component to pass local server data and add initialized check 2024-12-22 16:37:26 +01:00
UndefinedPony
e68d867d31 refactor: adapt terminal wss to allow local server connection, add status logs 2024-12-22 16:35:28 +01:00
UndefinedPony
a53929a787 feat: add enter terminal option to server dropdown 2024-12-22 16:32:20 +01:00
UndefinedPony
ec8eaf6249 feat: add util to configure and get private ssh key for local ssh connection 2024-12-22 16:31:52 +01:00
UndefinedPony
0d58935ad1 refactor: translations for common terminal stuff 2024-12-22 16:30:53 +01:00
Mauricio Siu
f7c8324c4b Merge pull request #963 from Dokploy/540-need-more-control-over-docker-compose-command-in-deployments
540 need more control over docker compose command in deployments
2024-12-22 01:55:49 -06:00
Mauricio Siu
c0e9670daf refactor: delete log 2024-12-22 01:53:30 -06:00
Mauricio Siu
a710728e77 feat: add support for custom command 2024-12-22 01:51:05 -06:00
João Gabriel
80bd80b786 refactor: make decoration prop optional at discord tester schema 2024-12-22 01:08:34 -03:00
João Gabriel
6e262cde0d fix: update discord notification decoration 2024-12-22 01:07:29 -03:00
João Gabriel
21b2cce7a0 fix: send decoration prop to notification tester 2024-12-22 01:06:47 -03:00
João Gabriel
870e074825 feat: implement decoration to embeds 2024-12-22 00:44:25 -03:00
João Gabriel
055b59e6fa feat: discord decoration switch 2024-12-22 00:42:00 -03:00
João Gabriel
8c06296503 feat: add decoration column to discord notification 2024-12-22 00:39:18 -03:00
190km
29ce8908ee refactor: remove all the props except id, serverid, isloading, and delete function 2024-12-21 23:11:55 +01:00
Mauricio Siu
839e1c0f9f Merge pull request #961 from Dokploy/canary
v0.15.1
2024-12-21 15:42:19 -06:00
Mauricio Siu
54dd531a26 Merge branch 'main' into canary 2024-12-21 15:36:20 -06:00
Mauricio Siu
7ebf5ad0f9 chore: bump version 2024-12-21 15:28:27 -06:00
Mauricio Siu
b85163d935 refactor: add conditional value 2024-12-21 15:10:00 -06:00
Mauricio Siu
a953e59327 Merge pull request #960 from Dokploy/fix/add-latest-cases
refactor: update digest
2024-12-21 15:00:51 -06:00
Mauricio Siu
b2661e4533 refactor: update 2024-12-21 14:58:58 -06:00
Mauricio Siu
883459624e refactor: update digest 2024-12-21 14:54:14 -06:00
Mauricio Siu
6e2b2d564b refactor: add missing additional ports 2024-12-21 14:11:06 -06:00
Mauricio Siu
065963857c Merge pull request #958 from Dokploy/fix/update-fetch
Fix/update fetch
2024-12-21 13:50:13 -06:00
Mauricio Siu
a0c9df4bd4 refactor: add 7 minutes interval 2024-12-21 13:35:17 -06:00
Mauricio Siu
68c8c70260 refactor: iterate pages 2024-12-21 13:34:50 -06:00
Mauricio Siu
a926f28d30 Merge pull request #930 from lost-end-found/additional-ports-management
feat(ports): implement additional ports management
2024-12-21 13:30:32 -06:00
Mauricio Siu
59c0636fb0 refactor: add is cloud to fn 2024-12-21 13:19:30 -06:00
Mauricio Siu
ae159c5678 refactor: add tag to web server update 2024-12-21 13:13:38 -06:00
Mauricio Siu
0abf62dd52 refactor: prevent update appName in services 2024-12-21 13:10:34 -06:00
UndefinedPony
e2b155280a feat: add enter terminal translation 2024-12-21 20:08:08 +01:00
Mauricio Siu
e42e9bec17 refactor: use schema inline 2024-12-21 12:48:32 -06:00
Mauricio Siu
978324e2bf Merge pull request #957 from drudge/check-for-updates
New Updates UI
2024-12-21 12:47:24 -06:00
Nicholas Penree
8f05f06259 Merge remote-tracking branch 'dokploy/canary' into check-for-updates 2024-12-21 13:47:01 -05:00
Mauricio Siu
392be2cfa2 Merge pull request #951 from szwabodev/checkUpdatesTweaks
feat: automatic check for updates
2024-12-21 12:45:39 -06:00
Mauricio Siu
18e89df9a5 Update apps/dokploy/components/layouts/navbar.tsx 2024-12-21 12:45:14 -06:00
UndefinedPony
4d2a9f8aa7 refactor: use dynamic tag for comparing latest tag digest 2024-12-21 13:35:39 -05:00
Nicholas Penree
d08530d451 feat(updates): clean up light mode 2024-12-21 13:02:58 -05:00
UndefinedPony
6c9b12cee9 refactor: use dynamic tag for comparing latest tag digest 2024-12-21 18:33:22 +01:00
Nicholas Penree
a8ff6c7b3f feat(updates): new update UI 2024-12-21 11:24:19 -05:00
UndefinedPony
8699e024ee refactor: add try catch, add default update data 2024-12-21 10:05:31 +01:00
Mauricio Siu
73782ffd26 Merge pull request #954 from Dokploy/915-daily-docker-cleanup-seems-to-be-doing-nothing
fix: add missing notifications in cron jobs
2024-12-21 02:51:52 -06:00
Mauricio Siu
7a8bb8f71d fix: add missing notifications in cron jobs 2024-12-21 02:45:58 -06:00
UndefinedPony
18eae9f7d7 refactor: use service image sha instead of image itself for checking updates 2024-12-21 09:04:25 +01:00
Mauricio Siu
1aae523a0b refactor: add missing verifyToken 2024-12-21 01:53:39 -06:00
UndefinedPony
f40e802331 fix: pull latest release in case of no image when checking update 2024-12-21 08:47:21 +01:00
Mauricio Siu
d979aa17c2 Merge pull request #948 from 190km/notifications-style
style(notifications): better notification item style
2024-12-20 23:34:57 -06:00
Mauricio Siu
e2d20fb0e3 Merge pull request #929 from drudge/certificate-details
feat(certs): show expiration and chain details
2024-12-20 23:23:33 -06:00
Mauricio Siu
62f59c1f9a Merge pull request #941 from mezotv/bump-plausible
feat(plausible): bump to 2.1.4
2024-12-20 23:17:22 -06:00
Mauricio Siu
93e1071057 Merge pull request #949 from 190km/fix-edit-password
fix(settings/profile): edit profile password fixed
2024-12-20 23:17:07 -06:00
Mauricio Siu
788771c5eb refactor: add password in validation 2024-12-20 23:16:38 -06:00
UndefinedPony
ab9aa56c48 refactor: disable automatic updates for cloud version 2024-12-20 18:57:28 +01:00
UndefinedPony
4565b3d7a2 refactor: add latestVersion information to update data 2024-12-20 18:26:54 +01:00
UndefinedPony
c8514e3a1b refactor: remove unused async 2024-12-20 17:32:10 +01:00
UndefinedPony
a06dd17aa1 feat(navbar): add automatic update checking interval, add update available button 2024-12-20 17:30:14 +01:00
UndefinedPony
256534570b refactor: add image tag helper, refactor update check logic, remove try/catch 2024-12-20 17:29:01 +01:00
UndefinedPony
2804748118 refactor: rename action, move pull to updateServer 2024-12-20 17:27:51 +01:00
UndefinedPony
e6bc40e7fe refactor: adapt to navbar version, move confirm action, add reload info 2024-12-20 17:27:14 +01:00
UndefinedPony
196603126b refactor: move check updates function, use new api 2024-12-20 17:26:31 +01:00
UndefinedPony
a5cd8f18cd feat: show auto check update toggle 2024-12-20 17:23:02 +01:00
UndefinedPony
b842887bc3 feat: add toggle for auto updates checking 2024-12-20 16:43:05 +01:00
UndefinedPony
dd64b06340 style: format with biome 2024-12-20 14:09:05 +01:00
UndefinedPony
d9a1976cc0 fix: check updates message fixes 2024-12-20 14:01:55 +01:00
190km
fdfa927532 feat(settings/profile): reset password form after validating password change 2024-12-20 01:00:16 +01:00
190km
bf2551b0f6 fix(settings/profile): fixed password changing 2024-12-20 00:54:32 +01:00
usopp
ed8be62ff3 chore: lint 2024-12-20 00:24:44 +01:00
usopp
77336a21f9 chore: lint 2024-12-20 00:21:51 +01:00
usopp
e05d01788f style(notifications): better notification item style 2024-12-20 00:11:48 +01:00
Dominik Koch
651e81ce6d feat(plausible): bump to 2.1.4 2024-12-19 11:22:58 +01:00
Mauricio Siu
fac29b70a5 Merge pull request #937 from drudge/fix-custom-registry
fix(docker): fix for custom registry login
2024-12-19 02:14:34 -06:00
Mauricio Siu
95eaab43df Merge pull request #936 from drudge/fix-light-term
fix(term): fix light mode foreground color
2024-12-19 02:14:26 -06:00
Mauricio Siu
abdef13b93 refactor: set current color 2024-12-19 02:14:06 -06:00
Mauricio Siu
65f397e1b1 Merge pull request #939 from 190km/2fa-typo-login
fix(2fa-login): typo - Setup -> Login
2024-12-19 02:08:26 -06:00
Mauricio Siu
1ae96297e8 refactor: update lint 2024-12-19 02:07:08 -06:00
Mauricio Siu
c51b502116 refactor: add path join to prevent concatenate double slash and update the getImageName 2024-12-19 02:05:30 -06:00
Mauricio Siu
5a42b78098 Merge pull request #940 from drudge/wrap-secrets
fix(preview-deployments): wrap long envs
2024-12-19 01:19:01 -06:00
Nicholas Penree
b39c0ef915 fix(preview-deployments): wrap long envs 2024-12-18 23:00:50 -05:00
Nicholas Penree
844d582147 fix(docker): fix for custom registry login 2024-12-18 21:58:22 -05:00
190km
0b51088489 fix: typo - Setup -> Login 2024-12-19 02:10:07 +01:00
usopp
9d1cf3736b chore: lint 2024-12-19 01:58:18 +01:00
usopp
3a95474662 chore: lint 2024-12-19 01:44:20 +01:00
190km
3858205e52 style: better preview deployment card 2024-12-18 22:36:57 +01:00
Nicholas Penree
1dece58cff fix(term): fix light mode foreground color
closes #907
2024-12-18 13:56:09 -05:00
Shadow
06b8c82484 feat: add a toggle for replica sets to be used or not 2024-12-18 11:50:30 -06:00
DJKnaeckebrot
8ea453f444 feat: add application handling 2024-12-18 13:01:09 +01:00
djknaeckebrot
63c0912849 xMerge branch 'canary' into feature/delete-docker-volumes 2024-12-18 12:10:04 +01:00
faytranevozter
6211a19805 feat: add support for viewing docker logs in swarm mode 2024-12-18 16:40:33 +07:00
Larry Ioannidis
d22330f983 feat(ports): implement additional ports management 2024-12-18 09:39:20 +00:00
djknaeckebrot
8642d8235e chore: add seperator and make tittles big 2024-12-18 09:14:10 +01:00
djknaeckebrot
b52f57cb0d chore: remove imports 2024-12-18 08:51:49 +01:00
djknaeckebrot
d4d74d3831 refactor: remove not needed import, move to better folder structure 2024-12-18 08:49:02 +01:00
djknaeckebrot
9d497142db feat: add latest cards 2024-12-18 08:43:07 +01:00
Mauricio Siu
852895c382 Merge pull request #912 from drudge/new-ansi-logs
feat(logs): support ansi codes
2024-12-17 23:55:12 -06:00
Mauricio Siu
20d5913820 Merge pull request #910 from drudge/canary
feat(cluster): use code editor for node config
2024-12-17 23:52:25 -06:00
Mauricio Siu
f1b4a73158 Merge pull request #928 from drudge/discord-notif
feat(discord): remove dots
2024-12-17 23:51:01 -06:00
Mauricio Siu
3830f6c4ee Merge pull request #925 from mohabgabber/canary
Added onedev docker compose
2024-12-17 23:50:33 -06:00
Mauricio Siu
5c8eda2405 Update apps/dokploy/templates/onedev/docker-compose.yml 2024-12-17 23:47:48 -06:00
Mauricio Siu
6bf85bcfa3 Merge branch 'canary' into new-ansi-logs 2024-12-17 23:43:18 -06:00
Mauricio Siu
bc03e718bf Merge pull request #911 from 190km/mutlti-select-fiter-logs
feat(logs): multi select fiter logs & hide/show timestamp
2024-12-17 23:42:50 -06:00
Nicholas Penree
a941efb1ff feat(certs): show expiration and chain details 2024-12-17 23:17:29 -05:00
Nicholas Penree
fe2de6b899 feat(discord): remove dots 2024-12-17 22:03:58 -05:00
djknaeckebrot
752c9f2818 style: remove bg and border 2024-12-17 21:35:32 +01:00
djknaeckebrot
577b126e66 feat: make bg transparent 2024-12-17 21:19:38 +01:00
djknaeckebrot
be237ae4cf chore: comment out refresh for now 2024-12-17 21:07:47 +01:00
djknaeckebrot
3080926a50 feat: add new items 2024-12-17 21:07:30 +01:00
djknaeckebrot
e3ee89104b chore: remove tables and add new cards 2024-12-17 20:48:56 +01:00
djknaeckebrot
f98f18b331 feat: add monitoring card 2024-12-17 20:48:35 +01:00
Shadow
8505236263 feat: mongo replica sets 2024-12-17 12:59:18 -06:00
usopp
b3313cf975 style: better white style 2024-12-17 19:16:40 +01:00
Mohab Gabber
4e31d8ac02 Added onedev to templates.ts and onedev's icon 2024-12-17 18:51:38 +02:00
Mohab Gabber
536507377d Added onedev docker compose 2024-12-17 17:23:26 +02:00
djknaeckebrot
763219e859 refactor: streamline imports and improve code formatting in ShowSwarmNodes component 2024-12-17 12:12:48 +01:00
djknaeckebrot
3fc5bfc5c5 feat: implement fetching of Docker service applications and their details 2024-12-17 12:11:43 +01:00
djknaeckebrot
813da8f811 refactor: clean up code formatting and improve readability in swarm dashboard 2024-12-17 12:06:08 +01:00
djknaeckebrot
5716954665 feat: add components for displaying swarm node details and applications 2024-12-17 12:05:39 +01:00
djknaeckebrot
04d3eb9ec0 feat: add swarm tab and dashboard page for managing Docker swarm 2024-12-17 12:05:02 +01:00
djknaeckebrot
b592a025e4 feat: add swarm router and related Docker service functions 2024-12-17 12:04:49 +01:00
Nicholas Penree
6db9c99080 feat(logs): add number of lines filter 2024-12-16 20:12:05 -05:00
Nicholas Penree
7e8953ff44 chore: lint 2024-12-16 17:18:11 -05:00
Nicholas Penree
81c85ce155 fix: don't trigger if already selected 2024-12-16 17:12:18 -05:00
Nicholas Penree
bd16e03602 chore: lint 2024-12-16 17:07:31 -05:00
190km
87a5ce2053 fix: timestamp width 2024-12-16 22:55:36 +01:00
Nicholas Penree
ca4820940e feat(logs): filter improvements 2024-12-16 16:55:13 -05:00
190km
71fe6de9cb feat(logs): added show/hide timestamp option 2024-12-16 21:27:32 +01:00
Nicholas Penree
9ff4968e61 feat(logs): support ansi codes 2024-12-16 14:59:35 -05:00
190km
2312ae1c12 fix: fixed lint 2024-12-16 19:56:47 +01:00
190km
b03011a94f feat(logs): replaced the log type component with the new 2024-12-16 19:50:13 +01:00
190km
7577e40b25 feat(logs): added filter log type component 2024-12-16 19:49:09 +01:00
Nicholas Penree
75e34285ef feat(cluster): use code editor for node config 2024-12-16 11:51:17 -05:00
Aaron Gonzales
8e5b0988cf fix: fixed/improved handling of app names in api 2024-12-16 18:13:07 +08:00
Mauricio Siu
038df9c8a7 Merge pull request #897 from Dokploy/canary
v0.15.0
2024-12-15 21:49:15 -06:00
Mauricio Siu
829aa2a63c Merge pull request #901 from Dokploy/feat/security
Feat: add remote server audit
2024-12-15 21:38:37 -06:00
Mauricio Siu
91e90fc379 Merge pull request #900 from drudge/canary
chore: clean up page titles
2024-12-15 21:38:28 -06:00
Mauricio Siu
a1e13ee964 refactor: set audit 2024-12-15 21:37:33 -06:00
Mauricio Siu
341af1bd07 feat: add loader to enhance ux/ui 2024-12-15 21:33:10 -06:00
Nicholas Penree
8a274d10eb chore: clean up page titles 2024-12-15 22:21:10 -05:00
Mauricio Siu
6c586f9606 refactor: add experimental advice 2024-12-15 21:18:23 -06:00
Mauricio Siu
dcb1ea37c3 feat: add server audit 2024-12-15 21:16:14 -06:00
Mauricio Siu
58c2ceb355 feat: add security audit 2024-12-15 21:13:37 -06:00
Mauricio Siu
beae03b53d Merge pull request #898 from drudge/canary
feat(server): monospace script editor
2024-12-15 20:48:38 -06:00
Nicholas Penree
55ec25f5e8 feat(server): edit copy on script editor 2024-12-15 21:24:27 -05:00
Nicholas Penree
9382acb40c feat(server): monospace script editor 2024-12-15 21:16:39 -05:00
Mauricio Siu
c0acdc5df1 refactor: add audit 2024-12-15 19:55:45 -06:00
Mauricio Siu
413536a336 chore: bump version 2024-12-15 19:30:05 -06:00
Mauricio Siu
190f45b3a8 Merge pull request #857 from 190km/new-logs
feat(logs): new railway inspired logs
2024-12-15 19:29:26 -06:00
Mauricio Siu
e6c242a064 refactor: set logs no found when the search is empty 2024-12-15 19:24:50 -06:00
Mauricio Siu
c2fe1eed01 fix: remote server search add long buffering 2024-12-15 19:18:41 -06:00
Mauricio Siu
676082fc5b Merge branch 'canary' into new-logs 2024-12-15 19:01:26 -06:00
Mauricio Siu
b676b1a2de Merge pull request #894 from Dokploy/feat/improve-cloud
refactor: remove unused files
2024-12-15 18:50:46 -06:00
Mauricio Siu
5885712c6a Merge pull request #896 from drudge/copy-delete
feat(delete): add quick copy to resource to clipboard in delete modal
2024-12-15 18:49:51 -06:00
Mauricio Siu
afedeede16 feat: add self remove accounts 2024-12-15 18:45:02 -06:00
Nicholas Penree
5f09018199 feat(delete): add quick copy to resource to clipboard in delete modal 2024-12-15 19:17:46 -05:00
Mauricio Siu
9d37876bc4 feat: add reset onboarding 2024-12-15 15:03:25 -06:00
Mauricio Siu
775107ec24 feat: add dokploy cloud modal 2024-12-15 14:54:38 -06:00
DJKnaeckebrot
7725b3ca36 Merge branch 'Dokploy:canary' into feature/delete-docker-volumes 2024-12-15 19:42:34 +01:00
Mauricio Siu
5f297fd984 feat: add react tour 2024-12-15 02:14:43 -06:00
Mauricio Siu
86aba9ce3e refactor: remove cols 2024-12-14 23:12:21 -06:00
Mauricio Siu
c6e512bec1 refåctor: remove files 2024-12-14 23:06:54 -06:00
Mauricio Siu
fc2b0abdb1 Revert "refactor: remove unsued files"
This reverts commit d20f86ffe1.
2024-12-14 23:05:19 -06:00
Mauricio Siu
d20f86ffe1 refactor: remove unsued files 2024-12-14 22:46:01 -06:00
190km
1157e08aa1 fix: log line came out of the div 2024-12-15 04:21:38 +01:00
Mauricio Siu
e643255a67 Merge pull request #893 from Dokploy/510-fractional-cpu-reservation-and-limit
refactor: remove calculation and pass resources as the docker api expect
2024-12-14 20:40:16 -06:00
Mauricio Siu
7521bc8297 refactor: remove calculation and pass resources as the docker api expect 2024-12-14 20:38:33 -06:00
Mauricio Siu
a63981fa15 Merge pull request #892 from Dokploy/680-redirect-to-the-deployment-logs
feat: redirect to deployments when click on deploy
2024-12-14 20:30:15 -06:00
Mauricio Siu
ea0f797d0f feat: redirect to deployments when click on deploy 2024-12-14 20:28:28 -06:00
Mauricio Siu
181a2ca3c9 Merge pull request #891 from Dokploy/769-elasticsearch-new-db-template
769 elasticsearch new db template
2024-12-14 20:18:49 -06:00
Mauricio Siu
3fe057c7f8 refactor: set version 2024-12-14 20:17:38 -06:00
Mauricio Siu
1e834ed1d9 feat: add elastic search 2024-12-14 20:17:20 -06:00
Mauricio Siu
9f84545fc7 Merge pull request #890 from Dokploy/889-search-for-templates-only-takes-into-account-the-template-title-missing-description-matches
refactor: add description on search
2024-12-14 12:38:05 -06:00
Mauricio Siu
690a2e7467 refactor: add description on search 2024-12-14 12:37:50 -06:00
190km
995d9004f3 style: fix text light theme 2024-12-14 18:23:00 +01:00
djknaeckebrot
ef89d05077 Merge branch 'canary' into feature/delete-docker-volumes 2024-12-14 11:07:08 +01:00
Mauricio Siu
0a3ab7ceac Merge pull request #868 from DJKnaeckebrot/feat/page-titles
feat: add page titles
2024-12-14 02:28:31 -06:00
Mauricio Siu
2fd4d580d5 Merge pull request #880 from DJKnaeckebrot/feature/penpot-template
feat: add penpot template
2024-12-14 02:27:01 -06:00
Mauricio Siu
33e2fa3ce3 Merge branch 'canary' into feature/penpot-template 2024-12-14 02:26:35 -06:00
Mauricio Siu
d320847da4 refactor: remove traefik 2024-12-14 02:25:35 -06:00
Mauricio Siu
9e84bf324e Merge pull request #875 from DJKnaeckebrot/feature/huly-template
feat: add huly template
2024-12-14 01:48:11 -06:00
Mauricio Siu
db469e60ad Merge branch 'canary' into feature/huly-template 2024-12-14 01:37:13 -06:00
Mauricio Siu
0f949b3273 Merge pull request #874 from DJKnaeckebrot/feature/langflow-template
feat: add langflow template
2024-12-14 01:36:23 -06:00
Mauricio Siu
166b65c50e refactor: add env variables 2024-12-14 01:34:05 -06:00
Mauricio Siu
274c65cbcd refactor: add unsend 2024-12-14 01:29:39 -06:00
Mauricio Siu
b538a632d9 Merge branch 'canary' into feature/langflow-template 2024-12-14 01:28:38 -06:00
Mauricio Siu
765c6442cb Merge pull request #869 from DJKnaeckebrot/feature/unsend-dev-template
feat: add unsend template
2024-12-14 01:24:09 -06:00
Mauricio Siu
115ed7e7bf refactor: remove is loading false 2024-12-14 01:17:13 -06:00
190km
0644842305 style: selects width 2024-12-14 03:00:05 +01:00
190km
a9c62b47ef style: selects wididth 2024-12-14 02:58:21 +01:00
190km
138650d561 feat: improved deployment view scroll & style 2024-12-14 01:30:36 +01:00
190km
280be5c9df style: fixed select sizes 2024-12-13 21:13:10 +01:00
190km
7726fa6112 style: make selects responsive 2024-12-13 20:29:26 +01:00
190km
c71d12fd06 feat: added info possibilities & debug more debug possibilities 2024-12-13 20:21:00 +01:00
usopp
3df3d187e4 feat: added deployment loader & lines count 2024-12-13 19:41:02 +01:00
djknaeckebrot
8ce9db8dd6 feat: add penpot template 2024-12-13 19:40:49 +01:00
190km
6773458da3 fix: text came out of the parent div 2024-12-13 18:29:18 +01:00
djknaeckebrot
92c2a83d92 feat: add filter to delete volumes is wanted 2024-12-13 16:34:46 +01:00
djknaeckebrot
3decbd5207 feat: add new form validator 2024-12-13 16:34:29 +01:00
djknaeckebrot
8779c67b71 refactor: change import names 2024-12-13 16:34:12 +01:00
djknaeckebrot
4dc7d9e3c8 feat: add params to mutation 2024-12-13 16:33:54 +01:00
djknaeckebrot
a439286e5f feat: add UI selection 2024-12-13 16:14:52 +01:00
Nicholas Penree
e5d5a98bab feat(logs): preserve whitespace in log line 2024-12-13 09:15:56 -05:00
Nicholas Penree
4311ba93f3 chore: lint/typecheck 2024-12-13 09:00:17 -05:00
djknaeckebrot
e0b596ec76 chore: set static minio version 2024-12-13 14:14:22 +01:00
djknaeckebrot
379ba20930 feat: add huly.io template 2024-12-13 13:55:57 +01:00
djknaeckebrot
236e511adc feat: add langflow template 2024-12-13 12:02:01 +01:00
djknaeckebrot
0b37e171c5 chore: add fixed versions 2024-12-13 09:20:23 +01:00
Mauricio Siu
1df1e7b50b Merge pull request #870 from drudge/setup
fix(setup/validate): arm64 build fixes, improved validation
2024-12-13 01:07:13 -06:00
Mauricio Siu
f15a5bc22d Update apps/dokploy/templates/unsend/index.ts 2024-12-13 00:50:12 -06:00
Mauricio Siu
469871d383 Update apps/dokploy/templates/unsend/docker-compose.yml 2024-12-13 00:50:08 -06:00
Mauricio Siu
e22b6ab9be Update apps/dokploy/templates/unsend/docker-compose.yml 2024-12-13 00:50:04 -06:00
Mauricio Siu
b01b05077d Update apps/dokploy/templates/unsend/docker-compose.yml 2024-12-13 00:49:58 -06:00
Mauricio Siu
22122361ba Update apps/dokploy/templates/unsend/docker-compose.yml 2024-12-13 00:49:54 -06:00
Mauricio Siu
87c1ce68b9 Update apps/dokploy/templates/unsend/docker-compose.yml 2024-12-13 00:49:49 -06:00
Mauricio Siu
4c8619677b Update apps/dokploy/templates/unsend/docker-compose.yml 2024-12-13 00:49:45 -06:00
Mauricio Siu
7f705e31d3 Merge pull request #867 from DJKnaeckebrot/feat/add-vscode-settings-for-same-formatting
format: setup .vscode folder with biome.js for consistent format and spacing
2024-12-13 00:39:18 -06:00
Mauricio Siu
20432ebc3f Merge pull request #856 from DJKnaeckebrot/feat/project-search
feat: add global search command
2024-12-13 00:38:07 -06:00
Nicholas Penree
a51a7a82d2 feat(setup): remove debconf warnings during setup 2024-12-12 23:58:56 -05:00
Nicholas Penree
5ba19686c8 feat(setup): align pass/fail icons at the end 2024-12-12 23:57:54 -05:00
Nicholas Penree
22a2e64563 feat(logs): tooltip improvements (break out, no delay) 2024-12-12 23:12:13 -05:00
190km
37ee89e6ab fix: debug value in select 2024-12-13 00:53:58 +01:00
190km
cb487b8be0 feat: added debug log type & noTimestamp props for TerminalLine 2024-12-12 21:53:10 +01:00
DJKnaeckebrot
26f8719e5f fix: wrong port publishing 2024-12-12 21:41:57 +01:00
190km
3bc1bd5b15 feat: added more log success filter 2024-12-12 21:10:19 +01:00
190km
ee622b1ba0 feat: added new logs styling in deployments views 2024-12-12 21:00:17 +01:00
190km
fe088bad3b feat: add loading spinner when logs are being loaded 2024-12-12 19:54:44 +01:00
usopp
d374f5eedf fix: no time found block same width as the timestamp ones 2024-12-12 19:28:16 +01:00
Nicholas Penree
1c498ee2d2 fix(setup/validate): arm64 build fixes, improved validation 2024-12-12 12:11:30 -05:00
djknaeckebrot
d7e5eb6dfd feat: add unsend template 2024-12-12 16:46:58 +01:00
djknaeckebrot
f71e04eaaa feat: add page titles 2024-12-12 12:56:55 +01:00
djknaeckebrot
fc9808e295 feat: added .vscode folder
Added settings.json to use biome.js formatter by default
Added extentions.json to recommend to install biome.js

This all is to keep spacing the same across different contributors and to make it easier for people to get started contributing
2024-12-12 11:56:57 +01:00
djknaeckebrot
bc2a286e1d fix: close modal after selection of item 2024-12-12 08:48:23 +01:00
djknaeckebrot
6c582eb91d chore: close when project or app is selected
chore: better closing checks
fix: url for projects
2024-12-12 08:43:41 +01:00
djknaeckebrot
e3b2a401a7 fix: resolve issue with same names 2024-12-12 08:39:29 +01:00
djknaeckebrot
6c55143e96 chore: remove debug logging 2024-12-12 08:33:23 +01:00
djknaeckebrot
19a0550b32 style: change status indication 2024-12-12 08:32:18 +01:00
Mauricio Siu
bb31bef8bc Merge pull request #865 from drudge/config-code-editor
feat(docker): use code editor when displaying container config
2024-12-11 23:31:21 -06:00
Mauricio Siu
abc606d8d9 Merge pull request #864 from mezotv/dynamic-timestamp
feat(dynamic timestamp): add dynamic discord timestamps
2024-12-11 23:28:47 -06:00
Mauricio Siu
749dd03fe6 Merge pull request #859 from kawws/feature/github-app
feat: improve github app validation
2024-12-11 23:25:27 -06:00
Mauricio Siu
858d7e5c11 Merge pull request #863 from 190km/italian-lang
feat(i18n): add italian language support
2024-12-11 23:12:31 -06:00
Mauricio Siu
079b7b8e72 Merge branch 'canary' into italian-lang 2024-12-11 23:11:22 -06:00
Nicholas Penree
179f3818f0 feat(docker): use code editor when displaying container config 2024-12-11 22:53:10 -05:00
Nicholas Penree
8546031df0 feat(logs): lint 2024-12-11 19:32:34 -05:00
Nicholas Penree
16ca198eb4 feat(logs): better download file names 2024-12-11 19:31:37 -05:00
Nicholas Penree
9b5b452d90 Merge pull request #2 from drudge/log-test
feat(logs): improvements based on feedback
2024-12-11 19:23:45 -05:00
Nicholas Penree
2fa6f3bfa6 feat(logs): lint 2024-12-11 19:20:30 -05:00
Nicholas Penree
42f3105f69 feat(logs): improvements based on feedback 2024-12-11 19:13:53 -05:00
Dominik Koch
a08ba7e8b5 feat(dynamic timestamp): add dynamic discord timestamps 2024-12-11 21:18:01 +00:00
190km
a51ada4a1e feat(i18n): add italian language support 2024-12-11 20:39:59 +01:00
190km
50b1de9594 feat: added appname as filename when export 2024-12-11 20:26:19 +01:00
190km
cb90281583 feat: added appname as filename when export 2024-12-11 20:25:49 +01:00
usopp
20b253e708 removed useless state 2024-12-11 18:03:28 +01:00
190km
9a51e0a00d show a message about no matches found 2024-12-11 17:58:35 +01:00
190km
49b812e462 Merge pull request #1 from drudge/log-test
feat(logs): improvements to searching
2024-12-11 16:49:05 +01:00
Nicholas Penree
7233667d49 feat(logs): improvements to searching 2024-12-11 10:35:12 -05:00
Nicholas Penree
95cd410825 feat(logs): improvements to searching 2024-12-11 10:29:09 -05:00
Andreassenemyr
5b8ebdaaa4 feat: improve github app validation 2024-12-11 13:31:07 +01:00
djknaeckebrot
343d5ae6a2 feat: add service status 2024-12-11 08:27:18 +01:00
djknaeckebrot
e16ce0c817 refactor: only show Monitoring, Traefik, Docker and Requests when installation is not a cloud installation 2024-12-11 07:36:23 +01:00
Mauricio Siu
3b2440b1db Merge pull request #835 from Dokploy/560-self-hosted-gitlab
560 self hosted gitlab
2024-12-10 22:07:59 -06:00
Mauricio Siu
2f72ccbea7 Merge pull request #855 from hua1995116/fix/memory-bug
fix: error about memoryReservation not set
2024-12-10 21:55:41 -06:00
Mauricio Siu
be47f6d09a Merge pull request #848 from minagishl/feat/i18n-ja
feat(i18n): add japanese language support
2024-12-10 21:54:06 -06:00
Mauricio Siu
9a65bf8e21 chore: remove unused file 2024-12-10 21:53:32 -06:00
Mauricio Siu
15959fa91f fix: add missing migration 2024-12-10 21:52:09 -06:00
Mauricio Siu
f0c14d144c Merge branch 'canary' into 560-self-hosted-gitlab 2024-12-10 21:50:09 -06:00
Mauricio Siu
725b763aa8 Merge pull request #854 from DJKnaeckebrot/560-self-hosted-gitlab
560 self hosted gitlab additions
2024-12-10 21:48:39 -06:00
Mauricio Siu
c0bfd7dde7 Merge pull request #851 from drudge/n8n-template-update
chore: update n8n template to 1.70.3
2024-12-10 21:45:23 -06:00
Mauricio Siu
31ba5a784d Merge pull request #850 from drudge/logto-template
feat: add Logto template
2024-12-10 21:45:09 -06:00
190km
00f9e262a9 feat(logs): new logs style and system 2024-12-11 00:20:22 +01:00
djknaeckebrot
54b6a850b7 refactor: make command globally available 2024-12-10 14:15:39 +01:00
djknaeckebrot
029cbf4498 refactor: change location of search-command 2024-12-10 14:09:04 +01:00
hua1995116
8a1cba470c fix: error about memoryReservation not set 2024-12-10 20:40:26 +08:00
djknaeckebrot
84bb98c7e6 feat: add search command dialog with projects and services 2024-12-10 13:37:57 +01:00
djknaeckebrot
cbf0f37a49 feat: add search command dialog with projects and services 2024-12-10 13:37:46 +01:00
djknaeckebrot
2c22aa3689 chore: remove debug logs 2024-12-10 10:25:48 +01:00
Mauricio Siu
46289305e8 Merge pull request #853 from Dokploy/canary
v0.14.1
2024-12-10 02:51:45 -06:00
Mauricio Siu
0b3e15aabc Merge pull request #852 from Dokploy/fix/nixpacks-version
fix: pin nixpacks version
2024-12-10 02:50:26 -06:00
Mauricio Siu
69a3583717 chore: bump version 2024-12-10 02:39:31 -06:00
Mauricio Siu
bc55fde6d6 fix: pin nixpacks version 2024-12-10 02:38:50 -06:00
djknaeckebrot
1cb1da8097 fix: replace hardcoded gitlab.com with dynamic urls 2024-12-10 09:19:01 +01:00
djknaeckebrot
0698ac8318 chore: remove debug output 2024-12-10 08:54:22 +01:00
djknaeckebrot
7ced6840fa fix: change hardcoded gitlab.com to gitlabUrl 2024-12-10 08:53:53 +01:00
djknaeckebrot
22e6d07f60 fix: hardcoded gitlab.com to gitlabUrl 2024-12-10 08:37:55 +01:00
Nicholas Penree
6a9690fe3c chore: update n8n template to 1.70.3 2024-12-09 22:57:32 -05:00
Nicholas Penree
1c02478688 feat: add Logto template 2024-12-09 22:28:47 -05:00
minagishl
bbe72ad584 feat(i18n): add japanese language support 2024-12-09 15:15:16 +09:00
Mauricio Siu
83b3176f6f Merge pull request #837 from wish-oss/fix/gpu-setup
fix: update GPU setup command to use sudo and add error handling
2024-12-08 22:09:23 -06:00
Mauricio Siu
7ecd1627c8 Merge pull request #845 from Dokploy/canary
v0.14.0
2024-12-08 20:59:38 -06:00
Mauricio Siu
96fbfa7ef5 Merge pull request #847 from Dokploy/feat/improve-server-setup
Feat/improve server setup
2024-12-08 20:06:02 -06:00
Mauricio Siu
6874ede933 refactor: show validate server enabled 2024-12-08 20:05:16 -06:00
Mauricio Siu
012f8ff2f5 feat: add validate server 2024-12-08 20:01:37 -06:00
Mauricio Siu
9a7ed91a55 feat: add validate server 2024-12-08 19:37:11 -06:00
Mauricio Siu
79b733536f Merge branch 'canary' into feat/stack-env-support 2024-12-08 18:35:40 -06:00
Mauricio Siu
13e9a50959 Merge pull request #844 from drudge/canary
docs: Update ryot links
2024-12-08 18:26:34 -06:00
Nicholas Penree
d424ed23f5 docs: Update ryot links 2024-12-08 19:17:32 -05:00
Mauricio Siu
bf9abbc37c chore: bump version 2024-12-08 17:49:23 -06:00
Mauricio Siu
b66e8c8855 Merge pull request #843 from Dokploy/feat/enhancement-script
Feat/enhancement script
2024-12-08 17:41:20 -06:00
Mauricio Siu
ce0e9ccddc refactor: add preview deployments for cloud version 2024-12-08 17:30:32 -06:00
Mauricio Siu
e03aef8e37 refactor: improve script to support more OS 2024-12-08 17:09:28 -06:00
Mauricio Siu
d0be2a2090 Merge branch 'canary' into feat/enhancement-script 2024-12-08 15:03:12 -06:00
Mauricio Siu
30eb1719b0 Merge pull request #840 from drudge/browserless-template
feat: add Browserless template
2024-12-08 01:07:53 -06:00
Mauricio Siu
9e7299517f Merge branch 'canary' into browserless-template 2024-12-08 01:07:46 -06:00
Mauricio Siu
cd061916df Merge pull request #839 from drudge/drawio-template
feat: add draw.io template
2024-12-08 01:02:22 -06:00
Mauricio Siu
6f818a833c Merge branch 'canary' into drawio-template 2024-12-08 01:02:13 -06:00
Mauricio Siu
00764ffd43 Update apps/dokploy/templates/drawio/docker-compose.yml 2024-12-08 01:01:46 -06:00
Mauricio Siu
e2a16a5723 Update apps/dokploy/templates/drawio/docker-compose.yml 2024-12-08 01:01:42 -06:00
Mauricio Siu
73b622eb2f Merge pull request #838 from drudge/kimai-template
feat: add Kimai 2 template
2024-12-08 00:58:40 -06:00
Mauricio Siu
cf3cea6146 Merge pull request #836 from drudge/budibase-template
feat: add Budibase template
2024-12-08 00:55:09 -06:00
Mauricio Siu
b8e41e970d refactor: add password key 2024-12-08 00:54:39 -06:00
Mauricio Siu
60b0ae5053 Merge pull request #798 from Dokploy/379-preview-deployment
feat: add preview deployments #379
2024-12-08 00:16:41 -06:00
Mauricio Siu
ff8263d8f6 refactor: update 2024-12-07 22:52:23 -06:00
Mauricio Siu
f65822ca7e refactor: recreate message when is deleted 2024-12-07 22:48:30 -06:00
Mauricio Siu
3feead31d9 Merge branch 'canary' into 379-preview-deployment 2024-12-07 21:57:19 -06:00
Mauricio Siu
b1fd1fb306 refactor: enable preview deployments if autodeploy is disabled 2024-12-07 21:48:51 -06:00
Mauricio Siu
46cd22038b refactor: clean code 2024-12-07 21:47:16 -06:00
Mauricio Siu
5058d9b47d Merge branch 'canary' into 379-preview-deployment 2024-12-07 21:28:34 -06:00
Mauricio Siu
ddf95d87bd refactor: add multiple OS 2024-12-07 21:20:31 -06:00
Nicholas Penree
28a5be984d feat: add Browserless template 2024-12-07 22:00:12 -05:00
Nicholas Penree
1650f5ca79 feat: add draw.io template 2024-12-07 21:26:36 -05:00
Nicholas Penree
e023cad72d feat: add Kimai 2 template 2024-12-07 20:45:20 -05:00
vishalkadam47
49559ebee6 fix: update GPU setup command to use sudo and add error handling 2024-12-08 06:27:34 +05:30
Nicholas Penree
6cf0ecf016 feat: add Budibase template 2024-12-07 19:47:21 -05:00
Nicholas Penree
1562396339 feat: add Budibase template 2024-12-07 19:46:43 -05:00
Mauricio Siu
f94ee8c299 refactor: update 2024-12-07 16:50:25 -06:00
Mauricio Siu
f47335efe5 refactor: wip 2024-12-07 16:47:39 -06:00
Mauricio Siu
c8b5889414 Merge pull request #833 from drudge/canary
docs: Clarify _HOST suffix in contribution guide
2024-12-07 16:11:56 -06:00
Nicholas Penree
124d81bb1c Update CONTRIBUTING.md 2024-12-07 17:01:32 -05:00
Mauricio Siu
5f987d28c7 Merge pull request #831 from Dokploy/738-code-editor-for-file-mounts
refactor: add code editor in volumes edit
2024-12-07 14:10:03 -06:00
Mauricio Siu
32b19a0fb6 refactor: add code editor in volumes edit 2024-12-07 14:09:31 -06:00
Mauricio Siu
5f71a393be Merge pull request #829 from Dokploy/refactor/enhancement-languages
refactor: improve I18N
2024-12-07 14:02:05 -06:00
Mauricio Siu
f4bd729f65 test: add missing fields 2024-12-07 14:01:48 -06:00
Mauricio Siu
3320e21958 Merge pull request #830 from Dokploy/815-edit-volumes-can-not-get-right-mount-path
fix: show mount path when is not compose
2024-12-07 13:57:21 -06:00
Mauricio Siu
2960d81829 fix: show mount path when is not compose 2024-12-07 13:55:00 -06:00
Mauricio Siu
1c1e52f777 fix: lint 2024-12-07 13:50:38 -06:00
Mauricio Siu
64e6919211 refactor: improve I18N 2024-12-07 13:45:50 -06:00
Mauricio Siu
a53daed434 Merge pull request #814 from yerkow/i18n-kazakh
feat(i18n): add kazakh language support
2024-12-07 13:29:09 -06:00
Mauricio Siu
791c8afab7 Merge pull request #828 from Dokploy/feat/custom-heroku-version
Feat/custom heroku version
2024-12-07 13:28:58 -06:00
Mauricio Siu
4c45be1447 feat: add heroku version field 2024-12-07 13:27:54 -06:00
idicesystem
1056810170 Add support for configurable Heroku stack version
Added a new environment variable HEROKU_STACK_VERSION that can be used to specify the desired Heroku stack version.
Updated the buildHeroku and getHerokuCommand functions to use the specified stack version, or default to 24 if the environment variable is not set.
Provided information about the available Heroku stack versions and their support details, as per the documentation from the Heroku DevCenter.
https://devcenter.heroku.com/articles/stack#stack-support-details
2024-12-07 13:26:07 -06:00
Mauricio Siu
b3ca81d2e8 Merge branch 'canary' into i18n-kazakh 2024-12-07 13:13:30 -06:00
Mauricio Siu
9d170e5f46 Merge pull request #820 from 190km/prevent-when-closing-terminal
feat: add prevent dialog when leaving a terminal
2024-12-07 13:08:56 -06:00
Mauricio Siu
3d0b6eb368 Merge pull request #823 from mafrasil/add-trigger-dev-template
feat: add trigger.dev template
2024-12-07 13:06:45 -06:00
Mauricio Siu
5db407b674 Update apps/dokploy/templates/triggerdotdev/index.ts 2024-12-07 13:05:00 -06:00
Mauricio Siu
556a847054 Apply suggestions from code review 2024-12-07 13:04:15 -06:00
mafrasil
4c34643287 tweak env 2024-12-06 20:38:02 +04:00
mafrasil
5e590c1ce8 add extra env 2024-12-06 20:35:34 +04:00
mafrasil
2f15f34a19 rename as triggerdotdev 2024-12-06 18:22:04 +04:00
mafrasil
7f53e9cf07 add trigger template 2024-12-06 17:48:21 +04:00
Mauricio Siu
48e3d48ab4 Merge pull request #817 from pedroramon/i18n-ptbr
feat(i18n): add portuguese language support
2024-12-05 21:36:54 -06:00
190km
b9faf4bd1a feat: add prevent dialog when leaving a terminal 2024-12-05 23:39:03 +01:00
yerkow
27f43e774a fix: kz label 2024-12-05 10:39:10 +05:00
yerkow
c9d3616088 feat(i18n): add kazakh language support 2024-12-05 10:17:54 +05:00
Mauricio Siu
7fe8cd03bf Merge pull request #808 from DanielGietmann/umami-patch-1
Feat<templates>:Updated Umami to v2.14.0
2024-12-04 21:48:33 -06:00
Mauricio Siu
38e5d244fe Merge pull request #810 from ShahriarKh/canary
fix: small typo
2024-12-04 21:48:26 -06:00
Shahriar
14573f90f7 fix: small typo 2024-12-04 16:21:07 +03:30
Pedro Ramon
cbbbe44802 feat(i18n): add portuguese language support 2024-12-04 07:39:36 -03:00
Daniel Gietmann
00c7ae3f40 Updated Umami to v2.14.0 2024-12-03 20:48:46 +01:00
Mauricio Siu
f10eae40c7 Merge pull request #793 from 190km/discord-notifications
style: improved discord webhooks notifications style
2024-12-02 22:01:59 -06:00
Mauricio Siu
df63182f39 Merge pull request #801 from 190km/start-stop-compose-button
fix/feat: fixed stop compose & added start compose
2024-12-02 21:50:51 -06:00
Mauricio Siu
626bf7c41b Merge pull request #802 from 190km/autodeploy-switch
style: added autodeploy switch
2024-12-02 21:37:38 -06:00
Mauricio Siu
75abc4758a Merge pull request #803 from Dokploy/690-dokploy-projects-seem-to-be-linked-together-in-special-cases
fix: allow multiple repositories from same name github #690
2024-12-02 21:36:19 -06:00
Mauricio Siu
c4c4b459cc fix: allow multiple repositories from same name github #690 2024-12-02 21:26:52 -06:00
190km
d8787ec11d style: added autodeploy switch 2024-12-03 03:55:56 +01:00
usopp
40c97b8e9c Update github.ts 2024-12-03 02:42:19 +01:00
190km
fd0a472468 feat/fix: fixed stop button & added start button 2024-12-03 02:20:20 +01:00
Mauricio Siu
db27ec0372 Merge pull request #796 from 190km/request-addr-host
style: add RequestAddr in the requests table
2024-12-01 22:32:39 -06:00
Mauricio Siu
841b264257 feat: add preview deployments #379 2024-12-01 22:29:40 -06:00
usopp
5f6516ab7d Update columns.tsx 2024-12-01 19:42:56 +01:00
190km
2daa159e29 style: add RequestAddr in the requests table 2024-12-01 19:29:16 +01:00
Mauricio Siu
262a2394a9 Merge pull request #794 from myodan/feat/i18n-ko
feat(i18n): add korean language support
2024-12-01 11:25:20 -06:00
Mauricio Siu
e7383e1323 Merge pull request #786 from kerimovok/patch-1
feat<templates>: Updated PocketBase version to 0.23.3
2024-12-01 11:24:50 -06:00
190km
9a8a40b0f8 style: removed useless codeblock fields 2024-12-01 16:37:45 +01:00
Jongho Hong
bcf1ba242e feat(i18n): add korean language support 2024-12-01 16:48:16 +09:00
190km
a235815a13 style: improved discord webhooks notifications 2024-12-01 04:09:19 +01:00
Orkhan Karimov
57594ecb0c feat<templates>: Updated PocketBase version to 0.23.3 2024-11-30 18:01:13 +04:00
Mauricio Siu
572579af91 Merge pull request #785 from Dokploy/canary
v0.13.1
2024-11-28 23:44:33 -06:00
Mauricio Siu
63998f71ec chore: bump version 2024-11-28 23:37:35 -06:00
Mauricio Siu
45fd2d149c Merge pull request #784 from Dokploy/754-dokploy-ui-duplicate-deployments
fix: add missing server flag boolean
2024-11-28 23:35:53 -06:00
Mauricio Siu
9a35c85277 refactor: upgrade biome 2024-11-28 23:29:24 -06:00
Mauricio Siu
0cf21cf3f7 refactor: add missing flag 2024-11-28 23:20:50 -06:00
Mauricio Siu
7400913646 fix: add missing server flag boolean 2024-11-28 23:19:27 -06:00
Mauricio Siu
e78d354d0d fix: add missing server flag boolean 2024-11-28 23:17:21 -06:00
Mauricio Siu
bec3ad6bb5 Merge pull request #783 from Dokploy/725-the-logo-does-not-appear-on-the-notification-email
fix: update img url
2024-11-28 22:57:10 -06:00
Mauricio Siu
5846e429e5 Merge pull request #782 from Dokploy/733-project-env-ux-improvements
refactor: apply suggested changes
2024-11-28 22:56:58 -06:00
Mauricio Siu
0f7652d02c fix: update img url 2024-11-28 22:56:31 -06:00
Mauricio Siu
fef19056fa Merge pull request #781 from Dokploy/remove-husky
Remove husky
2024-11-28 22:49:45 -06:00
Mauricio Siu
b07d9939a6 refactor: apply suggested changes 2024-11-28 22:49:35 -06:00
Mauricio Siu
301e3480e4 test: add missing prop 2024-11-28 22:33:18 -06:00
Mauricio Siu
976ac053f7 fix: linter 2024-11-28 22:32:37 -06:00
Mauricio Siu
f102bae5d5 refactor: remove biome ci 2024-11-28 22:21:31 -06:00
Mauricio Siu
00883dde11 refactor: remove husky 2024-11-28 22:14:01 -06:00
Mauricio Siu
e194f3c454 chore: add lefthook 2024-11-28 22:09:42 -06:00
Mauricio Siu
cdd39670f5 Merge pull request #780 from Dokploy/766-registry-with-ghcrio-failed-error-500
fix: add registry url and use spawnAsync
2024-11-28 22:02:58 -06:00
Mauricio Siu
88f7cf2546 fix: add registry url and use spawnAsync 2024-11-28 21:54:20 -06:00
Mauricio Siu
34ea7ad8c9 Merge pull request #779 from Dokploy/678-requests-made-to-stripe
fix: prevent to load stripe code when is not cloud
2024-11-28 20:57:20 -06:00
Mauricio Siu
081a2d8f69 fix: prevent to load stripe code when is not cloud 2024-11-28 20:56:35 -06:00
Mauricio Siu
a6368ee0b8 Merge pull request #771 from faeztgh/fa-locale
feat: add fa locale
2024-11-28 20:45:40 -06:00
Mauricio Siu
4132f714ae Merge branch 'canary' into fa-locale 2024-11-28 20:45:24 -06:00
Mauricio Siu
333776a5a1 Merge pull request #775 from 190km/i18n-french
feat(i18n): add french language support
2024-11-28 20:41:16 -06:00
Mauricio Siu
5853117e5f Merge branch 'canary' into i18n-french 2024-11-28 20:39:25 -06:00
Mauricio Siu
9e0e3540f5 Merge pull request #776 from 190km/status-tooltip-colors
fix: Add green color for done status tooltip, and lightens destructive colors
2024-11-28 20:37:05 -06:00
Mauricio Siu
7bd6e7fd9a Merge pull request #777 from 190km/delete-app-input-validation
feat: Add an input box to enter the project name for a second confirmation when deleting the application.
2024-11-28 20:36:40 -06:00
Mauricio Siu
95ab6af3ac Merge pull request #773 from edereagzi/feature/add-turkish-localization
feat(i18n): add turkish(tr) localization support
2024-11-28 20:28:03 -06:00
Mauricio Siu
69876029b1 Merge pull request #767 from chuyun/canary
feat: add optional Provider attribute to S3 Destinations
2024-11-28 20:20:57 -06:00
190km
d4fdf881cd feat: validating app name before delete 2024-11-29 02:06:25 +01:00
usopp
3b14ebcaa4 Delete et --soft HEAD~1 2024-11-28 22:14:13 +01:00
190km
22b8fa2c00 fix: added green color for done status tooltip, and lightens destructive color 2024-11-28 22:02:49 +01:00
usopp
714865730f feat(i18n): add french language support 2024-11-28 17:17:00 +01:00
Eray Dereağzı
7469c30992 feat(i18n): add turkish(tr) localization support 2024-11-28 13:38:40 +03:00
Mauricio Siu
b296b6bbf0 Merge pull request #772 from Dokploy/canary
v0.13.0
2024-11-27 23:28:40 -06:00
Mauricio Siu
37fa139a65 refactor: bump to 0.13.0 2024-11-27 23:20:32 -06:00
Mauricio Siu
a1cf597c2b Update package.json 2024-11-27 23:15:19 -06:00
F43Z
c8e9d9d169 feat: add fa locale 2024-11-27 23:40:42 +03:30
Mauricio Siu
d01928a878 refactor: add required 2024-11-27 02:38:54 -06:00
Mauricio Siu
30c19c5698 chore: update templates 2024-11-27 02:37:02 -06:00
Mauricio Siu
01dfa7feaf Merge pull request #768 from DanielGietmann/canary
feat: photoprism template
2024-11-26 22:30:27 -06:00
Mauricio Siu
58e6462ff1 Merge branch 'canary' into canary 2024-11-26 22:30:17 -06:00
Mauricio Siu
d18876d4fb Merge pull request #760 from henriklovhaug/canary
feat: add ontime template
2024-11-26 22:26:04 -06:00
Mauricio Siu
492c912c61 Update apps/dokploy/templates/ontime/docker-compose.yml 2024-11-26 22:25:58 -06:00
Mauricio Siu
6a283c8ee2 Merge pull request #759 from sao-coding/sao-coding/i18n-zh-Hant-TW
feat(i18n): add Traditional Chinese language support
2024-11-26 22:22:13 -06:00
Mauricio Siu
59dfdd6192 Merge pull request #761 from DerKorb/patch-1
fix compose.create not returning result
2024-11-26 22:21:58 -06:00
Mauricio Siu
3c072d7aa8 Merge pull request #746 from DrMxrcy/refactor/multiple-template-names
fix(templates): Multiple Templates Naming Schema
2024-11-26 22:21:47 -06:00
Daniel Gietmann
19d897f3ad added template 2024-11-27 03:44:18 +01:00
chuyun
0477329db7 feat: add optional Provider attribute to S3 Destinations 2024-11-27 02:14:45 +08:00
Mauricio Siu
fabe946526 Merge pull request #765 from airyland/patch-1
fix: improve English grammar in version check notice
2024-11-25 22:52:26 -06:00
Airyland
daa0c9d5d4 fix: improve English grammar in version check notice 2024-11-26 11:57:38 +08:00
ksollner
afe9b3c113 fix compose.create not returning result
when calling the compose create api, a empty result was returned
2024-11-25 14:42:05 +01:00
Henrik Tøn Løvhaug
cbfd09786a feat: add ontime template 2024-11-25 13:07:20 +01:00
sao-coding
54eb5544ac feat(i18n): add Traditional Chinese language support 2024-11-25 02:35:24 +00:00
Mauricio Siu
ac33b6b6a1 Merge pull request #739 from DrMxrcy/template/discourse
feat(add): Discourse
2024-11-22 00:46:14 -06:00
Mauricio Siu
653b1972ca Merge branch 'canary' into template/discourse 2024-11-22 00:46:01 -06:00
Mauricio Siu
7d7eb6a7a2 Merge pull request #743 from jujur10/canary
fix: stirling docker compose
2024-11-22 00:38:19 -06:00
Mauricio Siu
fab7e138b7 Merge pull request #744 from DrMxrcy/template/immich
feat(add): Immich
2024-11-22 00:36:17 -06:00
Mauricio Siu
62b635b2f0 Merge branch 'canary' into template/immich 2024-11-22 00:36:09 -06:00
Mauricio Siu
2dd352ee76 Merge pull request #740 from DrMxrcy/template/twenty
feat(add): Twenty CRM
2024-11-22 00:31:34 -06:00
Mauricio Siu
422b6eea82 Merge branch 'canary' into template/twenty 2024-11-22 00:31:25 -06:00
Mauricio Siu
4850305fb6 Merge pull request #736 from DrMxrcy/feat/YOURLS
feat(add): YOURLS Template
2024-11-22 00:25:02 -06:00
Mauricio Siu
97779f5686 Merge branch 'canary' into feat/YOURLS 2024-11-22 00:24:53 -06:00
DrMxrcy
d4b8985d71 fix(template): Twenty DB 2024-11-21 10:18:38 -05:00
Julien ROIRON
d5686063e0 fix: stirling docker compose 2024-11-21 08:16:09 +01:00
DrMxrcy
62ca8eec53 fix(templates): DiscordTickets Naming 2024-11-21 01:57:27 -05:00
DrMxrcy
204143648d fix(template): Slash Naming Schema 2024-11-21 01:56:22 -05:00
DrMxrcy
be8bd78bcc fix(template): Postiz Template 2024-11-21 01:55:40 -05:00
DrMxrcy
9003e43702 fix(template): InvoiceShelf Naming 2024-11-21 01:54:15 -05:00
DrMxrcy
55ac24ee8e fix(template): Windmill Naming 2024-11-21 01:53:36 -05:00
DrMxrcy
f3be56234b fix(template): Peppermint Naming 2024-11-21 01:52:39 -05:00
DrMxrcy
fd59beaff1 fix(add): ENV 2024-11-21 01:48:49 -05:00
Mauricio Siu
4a70d60aed Merge pull request #735 from mezotv/i18n-german
feat(i18n): add german language support
2024-11-21 00:31:45 -06:00
Mauricio Siu
f7533c88f6 Merge pull request #737 from DrMxrcy/template/ryot
feat(add): Ryot Template
2024-11-21 00:01:50 -06:00
DrMxrcy
ea8cae7815 feat(add): Immich 2024-11-20 22:20:58 -05:00
DrMxrcy
e9956a66da fix(add): template.ts 2024-11-20 11:18:33 -05:00
DrMxrcy
2eeb4017ac feat(add): Twenty CRM 2024-11-20 11:12:31 -05:00
DrMxrcy
28f0c9f162 feat(add): Discourse 2024-11-20 10:43:11 -05:00
DrMxrcy
4967d3bb31 feat(add): Ryot Logo 2024-11-20 10:09:05 -05:00
DrMxrcy
238fa5d02d feat(add): Ryot 2024-11-20 10:08:05 -05:00
DrMxrcy
d1436c992e feat(fix): Define Version 2024-11-20 09:56:40 -05:00
DrMxrcy
0654804821 feat(fix): YOURLS lint 2024-11-20 09:52:35 -05:00
DrMxrcy
c0876044b0 feat(add): YOURLS Template 2024-11-20 09:43:32 -05:00
Dominik Koch
6dff11af22 fix: formatting again 2024-11-20 11:35:57 +00:00
Dominik Koch
6d674a4c6b fix: code format 2024-11-20 11:34:13 +00:00
Dominik Koch
96b2579d69 feat(i18n): add german language support 2024-11-20 11:30:59 +00:00
Mauricio Siu
0708fa05b6 Merge pull request #721 from PaiJi/feat/add-gravatar-support
feat(Profile): support use Gravatar as avatar
2024-11-19 20:29:18 -06:00
Mauricio Siu
597842a99f Merge pull request #724 from iMuFeng/canary
feat: add HeyForm template
2024-11-19 20:26:47 -06:00
Mauricio Siu
105cf1014f Update templates.ts 2024-11-19 20:26:26 -06:00
Mauricio Siu
b93f36ae77 Merge branch 'canary' into canary 2024-11-19 20:24:40 -06:00
Mauricio Siu
bebb4b973c Update apps/dokploy/templates/heyform/index.ts 2024-11-19 20:23:43 -06:00
Mauricio Siu
f790530d4d Update apps/dokploy/templates/heyform/docker-compose.yml 2024-11-19 20:23:39 -06:00
Mauricio Siu
b7374549b8 Merge pull request #731 from DrMxrcy/feat/chatwoot-template
Add: Chatwoot Template
2024-11-19 20:19:11 -06:00
Mauricio Siu
366e881d72 Merge pull request #723 from WoWnik/canary
feat: add russian translation init
2024-11-19 20:12:14 -06:00
WoWnik
c2125d82b1 refactor: remove "ё" letter 2024-11-20 00:00:34 +03:00
DrMxrcy
32b3a76457 fix: Lint Issues 2024-11-19 12:30:36 -05:00
DrMxrcy
5cbdc8fad9 Fix: Linting issues 2024-11-19 11:56:23 -05:00
DrMxrcy
3698e8a827 Fix Chatwoot Schema 2024-11-19 11:19:33 -05:00
WoWnik
a83b62f62b refactor: sort alphabetically 2024-11-19 18:53:52 +03:00
DrMxrcy
ac033cea22 Add: Chatwoot 2024-11-19 03:06:54 -05:00
Mauricio Siu
58814239d9 Merge pull request #722 from henriklovhaug/canary
fix: postiz template pointing to wrong TLD
2024-11-18 08:57:54 -06:00
JiPai
6fc1ce2fbc chore(README): fix broken video thumbnail 2024-11-18 22:25:56 +08:00
mufeng
adde8126ab feat: add HeyForm template 2024-11-18 17:56:02 +08:00
WoWnik
cda66606ec feat: add russian translation init 2024-11-18 11:48:38 +03:00
Henrik Tøn Løvhaug
28f2c1a3c0 fix: template pointing to wrong TLD 2024-11-18 09:03:48 +01:00
JiPai
1c5fe8a283 feat(Profile): support use Gravatar as avatar 2024-11-18 14:09:42 +08:00
Mauricio Siu
da005bc511 chore: add startupfa.me sponsor 2024-11-17 22:25:03 -06:00
Mauricio Siu
5c8721406a Merge pull request #720 from Dokploy/canary
v0.12.0
2024-11-17 22:07:33 -06:00
Mauricio Siu
5db5336ec8 Merge pull request #716 from PaiJi/fix/storage-locale-setting-in-localstorage
fix(i18n): quick fix for locale cookie expire when browser close
2024-11-17 21:41:06 -06:00
Mauricio Siu
a6e7edd4d9 refactor: update share to project 2024-11-17 21:39:02 -06:00
Mauricio Siu
ddbb414225 chore(version): bump version 2024-11-17 18:53:52 -06:00
Mauricio Siu
b73889dd4f Merge pull request #719 from Dokploy/443-implement-coolifyio-like-support-of-envs-and-railwayapp-envs-shared-project-service-env
feat: add shared enviroment variables
2024-11-17 18:40:15 -06:00
Mauricio Siu
ce2dce3401 refactor: update shared to project 2024-11-17 18:33:14 -06:00
Mauricio Siu
173110a415 Merge pull request #714 from kdurek/feat/server-ip
feat: add update server ip
2024-11-17 18:28:29 -06:00
Mauricio Siu
2307346ae3 refactor: add validation to prevent run on cloud 2024-11-17 18:23:27 -06:00
Mauricio Siu
2f175f0e44 refactor: add missing types 2024-11-17 16:18:48 -06:00
Mauricio Siu
7003fe77c9 feat: add shared enviroment variables 2024-11-17 16:13:07 -06:00
Krzysztof Durek
04235fb6c9 Merge branch 'canary' of https://github.com/kdurek/dokploy into feat/server-ip 2024-11-17 22:08:00 +01:00
Krzysztof Durek
f138b0917f feat: add Polish language support to appearance settings and locale configuration 2024-11-17 22:05:52 +01:00
Krzysztof Durek
82367213ea feat: add ability for setting current public IP in server IP update form 2024-11-17 21:58:37 +01:00
Mauricio Siu
3c490ba2d0 Merge pull request #717 from Dokploy/712-redirect-feature-not-working
fix(dokploy): remove $ on presets redirect
2024-11-17 13:47:46 -06:00
Mauricio Siu
4bf5e5ca06 fix(dokploy): remove $ on presets redirect 2024-11-17 13:38:20 -06:00
JiPai
6af5742702 fix(i18n): quick fix for locale cookie expire when browser close 2024-11-18 03:37:26 +08:00
Krzysztof Durek
3015d69adc feat: add polish translation 2024-11-17 18:52:22 +01:00
Mauricio Siu
f7fa8e74af Merge pull request #713 from Dokploy/fix/build-i18n
refactor(dokploy): add missing next-18next to dockerfile
2024-11-17 11:50:12 -06:00
Krzysztof Durek
2835c997e9 feat: update to use multi language 2024-11-17 18:44:05 +01:00
Krzysztof Durek
bd55e3751f Merge branch 'canary' of https://github.com/kdurek/dokploy into feat/server-ip 2024-11-17 18:37:28 +01:00
Krzysztof Durek
74374bd643 feat: add update server ip 2024-11-17 18:18:00 +01:00
Mauricio Siu
4e929c12f2 chore: add missing next config to dockerfile 2024-11-17 11:13:55 -06:00
Mauricio Siu
56ea356723 refactor(dokploy): update i18next build 2024-11-17 11:04:15 -06:00
Mauricio Siu
b1f7d05743 Merge branch 'canary' into fix/build-i18n 2024-11-17 10:53:42 -06:00
Mauricio Siu
58338380ab Merge pull request #691 from DrMxrcy/feat/new-templates
feat: New Templates
2024-11-17 10:51:26 -06:00
Mauricio Siu
2487e3e062 Merge branch 'canary' into feat/new-templates 2024-11-17 10:51:17 -06:00
DrMxrcy
01a882497f Add: Discord Tickets Logo 2024-11-17 11:47:05 -05:00
Mauricio Siu
036313e3c3 chore: update dockerfile 2024-11-17 10:45:05 -06:00
Mauricio Siu
d3304052b0 chore: update dockerfile 2024-11-17 10:40:34 -06:00
Mauricio Siu
9efd2e3d5c chore: change build i18N 2024-11-17 10:26:22 -06:00
Mauricio Siu
1e7d9fc3aa refactor(dokploy): add missing next-18next to dockerfile 2024-11-17 10:22:47 -06:00
DrMxrcy
70ca219c0a Remove Chatwoot 2024-11-17 11:12:45 -05:00
Mauricio Siu
3a07d8de2e Merge pull request #665 from PaiJi/feat/i18n-support
feat(i18n): add i18n support
2024-11-17 09:54:59 -06:00
Mauricio Siu
f4f1fc28a0 Merge pull request #705 from seppulcro/feat/nextcloud-aio-template
feat: add nextcloud-aio template
2024-11-17 09:53:44 -06:00
Mauricio Siu
4c71d3a95f Merge branch 'canary' into feat/nextcloud-aio-template 2024-11-17 09:53:25 -06:00
Mauricio Siu
af84942d22 Merge pull request #590 from wish-oss/feature/gpu-support-blender-template
feat: Implement Remote server and Dokploy Server - GPU Support for Docker Swarm
2024-11-17 09:48:44 -06:00
seppulcro
1aaff0594d feat: add nextcloud-aio template; fix utils usage for envs 2024-11-15 09:06:19 +00:00
seppulcro
69a4a87079 feat: add nextcloud-aio template 2024-11-14 15:06:53 +00:00
vishalkadam47
3eef4aa016 refactor: removed sleep function and updated import 2024-11-14 17:41:32 +05:30
Vishal kadam
2492581bde Merge branch 'Dokploy:canary' into feature/gpu-support-blender-template 2024-11-14 17:38:11 +05:30
Mauricio Siu
be934065d9 Merge pull request #702 from Dokploy/canary
v0.11.2
2024-11-13 23:48:47 -06:00
Mauricio Siu
82fc9897d2 Merge pull request #701 from Dokploy/fix/stripe-payments
fix(stripe): attempt to fix the servers assignation when the user pay
2024-11-13 23:39:49 -06:00
Mauricio Siu
8162dcfb71 Merge pull request #697 from limichange/patch-1
Update plausible docker-compose.yml
2024-11-13 23:34:57 -06:00
Mauricio Siu
b6ab653ef3 chore(version): bump version 2024-11-13 23:30:33 -06:00
Mauricio Siu
17e9a1a497 fix(stripe): attempt to fix the servers assignation when the user pay 2024-11-13 23:29:24 -06:00
limichange
46f7d43595 Update templates.ts 2024-11-14 09:37:20 +08:00
vishalkadam47
6961ee1fc0 refactor: removed console logs and error handling 2024-11-14 04:00:05 +05:30
Vishal kadam
8e532d5a60 Merge branch 'Dokploy:canary' into feature/gpu-support-blender-template 2024-11-13 22:23:37 +05:30
DrMxrcy
fa791706a0 fix: chatwoot DB 2024-11-13 05:49:07 -05:00
DrMxrcy
a5c1f8ef49 fix: AP Env Testing 2024-11-13 05:45:16 -05:00
DrMxrcy
6866c3b116 fix: Envs 2024-11-13 05:40:19 -05:00
DrMxrcy
444302e7b9 fix: chatwoot ENV 2024-11-13 05:33:37 -05:00
DrMxrcy
9b77573269 fix: ENV Testing 2024-11-13 05:32:05 -05:00
DrMxrcy
8157dd9eaa fix: More Config Fixes 2024-11-13 05:21:07 -05:00
DrMxrcy
f1fc3f161a Update index.ts 2024-11-13 05:07:15 -05:00
DrMxrcy
06af2042ee fix: Testing ENV Variables 2024-11-13 05:06:42 -05:00
DrMxrcy
8900e30ae7 fix: Update Chatwoot Compose 2024-11-13 04:49:23 -05:00
DrMxrcy
b5fa411093 Add: Redis Password to AP 2024-11-13 04:48:11 -05:00
DrMxrcy
cab9443d25 fix: Remove LinkStack
Removed due to https://docs.linkstack.org/docker/reverse-proxies/#traefik
2024-11-13 04:44:13 -05:00
DrMxrcy
de315124c3 fix: Multiple Tests 2024-11-13 04:38:27 -05:00
DrMxrcy
7bef3a0c29 fix: ActivePieces ENV 2024-11-13 04:26:21 -05:00
DrMxrcy
82afd486da fix: Chatwoot Setup Service 2024-11-13 04:21:16 -05:00
DrMxrcy
69c9e86a13 fix: Windmill Caddyfile 2024-11-13 04:19:34 -05:00
DrMxrcy
3d59e289be fix: ENV Variables in LinkStack 2024-11-13 04:13:58 -05:00
limichange
59bb59ee24 Update docker-compose.yml 2024-11-13 16:30:11 +08:00
DrMxrcy
8d33ff5fb5 fix: Change Windmill Volume Path 2024-11-13 03:20:20 -05:00
DrMxrcy
46219e1b3d fix: Caddyfile for Windmill 2024-11-13 02:52:22 -05:00
DrMxrcy
3457de4f36 fix: Chatwoot SSL Termination 2024-11-13 02:48:36 -05:00
DrMxrcy
e57efa2e31 fix: AP Ports 2024-11-13 02:47:30 -05:00
JiPai
fb0308fd60 chore(config): add defaultI18nConfig to avoid state issue 2024-11-13 13:54:36 +08:00
JiPai
b376ead7b5 feat(i18n): use flat translation key 2024-11-13 13:54:11 +08:00
Mauricio Siu
d081d477ef Merge pull request #695 from sokhuong-uon/canary
fix(signin-page): fix a broken link to password reset docs
2024-11-12 21:34:06 -06:00
Sokhuong Uon
cf73f1f764 fix(signin): fix broken link to password reset docs 2024-11-13 09:47:22 +07:00
DrMxrcy
deeea11428 Add: Discord Tickets 2024-11-12 16:37:51 -05:00
DrMxrcy
5c17797749 Add: Chatwoot 2024-11-12 16:19:14 -05:00
DrMxrcy
7b06fd47b8 Add: Linkstack 2024-11-12 13:34:37 -05:00
DrMxrcy
faceed12b0 Add: Slash Template 2024-11-12 13:27:08 -05:00
DrMxrcy
814580ff2c Add: Postiz 2024-11-12 13:21:17 -05:00
DrMxrcy
4f092b2fb3 Add: InvoiceShelf 2024-11-12 13:12:31 -05:00
DrMxrcy
0799f8e04c Fix: Windmill Path 2024-11-12 13:05:56 -05:00
DrMxrcy
59c050b519 Add: Activepieces 2024-11-12 13:05:21 -05:00
DrMxrcy
88f969917f Add: Windmill.dev 2024-11-12 12:50:08 -05:00
DrMxrcy
ed470ee827 Add: Peppermint.sh 2024-11-12 12:33:34 -05:00
Mauricio Siu
96584e5b32 Update CONTRIBUTING.md 2024-11-12 09:39:35 -06:00
Mauricio Siu
a7165bef20 chore: set pull 665 2024-11-12 09:38:35 -06:00
Mauricio Siu
b0f5e7dad3 Update CONTRIBUTING.md 2024-11-12 09:29:43 -06:00
JiPai
fa083257f1 Merge branch 'Dokploy:canary' into feat/i18n-support 2024-11-12 23:22:21 +08:00
Mauricio Siu
5cf12e51d1 chore: remove name 2024-11-12 09:02:44 -06:00
Mauricio Siu
b6fd410af2 chore: add tag feature 2024-11-12 09:01:49 -06:00
Vishal kadam
c5c3ca39cd Merge branch 'Dokploy:canary' into feature/gpu-support-blender-template 2024-11-12 13:20:27 +05:30
Mauricio Siu
0e433a3d36 Merge pull request #689 from Dokploy/canary
v0.11.1
2024-11-12 01:04:36 -06:00
Mauricio Siu
b08a2f54f0 Merge pull request #688 from Dokploy/687-all-custom-domains-are-routed-to-one-application
fix(compose): add path prefix inside Host rule
2024-11-12 00:55:06 -06:00
Mauricio Siu
29ffdf2c71 chore(version): bump version 2024-11-12 00:53:34 -06:00
Mauricio Siu
58b185f6dd fix(compose): add path prefix inside Host rule 2024-11-12 00:52:10 -06:00
Vishal kadam
5f6d041248 Merge branch 'Dokploy:canary' into feature/gpu-support-blender-template 2024-11-12 01:01:46 +05:30
vishalkadam47
b817b4b6ee refactor: gpu support and docker setup improvements
- Add gpu status refresh with useEffect
- Update docker-compose.yml configuration
- Modify gpu setup scripts
- Improve gpu support checks
2024-11-11 23:18:24 +05:30
Mauricio Siu
819de5a32e Merge pull request #677 from Dokploy/canary
v0.11.0
2024-11-10 19:28:28 -06:00
xenonwellz
65ee0a3e22 fix(builder): created processed file in the same directory as main stack.yml 2024-11-11 02:22:48 +01:00
Mauricio Siu
e0fe4e4995 chore: bump version 2024-11-10 19:06:45 -06:00
Mauricio Siu
461d30fc26 Merge pull request #669 from mezotv/canary
fix: colorize and update svgs
2024-11-10 18:50:07 -06:00
Mauricio Siu
3fee18d06e Merge branch 'canary' into canary 2024-11-10 18:39:11 -06:00
Mauricio Siu
046923aeb3 Update data-tools-icons.tsx 2024-11-10 18:38:43 -06:00
Mauricio Siu
4646b7d0ec Merge pull request #674 from AprilNEA/672-fix-github-icon
fix: fix github icon path fill color #672
2024-11-10 15:06:08 -06:00
Mauricio Siu
a02d51e504 Merge pull request #675 from mezotv/patch-1
fix: mongodb app naming
2024-11-10 15:05:41 -06:00
Dominik Koch
9728c49edd fix: mongodb naming 2024-11-10 10:56:38 +01:00
AprilNEA
ed5b01c78d styles: fix code format style 2024-11-10 07:51:48 +00:00
AprilNEA
000091cfb9 fix: fix github icon in git providers of setting page 2024-11-10 07:46:45 +00:00
AprilNEA
2774701895 fix: fix github icon path fill color #672 2024-11-10 07:38:16 +00:00
Mauricio Siu
e238dd8510 chore(readme): add dokploy cloud message 2024-11-10 00:28:27 -06:00
xenonwellz
c9b570e469 fix(builder): fixed issues on non-raw compose and external servers 2024-11-09 13:00:15 +01:00
JiPai
c09ff25360 feat(i18n): add translation for server tab 2024-11-09 18:16:06 +08:00
Dominik Koch
56b565b512 fix: add colorized svgs 2024-11-08 20:39:55 +00:00
JiPai
046f0a5c20 feat(i18n): replace translation in Appearance 2024-11-08 12:40:31 +08:00
vishalkadam47
66c4d8f118 refactor: gpu setup and status checks, extract functions, and improve error handling 2024-11-08 03:32:33 +05:30
JiPai
7f0a92f224 feat(i18n): add language select into appearance tab 2024-11-08 02:16:15 +08:00
JiPai
0ca8ee17be feat(i18n): add i18n support 2024-11-08 01:32:46 +08:00
Vishal kadam
c765d7d9eb Merge branch 'Dokploy:canary' into feature/gpu-support-blender-template 2024-11-07 16:36:50 +05:30
Mauricio Siu
237106428b Merge pull request #658 from Dokploy/651-daily-docker-cleanup-button-is-not-in-sync
fix(dokploy): sync the toggle value when enable docker cleanup #651
2024-11-06 22:52:53 -06:00
Mauricio Siu
06e1e1ba76 fix(dokploy): sync the toggle value when enable docker cleanup #651 2024-11-06 22:47:44 -06:00
Mauricio Siu
9eb4c3e77d Merge pull request #657 from Dokploy/feat/add-sponsor
feat(dokploy): add mandaring sponsor
2024-11-06 22:31:21 -06:00
Mauricio Siu
f3d8351208 feat(dokploy): add mandaring sponsor 2024-11-06 22:20:19 -06:00
Vishal kadam
a331020bf8 Merge branch 'Dokploy:canary' into feature/gpu-support-blender-template 2024-11-07 03:09:31 +05:30
vishalkadam47
2e6d9c34c0 feat: add dokploy server gpu setup 2024-11-07 02:52:41 +05:30
Mauricio Siu
1e1409e651 Merge pull request #649 from ignissak/648-compose-services-ignore-domain-path-setting
fix: domain path ignored in compose services
2024-11-06 10:45:23 -06:00
Mauricio Siu
ceaa32fd00 Merge pull request #653 from thomasbrq/fix/update-port-target
fix(dokploy): Wrong input for `target port` when updating ports.
2024-11-05 11:30:20 -06:00
Thomas Brq
f466e697dd fix(dokploy): Wrong input for target port when updating ports. 2024-11-05 17:52:48 +01:00
Jakub Bordáš
476057663b fix: add path prefix only if the path is other than "/" 2024-11-05 11:39:30 +01:00
vishalkadam47
b53da82204 refactor: gpu support component and related api routers; update template environment variables 2024-11-05 12:07:35 +05:30
Vishal kadam
3b5e8921d0 Merge branch 'Dokploy:canary' into feature/gpu-support-blender-template 2024-11-05 12:01:54 +05:30
Jakub Bordáš
1b1d0597fe fix: domain path ignored in compose services 2024-11-04 23:59:20 +01:00
xenonwellz
dafed3096f refactor(builder): removed path log 2024-11-04 22:47:58 +01:00
Mauricio Siu
dfa73a3d7c Merge pull request #613 from SashaGoncharov19/more-templates
More templates
2024-11-04 15:26:12 -06:00
Mauricio Siu
2a24e1d7e8 Update docker-compose.yml 2024-11-04 15:13:40 -06:00
Mauricio Siu
5cd624c7ea Merge pull request #647 from Dokploy/canary
v0.10.10
2024-11-04 10:32:20 -06:00
Mauricio Siu
34b12a0315 chore(version): bump version 2024-11-04 10:20:55 -06:00
Mauricio Siu
e9e6064eb6 Merge pull request #646 from Dokploy/fix/notifications
fix(dokploy): filter notifications by admin
2024-11-04 10:17:17 -06:00
Mauricio Siu
6b7712e35f fix(dokploy): filter notifications by admin 2024-11-04 10:10:52 -06:00
xenonwellz
f772fec407 fix(bundler): docker-compose bug 2024-11-04 11:02:46 +01:00
vishalkadam47
7306d8c513 feat: Add GPU configuration and Update import path for gpu-setup functions 2024-11-03 21:34:03 +05:30
xenonwellz
06cbd1fce1 refactor(bundler): removed redundant code 2024-11-03 15:26:54 +01:00
sashagoncharov19
84aac40410 Merge remote-tracking branch 'origin/more-templates' into more-templates 2024-11-03 14:07:12 +00:00
sashagoncharov19
e40a0fdc50 fix: remove erpnext/mailserver templates 2024-11-03 14:07:00 +00:00
Oleksandr Honcharov
e3677995b9 Merge pull request #1 from mezotv/more-templates
Add missing images
2024-11-03 06:02:54 -08:00
Dominik Koch
0468c25bf8 fix: add missing images 2024-11-03 12:45:22 +01:00
vishalkadam47
bc097c7667 fix: resolve merge conflicts with upstream/canary 2024-11-03 05:16:55 +05:30
Mauricio Siu
89c7e96df0 Merge pull request #643 from Dokploy/canary
v0.10.9
2024-11-02 17:18:34 -06:00
Mauricio Siu
8af5afbb6c chore(version): bump version 2024-11-02 17:11:46 -06:00
vishalkadam47
ed7150fac1 fix: Remove unused imports and interfaces from gpu-setup.ts 2024-11-03 04:16:51 +05:30
Mauricio Siu
ef9f16a3c3 refactor(dokploy): remove registry url 2024-11-02 15:37:49 -06:00
Mauricio Siu
d15b6387a3 refactor(dokploy): remove registryURL from registryTag 2024-11-02 15:28:14 -06:00
Mauricio Siu
2e9e39dcf5 Merge pull request #642 from Dokploy/fix/registry
fix(registry): add image tag resolution correctly when using cluster
2024-11-02 14:33:44 -06:00
Mauricio Siu
d901b02e92 refactor(dokploy): remove log 2024-11-02 14:18:00 -06:00
Mauricio Siu
766a25ccad fix(registry): add image tag resolution correctly when using cluster 2024-11-02 14:17:21 -06:00
xenonwellz
9c355bcfb7 refactor(builder): removed unused and redundant code 2024-11-02 12:42:53 +01:00
vishalkadam47
1b6d8d803b feat: Added GPU support feature for Remote Server with setup and status checks, including API endpoints and utility functions 2024-11-02 15:15:58 +05:30
Mauricio Siu
fae97b1817 Merge pull request #641 from Dokploy/639-cannot-fetch-projects-on-non-main-users-dashboard
refactor(dokploy): add missing project
2024-11-02 01:53:50 -06:00
Mauricio Siu
b2cc5e58a3 refactor(dokploy): add missing project 2024-11-02 01:28:13 -06:00
xenonwellz
06081627e8 refactor: used docker stack config 2024-11-02 00:35:38 +01:00
xenonwellz
dc1e12d6ed feat(compose): added stop functionality for stack 2024-11-01 23:35:42 +01:00
xenonwellz
cb02deb837 fix(builder): fixed docker-compose issue 2024-11-01 23:15:12 +01:00
sashagoncharov19
2f8b89c8a6 fix: nocodb bump 2024-11-01 22:10:49 +00:00
sashagoncharov19
2da650610c Merge branch 'canary' into more-templates
# Conflicts:
#	apps/dokploy/templates/templates.ts
2024-11-01 17:08:43 +00:00
Oleksandr Honcharov
980024c9d2 Merge branch 'Dokploy:canary' into canary 2024-11-01 10:03:05 -07:00
Mauricio Siu
1b56a6b400 refactor(dokploy): revert template content 2024-11-01 10:54:45 -06:00
Mauricio Siu
996d449f0f chore(version): bump version 2024-11-01 09:53:41 -06:00
Mauricio Siu
3b197f3624 fix(dokploy): add missing mount path in update volume 2024-11-01 09:53:21 -06:00
xenonwellz
94786c738b feat: added env support for dokploy 2024-11-01 15:27:00 +01:00
Oleksandr Honcharov
bba7d0c828 Update apps/dokploy/templates/templates.ts
Co-authored-by: Bartek <38581479+Rei-x@users.noreply.github.com>
2024-11-01 05:14:24 +02:00
Oleksandr Honcharov
a04b69d0fd Merge branch 'Dokploy:canary' into canary 2024-10-31 08:19:11 -07:00
Mauricio Siu
0e136ffb8f Merge pull request #632 from Dokploy/canary
v10.7.0
2024-10-30 23:10:48 -06:00
Mauricio Siu
95e53169b1 chore(version): bump version 2024-10-30 23:07:05 -06:00
Mauricio Siu
6b4e52fb37 Merge pull request #631 from Dokploy/canary
v0.10.6
2024-10-30 23:00:45 -06:00
Mauricio Siu
52a19a325e chore(version): bump version 2024-10-30 22:52:31 -06:00
Mauricio Siu
9d891e87e0 Merge pull request #630 from Dokploy/fix/delete-old-deployments
fix(dokploy): remove old deployments
2024-10-30 22:52:08 -06:00
Mauricio Siu
41b274fbb3 refactor(dokploy): set condition to 10 2024-10-30 22:50:12 -06:00
Mauricio Siu
6417e13336 fix(dokploy): remove old deployments 2024-10-30 22:44:01 -06:00
Mauricio Siu
db9136d981 Merge pull request #629 from Dokploy/canary
v0.10.5
2024-10-30 22:01:04 -06:00
Mauricio Siu
c13249e887 Merge pull request #628 from Dokploy/feat/templates-2
Feat/templates 2
2024-10-30 21:54:54 -06:00
Mauricio Siu
e83499f90d Merge branch 'canary' into feat/templates-2 2024-10-30 21:49:48 -06:00
Mauricio Siu
6c92e6efc9 chore(version): bump version 2024-10-30 21:48:19 -06:00
Mauricio Siu
97715a47b3 refactor(dokploy): remove validation 2024-10-30 10:33:46 -06:00
Mauricio Siu
3a9698c3a3 Merge pull request #625 from Dokploy/619-bitbucket-repositories-limited-to-100
fix(dokploy): extract all the repositories bitbucket #619
2024-10-30 01:32:41 -06:00
Mauricio Siu
d47ccae190 fix(dokploy): extract all the repositories bitbucket #619 2024-10-30 01:07:42 -06:00
Mauricio Siu
9295c6545f refactor: update 2024-10-29 02:59:08 -06:00
Mauricio Siu
2a01566c34 refactor(dokploy): update status 2024-10-29 02:39:33 -06:00
Mauricio Siu
b5cf59e743 refactor(dokploy): add log for jobdata 2024-10-29 02:11:51 -06:00
sashagoncharov19
de02a00ce9 fix: coder template 2024-10-28 14:11:39 +00:00
sashagoncharov19
25803f371c feat: coder template 2024-10-28 14:05:26 +00:00
Mauricio Siu
92eaa1a470 Merge pull request #616 from Dokploy/431-isolate-each-app-into-separate-git-repositories
431 isolate each app into separate git repositories
2024-10-27 22:34:41 -06:00
Mauricio Siu
2cbb7e4962 chore: remove unused commands 2024-10-27 22:27:09 -06:00
Mauricio Siu
34d73957f5 chore: remove docs & website workflow 2024-10-27 22:23:16 -06:00
Mauricio Siu
d571c6d9a2 refactor(dokploy): remove docs & website 2024-10-27 22:22:39 -06:00
Mauricio Siu
985c7515b1 refactor(dokploy): add promotion codes 2024-10-27 21:00:37 -06:00
Mauricio Siu
cf666ceb19 feat(dokploy): add lobe chat 2024-10-27 20:48:42 -06:00
sashagoncharov19
a4eb5c07e6 fix: soketi bump 2024-10-28 01:10:06 +00:00
sashagoncharov19
bad11f13f5 fix: gitea bump 2024-10-28 01:05:09 +00:00
sashagoncharov19
02d52d63b9 fix: uptime-kuma bump 2024-10-28 01:04:49 +00:00
sashagoncharov19
2821e43cdd feat: macos template 2024-10-28 00:23:56 +00:00
Mauricio Siu
0e8a3c36f3 feat(dokploy): add stirling 2024-10-27 18:12:23 -06:00
Mauricio Siu
c04d2f508b Merge pull request #612 from xmahbub/ui
style(ui): update template selection view
2024-10-27 17:56:18 -06:00
Mauricio Siu
5c85b82257 refactor(dokploy): revert 2024-10-27 17:35:19 -06:00
sashagoncharov19
adea440931 feat: windows os template 2024-10-27 21:12:04 +00:00
Mauricio Siu
ae5df82887 refactor(dokploy): terminate connections 2024-10-27 15:09:27 -06:00
sashagoncharov19
bbef99c3c2 feat: hi.events template 2024-10-27 20:49:29 +00:00
sashagoncharov19
527c01e7dc feat: vaultwarden template 2024-10-27 20:22:29 +00:00
Mauricio Siu
9872c4fee3 Merge pull request #614 from Dokploy/611-websocket-pending-for-minutes-after-container-starts
fix(dokploy): prevent to have pending connections docker logs
2024-10-27 14:14:30 -06:00
Mauricio Siu
3f40ad3250 fix(dokploy): prevent to have pending connections docker logs 2024-10-27 14:12:45 -06:00
sashagoncharov19
2a5a67e63c feat: docmost template 2024-10-27 20:08:12 +00:00
sashagoncharov19
15051a1bc2 feat: infisical template 2024-10-27 19:48:07 +00:00
MD Mahbub Hasan
7d882b3df5 style(ui): update template selection view 2024-10-28 01:40:26 +06:00
sashagoncharov19
b7d45341bc feat: influxdb template 2024-10-27 18:58:38 +00:00
Mauricio Siu
3808fd83a6 feat(dokploy): add welcome modal to dokploy cloud 2024-10-27 12:50:22 -06:00
Oleksandr Honcharov
1695c7cc81 Merge branch 'Dokploy:canary' into canary 2024-10-27 11:17:56 -07:00
vishalkadam47
3e467959c9 refactor: Update docker-compose.yml to remove port mapping and remove GPU constants from index.ts 2024-10-27 22:00:08 +05:30
Mauricio Siu
707d609b46 Merge pull request #604 from xmahbub/filebrowser
feat: Add new File Browser template to Dokploy
2024-10-27 10:25:25 -06:00
Mauricio Siu
800e5cbf43 Merge branch 'canary' into filebrowser 2024-10-27 10:19:03 -06:00
Mauricio Siu
2107d782f5 Merge pull request #601 from CodeWithKamal/canary
feat: add Tolgee template
2024-10-27 10:18:08 -06:00
MD Mahbub Hasan
80015d8d71 format fix for templates list 2024-10-27 16:29:14 +06:00
MD Mahbub Hasan
2c2d59a87c Format fix 2024-10-27 16:24:42 +06:00
codewithkamal
93844928a8 chore: lint fixes 2024-10-27 14:28:11 +05:30
Mauricio Siu
cb59d121be Merge branch 'canary' into canary 2024-10-27 02:51:47 -06:00
Mauricio Siu
42b3db37ac Merge branch 'canary' into filebrowser 2024-10-27 02:49:02 -06:00
Mauricio Siu
c59975a7ff Merge pull request #602 from xmahbub/portainer
feat: Portainer template added
2024-10-27 02:45:49 -06:00
Kamal Panara
c0df4d330a Merge branch 'Dokploy:canary' into canary 2024-10-27 14:11:56 +05:30
Kamal Panara
b56532f25e Updated port in docker-compose.yml 2024-10-27 14:11:43 +05:30
Mauricio Siu
f34a209c67 Merge pull request #600 from mezotv/switch-env-syntax
Switch to use ! syntax instead of || ""
2024-10-27 02:16:58 -06:00
Mauricio Siu
e24f0a395d Merge pull request #608 from Dokploy/607-dokploy-dashboard-billing-plan-card-font-color-looks-bad-in-light-mode
fix(dokploy): adjust dark and light mode billing
2024-10-27 02:08:51 -06:00
Mauricio Siu
1a6bf06929 Merge pull request #606 from PaiJi/chore/i18n-zh-hans
feat(i18n): add zh-Hans for Pricing and Sponsor
2024-10-27 02:05:24 -06:00
Mauricio Siu
d239ca9b49 fix(dokploy): adjust dark and light mode billing 2024-10-27 01:58:31 -06:00
JiPai
ecc98b0944 feat(i18n): add zh-Hans for Pricing page 2024-10-27 15:38:22 +08:00
JiPai
950ee77a49 feat(i18n): add zh-Hans translation for homepage 2024-10-27 14:32:23 +08:00
Mauricio Siu
38a72806a7 refactor(dokploy): add webhook url for new users 2024-10-26 23:06:00 -06:00
Mauricio Siu
fa70696c71 refactor(website): update const value 2024-10-26 22:46:15 -06:00
Mauricio Siu
b123baafa4 refactor(dokploy): add analytics and pricing section to website 2024-10-26 22:44:21 -06:00
Mauricio Siu
d6fa416a3f chore(ci/cd): set secrets 2024-10-26 20:31:17 -06:00
Mauricio Siu
d2c0f19353 refactor(dokploy): add missing import 2024-10-26 19:56:34 -06:00
Mauricio Siu
3ef6c711e6 chore(ci/cd): set live key 2024-10-26 19:51:23 -06:00
Mauricio Siu
64a4d51f9c Merge pull request #605 from Dokploy/feat/add-email-verification
Feat/add email verification
2024-10-26 19:39:59 -06:00
Mauricio Siu
1a20e4f813 refactor: disable endpoints from cloud in self hosted 2024-10-26 19:35:49 -06:00
Mauricio Siu
250c14738c refactor: remove register when is self hosted 2024-10-26 19:32:29 -06:00
Mauricio Siu
28221a4e7a refactor(dokploy): add umami and update favicon 2024-10-26 19:27:01 -06:00
Mauricio Siu
680c22a41e feat(dokploy): add verification email to cloud version 2024-10-26 18:09:55 -06:00
MD Mahbub Hasan
9145fd3408 Add Filebrowser template 2024-10-27 05:36:55 +06:00
Mauricio Siu
428b9cf0ec Merge pull request #603 from Dokploy/fix/start-schedules-and-server
fix(server): update build paths
2024-10-26 16:24:12 -06:00
Mauricio Siu
78659b2ad9 chore: exclude package.json to format 2024-10-26 16:17:20 -06:00
Mauricio Siu
4b5408c050 chore: lint 2024-10-26 16:04:43 -06:00
Mauricio Siu
5417f6376b chore(server): update switch prod in build command 2024-10-26 15:56:03 -06:00
Mauricio Siu
27c33c7661 fix(server): update build paths 2024-10-26 15:48:30 -06:00
MD Mahbub Hasan
226c43047e Portainer template added 2024-10-27 03:31:03 +06:00
Mauricio Siu
0873618c63 chore(dokploy): set latest tag in cloud 2024-10-26 15:08:49 -06:00
Kamal Panara
2db8057d61 Update index.ts
updated imports
2024-10-27 00:17:10 +05:30
codewithkamal
71a582026e feat: add tolgee template 2024-10-26 23:55:10 +05:30
Oleksandr Honcharov
fbec26fc31 Merge branch 'Dokploy:canary' into canary 2024-10-26 05:42:20 -07:00
Dominik Koch
5f13fb2316 style: lint code 2024-10-26 12:42:23 +02:00
Dominik Koch
bc91bb3132 fix: use ! syntax instead of || "" 2024-10-26 12:28:40 +02:00
Mauricio Siu
e3b20268d5 refactor(dokploy): add ssr for settings to show instantly the sidebar 2024-10-25 23:56:33 -06:00
Mauricio Siu
742e5a244d refactor(dokploy): prevent to create projects when the user doesn't have servers buyed 2024-10-25 23:44:39 -06:00
Mauricio Siu
1f208f5f5b refactor(dokploy): add next public shareable key 2024-10-25 22:53:58 -06:00
Mauricio Siu
a53ade88e7 refactor(dokploy): add SITE_URL 2024-10-25 22:35:35 -06:00
Mauricio Siu
a93f18eb4a Merge pull request #599 from Dokploy/canary
v0.10.4
2024-10-25 21:35:15 -06:00
Mauricio Siu
77e9617770 chore(version): bump version 2024-10-25 21:18:04 -06:00
Mauricio Siu
21e97b0175 Merge pull request #598 from Dokploy/593-use-advertise_addr-from-environment-variable-in-dokpoy-service
feat(dokploy): add env for ADVERTISE_ADDR to installation #593
2024-10-25 20:50:58 -06:00
Mauricio Siu
a6618a14d5 feat(dokploy): add env for ADVERTISE_ADDR to installation #593 2024-10-25 20:48:46 -06:00
Mauricio Siu
59308ab013 Merge pull request #596 from Dokploy/595-dokploy-internal-postgres-database-is-publicly-accessible-by-default
fix(dokploy): remove expose ports in production
2024-10-25 20:19:14 -06:00
Mauricio Siu
e19c8d7a7a fix(dokploy): remove expose ports in production 2024-10-25 17:09:06 -06:00
Mauricio Siu
421c93795b refactor(dokploy): prevent start worker when is cloud 2024-10-25 16:56:32 -06:00
Mauricio Siu
182f908c31 chore: add new sponsor 2024-10-25 10:20:56 -06:00
Mauricio Siu
20616363e9 refactor: update badge server 2024-10-25 00:39:34 -06:00
Mauricio Siu
d85073b26d Merge pull request #591 from Dokploy/feat/remove-build-on-server
Feat/remove build on server
2024-10-25 00:23:56 -06:00
Mauricio Siu
303d1b1b87 chore: add missing command 2024-10-25 00:21:12 -06:00
Mauricio Siu
60d4e1ba63 chore: update dockerfiles 2024-10-25 00:17:10 -06:00
Mauricio Siu
83d52b68f0 refactor: update 2024-10-25 00:05:55 -06:00
Mauricio Siu
af3b1a27f4 refactor: update tests 2024-10-24 23:57:40 -06:00
Mauricio Siu
7f94593c07 chore: revert ci/cd 2024-10-24 23:35:21 -06:00
Mauricio Siu
5df7654873 chore: update imports 2024-10-24 23:33:15 -06:00
Mauricio Siu
054836fd4c chore: update workflows 2024-10-24 23:28:52 -06:00
Mauricio Siu
484ead1f1f chore: update workflows 2024-10-24 23:26:06 -06:00
Mauricio Siu
fbada4c5de chore: set right filter pnpm dockerfile 2024-10-24 23:22:23 -06:00
Mauricio Siu
491113416b chore: remove server build 2024-10-24 23:20:51 -06:00
Mauricio Siu
c42f5cb799 refactor: update 2024-10-24 23:18:23 -06:00
Mauricio Siu
47aa223f87 refactor: remove save on build on next app and integrate turbopack 2024-10-24 23:13:24 -06:00
Vishal kadam
b3092691b7 Merge branch 'Dokploy:canary' into feature/gpu-support-blender-template 2024-10-25 02:33:17 +05:30
vishalkadam47
5a440d934d fix: Remove privileged mode and seccomp option, update runtime to nvidia 2024-10-25 02:32:50 +05:30
Mauricio Siu
cb586c9b74 Merge branch 'canary' into feat/payments 2024-10-24 13:50:17 -06:00
Mauricio Siu
554ac59b97 Merge pull request #589 from alok-debnath/typo-fixes
Typo fixes in README.md
2024-10-24 13:43:28 -06:00
Alok Debnath
0247898876 minor typo fixes in README.md for better readability 2024-10-25 00:06:09 +05:30
Vishal kadam
96c5176984 Merge branch 'Dokploy:canary' into feature/gpu-support-blender-template 2024-10-24 19:26:21 +05:30
Mauricio Siu
467acc4d4d Merge pull request #586 from Dokploy/canary
v0.10.3
2024-10-24 01:21:17 -06:00
Mauricio Siu
fc2778db35 Merge pull request #585 from Dokploy/505-mongodb-backup-is-empty-in-output-pipeline
fix(dokploy): add missing --archive to mongodump
2024-10-24 01:14:10 -06:00
Mauricio Siu
85d6ff9012 chore(version): bump version 2024-10-24 01:11:43 -06:00
Mauricio Siu
fa053b4d1f refactor(dokploy): remove stripe from global scope 2024-10-24 01:10:17 -06:00
Mauricio Siu
522f8baec7 fix(dokploy): add missing --archive to mongodump 2024-10-24 01:07:02 -06:00
Mauricio Siu
bcc7afa3e4 refactor(dokploy): fix ts errors 2024-10-24 00:55:59 -06:00
Mauricio Siu
647a5d05a6 test(dokploy): add missing fields 2024-10-24 00:55:03 -06:00
Mauricio Siu
e15d41f80d chore: add radix tabs 2024-10-24 00:22:57 -06:00
Mauricio Siu
6c7c919d49 refactor: set servers quantity in 0 when the subscription is created 2024-10-24 00:21:28 -06:00
Mauricio Siu
22eb965919 Merge pull request #584 from dmbr0/patch-2
Fix typo in README.md
2024-10-23 20:08:37 -06:00
Alex Whitney
c0746b95b3 Fix typo in README.md 2024-10-23 20:18:59 -04:00
Vishal kadam
433430118f Merge branch 'Dokploy:canary' into feature/gpu-support-blender-template 2024-10-23 17:58:19 +05:30
Mauricio Siu
dfdedf9e48 chore(dokploy): simplify migrations 2024-10-23 01:16:42 -06:00
Mauricio Siu
7e76eb4dd1 refactor: delete log 2024-10-23 01:06:34 -06:00
Mauricio Siu
c1f777e23e refactor: remove serverIp 2024-10-23 01:01:04 -06:00
Mauricio Siu
975d13c7e1 refactor(dokploy): disable stats monitoring 2024-10-23 00:58:38 -06:00
Mauricio Siu
017bdd2778 refactor(dokploy): add flag to prevent run commands when is cloud 2024-10-23 00:54:40 -06:00
Mauricio Siu
01e5cf0852 Merge pull request #580 from Dokploy/canary
v0.10.2
2024-10-22 21:17:38 -06:00
Mauricio Siu
548df8c0f4 Merge branch 'canary' into feat/payments 2024-10-22 20:31:18 -06:00
Mauricio Siu
8faa6ae1cf chore(version): bump version 2024-10-22 20:29:57 -06:00
Mauricio Siu
76ed1107c2 refactor(dokploy): add -r flag to read the enviroments vars 2024-10-22 20:19:49 -06:00
Mauricio Siu
cff5049096 Merge pull request #579 from Dokploy/578-unable-to-reset-my-password
fix(dokploy): use the exact path of functions #578
2024-10-22 20:02:43 -06:00
Mauricio Siu
cb5ca100a6 fix(dokploy): use the exact path of functions #578 2024-10-22 20:00:29 -06:00
Mauricio Siu
03d1e974dd Update LICENSE.MD 2024-10-22 16:53:12 -06:00
Mauricio Siu
1e6dbb5e8e feat(dokploy): add reset password for cloud 2024-10-22 01:25:13 -06:00
Mauricio Siu
431dadb6c2 feat: add pricing 2024-10-22 00:29:17 -06:00
Mauricio Siu
22e42b62ad feat: add is cloud in ssr 2024-10-21 22:38:23 -06:00
Mauricio Siu
49ee8ce132 Merge branch 'canary' into feat/payments 2024-10-21 22:22:59 -06:00
Mauricio Siu
b609d72d1c Merge pull request #576 from Dokploy/541-install-failed-due-to-docker-swarm-initialize-failed
fix(installation): exit of script when docker swarm init fails
2024-10-21 21:58:22 -06:00
Mauricio Siu
d7071fba60 fix(installation): exit of script when docker swarm init fails 2024-10-21 21:50:26 -06:00
Mauricio Siu
76585991ec Merge pull request #559 from eremannisto/fix/improve-faq-questions-and-answers
fix: Improve `FAQ` questions and answers
2024-10-21 21:31:00 -06:00
Mauricio Siu
da6efcf733 Merge pull request #406 from benbristow/fix/directus
fix: directus healthchecks (fix race condition starting up), volumes for uploads & extensions, add secret/db password generation, bump version to 11.0.2
2024-10-21 21:28:52 -06:00
Mauricio Siu
64b0770cfb Merge pull request #575 from Dokploy/574-clone-github-gitlab-and-bitbucket-submodules
feat(dokploy): add recurse submodules to providers #331
2024-10-21 21:25:18 -06:00
Mauricio Siu
1ec83a3236 feat(dokploy): add recurse submodules to providers #331 2024-10-21 21:14:40 -06:00
sashagoncharov19
4431f5601a fix: run biome check 2024-10-21 19:05:51 +00:00
Oleksandr Honcharov
bf48aa03a2 Merge branch 'Dokploy:canary' into canary 2024-10-21 12:04:38 -07:00
Mauricio Siu
9bace8e58b refactor: clean stripe customer if the customer is deleted 2024-10-21 13:01:08 -06:00
Mauricio Siu
c0afcaf3f6 refactor: show banner when the server is disabled 2024-10-21 02:19:10 -06:00
Mauricio Siu
53edf06476 refactor: remove comments 2024-10-21 00:48:04 -06:00
Mauricio Siu
255e9e4095 refactor: remove dokploy restart on notifications 2024-10-21 00:46:33 -06:00
Mauricio Siu
03f923c6e2 refactor: update show servers 2024-10-21 00:43:04 -06:00
Mauricio Siu
4685ef7439 refactor: update stripe envs 2024-10-21 00:39:14 -06:00
Mauricio Siu
626cfb80b4 refactor: add website url redirect 2024-10-21 00:37:11 -06:00
Mauricio Siu
9591fbff08 refactor: add Is cloud flag 2024-10-21 00:34:59 -06:00
Mauricio Siu
fbda00f059 refactor: update webhooks and added validation to prevent deploy when the server is inactive 2024-10-21 00:34:16 -06:00
Mauricio Siu
1907e7e59c feat: add webhook 2024-10-20 23:08:26 -06:00
Mauricio Siu
ffe7b04bea feat: add stripe webhooks 2024-10-20 15:08:44 -06:00
Mauricio Siu
fe0a662afd feat(cloud): add billing wip 2024-10-20 00:14:27 -06:00
Mauricio Siu
df9fad088f Merge pull request #567 from Dokploy/canary
v0.10.1
2024-10-18 23:12:12 -06:00
Mauricio Siu
319584d911 Merge branch 'canary' into feat/payments 2024-10-18 21:59:12 -06:00
Mauricio Siu
7d5a660f4d chore: bump version 2024-10-18 21:56:39 -06:00
Mauricio Siu
f7f0cbf318 Merge pull request #566 from arioberek/canary
fix: update reset password link URL
2024-10-18 09:34:51 -06:00
Arielton Oberek
841c0731aa fix: remove language prefix from reset password URL 2024-10-18 10:41:07 -03:00
Arielton Oberek
137cd25267 fix: reset password button URL 2024-10-18 10:35:08 -03:00
Vishal kadam
6d3ea8df59 Merge branch 'Dokploy:canary' into feature/gpu-support-blender-template 2024-10-18 18:28:44 +05:30
Mauricio Siu
2d40b2dfe5 feat: add stripe integration 2024-10-18 01:43:45 -06:00
Mauricio Siu
e32b713742 Merge branch 'canary' into feat/payments 2024-10-18 01:25:00 -06:00
Mauricio Siu
4dcd16c41e Merge pull request #564 from Dokploy/fix/git-ssh
fix(git): remove old references to ssh files to use the tmp file
2024-10-18 00:28:51 -06:00
Mauricio Siu
60497fe59d refactor: add husky 2024-10-18 00:10:01 -06:00
Mauricio Siu
8536945a60 styles: lint 2024-10-17 23:58:51 -06:00
Mauricio Siu
e0a8d8258c fix(git): remove old references to ssh files to use the tmp file 2024-10-17 23:55:27 -06:00
Mauricio Siu
988357fb55 refactor: update payments 2024-10-17 21:52:24 -06:00
vishalkadam47
e52a0fc9d4 feat: Added Blender template 2024-10-18 04:55:37 +05:30
vishalkadam47
15a76d2639 feat: Add server-level GPU support for Docker Swarm deployments and API endpoint for setup 2024-10-17 15:45:27 +05:30
Mauricio Siu
fe19cdb5e4 fix(setup): import directly from specific path 2024-10-16 15:57:51 -06:00
Mauricio Siu
c4654a9619 chore(contributing): update contributing 2024-10-16 13:23:25 -06:00
Ere Männistö
0a123a652b Improve FAQ questions and answers
- Improve questions and answers
- Fix typos
2024-10-15 19:54:41 +03:00
Mauricio Siu
5d437c29b2 refactor: remove header and navbar 2024-10-13 22:58:01 -06:00
Mauricio Siu
53f345ab1d feat: add privacy & terms 2024-10-13 22:54:02 -06:00
Oleksandr Honcharov
059c21c990 Merge branch 'Dokploy:canary' into canary 2024-10-13 16:35:27 -07:00
Mauricio Siu
2644b638d1 Merge pull request #553 from Dokploy/canary
v0.10.0
2024-10-13 16:30:00 -06:00
Mauricio Siu
8785282133 chore(version): bump version 2024-10-13 11:51:52 -06:00
Mauricio Siu
35c084af1d Merge pull request #550 from Dokploy/fix/env-parsing
fix(logs): improve logs in remote server when is error, and fix the e…
2024-10-13 11:01:28 -06:00
Mauricio Siu
b63488baba Merge pull request #547 from Dokploy/536-implement-custom-certificates-in-external-server
feat(certificates): create certificates in a remote server
2024-10-13 11:01:16 -06:00
Mauricio Siu
7e5f21b28e style: lint 2024-10-13 02:28:04 -06:00
Mauricio Siu
8d41bafb93 fix(logs): improve logs in remote server when is error, and fix the env parsing to allow any values in enviroment variables 2024-10-13 02:27:33 -06:00
Mauricio Siu
6f5049efd5 styles: lint 2024-10-12 19:33:56 -06:00
Mauricio Siu
6dd6b636e5 feat(certificates): create certificates in a remote server 2024-10-12 19:09:50 -06:00
Mauricio Siu
8488d530f3 Merge pull request #546 from Dokploy/542-cannot-save-server-address-without-lets-encrypt-email
fix(traefik): allow to save domain without letsencrypt email when the…
2024-10-12 16:58:50 -06:00
Mauricio Siu
6c61d5cdf5 Merge pull request #545 from mezotv/fix-sponsor-size
fix(website): improve sponsor logo alignment
2024-10-12 16:45:40 -06:00
Mauricio Siu
8036455c2d fix(traefik): allow to save domain without letsencrypt email when the cert is none #542 2024-10-12 16:44:10 -06:00
Dominik Koch
bf44eeab3d style: format code 2024-10-12 22:29:32 +00:00
Dominik Koch
0cd185696d fix: add target blank to links 2024-10-12 22:26:48 +00:00
Mauricio Siu
339697437a Merge pull request #544 from Dokploy/533-the-traefik-labels-get-duplicated-if-i-have-two-services-and-two-domains-in-one-docker-compose-file
fix(compose): refetch compose file when enter to the modal to prevent…
2024-10-12 16:26:43 -06:00
Dominik Koch
e0b15fe971 fix: logo alignment 2024-10-12 22:23:07 +00:00
Mauricio Siu
afc5ea43da fix(compose): refetch compose file when enter to the modal to prevent show duplicate labels 2024-10-12 16:19:49 -06:00
Mauricio Siu
bb337e819e Merge pull request #539 from mezotv/fix-typo
Fix typos and grammar errors
2024-10-12 16:11:27 -06:00
Mauricio Siu
160dd10f77 Merge pull request #538 from mezotv/update-website-sponsors
Add organization sponsors to website
2024-10-12 16:10:46 -06:00
Dominik Koch
49b096fef6 style: format code 2024-10-12 21:08:58 +00:00
Dominik Koch
4828b840cb fix: lxaer logo 2024-10-12 23:05:30 +02:00
Dominik Koch
67af70448b Update README.md 2024-10-12 23:03:09 +02:00
Dominik Koch
946acf5245 style: format code 2024-10-12 20:59:49 +00:00
Dominik Koch
390b3a835a fix: new lxaer logo 2024-10-12 22:54:46 +02:00
Dominik Koch
2842bf9a91 Update README.md 2024-10-12 22:51:56 +02:00
Dominik Koch
8a0e10f6f4 Update README.md 2024-10-12 22:51:03 +02:00
Mauricio Siu
67efa82b91 Merge pull request #537 from mezotv/organization-readme
Add missing organization to readme
2024-10-11 12:41:27 -06:00
Dominik Koch
546d6b87ea fix: get rid of typos and fix grammar 2024-10-11 20:03:20 +02:00
Dominik Koch
d012d19253 feat(web): add organization sponsors 2024-10-11 11:28:10 +02:00
Dominik Koch
e925ed9ea4 fix: add missing organization to readme 2024-10-11 11:21:20 +02:00
Mauricio Siu
0c05809d7d refactor: remove 2024-10-10 23:38:16 -06:00
Mauricio Siu
29f1631950 refactor: add dynamic import queue 2024-10-10 23:34:56 -06:00
Mauricio Siu
9c0c58035a chore; add logs for process env 2024-10-10 22:40:02 -06:00
Mauricio Siu
f4262569dd chore: add cat 2024-10-10 22:37:36 -06:00
Mauricio Siu
99cf6eae49 refactor: adjust enviroment variables 2024-10-10 22:27:25 -06:00
Mauricio Siu
0488546706 refactor: print env 2024-10-10 22:17:19 -06:00
Mauricio Siu
dc32cd71e5 refactor: add env to dist 2024-10-10 22:01:14 -06:00
Mauricio Siu
efdfd5d13c chore: print envs 2024-10-10 21:52:50 -06:00
Mauricio Siu
d31cab76f0 refactor: add flag 2024-10-10 21:52:09 -06:00
Mauricio Siu
00ed202127 refactor: add .env 2024-10-10 21:40:43 -06:00
Mauricio Siu
aaa4ca297d refacctor: add missing envs 2024-10-10 21:32:27 -06:00
Mauricio Siu
629871e683 refactor: add option to ci/cd 2024-10-10 21:22:13 -06:00
Mauricio Siu
a237c651c3 chore: add autoprefixer 2024-10-07 01:47:01 -06:00
Mauricio Siu
4f9b0d9d59 chore: remove .env 2024-10-07 01:45:16 -06:00
Mauricio Siu
b701a0b504 Merge pull request #531 from Dokploy/feat/cloud
Feat/cloud
2024-10-07 01:44:00 -06:00
Mauricio Siu
39036202bb test: fix mock zip drop 2024-10-07 01:34:35 -06:00
Mauricio Siu
4225ad83e7 chore: add docker images 2024-10-07 01:28:22 -06:00
Mauricio Siu
38c4e0ede1 chore: add build server 2024-10-07 01:16:59 -06:00
Mauricio Siu
25a64c703f chore: add pnpm run build 2024-10-07 01:08:47 -06:00
Mauricio Siu
ab5871add7 chore: biome 2024-10-07 01:05:47 -06:00
Mauricio Siu
2b0e009f6a refactor: remove feature tag 2024-10-07 00:59:07 -06:00
Mauricio Siu
9b6ea99eea refactor: remove unused files 2024-10-07 00:49:54 -06:00
Mauricio Siu
c4cf545d85 Merge branch 'canary' into feat/cloud 2024-10-07 00:31:23 -06:00
Mauricio Siu
1edd717432 Merge pull request #524 from lorenzomigliorero/feat/domains-link
feat: add dropdown link
2024-10-07 00:26:23 -06:00
Mauricio Siu
5b88af6158 refactor: remove findAdmin 2024-10-06 15:04:54 -06:00
Mauricio Siu
e995d894d8 refactor: remove docker from cloud 2024-10-06 14:27:14 -06:00
Mauricio Siu
5f56512e56 refactor: update queue jobs 2024-10-06 14:16:31 -06:00
Mauricio Siu
24e4930fc1 refactor: use connection IORedis 2024-10-06 02:57:46 -06:00
Mauricio Siu
541728805f refactor: add health path to middleware 2024-10-06 02:46:07 -06:00
Mauricio Siu
9e4bac1386 refactor: update ioredis connection 2024-10-06 02:44:35 -06:00
Mauricio Siu
ed8d32d050 chore: add type module 2024-10-06 02:25:02 -06:00
Mauricio Siu
7fb66bc58b refactor:add remote cron jobs 2024-10-06 02:19:15 -06:00
Mauricio Siu
58c06fba86 refactor(cloud): add api key for autentication between servers 2024-10-06 01:56:53 -06:00
Mauricio Siu
3cf27a068a refactor: add authorization 2024-10-06 01:37:39 -06:00
Mauricio Siu
7cfbea3f60 refactor: update 2024-10-05 22:18:33 -06:00
Mauricio Siu
7907e33431 refactor: update namefile 2024-10-05 22:17:44 -06:00
Mauricio Siu
89f3078ce5 refactor: update package name 2024-10-05 22:15:57 -06:00
Mauricio Siu
f3ce69b656 refactor: rename builders to server 2024-10-05 22:15:47 -06:00
Mauricio Siu
43555cdabe feat(schedules): add schedules server 2024-10-05 22:11:38 -06:00
Mauricio Siu
651bf3a303 refactor: update ref 2024-10-05 18:42:08 -06:00
Mauricio Siu
4cde1a8a7d refactor: close docker logs 2024-10-05 18:20:28 -06:00
Mauricio Siu
405efcac0b refactor: update logs listener 2024-10-05 17:34:17 -06:00
Mauricio Siu
8397de0dca refactor: close connections when the ws is not ready 2024-10-05 17:17:46 -06:00
Mauricio Siu
06b58e6495 refactor: close connection ws 2024-10-05 16:46:02 -06:00
Mauricio Siu
24db4006cf refactor: add close ws 2024-10-05 16:45:53 -06:00
Mauricio Siu
84009c5e9b refactor: add close websocket 2024-10-05 16:04:28 -06:00
Mauricio Siu
e32afde973 refactor: add status ok 2024-10-05 14:37:45 -06:00
Mauricio Siu
fecffac573 refactor: test rollback 2024-10-05 14:27:00 -06:00
Mauricio Siu
b4448e013c test: rollback 2024-10-05 14:16:23 -06:00
Mauricio Siu
c3f06a6272 feat(cloud): add healtchecks 2024-10-05 13:34:00 -06:00
Mauricio Siu
2be724f780 Update README.md 2024-10-05 02:39:50 -06:00
Mauricio Siu
bf78326c96 chore: use the same tailwindcss version 2024-10-05 01:30:09 -06:00
Mauricio Siu
4ca8722c6e refactor: optimize dockerfile 2024-10-05 01:21:39 -06:00
Mauricio Siu
e56e1eb687 refactor: add autoprefixer 2024-10-05 01:15:52 -06:00
Mauricio Siu
5a5c302bdc chore: optimize image 2024-10-05 01:11:15 -06:00
Mauricio Siu
997dc85985 refactor(api): remove deploy normal compose on the same dokploy server 2024-10-05 00:34:41 -06:00
Mauricio Siu
09ef851372 refactor(cloud): add validation to prevent create applications without server 2024-10-04 21:31:22 -06:00
Mauricio Siu
7c4987d84d refactor(cloud): add validation to prevent access to shared resources 2024-10-04 20:44:57 -06:00
Mauricio Siu
5cebf5540a refactor(cloud): add deploy to external API 2024-10-04 18:53:46 -06:00
Mauricio Siu
3df2f8e58c refactor(terminal): use ssh2 instead of cmd 2024-10-04 17:24:17 -06:00
Mauricio Siu
a642d36a23 refactor: hide handler when is cloud version 2024-10-04 15:20:47 -06:00
Mauricio Siu
72bceec62d refactor: add try catch 2024-10-04 15:16:01 -06:00
Mauricio Siu
3d32314e80 chore: update lock 2024-10-04 15:14:56 -06:00
Mauricio Siu
7259830ac1 chore: add experimental specifier resolution flag 2024-10-04 15:14:30 -06:00
Mauricio Siu
daa87c0dc7 refactor(cloud): add is cloud flag to cluters 2024-10-04 14:40:31 -06:00
Mauricio Siu
a2ee55e0e9 Merge pull request #527 from kikoncuo/fix/application-create-missing-return
fix: Application create endpoint returns value
2024-10-04 13:39:21 -06:00
Enrique
de6aeac243 fix(application.create): add missing return statement and align response with application.one 2024-10-04 11:46:14 +02:00
Lorenzo Migliorero
f640b4a87f stop propagation 2024-10-04 11:03:11 +02:00
Mauricio Siu
3747db08d4 refactor(cloud): add validation to prevent execute in cloud version 2024-10-04 01:12:14 -06:00
Mauricio Siu
ab4677ac0e refactor(auth): set null when the findAdmin is null 2024-10-04 01:01:30 -06:00
Mauricio Siu
172d55311e chore(cloud): add migrations 2024-10-04 00:04:52 -06:00
Mauricio Siu
3ce25e2ac8 chore(migrations): remove migrations 2024-10-03 23:47:34 -06:00
Mauricio Siu
388ded9aa5 feat(cloud): add deploy on remote worker 2024-10-03 23:46:26 -06:00
Mauricio Siu
767d3e1944 refactor(cloud): add validation to prevent access to shared resources 2024-10-03 19:50:17 -06:00
Mauricio Siu
ec1d6c7430 refactor(cloud): add validation to prevent access to resources from another admin 2024-10-03 19:48:49 -06:00
Mauricio Siu
8abeae5e63 refactor(cloud): validate all the routes to prevent get access from private resource 2024-10-03 19:34:38 -06:00
Oleksandr Honcharov
d833623ebf Merge branch 'canary' into canary 2024-10-03 17:41:36 -07:00
Mauricio Siu
cc90d9ec9b Merge branch 'canary' into feat/cloud 2024-10-03 13:39:06 -06:00
Mauricio Siu
6b5de00fb0 chore: update dev builder command 2024-10-03 12:01:32 -06:00
Mauricio Siu
5ed96fb0ce Merge pull request #523 from lorenzomigliorero/fix/watch-mode
fix: tsx watch flag unwanted reload
2024-10-03 11:01:57 -06:00
Mauricio Siu
a73af1d578 Merge pull request #522 from lorenzomigliorero/fix/bitbucket-repositories-length
fix: bitbucket repositories length
2024-10-03 11:00:25 -06:00
Mauricio Siu
5867a27901 Merge pull request #459 from seppulcro/feat/add-roundcube-template
feat: add roundcube template
2024-10-03 10:59:41 -06:00
Lorenzo Migliorero
8f7bffc349 add fragment 2024-10-03 15:32:45 +02:00
Lorenzo Migliorero
21ee22d4f5 add dropdown link 2024-10-03 15:27:48 +02:00
Lorenzo Migliorero
fb72132a4b remove watch flag 2024-10-03 14:05:12 +02:00
Lorenzo Migliorero
ca904c15d9 remove console.log 2024-10-03 13:55:28 +02:00
Lorenzo Migliorero
682863f83e fix: repo length 2024-10-03 13:54:40 +02:00
Mauricio Siu
acd722678e Merge pull request #521 from Dokploy/canary
v0.9.4
2024-10-03 02:12:03 -06:00
Mauricio Siu
3750977f41 Merge pull request #520 from Dokploy/487-private-docker-container-pull-failed-despite-having-docker-registry-configured-in-registry
fix(registry): add option to login the registry in the remote server
2024-10-03 02:02:51 -06:00
Mauricio Siu
9b401059b0 fix(registry): add option to login the registry in the remote server 2024-10-03 01:56:50 -06:00
Mauricio Siu
6a3ef5c860 Merge pull request #519 from Dokploy/514-failing-to-refresh-docker-composeyml-from-github-repo
fix(compose): delete content when is remote server
2024-10-03 01:32:50 -06:00
seppulcro
a36518a8f0 fix: set static docker image version 2024-10-03 08:09:21 +01:00
Mauricio Siu
a5eb4b0a72 fix(compose): delete content when is remote server 2024-10-03 01:00:35 -06:00
Mauricio Siu
b5c0876dd4 Merge pull request #518 from Dokploy/515-non-admin-users-are-not-able-to-set-up-database-backup
fix(destinations): change admin to protected procedure
2024-10-03 00:53:23 -06:00
Mauricio Siu
9745d12ac8 fix(destinations): change admin to protected procedure 2024-10-03 00:48:00 -06:00
Mauricio Siu
5c72e5a452 refactor: filter by adminId 2024-10-03 00:45:46 -06:00
Mauricio Siu
600f4b2106 refactor: apply migration 2024-10-03 00:15:36 -06:00
Mauricio Siu
c12d37fe0a refactor: revent 2024-10-03 00:06:11 -06:00
Mauricio Siu
bba8d00ba2 refactor: update dockerfile 2024-10-02 23:56:09 -06:00
Mauricio Siu
78665ffbfa refactor(tabs): hide when is cloud version 2024-10-02 23:51:37 -06:00
Mauricio Siu
d41c8c70c3 feat: add ssh key 2024-10-02 22:50:01 -06:00
Mauricio Siu
f13e5d449c Revert "refactor: stash"
This reverts commit d256998677.
2024-10-02 22:37:14 -06:00
Mauricio Siu
d256998677 refactor: stash 2024-10-02 21:55:54 -06:00
Mauricio Siu
4aaf04ce74 Merge pull request #506 from AprilNEA/fix/domin-port-number-convert
Fix port input value becoming NaN
2024-10-02 13:10:17 -06:00
Mauricio Siu
ecfca9419a refactor: remove innecessary conversion 2024-10-02 13:02:20 -06:00
AprilNEA
dfd6764320 styles: format code with prettier 2024-10-02 18:22:21 +00:00
Mauricio Siu
73bf5274f5 chore(version): bump version 2024-10-01 14:28:11 -06:00
AprilNEA
fc38a42587 fix: convert final value 2024-10-01 14:36:45 +00:00
Mauricio Siu
9b255964fe Merge pull request #511 from Dokploy/509-create-compose-modal-remains-open-after-clicking-create
509 create compose modal remains open after clicking create
2024-09-30 21:33:56 -06:00
Mauricio Siu
29f55ca1a0 Merge pull request #496 from missuo/canary
feat: add update option
2024-09-30 15:04:03 -06:00
Mauricio Siu
6a5fb8faff fix(multi-server): show the servers ip instead of the main ip #502 2024-09-30 15:00:32 -06:00
Mauricio Siu
5c225c8d42 fix(modal): close the modal after the creation #509 2024-09-30 15:00:01 -06:00
AprilNEA
c1c5fc978b fix: fix number convert when string empty 2024-09-30 08:35:49 +00:00
Mauricio Siu
ffd19f591d chore: add package manager 2024-09-30 01:00:53 -06:00
Mauricio Siu
81a41a7f31 refactor: update healtcheck 2024-09-30 00:54:49 -06:00
Mauricio Siu
1c9b704ecc refactor: update redis url 2024-09-30 00:51:07 -06:00
Mauricio Siu
edf1fdedf0 refactor: update paths build 2024-09-30 00:47:47 -06:00
Mauricio Siu
8484649071 refactor: update 2024-09-30 00:44:33 -06:00
Mauricio Siu
1e68248611 refactor: update image 2024-09-30 00:41:21 -06:00
Mauricio Siu
b3e35c5838 refactor: upate dockerfile 2024-09-30 00:40:43 -06:00
Mauricio Siu
ddd4ba8135 refactor: add dockerfile 2024-09-30 00:39:53 -06:00
Mauricio Siu
539544d0de refactor: update 2024-09-30 00:38:22 -06:00
Mauricio Siu
123b5d098b refactor: update install 2024-09-30 00:32:54 -06:00
Mauricio Siu
796a9ca11f refactor: add builder workspace 2024-09-30 00:31:56 -06:00
Mauricio Siu
2872ef3ccb feat(api): add dockerfile api 2024-09-30 00:27:14 -06:00
Mauricio Siu
06a772e344 chore: add dotenv 2024-09-29 22:55:41 -06:00
Mauricio Siu
e99666f4c0 fix(esm): add tsc alias 2024-09-29 21:43:25 -06:00
Mauricio Siu
bd243d79e2 refactor: remove logs 2024-09-29 21:01:24 -06:00
Vincent Yang
18b4b23f79 feat: add update option for canary and feature tag 2024-09-29 22:45:39 -04:00
Mauricio Siu
071a9d5104 refactor: cleanup dependencies 2024-09-29 20:35:25 -06:00
Mauricio Siu
61ebd1b16e refactor(server): remove files 2024-09-29 19:14:41 -06:00
Mauricio Siu
9836c988a0 refactor(build): update imports 2024-09-29 18:53:32 -06:00
Mauricio Siu
03d7738032 refactor(dockerfile): update dockerfile 2024-09-29 18:49:07 -06:00
Mauricio Siu
98aa474975 refactor(test): update paths and mocks 2024-09-29 18:44:07 -06:00
Mauricio Siu
7bd6b66551 refactor(multi-server): update path imports 2024-09-29 18:04:45 -06:00
Mauricio Siu
727e50648e Merge pull request #501 from Dokploy/canary
v0.9.3
2024-09-29 16:30:43 -06:00
Mauricio Siu
0b2b20caeb chore(version): bump version 2024-09-29 16:24:35 -06:00
Mauricio Siu
6cc64b4454 refactior(terminal): add port to server connect 2024-09-29 16:24:09 -06:00
Mauricio Siu
349bc89851 Merge pull request #500 from Dokploy/canary
v0.9.2
2024-09-29 14:16:56 -06:00
Mauricio Siu
7046d05f63 Merge pull request #499 from Dokploy/fix/update-ports-validation-
fix(multi-server): remove string validation on port
2024-09-29 14:07:00 -06:00
Mauricio Siu
cef21ac8b5 fix(multi-server): remove string validation on port 2024-09-29 13:31:38 -06:00
Mauricio Siu
2ae7e562bb refactor(server): remove files 2024-09-29 13:28:24 -06:00
Mauricio Siu
e4b998c608 refactor(server): update imports 2024-09-29 11:55:29 -06:00
Mauricio Siu
9b7aacc934 refactor(server): split logic in to packages 2024-09-29 02:28:58 -06:00
Vincent Young
7027f39c48 feat: add update option 2024-09-28 15:06:20 -04:00
Mauricio Siu
9f6f872536 Merge pull request #495 from Dokploy/canary
v0.9.1
2024-09-28 12:00:04 -06:00
Mauricio Siu
cb03b153ac Merge pull request #494 from Dokploy/fix/swagger-token
Fix/swagger token
2024-09-28 02:31:39 -06:00
Mauricio Siu
e5d7a0cb10 Merge pull request #493 from Dokploy/491-bug-nixpacks-publish-directory-issues-with-multi-level-paths
fix(nixpacks): adjust build path on nixpacks static
2024-09-28 02:30:29 -06:00
Mauricio Siu
bf65bc9462 chore(lint): format 2024-09-28 02:25:06 -06:00
Mauricio Siu
b48b9765cd fix(nixpacks): adjust build path on nixpacks static 2024-09-28 02:23:30 -06:00
Mauricio Siu
7cce02f74d Merge pull request #489 from Dokploy/docs/488-env-editor-not-support-multiline-variables
docs: add explanation how to use multiline env variables
2024-09-27 22:38:36 -06:00
Ben
3dc3672406 docs: add explanation how to use multiline env variables 2024-09-27 19:30:41 +02:00
Mauricio Siu
bbfe095045 chore(version): bump version 2024-09-27 11:23:44 -06:00
Mauricio Siu
65c1001751 fix(swagger): add mising validation 2024-09-27 11:22:52 -06:00
Mauricio Siu
5212bde021 Merge pull request #486 from Dokploy/333-add-flexible-wwwnon-www-redirect-option
#333 add flexible www/non-www redirect option
2024-09-27 00:42:30 -06:00
Ben
9059f42b03 refactor: display certificate select field after https switch field inside add-domain dialogs 2024-09-26 13:53:10 +02:00
Ben
3b9f5d6f5c feat: add presets for add-redirect dialog 2024-09-26 13:14:14 +02:00
seppulcro
0aff344bc0 fix: change tags for roundcube template 2024-09-24 17:27:11 +01:00
seppulcro
4715f34e15 fix: mdx-components formatting with biome 2024-09-24 17:01:24 +01:00
seppulcro
59386ed4b7 fix: Update docs; Fix useMDXComponents for li override: add missing id for correct remark-gfm footnotes functionallity 2024-09-23 16:13:16 +01:00
Mauricio Siu
21dee4abac refactor: update social networks 2024-09-22 20:03:48 -06:00
Mauricio Siu
e378d89477 Merge pull request #475 from Dokploy/canary
v0.9.0
2024-09-22 19:38:12 -06:00
Mauricio Siu
b04c1206e4 refactor(multi-server): update logs 2024-09-22 19:28:19 -06:00
Mauricio Siu
639bc0e8db chore(version): bump version 2024-09-22 19:17:39 -06:00
Mauricio Siu
9a850d388d Merge pull request #453 from mpcref/patch-1
Generate valid appName on changing name
2024-09-22 19:07:09 -06:00
Mauricio Siu
6c5c374139 feat(docs): add multi server docs and troubleshooting 2024-09-22 18:54:32 -06:00
Mauricio Siu
0b05f8b83c Merge pull request #469 from Dokploy/139-multi-server-feature
139 multi server feature
2024-09-22 17:20:26 -06:00
Mauricio Siu
63d5b775e6 refactor(multi-server): add config 2024-09-22 17:18:07 -06:00
Mauricio Siu
cb16de63df refactor(multi-server): copy the right value 2024-09-22 17:12:28 -06:00
Mauricio Siu
31a4a0814e refactor: remove logs 2024-09-22 16:51:31 -06:00
Mauricio Siu
14302ed240 refactor: remove imports 2024-09-22 16:49:07 -06:00
Mauricio Siu
31c55f772d refactor(multi-server): remove logs 2024-09-22 16:37:57 -06:00
Mauricio Siu
f0f34df13c refactor(multi-server): improve alerts and add instructions to ssh keys 2024-09-22 13:57:13 -06:00
Mauricio Siu
1a877340d3 refactor(multi-server): delete server only if the server doesn't have associated services 2024-09-22 11:56:31 -06:00
Mauricio Siu
f7e43fa1c1 chore(migrations): apply single migration 2024-09-22 01:00:19 -06:00
Mauricio Siu
906906102b fix(backups): remove schedule when updating to prevent to create another cron job #452 2024-09-22 00:39:19 -06:00
Mauricio Siu
245a5175a8 refactor(compose): hide enviroment when is docker stack 2024-09-22 00:06:49 -06:00
Mauricio Siu
f427014f52 chore(lint): apply lint 2024-09-21 23:49:42 -06:00
Mauricio Siu
0465a71d86 feat(multi-server): enable docker terminal inside of containers 2024-09-21 23:49:00 -06:00
Mauricio Siu
3de8a18ef9 Merge branch 'canary' into 139-multi-server-feature 2024-09-21 22:55:15 -06:00
Mauricio Siu
e317d0c808 Merge branch 'canary' into 139-multi-server-feature 2024-09-21 22:52:44 -06:00
Mauricio Siu
ff482ffe28 refactor(multi-server): add docker cleanup cron 2024-09-21 22:47:19 -06:00
Mauricio Siu
82588f3e16 refactor(multi-server): add flag to queues 2024-09-21 21:57:53 -06:00
Mauricio Siu
069f1a7b7a refactor(multi-server): add serverIp 2024-09-21 21:17:03 -06:00
Mauricio Siu
807137d3b1 refactor(multi-server): add modals and separate server actions 2024-09-21 20:02:37 -06:00
Mauricio Siu
c03c154fc4 feat(multi-server): add docker containers view to servers 2024-09-21 15:16:15 -06:00
Mauricio Siu
698ff9e918 refactor(multi server): rename functions 2024-09-21 02:10:25 -06:00
Mauricio Siu
8bf6a22db8 feat(multi server): add env and toggle dashboard remote 2024-09-21 01:44:31 -06:00
Mauricio Siu
497d45129c feat(multi-server): add actions to the server 2024-09-21 00:06:41 -06:00
sashagoncharov19
8b855d7ee4 feat: added erpnext template 2024-09-20 21:57:46 +00:00
Oleksandr Honcharov
706cde4ffd Merge branch 'Dokploy:canary' into canary 2024-09-21 00:33:00 +03:00
Mauricio Siu
0b22b694e6 refactor: add conditional to prevent access to terminal when is not server 2024-09-20 01:33:06 -06:00
Mauricio Siu
ee5516bb91 refactor(server): throw error when authentication fails 2024-09-20 00:15:25 -06:00
Mauricio Siu
e90b98e629 refactor: add warning when using keyboard interactive 2024-09-19 23:51:40 -06:00
Mauricio Siu
ff382d2029 Update installation.mdx 2024-09-19 23:33:36 -06:00
Mauricio Siu
4a37f85a51 chore: update dockerfile 2024-09-19 22:59:14 -06:00
Mauricio Siu
6bdc833413 chore: add unzip and update rclone installation command 2024-09-19 22:56:59 -06:00
Mauricio Siu
17a64a9402 refactor: add conditional to prevent have value in serverId 2024-09-19 22:51:18 -06:00
Mauricio Siu
a22b0797b1 refactor(dockerfile): remove sudo 2024-09-19 22:39:28 -06:00
Mauricio Siu
f3b351245a chore(ci/cd): add feature tag 2024-09-19 22:34:21 -06:00
Mauricio Siu
0cb74c5fde chore(license): update license 2024-09-19 22:28:29 -06:00
Mauricio Siu
9a828d4966 refactor(linter): format files 2024-09-19 22:25:25 -06:00
Mauricio Siu
4845c1ad5d refactor(multi-server): use rclone for databases backup local and external server 2024-09-19 21:56:45 -06:00
Mauricio Siu
6159786dfe feat(multi-server): add backups remote server 2024-09-19 21:20:25 -06:00
Mauricio Siu
b473062f40 Merge pull request #468 from max-degterev/canary
Missing return for entire domain creation transaction
2024-09-19 20:56:46 -06:00
Max Degterev
6c08f33ebb missing transaction return 2024-09-20 01:42:28 +02:00
Mauricio Siu
63e7eacae9 chore(version): bump version 2024-09-19 16:37:00 -06:00
Mauricio Siu
f4ab588516 Merge pull request #466 from Dokploy/canary
v0.8.3
2024-09-19 16:01:27 -06:00
Mauricio Siu
3ded0d21d0 chore(version): bump version 2024-09-19 15:48:09 -06:00
Mauricio Siu
9ee8fb1894 Merge pull request #465 from max-degterev/canary
Fix domain creation not returning domain data
2024-09-19 15:47:26 -06:00
Max Degterev
72b1600cd4 linter errors 2024-09-19 23:23:47 +02:00
Max Degterev
04a59c5e21 linter errors 2024-09-19 23:21:26 +02:00
Max Degterev
c8f990d541 fix domain creation not returning domain data 2024-09-19 23:01:24 +02:00
seppulcro
5b0bf99cbf fix: update roundcube template remove bad chars 2024-09-19 14:40:20 +01:00
seppulcro
8e227a3286 fix: update roundcube template to match spec 2024-09-19 08:37:37 +01:00
Mauricio Siu
54f855e738 refactor(backups): wip postgres remote backups 2024-09-19 00:50:26 -06:00
Mauricio Siu
65a70c09c1 Merge pull request #463 from Dokploy/460-incorrect-environment-database_url
fix(compose): prevent to pass dokploy database url in docker compose …
2024-09-18 23:13:10 -06:00
Mauricio Siu
f25d78a87d fix(compose): prevent to pass dokploy database url in docker compose containers #460 2024-09-18 23:06:40 -06:00
Mauricio Siu
79f39db502 refactor(multi-server): wip remote backups 2024-09-18 23:03:54 -06:00
Mauricio Siu
a46e7759b2 refactor(multi-server): add rclone to multi server 2024-09-18 00:40:52 -06:00
seppulcro
869e58739f feat: add roundcube template 2024-09-17 19:57:54 +01:00
sashagoncharov19
a39a7a276d fix: clean after mailcow tests 2024-09-17 11:32:48 +00:00
sashagoncharov19
0327334fcd fix: run pnpm check 2024-09-17 11:30:14 +00:00
sashagoncharov19
3e0d4ebbd6 feat: added mailserver template 2024-09-17 11:23:40 +00:00
Mauricio Siu
f001a50278 refactor(multi-server): show all the servers 2024-09-17 00:51:49 -06:00
Mauricio Siu
4c3bc8efdc refactor(deployment): set status error when application or compose have troubles when creating deployment log 2024-09-17 00:49:21 -06:00
Mauricio Siu
a591e02ffa refactor(multi-server): add deploy templates on different servers 2024-09-17 00:38:27 -06:00
Mauricio Siu
abe787593c refactor(multi-server): remove databases and hide monitoring when using deploy on server 2024-09-17 00:05:47 -06:00
Mauricio Siu
9b312cd9d7 refactor(multi-server): adapt paths on server and in dokploy ui 2024-09-16 23:49:24 -06:00
Mauricio Siu
4d8a0ba58f Merge pull request #457 from Dokploy/canary
v0.8.2
2024-09-16 15:57:20 -06:00
Mauricio Siu
66a4e86209 Merge pull request #456 from Dokploy/439-unable-to-open-swagger
439 unable to open swagger
2024-09-16 15:47:21 -06:00
Mauricio Siu
92df2472ae chore(version): bump version 2024-09-16 15:22:50 -06:00
Mauricio Siu
5f558f3773 fix(cluster): add registry none when is empty registry id 2024-09-16 15:21:39 -06:00
Mauricio Siu
754bb75e2a fix(settings): remove stats logs from swagger 2024-09-16 15:19:26 -06:00
Mauricio Siu
c84d39a20f refactor: remove redis 2024-09-16 15:16:51 -06:00
Michiel Crefcoeur
847d6ecab1 add trailing comma's 2024-09-16 22:21:12 +02:00
Michiel Crefcoeur
8f83ecb9ef formatting 2024-09-16 22:20:02 +02:00
Michiel Crefcoeur
2f9448dde9 corrections 2024-09-16 22:13:30 +02:00
Mauricio Siu
6415a66603 Merge pull request #454 from mpcref/patch-2
Corrected language for creating applications from a template
2024-09-16 13:07:43 -06:00
Michiel Crefcoeur
66567c8f2b obey formatting even though it looks weird 2024-09-16 18:45:22 +00:00
Michiel Crefcoeur
e1ec0aee69 replaceAll 2024-09-16 10:50:46 -07:00
Michiel Crefcoeur
5b5aeb545a Satisfy CI? 2024-09-16 09:40:53 -07:00
Michiel Crefcoeur
12c263c1ce Corrected language for creating applications from a template
The UI used the word "Deploy" while actually it's creating a new application from a template and adding it to the project. I fixed some of the language to better reflect what it does.
2024-09-16 07:58:34 -07:00
Michiel Crefcoeur
7f378b12ae and for database 2024-09-16 07:37:23 -07:00
Michiel Crefcoeur
fac984d299 same thing for compose 2024-09-16 07:35:59 -07:00
Michiel Crefcoeur
4f3eb7b362 Generate valid appName on changing name
The same can probably also be done at other places. Should probably be solved in a generic way.
2024-09-16 07:25:16 -07:00
Mauricio Siu
d8d0b60cb3 refactor(multi-server): replace executeCommand with execAsyncRemote 2024-09-16 00:40:11 -06:00
Mauricio Siu
19295ba746 feat(multi server): add support for drag n drop 2024-09-15 17:05:17 -06:00
Mauricio Siu
0d3c978aad refactor(deployments): improve build error 2024-09-15 14:48:40 -06:00
Mauricio Siu
d2c8632c4f refactor(server): add support for multi server 2024-09-15 01:24:55 -06:00
Mauricio Siu
b419da427f chore: add dokploy dashboard in readme 2024-09-13 13:54:03 -06:00
Mauricio Siu
033bf66405 chore: add dokploy dashboard in readme 2024-09-13 13:49:42 -06:00
Mauricio Siu
c549ea17d8 refactor(multi-server): add error support 2024-09-13 01:06:46 -06:00
Mauricio Siu
c412dabc54 refactor(multi-server): fix deploy on docker compose 2024-09-13 01:03:38 -06:00
Mauricio Siu
0bd0da2ee4 fix(raw): add raw compose remote 2024-09-12 01:44:21 -06:00
Mauricio Siu
bf58ae0f0f feat(remote): add docker compose remote 2024-09-12 01:33:33 -06:00
Mauricio Siu
e7ed3c300b Update installation.mdx 2024-09-10 17:08:14 -06:00
Mauricio Siu
f876457fbd Merge pull request #437 from exi66/fix/invalid-glitchtip-git-link
fix: invalid glitchtip git link
2024-09-10 10:53:30 -06:00
Mauricio Siu
a8d714c20d feat: add multi server compose 2024-09-10 01:11:15 -06:00
Mauricio Siu
86f1bf31b8 feat: add reload, stop and start in remote server 2024-09-09 23:46:24 -06:00
Mauricio Siu
95f75fdccb feat: add application and databases external servers 2024-09-09 15:58:58 -06:00
exi66
ac4f327775 fix: invalid glitchtip git link 2024-09-09 21:01:00 +04:00
Mauricio Siu
6c0205c0d9 Merge pull request #436 from Dokploy/433-service-stays-running-if-project-deleted
fix: add missing compose .length #433
2024-09-09 09:40:56 -06:00
Mauricio Siu
950c0abf9d Merge pull request #434 from exi66/canary
fix: invalid template source path
2024-09-09 09:39:59 -06:00
Mauricio Siu
8b66a5ca9e fix: add missing compose .length #433 2024-09-09 09:36:10 -06:00
Mauricio Siu
5afe1645a0 feat: add domains in external server 2024-09-09 09:35:02 -06:00
exi66
4a82125612 fix: invalid template source path 2024-09-09 17:13:14 +04:00
Mauricio Siu
3bb19cd324 Merge pull request #432 from Dokploy/feat/sponsors-web
feat: add sponsors section
2024-09-09 00:47:14 -06:00
Mauricio Siu
8c121a07aa refactor: remove flex wrap 2024-09-09 00:45:32 -06:00
Mauricio Siu
d4c8c63691 feat: add sponsors section 2024-09-09 00:44:23 -06:00
Mauricio Siu
cf06162be7 refactor: show logs to each application and database 2024-09-09 00:14:08 -06:00
Mauricio Siu
ea5349c844 feat: add logs for each application 2024-09-08 23:11:39 -06:00
Mauricio Siu
6007427a6c feat: add deploy databases to external server 2024-09-08 22:56:21 -06:00
Mauricio Siu
0a889c5db1 feat: deploy compose on external servers 2024-09-08 22:40:42 -06:00
Mauricio Siu
3d60236b36 feat: add redis installation on server and deploy applications on servers 2024-09-08 22:10:24 -06:00
Mauricio Siu
83009fd0b7 Merge pull request #430 from siddiquipro/canary
docs: removed duplicates from examples
2024-09-08 15:39:04 -06:00
Mohammd Siddiqui
b9c7e5f6bb documentation 2024-09-08 18:36:50 +01:00
Mauricio Siu
1a34ba175e refactor: simplify docker commands 2024-09-08 01:52:47 -06:00
Mauricio Siu
bd0bbdea26 feat: init multi server feature 2024-09-08 01:45:39 -06:00
Mauricio Siu
0b18f86a91 Merge pull request #421 from PaiJi/feat/add-website-translation-zhHans
feat: add website translation for zh-Hans
2024-09-07 16:17:12 -06:00
Mauricio Siu
e88cd11041 Merge pull request #427 from Dokploy/canary
v0.8.1
2024-09-07 13:25:36 -06:00
Mauricio Siu
194e39fa51 chore: bump version 2024-09-07 13:17:57 -06:00
Mauricio Siu
1bec376f6d Merge pull request #426 from Dokploy/fix/correct-path-compose
Fix/correct path compose
2024-09-07 13:18:44 -06:00
Mauricio Siu
9766e590b0 fix(requests): move total count to up 2024-09-07 13:13:55 -06:00
Mauricio Siu
685a825881 fix(compose): pass flag to detect is a composde service 2024-09-07 13:05:03 -06:00
Mauricio Siu
c152304c15 Merge pull request #425 from SashaGoncharov19/canary
feat: added gitea template
2024-09-07 12:57:35 -06:00
sashagoncharov19
b50c5c1363 feat: added gitea template 2024-09-07 12:39:09 +00:00
JiPai
6e6df2c771 chore(website): fix CI failed 2024-09-07 17:05:14 +08:00
Mauricio Siu
5f174a883b Merge pull request #424 from Dokploy/canary
v0.8.0
2024-09-07 00:55:08 -06:00
Mauricio Siu
05d494ad11 chore: bump version 2024-09-07 00:43:55 -06:00
Mauricio Siu
78ed940280 refactor: add slugify value 2024-09-07 00:40:44 -06:00
JiPai
189c2b768d chore: try fix lint 2024-09-07 14:30:47 +08:00
Mauricio Siu
22b675373a refactor: use gitlab properties from error clone requirements 2024-09-07 00:27:43 -06:00
Mauricio Siu
e6a55920b5 fix: filter logs correctly by dokploy ui 2024-09-06 23:22:12 -06:00
Mauricio Siu
25753b6027 refactor: update total count 2024-09-06 23:04:34 -06:00
Mauricio Siu
7bdb572f91 Merge pull request #423 from Dokploy/refactor/requests
Refactor/requests
2024-09-06 22:48:26 -06:00
Mauricio Siu
922dcc5de8 chore: biome 2024-09-06 22:41:58 -06:00
Mauricio Siu
acdc0ce1b0 refactor: add correct service name filter 2024-09-06 22:39:38 -06:00
Mauricio Siu
e57f8a32ce refactor(requests): simplify logic 2024-09-06 22:38:32 -06:00
JiPai
c482230995 chore(website): make biome happy 2024-09-06 15:42:50 +08:00
Mauricio Siu
d3a54163bf refactor: add option to activate the request distribution 2024-09-06 01:32:14 -06:00
JiPai
7acb86a83e chore(website): update en FAQ content 2024-09-06 13:42:07 +08:00
JiPai
3e6a519c8b feat(website): add language switch select 2024-09-06 13:42:07 +08:00
JiPai
c3ccd2a6b7 feat: use i18n link component 2024-09-06 13:42:07 +08:00
JiPai
94587c3472 feat: add i18n docs link 2024-09-06 13:42:07 +08:00
JiPai
27b83e471e feat: add translation for not-found 2024-09-06 13:42:07 +08:00
JiPai
137c219402 feat: clean not-found 2024-09-06 13:42:07 +08:00
JiPai
fe032d3d0f feat: add translate for zh-Hans 2024-09-06 13:42:07 +08:00
JiPai
d3108ebf65 feat: let not-found page work with locale 2024-09-06 13:42:06 +08:00
JiPai
458ddc6e0a chore(config): add tabWidth to prettier config for avoid differences among contributors 2024-09-06 13:42:06 +08:00
JiPai
9c36f30bb0 feat: add i18n dependency to website workspace 2024-09-06 13:42:06 +08:00
Mauricio Siu
c4dca57614 refactor: filter count by dokploy service 2024-09-05 21:52:48 -06:00
Mauricio Siu
d88633f2c6 Merge pull request #420 from Dokploy/feat/requests
Feat(Monitoring Logs)
2024-09-05 11:31:31 -06:00
Mauricio Siu
c64dd0d6ff refactor: add missing fields 2024-09-05 11:24:51 -06:00
Mauricio Siu
bcbc5da30e chore: add new rule 2024-09-05 11:21:54 -06:00
Mauricio Siu
e588551c33 test: update properties 2024-09-05 11:19:58 -06:00
Mauricio Siu
081cae724b chore: biome lint 2024-09-05 11:17:02 -06:00
Mauricio Siu
ae972ba1dd refactor: remove validation 2024-09-05 01:31:36 -06:00
Mauricio Siu
32bb6a8087 remove 2024-09-05 01:28:25 -06:00
Mauricio Siu
eb27b0305e remove 2024-09-05 01:27:01 -06:00
Mauricio Siu
65dbf80f84 remove 2024-09-05 01:26:19 -06:00
Mauricio Siu
fd17f3f25c remove 2024-09-05 01:25:37 -06:00
Mauricio Siu
3803a16bf5 feat: download json log 2024-09-05 01:16:28 -06:00
Mauricio Siu
bba51fcd11 refactor: remove sort level column 2024-09-05 01:13:41 -06:00
Mauricio Siu
66cd434839 refactor: remove router 2024-09-05 01:06:35 -06:00
Mauricio Siu
4f49a10aef Merge branch 'canary' into feat/requests 2024-09-05 00:17:40 -06:00
Mauricio Siu
b43194df18 fix: remove duplicate prefix 2024-09-04 14:49:40 -06:00
Mauricio Siu
cf6549f2a3 refactor: remove product hunt 2024-09-04 14:39:47 -06:00
Mauricio Siu
2a554f6279 Merge pull request #417 from Dokploy/fix/docker-compose-hosts
Fix/docker compose hosts
2024-09-04 14:20:54 -06:00
Mauricio Siu
86139bb47d Merge pull request #414 from SashaGoncharov19/canary
feat: added restart button for containers
2024-09-04 09:56:45 -06:00
sashagoncharov19
21a646ce66 fix: linting 2024-09-04 10:49:38 +00:00
Mauricio Siu
bc673d6f67 revert: add back prefix to test 2024-09-04 00:08:10 -06:00
Mauricio Siu
fca0abd585 refactor: fix responsive 2024-09-04 00:02:04 -06:00
Mauricio Siu
b6fd92aadd refactor: change prefix to suffix 2024-09-03 23:58:56 -06:00
Mauricio Siu
e67dbb4758 Update README.md 2024-09-03 23:41:05 -06:00
Mauricio Siu
beb84554e1 refactor: remove unnecesary prefix validation 2024-09-03 23:32:34 -06:00
Mauricio Siu
9c89208d83 refactor: retrieve the correct names when adding a prefix 2024-09-03 23:22:24 -06:00
Mauricio Siu
a3be030fac feat: add randomize compose by prefix 2024-09-03 22:56:38 -06:00
sashagoncharov19
7c920dde71 fix:
- Added isLoading prop
- Changed notification to container name
- Eslint fix
2024-09-04 04:56:36 +00:00
sashagoncharov19
b1b01373ca feat: added restart button for containers 2024-09-03 19:25:51 +00:00
Mauricio Siu
39f6fb5af3 feat(test): add test to prevent add hash to dokploy-network 2024-09-03 01:24:06 -06:00
Ben Bristow
f8721d3e04 fix: remove 'networks' section 2024-09-02 21:20:27 +01:00
Ben Bristow
a6c7c3b031 fix: directus healthchecks (fix race condition starting up), volumes for uploads & extensions, add secret/db password generation, bump version to 11.0.2 2024-09-02 21:11:03 +01:00
Mauricio Siu
9bac042498 Merge pull request #404 from GaKireiTsuki/canary
docs: add chinese translation
2024-09-02 11:59:55 -06:00
Mauricio Siu
fae091d183 Merge pull request #400 from iksaku/feat/docker-build-stage
feat(docker): Multi-stage Builds
2024-09-02 00:09:20 -06:00
Mauricio Siu
2929e01f09 refactor: add missing prop 2024-09-02 00:01:47 -06:00
Mauricio Siu
8b2fd07a27 refactor: biome lint 2024-09-01 23:59:48 -06:00
Mauricio Siu
a9fa017252 refactor: update migration 2024-09-01 23:53:52 -06:00
Mauricio Siu
e1681f0f03 Merge branch 'canary' into feat/docker-build-stage 2024-09-01 23:52:19 -06:00
Mauricio Siu
5242ad573f refactor: update body 2024-09-01 23:46:38 -06:00
加藤恵
0d6c237223 Merge branch 'Dokploy:canary' into canary 2024-09-02 13:41:12 +08:00
Mauricio Siu
f43776d27d Merge pull request #403 from Dokploy/98-connect-multiple-github-organizations
Feat(Git Providers): support for github, gitlab, bitbucket
2024-09-01 23:36:34 -06:00
Mauricio Siu
c6638b9fc9 refactor: change variable name 2024-09-01 23:30:25 -06:00
Mauricio Siu
2d56522733 refactor: add domain alert to deploy is required after domain action 2024-09-01 23:29:14 -06:00
Mauricio Siu
463fcd17e7 refactor(docs): add information about new providers 2024-09-01 23:20:47 -06:00
GaKireiTsuki
ee98637072 docs: add chinese translation 2024-09-02 13:17:56 +08:00
Mauricio Siu
d9f5d20473 chore(docs): update api.json endpoints 2024-09-01 23:11:17 -06:00
Mauricio Siu
2874c45227 chore: biome lint 2024-09-01 22:41:25 -06:00
Mauricio Siu
8a7ceae03a chore: remove unused deps 2024-09-01 22:39:03 -06:00
Mauricio Siu
f9b1194d16 feat: add empty states to git providers 2024-09-01 22:20:06 -06:00
Mauricio Siu
8275aec7d1 refactor: add single migration file 2024-09-01 22:12:37 -06:00
Mauricio Siu
2593736179 refactor: update gitlab update name 2024-09-01 22:07:40 -06:00
Mauricio Siu
68d2e73e7a feat: add test connection github 2024-09-01 22:00:10 -06:00
Mauricio Siu
99f63597a8 feat: add test connection bitbucket and gitlab 2024-09-01 21:49:59 -06:00
Mauricio Siu
d261fd4efe refactor: cleanup git provider router 2024-09-01 19:47:21 -06:00
Mauricio Siu
32ebd9b3b9 refactor: simplify naming schema 2024-09-01 19:34:25 -06:00
Mauricio Siu
879311c332 fix: add validation to prevent overwrite user 2024-09-01 19:12:26 -06:00
Mauricio Siu
1650e1bb74 feat: add permission to access to git providers 2024-09-01 18:56:13 -06:00
Mauricio Siu
58aaf6e002 refactor: add gitlab and bitbucket webhook support 2024-09-01 17:50:00 -06:00
Mauricio Siu
d57bbff87c feat: add providers to compose 2024-09-01 17:35:44 -06:00
Mauricio Siu
4c99e6000a refactor: remove unused api github routes 2024-09-01 14:57:42 -06:00
Mauricio Siu
2ec364ed68 remove 2024-09-01 14:52:34 -06:00
Mauricio Siu
f05c811bdc fix(webhooks): update github webhook validation 2024-09-01 14:51:03 -06:00
Mauricio Siu
e609714f1e refactor: add bitbucket organizations 2024-09-01 13:36:54 -06:00
Mauricio Siu
6c7b1c6c7c refactor: filter gitlab repositories by groupName 2024-09-01 12:34:05 -06:00
Mauricio Siu
1be580807f refactor: optimize gitlab fetch repositories 2024-09-01 10:00:47 -06:00
Mauricio Siu
766b166bf2 refactor: simplify database colums 2024-09-01 00:48:47 -06:00
Jorge González
de72652297 feat(docker): Multi-stage Builds 2024-09-01 00:42:39 -06:00
Mauricio Siu
73efe0d0ed refactor: simplify names of colums 2024-09-01 00:39:56 -06:00
Mauricio Siu
ed46fd3cef refactor: split logic to utils files 2024-09-01 00:32:25 -06:00
Mauricio Siu
c89e558143 feat: add new git providers 2024-09-01 00:23:45 -06:00
Mauricio Siu
249fe8c7fe feat: add clone by gitlab, github and bitbucket 2024-09-01 00:18:45 -06:00
Mauricio Siu
a8408a11d9 refactor(gitlab): add refresh token validation 2024-08-31 23:41:13 -06:00
Mauricio Siu
6d945371c9 feat(providers): add gitlab bitbucket and github providers 2024-08-31 22:57:41 -06:00
Mauricio Siu
28d8fa9834 refactor(traefik): add watch false swarm provider 2024-08-31 00:31:39 -06:00
Mauricio Siu
d7b9402528 refactor(traefik): add labels and swarm provider 2024-08-31 00:01:47 -06:00
Mauricio Siu
42ce03ea5a Merge pull request #399 from Dokploy/289-upgrade-traefik-to-its-latest-version
feat(traefik): upgrade traefik to v.3.1.2
2024-08-30 21:44:54 -06:00
Mauricio Siu
f5099c15a1 feat(traefik): upgrade traefik to v.3.1.2 2024-08-30 21:37:14 -06:00
Mauricio Siu
0f1f237019 Merge branch 'canary' into feat/requests 2024-08-30 11:16:03 -06:00
Mauricio Siu
b98476c36a chore: update hostinguer image 2024-08-30 11:10:14 -06:00
Mauricio Siu
aeddf2d554 chore: add hostinger sponsor 2024-08-30 11:06:33 -06:00
Mauricio Siu
4b4a31dc57 Merge pull request #398 from beltranaceves/canary
Docs: added working placeholder links for the Setting Up Dokploy section and better Admin Account screenshot
2024-08-30 11:05:11 -06:00
Beltrán Aceves
fa7e6d7c2f Docs: better image for Creating an Admin Account 2024-08-30 16:22:14 +02:00
Beltrán Aceves
82d2e00027 Docs: Improved placeholder links from the Setting Up cards section 2024-08-30 16:21:06 +02:00
Mauricio Siu
536a6ba2ff Merge pull request #397 from Dokploy/canary
v0.7.3
2024-08-30 00:27:59 -06:00
Mauricio Siu
95ab755253 chore(version): bump version 2024-08-30 00:09:43 -06:00
Mauricio Siu
b9d6fdafac Merge pull request #396 from Dokploy/389-is-the-traefik-env-non-persistent
fix(traefik): make env be persistent between restarts
2024-08-30 00:07:42 -06:00
Mauricio Siu
7999a4bdda refactor: lint 2024-08-30 00:00:40 -06:00
Mauricio Siu
50da20907f fix(traefik): make env be persistent between restarts 2024-08-29 23:56:38 -06:00
Mauricio Siu
a773cfffa5 Merge pull request #395 from Dokploy/392-documenso-template-not-working
fix(documenso): add version
2024-08-29 22:51:59 -06:00
Mauricio Siu
648386281f fix(documenso): add version 2024-08-29 22:49:25 -06:00
Mauricio Siu
3674f3a4d6 Merge pull request #393 from orthdron/patch-1
fix: umami version
2024-08-29 22:14:25 -06:00
Mauricio Siu
1fea9dcf29 Merge pull request #380 from freidev/freilyn-canary
feat: add Typebot template with email login configuration.
2024-08-29 22:13:08 -06:00
Mauricio Siu
fb2a4d91e1 Merge pull request #386 from AkashDeep000/canary
refactor(cleanUpUnusedVolumes): Remove all unused volumes, not just anonymous ones
2024-08-29 22:07:51 -06:00
Mauricio Siu
3e1063306f Update templates.ts 2024-08-29 22:06:22 -06:00
Mauricio Siu
4d2354df47 Update index.ts 2024-08-29 22:05:16 -06:00
Mauricio Siu
7104fb0461 Merge pull request #350 from Vladislav-CS/domain-link-fix
fix: wrong domain link
2024-08-29 21:59:03 -06:00
Mauricio Siu
fbbbebbbd0 Merge pull request #335 from Vladislav-CS/feat/zipline-template
feat: add Zipline template
2024-08-29 21:55:35 -06:00
Mauricio Siu
d18e315a28 chore: biome 2024-08-29 21:50:58 -06:00
Mauricio Siu
d47efec45f refactor(templates): add zipline domains 2024-08-29 21:48:57 -06:00
Mauricio Siu
4035c9a08d Merge branch 'canary' into feat/zipline-template 2024-08-29 21:41:11 -06:00
Deepak Kapoor
c5f3c61275 Update docker-compose.yml
There is a bug in the old version that crashes on the web. 

I would propose the version to be set as postgresql-latest, but I understand why a certain version is set in apps.
2024-08-29 20:03:02 -04:00
AkashDeep000
9436477f41 refactor(cleanUpUnusedVolumes): Remove all unused volumes, not just anonymous ones 2024-08-28 05:19:53 +05:30
Mauricio Siu
43d48520be Merge pull request #384 from Dokploy/Siumauricio-patch-1
Update README.md
2024-08-27 13:46:30 -06:00
Mauricio Siu
1d1a3cede1 Update README.md 2024-08-27 13:46:09 -06:00
Mauricio Siu
213fa08210 Merge pull request #382 from Dokploy/canary
v0.7.2
2024-08-26 15:52:49 -06:00
Mauricio Siu
1eed1a356d chore(version): bump version 2024-08-26 15:41:28 -06:00
Mauricio Siu
a8f21ad717 Merge pull request #381 from Dokploy/security/apply-validation-when-creating-admin
refactor(auth): add validation to prevent create another admin when a…
2024-08-26 15:32:29 -06:00
Mauricio Siu
c1420bd6d8 chore: apply biome 2024-08-26 15:22:51 -06:00
Mauricio Siu
74ea9debd5 refactor(auth): add validation to prevent create another admin when a admin is present 2024-08-26 15:19:30 -06:00
Freilyn Bernabe
da8955dabb chore: clean up code and update Docker images to stable versions 2024-08-26 14:44:43 -04:00
Freilyn Bernabe
5dbf18605f feat: add Typebot template with email login configuration. 2024-08-26 11:28:23 -04:00
Mauricio Siu
ba01c5056e refactor: skip validation 2024-08-26 08:55:09 -06:00
Mauricio Siu
5ea7a31c6d refactor: add license 2024-08-25 20:16:52 -06:00
Mauricio Siu
e0a9eb0366 feat: add api to handle license api keys 2024-08-25 20:10:20 -06:00
Mauricio Siu
14e8e14b7d refactor: remove sockets 2024-08-25 18:03:43 -06:00
Mauricio Siu
179de344c2 refactor: add websockets requests logs 2024-08-25 17:43:00 -06:00
Mauricio Siu
1250949c05 feat: finish request filter by status code 2024-08-25 16:34:01 -06:00
Mauricio Siu
e12105f5b9 refactor: add sheet 2024-08-24 23:38:13 -06:00
Mauricio Siu
b8cc0cd11b refactor(template): add domain to supabase template 2024-08-24 22:41:32 -06:00
Mauricio Siu
be39dfee9e Merge branch 'canary' into feat/requests 2024-08-24 22:36:30 -06:00
Mauricio Siu
67ae2b19df feat: add log rotation manager 2024-08-24 22:35:38 -06:00
Mauricio Siu
1df9f1f4df Merge pull request #361 from songtianlun/canary
feat: add supbase template
2024-08-24 20:55:02 -06:00
songtianlun
f06ac587c9 Merge branch 'upsteam_canary' into canary 2024-08-25 01:40:35 +08:00
songtianlun
c084cf84a0 fix: supabase generate annon and service jwt by servicekey 2024-08-24 00:43:00 +08:00
songtianlun
5e5cbdeef9 fix: supabase generate annon and service jwt by servicekey 2024-08-24 00:41:14 +08:00
Mauricio Siu
24929d8a4d Merge pull request #371 from freidev/canary
feat(template): add Aptabase template with ClickHouse and PostgreSQLCanary
2024-08-22 15:05:34 -06:00
Freilyn Bernabe
1e6e85ed5b style: run code formatting on two files 2024-08-22 16:08:48 -04:00
Freilyn Bernabe
137edf1250 feat: remove container_name prop 2024-08-22 15:12:03 -04:00
Freilyn Bernabe
b8741f1702 feat(template): aptabase set port 8080 2024-08-22 08:41:12 -04:00
Freilyn Bernabe
ac28aff022 Apply suggestions from code review
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
2024-08-22 08:38:51 -04:00
Mauricio Siu
7b9abef687 refactor: add localhos traefik domains 2024-08-22 00:02:02 -06:00
songtianlun
217be3c6e9 Merge remote-tracking branch 'origin/canary' into canary 2024-08-22 13:23:38 +08:00
songtianlun
27a0dc3770 fix: supabase ts format 2024-08-22 13:18:06 +08:00
Freilynbp03
53b24534a8 feat(template): add Aptabase template with ClickHouse and PostgreSQL 2024-08-21 21:45:14 -04:00
Freilyn Bernabe
5a3d0f8288 feat: add aptabase template 2024-08-21 16:31:02 -04:00
Mauricio Siu
ff3e3513ef chore: add cloudblast io sponsor 2024-08-21 12:26:44 -06:00
songtianlun
7a1fba38b3 fix: supabase logflareApiKey to 32 passwd 2024-08-22 02:06:42 +08:00
songtianlun
2b65a3c119 fix: supabase MAILER_URLPATHS_CONFIRMATION env path 2024-08-22 01:51:32 +08:00
songtianlun
6d841497cc fix: remove SECRET_KEY_BASE global env 2024-08-22 01:47:33 +08:00
songtianlun
d37dc7c372 fix: supabase log vector.yml 2024-08-22 01:20:24 +08:00
songtianlun
f3e0cf861f fix: supbase hello function demo 2024-08-22 01:17:05 +08:00
songtianlun
e2578e5794 fix: supbase add init/data.sql 2024-08-22 01:13:38 +08:00
TianLun Song
16deec381c fix: ci replace circle config 2024-08-20 20:51:20 +08:00
songtianlun
91dc35a138 fix: supbase index.ts format 2024-08-20 20:39:08 +08:00
songtianlun
acfa032e61 fix: supabase dashboard passwd 2024-08-20 20:39:08 +08:00
songtianlun
83ee4b2c59 fix: ci set branch name 2024-08-20 20:39:08 +08:00
Mauricio Siu
ac1637eaf8 feat: add requests 2024-08-20 00:15:08 -06:00
Mauricio Siu
d5c6a601d8 Merge pull request #367 from Dokploy/canary
v0.7.1
2024-08-19 16:03:39 -06:00
Mauricio Siu
afbe42a577 Update package.json 2024-08-19 14:12:14 -06:00
Mauricio Siu
866f700abf Merge pull request #365 from Dokploy/31-are-there-any-plans-to-support-wildcard-dns-records
31 are there any plans to support wildcard dns records
2024-08-19 00:08:55 -06:00
Mauricio Siu
f2b6b33b1f chore: lint 2024-08-18 23:24:20 -06:00
Mauricio Siu
813ffabb8c refactor: check if the traefik dashboard is enabled 2024-08-18 23:19:21 -06:00
Mauricio Siu
b5da9291b4 feat: add enviroment variables editor to traefik 2024-08-18 23:18:54 -06:00
songtianlun
b0d604d12b fix: supabase postgres passwd 2024-08-19 11:33:26 +08:00
Mauricio Siu
e9f40e1644 Merge pull request #364 from Dokploy/354-support-soketi
feat: add soketi template
2024-08-18 20:53:55 -06:00
Mauricio Siu
61d520c239 feat: add data templates 2024-08-18 20:46:18 -06:00
Mauricio Siu
124a884d2e feat: add soketi template 2024-08-18 20:43:30 -06:00
Mauricio Siu
b5e4b9af60 Merge pull request #363 from Dokploy/fix/domains-schema-templates
refactor(templates): use domains tab instead of envs
2024-08-18 19:58:23 -06:00
Mauricio Siu
840c24e3ca eslint 2024-08-18 19:51:59 -06:00
Mauricio Siu
d300eb73fb chore: add license 2024-08-18 19:49:36 -06:00
Mauricio Siu
fb4e06116c chore: add example domains schema templates 2024-08-18 19:49:17 -06:00
Mauricio Siu
2d3b903edc refactor(templates): use domains tab instead of envs 2024-08-18 19:47:19 -06:00
Mauricio Siu
75c13df22f Merge pull request #362 from ErickLuis00/canary
fix: wrong Docker version in Add Node commands
2024-08-18 18:17:49 -06:00
Erick Luis
68b81cb48d pnpm run check 2024-08-18 22:40:05 +00:00
Erick Luis
9d6f2df25a fix: wrong Docker version in Add Node commands 2024-08-18 22:18:45 +00:00
Mauricio Siu
452793c8e5 Merge pull request #359 from Dokploy/canary
v0.7.0
2024-08-18 10:26:52 -06:00
songtianlun
724de2c1b9 fix: ci revert name 2024-08-18 22:07:35 +08:00
songtianlun
86946b6b15 fix: ci revert name 2024-08-18 22:07:02 +08:00
songtianlun
957bb3d3e6 fix: supabase domain is set 2024-08-18 20:41:27 +08:00
Mauricio Siu
38a75b07fb chore(version): bump version 2024-08-17 23:53:36 -06:00
Mauricio Siu
378b93f996 Merge pull request #358 from Dokploy/154-all-pop-ups-when-the-confirmation-behavior-occurs-successfully-the-pop-ups-are-not-closed
refactor: add dialog close on submit success
2024-08-17 23:43:10 -06:00
Mauricio Siu
eb62d124bd refactor: add dialog close on submit success 2024-08-17 23:34:58 -06:00
songtianlun
7558029271 fix: supabase domain in one path 2024-08-18 13:34:37 +08:00
songtianlun
757c28dad1 fix: supabase logo 2024-08-18 13:26:02 +08:00
songtianlun
8d3dc38816 fix: supabase logo 2024-08-18 13:17:05 +08:00
songtianlun
9c8061a447 fix: supabase replace ports to expost 2024-08-18 13:05:44 +08:00
songtianlun
3a8b2867b6 fix: supabase add network 2024-08-18 13:02:25 +08:00
songtianlun
389956d1a2 fix: supabase docker volume content 2024-08-18 12:33:26 +08:00
Mauricio Siu
bf6ed15ba7 Merge pull request #348 from jumkey/patch-1
fix: buildpacks/pack support arm64
2024-08-17 22:30:24 -06:00
Mauricio Siu
31a66ce798 Update Dockerfile 2024-08-17 22:24:39 -06:00
Mauricio Siu
38c1d86e2f refactor(domains): add services to each router 2024-08-17 21:33:23 -06:00
Mauricio Siu
d08e232f50 Merge pull request #356 from Dokploy/216-domains-for-services-created-via-template
216 domains for services created via template
2024-08-17 17:09:34 -06:00
Mauricio Siu
3d49383c42 remove 2024-08-17 17:03:20 -06:00
Mauricio Siu
27706eaae4 fix: lint 2024-08-17 17:00:49 -06:00
Mauricio Siu
c74b5a2677 Merge branch 'canary' into 216-domains-for-services-created-via-template 2024-08-17 16:58:32 -06:00
Mauricio Siu
0374165a7f refactor: remove unused code 2024-08-17 16:57:27 -06:00
Mauricio Siu
b7dad5e1d9 refactor: remove hostname validation 2024-08-17 16:11:03 -06:00
Mauricio Siu
65527bc39a feat: add tests for labels and networks 2024-08-17 16:10:36 -06:00
songtianlun
a84bdd1c8e fix: supabase docker volume path 2024-08-18 01:55:41 +08:00
songtianlun
eb219221be Merge remote-tracking branch 'my/canary' into canary 2024-08-18 01:40:34 +08:00
songtianlun
7b176bd877 feat: add supabase templates 2024-08-18 01:38:25 +08:00
TianLun Song
6970923253 fix docker name 2024-08-18 01:20:24 +08:00
TianLun Song
a3e23d54d8 fix docker push prefix 2024-08-18 01:09:09 +08:00
TianLun Song
8f11207d72 fix push docker prefix 2024-08-18 01:04:22 +08:00
songtianlun
6bd98350d9 feat: add supabase templates 2024-08-18 00:58:09 +08:00
Mauricio Siu
096ef8cd93 Merge pull request #357 from Dokploy/353-domain-binding-form-does-not-accept-russian-domains-and-punycode-domains
refactor: remove hostname regex
2024-08-17 00:41:53 -06:00
Mauricio Siu
d6eafcbb9b refactor: remove hostname regex 2024-08-17 00:34:29 -06:00
Mauricio Siu
c0261384ca refactor: update invalidation cache 2024-08-17 00:29:05 -06:00
Mauricio Siu
ca733addc2 refactor: add dokploy network auutomatically 2024-08-17 00:28:32 -06:00
Mauricio Siu
7497671033 refactor: add dokploy network automatically 2024-08-17 00:28:17 -06:00
Mauricio Siu
385fbf4af5 Merge pull request #355 from Dokploy/canary
v0.6.3
2024-08-16 22:26:35 -06:00
Mauricio Siu
44e75ee7e1 refactor: update deps 2024-08-16 22:10:23 -06:00
Mauricio Siu
6b4d6eac1d chore: bump version 2024-08-16 22:07:02 -06:00
Mauricio Siu
9379d4a31d refactor(domains): update labels 2024-08-15 01:25:36 -06:00
Mauricio Siu
dde799f510 refactor: delete modals 2024-08-15 01:03:58 -06:00
Mauricio Siu
ecb919e109 refactor(domains): make traefik domains generate in a single click 2024-08-15 01:02:11 -06:00
Mauricio Siu
29ca894a97 Merge branch 'canary' into 216-domains-for-services-created-via-template 2024-08-15 00:00:41 -06:00
Mauricio Siu
84ba74a673 refactor: remove migrations 2024-08-15 00:00:34 -06:00
Mauricio Siu
32b0d51e79 refactor: remove migration 2024-08-14 23:59:51 -06:00
Vladislav Popovič
1288660fd6 Update show-domains.tsx 2024-08-14 22:25:51 +03:00
Vladislav Popovič
5c1e24f4f3 Update apps/dokploy/templates/zipline/docker-compose.yml
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
2024-08-14 14:17:45 +03:00
Jumkey Chen
3e12e1b1b3 fix: buildpacks/pack support arm64 2024-08-14 19:16:59 +08:00
Mauricio Siu
175e84f50e refactor: update container id 2024-08-13 23:29:51 -06:00
Mauricio Siu
efb646c43d Merge pull request #346 from Dokploy/282-add-option-to-revert-dokploy-version-opt-in-based-auto-updates
282 add option to revert dokploy version opt in based auto updates
2024-08-13 23:12:57 -06:00
Mauricio Siu
fa950dae39 fix(settings): prevent to download the latest image on reload 2024-08-13 23:04:21 -06:00
Mauricio Siu
712ad25e7a feat(permission): add permission to access to ssh key section 2024-08-13 22:19:04 -06:00
Mauricio Siu
35a41e774e Merge pull request #343 from Tuluobo/bugfix/delete_service_with_container
fix(ui): close dialog after templete selected & add config editor line wrapping
2024-08-13 22:02:33 -06:00
Mauricio Siu
c2ac193fbe Merge pull request #344 from Dokploy/340-dokploy-postgres-and-redis-are-exposed
fix(services): set published port 0 to prevent swarm assign random po…
2024-08-13 21:56:12 -06:00
Mauricio Siu
ce3c89a715 Merge pull request #342 from Dokploy/326-dokploy-doesnt-persist-registry-tokens
fix(docker): add root docker to prevent registry delete in each resta…
2024-08-13 21:52:07 -06:00
Mauricio Siu
96f7206a1d fix(services): set published port 0 to prevent swarm assign random ports #340 2024-08-13 21:49:21 -06:00
Mauricio Siu
b7ace886f3 fix(docker): add root docker to prevent registry delete in each restart/update dokploy server #326 2024-08-13 20:40:34 -06:00
Mauricio Siu
5dc330eaa3 Merge pull request #341 from Dokploy/337-incorrect-github-apps-install-link-when-app-name-contain-special-characters
fix(github): use github url to install the application #337
2024-08-13 20:04:46 -06:00
Mauricio Siu
b7f5bee2f8 fix(github): use github url to install the application #337 2024-08-13 19:57:10 -06:00
Tuluobo
19ee5f073b feat: add line wrapping for traefik config editor 2024-08-13 20:51:50 +08:00
Tuluobo
1fd4a6ae80 refactor: close dialog after selected template 2024-08-13 19:38:09 +08:00
Mauricio Siu
3c8a412014 Merge pull request #339 from Vladislav-CS/patch-1
fix: responsive design in the project settings page
2024-08-10 16:00:06 -06:00
Vladislav Popovič
eee617719b Update show-deployments.tsx 2024-08-10 22:19:15 +03:00
Mauricio Siu
fc611946a6 Merge pull request #334 from Vladislav-CS/fix-typos
fix: typos
2024-08-08 10:59:22 -06:00
Vladislav-CS
bd84793780 feat: create environment variable where possible 2024-08-08 19:10:53 +03:00
Vladislav-CS
9922c0ed66 Initial commit 2024-08-08 18:58:00 +03:00
Vladislav Popovič
af13c84968 Update add-template.tsx 2024-08-08 18:21:35 +03:00
Vladislav Popovič
ddb78ef8dd Update show-ssh-keys.tsx 2024-08-08 18:17:12 +03:00
Mauricio Siu
3590f3bed2 Merge pull request #332 from Dokploy/canary
v0.6.2
2024-08-07 21:48:49 -06:00
Mauricio Siu
c70089ee53 refactor(logs): add error log in build application 2024-08-07 21:41:25 -06:00
Mauricio Siu
161e479a0b chore(version): bump version 2024-08-07 21:08:42 -06:00
Mauricio Siu
bd735bfb64 Merge pull request #331 from Dokploy/322-git-submodules-are-not-cloned
fix(git): add --recursive-submodules flag
2024-08-07 21:09:29 -06:00
Mauricio Siu
85c814620e Merge pull request #330 from Dokploy/fix/add-validation-git-source
fix(git): don't add to ssh known host when is a http or https url
2024-08-07 20:59:42 -06:00
Mauricio Siu
fb013fe4ec fix(git): add --recursive-submodules flag 2024-08-07 20:58:16 -06:00
Mauricio Siu
90a1bd9027 fix(git): don't add to ssh known host when is a http or https url 2024-08-07 20:51:27 -06:00
Mauricio Siu
610ef8f35c Update README.md 2024-08-05 10:23:46 -06:00
Mauricio Siu
9b2fcaea31 Merge pull request #317 from Dokploy/canary
v0.6.1
2024-08-03 15:46:05 -06:00
Mauricio Siu
2ffa95b9fa chore(version): bump version 2024-08-03 15:34:09 -06:00
Mauricio Siu
559872c4e4 Merge pull request #316 from Dokploy/315-docs-website-error-dialogclose-must-be-used-within-dialog
fix(docs): update dependencies
2024-08-03 15:32:36 -06:00
Mauricio Siu
85642ed5f2 refactor(docs): add volumes deployments 2024-08-03 15:14:02 -06:00
Mauricio Siu
8bf701d2f2 fix(docs): update dependencies 2024-08-03 15:06:47 -06:00
Mauricio Siu
38809a2034 Merge pull request #314 from Dokploy/fix/add-file-path
fix(template): add missing file path
2024-08-03 15:05:31 -06:00
Mauricio Siu
4bd6ec2232 fix(templates): use filePath instead of mountPath 2024-08-03 14:59:20 -06:00
Mauricio Siu
95899b7208 fix(templates): update path file path 2024-08-02 13:45:20 -06:00
Mauricio Siu
ac26bb95e3 fix(template): add missing file path 2024-08-02 13:40:25 -06:00
Mauricio Siu
5abcc82215 Merge pull request #312 from Dokploy/canary
v0.6.0
2024-08-02 10:47:43 -06:00
Mauricio Siu
16791a9f4b refactor: remove console log 2024-08-02 10:44:39 -06:00
Mauricio Siu
54ab6e3436 chore(version): bump version 2024-08-02 10:36:06 -06:00
Mauricio Siu
f5ca72ddd7 refactor: add default value to context path 2024-08-02 10:18:41 -06:00
Mauricio Siu
7245e7dfd7 Merge pull request #310 from Dokploy/fix/docker-context
fix(docker-context): add docker context path #284
2024-08-02 09:52:27 -06:00
Mauricio Siu
547d149987 Merge pull request #311 from kucherenko/canary
docs(templates): add documentation about teable and open webui templates
2024-08-02 09:52:05 -06:00
apk
3b2d29514c fix(docs): type in description 2024-08-02 11:20:45 +03:00
apk
115abd378f docs(templates): add information about open webui and about teable to documention 2024-08-02 11:18:32 +03:00
Mauricio Siu
9c101d78d1 Merge pull request #305 from kucherenko/canary
feat(template): add teable template
2024-08-02 01:06:53 -06:00
apk
610f8fa5bc fix(teable): remove network 2024-08-02 09:57:36 +03:00
Mauricio Siu
e201bf12f8 fix(test): add missing prop 2024-08-02 00:28:17 -06:00
Mauricio Siu
bf872200a7 refactor(docker): add type password to input 2024-08-02 00:25:44 -06:00
Mauricio Siu
abc6906349 fix(docker-context): add docker context path #284 2024-08-02 00:22:37 -06:00
apk
9440fd89ae fix(teable): round port for public database 2024-08-02 08:29:53 +03:00
apk
bce1eb8907 fix(teable): port for public database 2024-08-02 08:27:17 +03:00
apk
4bf44b3275 fix(docker-compose): issue with volumes, issue with database connection 2024-08-01 22:05:36 +03:00
Andrey Kucherenko
06355ff089 fix(taeble): version and env variables 2024-08-01 19:27:07 +03:00
Mauricio Siu
95ecf4fe21 Merge pull request #309 from ca110us/canary
fix: align entry point names in configs
2024-08-01 10:19:45 -06:00
ian
d50a6ce76f fix: align entry point names in configs 2024-08-01 23:53:53 +08:00
Mauricio Siu
2d951e0b1f Merge pull request #307 from Dokploy/306-fix-containers-are-deleted-when-dokploy-server-restart
fix(swarm): remove restart policy #306
2024-08-01 09:53:44 -06:00
Mauricio Siu
416de9879b fix(swarm): remove restart policy #306 2024-08-01 09:31:58 -06:00
Mauricio Siu
082aff58a9 chore: add ref query to links 2024-08-01 09:12:25 -06:00
Mauricio Siu
b74666fc2f Merge pull request #304 from lorenzomigliorero/feat/static-buildtype
feat: static buildtype
2024-08-01 09:11:02 -06:00
Andrey Kucherenko
dc626f1a94 chore(lint): fix formating 2024-08-01 13:00:03 +03:00
Andrey Kucherenko
533a5e490f feat(template): add teable template (one more no/low-code database) 2024-08-01 12:13:36 +03:00
Lorenzo Migliorero
cf54e4f5c2 feat: add static migration 2024-08-01 11:10:52 +02:00
Lorenzo Migliorero
d84c808887 feat: add build static 2024-08-01 11:10:28 +02:00
Andrey Kucherenko
89cd35adc6 chore(gitignore): add .idea folder to gitignore file 2024-08-01 11:34:09 +03:00
Mauricio Siu
6299385bb4 Merge pull request #297 from lorenzomigliorero/feat/static-build-phase
feat: new publish directory flag
2024-08-01 02:28:37 -06:00
Lorenzo Migliorero
e6f9867500 fix: error handling 2024-08-01 10:13:29 +02:00
Mauricio Siu
ee855452e3 Merge pull request #303 from Dokploy/canary
chore: add slash to version
2024-08-01 02:06:43 -06:00
Mauricio Siu
1391c4e3d6 chore: add slash to version 2024-08-01 02:04:57 -06:00
Mauricio Siu
d000b526d3 Merge pull request #302 from Dokploy/canary
v0.5.1
2024-08-01 01:58:15 -06:00
Mauricio Siu
fa3f2ff867 chore(version): bump version 2024-08-01 01:47:43 -06:00
Mauricio Siu
8d1ddf685b Merge pull request #301 from Dokploy/feat/docker-images-apps
Feat: add build and publish docs & website
2024-08-01 01:10:39 -06:00
Mauricio Siu
b45c2d3538 refactor: remove branch 2024-08-01 01:09:14 -06:00
Mauricio Siu
5888494fcc refactor: update push branches 2024-08-01 01:05:14 -06:00
Mauricio Siu
679c3238e2 refactor: update dockerfile 2024-08-01 01:04:10 -06:00
Mauricio Siu
7547f5ec27 refactor: add deploy 2024-08-01 00:58:41 -06:00
Mauricio Siu
e7051d2bd1 refactor: update dockerfile 2024-08-01 00:41:06 -06:00
Mauricio Siu
f0a409c777 refactor: update 2024-08-01 00:40:01 -06:00
Mauricio Siu
32ee2364c8 refactor: update dockerfile 2024-08-01 00:35:58 -06:00
Mauricio Siu
eb42277c49 refactor: add pnpm install filter 2024-08-01 00:31:26 -06:00
Mauricio Siu
f9afca7ffd refactor: update branch 2024-08-01 00:27:23 -06:00
Mauricio Siu
c43af85c7c refactor: add deploy.yml 2024-08-01 00:26:25 -06:00
Mauricio Siu
19e5d1bacc refactor: add nixpacks toml 2024-08-01 00:13:48 -06:00
Mauricio Siu
2276f11019 Merge pull request #299 from fuma-nama/canary
Improve Open Graph Image on main site
2024-07-31 21:11:26 -06:00
Mauricio Siu
5ad1ba8985 Merge pull request #287 from lorenzomigliorero/fix/remove-path-prefix
feat: keep path prefix only if different than /
2024-07-31 21:00:28 -06:00
Mauricio Siu
1d91131d9a Merge pull request #286 from lorenzomigliorero/fix/server-traefik-config
fix: server traefik config https middleware
2024-07-31 20:57:36 -06:00
Lorenzo Migliorero
1460a667e7 fix: revert pkg json 2024-07-31 21:42:52 +02:00
Mauricio Siu
2291e8d9f5 Merge pull request #296 from steamsets/fix-alt-name
chore: update readme.md with alt names
2024-07-31 12:11:46 -06:00
Fuma Nama
f64deb7976 Replace OG Image 2024-08-01 01:32:00 +08:00
Fuma Nama
b1b0dc3066 Delete apps/website/public/og.png 2024-08-01 01:31:17 +08:00
Fuma Nama
ac30a409e5 Add new og image 2024-08-01 01:30:17 +08:00
Lorenzo Migliorero
3fdd3ddc74 fix: missing type 2024-07-31 19:27:11 +02:00
Lorenzo Migliorero
6ed379243e feat: add publish directory flag 2024-07-31 19:08:34 +02:00
Flo
479dabc8e8 Update README.md
Signed-off-by: Flo <53355483+Flo4604@users.noreply.github.com>
2024-07-31 11:39:23 +02:00
Lorenzo Migliorero
5aaa1e55f9 fix: cert condition 2024-07-31 09:58:57 +02:00
Mauricio Siu
288af26b00 chore: add discord server 2024-07-31 00:46:51 -06:00
Mauricio Siu
27256c609a refactor: add validations in domains 2024-07-30 23:31:05 -06:00
Mauricio Siu
c4d59177bf refactor: update domain 2024-07-30 23:20:54 -06:00
Mauricio Siu
3c8ca2b012 feat(domains): add domains to each docker compose service #216 2024-07-30 23:16:52 -06:00
Lorenzo Migliorero
88a1bee22c feat: exclude vscode settings 2024-07-30 14:08:42 +02:00
Lorenzo Migliorero
5491653fe9 feat: exclude vscode settings 2024-07-30 14:07:43 +02:00
Lorenzo Migliorero
a6cef7d601 feat: rebuild pnpm lock file 2024-07-30 13:11:31 +02:00
Lorenzo Migliorero
efc3c85d55 feat: revert change 2024-07-30 13:09:32 +02:00
Lorenzo Migliorero
75f9ccb85c fix: restore path 2024-07-30 13:05:37 +02:00
Lorenzo Migliorero
7abd14b6bc feat: monorepo merge 2024-07-30 13:05:06 +02:00
Lorenzo Migliorero
62bbf2da7c Merge branch 'canary' of github.com:Dokploy/dokploy into fix/server-traefik-config 2024-07-30 13:03:45 +02:00
Lorenzo Migliorero
340621b898 Merge branch 'canary' of github.com:Dokploy/dokploy into fix/remove-path-prefix 2024-07-30 12:56:53 +02:00
Mauricio Siu
1e212d4e78 Merge pull request #293 from Dokploy/fix/add-zod-object-ssh-key
fix(swager): add zod object in generate ssh key
2024-07-30 00:43:05 -06:00
Mauricio Siu
425c493889 fix(swager): add zod object in generate ssh key 2024-07-30 00:27:34 -06:00
Mauricio Siu
5280c861e8 Feat/monorepo (#292)
* feat(create-turbo): apply official-starter transform

* refactor: move folder

* wip: monorepo

* feat: add builf

* refactor: add pr

* update

* add .env

* refactor: update build

* refactor: update build docker

* refactor: add progress plain

* refactor: remove node pty

* refactor: remove

* remove

* refactor: update

* refacotr: uopdate

* refactor: add remix app

* add env

* refactor: add pnpm start

* refactor: remove

* refactor: remove folders

* refactor: remove .dockerfile

* chore: update biome

* test

* choe: add husky

* remove .docker folder

* feat: add docs website

* refactor: add husky

* chore(version): bump version

* refactor: add new changes

* refactor: update circle path

* refactor: update

* refactor: update

* refactor: update dockerfile

* refactor: update dockerfile

* refactor: update command

* refactor: update

* refactor: update dockerfile

* refactor: add tsx

* refactor: update dockerfile

* refactor: add deps

* refactor: up[date

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: yuodate

* refactor: remove

* refactor: uncomment

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: updare

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: imprt

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: remove

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: change path

* refactor: update

* refactor: update

* refactor: upoadte

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: add

* refactor: update

* refactor: update

* refactor: add

* refactor: update

* refactor: remove

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: removed

* refactor: update

* refactor: update

* refactor: update

* refactor: add config

* refactor: update

* refactor: add

* refactor: update

* refactor: update

* refactor: remove

* refactor: update

* refactor: remove

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: add docs

* refactor: update

* refactor: add website

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: add ignore builds

* refactor: update

* refactor: update

* refactor: add

* refactor: update

* refactor: update

* refactor: remove needs

* refactor: update

* refactor: update

* refactor: add config

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: remove

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: add

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: upodate

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update

* refactor: update package json

* refactor: add biome

* refactor: add sponsors

* refactor: update

* refactor: update

* refactor: remove

* refactor: update

* refactor: update

* refactor: update

* refactor: update scripts

* refactor: remove

* refactor: update

* refactor: remove

---------

Co-authored-by: Turbobot <turbobot@vercel.com>
2024-07-29 23:08:23 -06:00
Lorenzo Migliorero
797931dfe9 feat: remove path prefix if different than / 2024-07-29 16:31:49 +02:00
Lorenzo Migliorero
cc39036479 fix: server traefik config 2024-07-29 16:21:50 +02:00
Mauricio Siu
9bf88b90c3 Merge pull request #280 from Dokploy/canary
v0.5.0
2024-07-27 15:20:43 -06:00
Mauricio Siu
947d2217df chore(version): bump version 2024-07-27 15:05:31 -06:00
Mauricio Siu
9eba4f8b84 Merge pull request #279 from Dokploy/fix/remove-expose-port-traefik
feat(traefik): add toggle for disable the traefik dashboard
2024-07-27 13:15:00 -06:00
Mauricio Siu
f0d0e4c1e2 feat(traefik): add toggle for disable the traefik dashboard 2024-07-27 13:09:20 -06:00
Mauricio Siu
24cb47bcb1 Merge pull request #276 from lorenzomigliorero/feat/shared-ssh
feat: shared ssh
2024-07-27 12:39:33 -06:00
Lorenzo Migliorero
9cf4a5e7a3 Merge branch 'feat/shared-ssh' of github.com:lorenzomigliorero/dokploy into feat/shared-ssh 2024-07-27 19:57:16 +02:00
Lorenzo Migliorero
7b91d67655 feat: remove -R from canary and prod shell scripts 2024-07-27 19:57:10 +02:00
Mauricio Siu
ca0acf0445 refactor: set SSH path to permission 700 2024-07-27 10:11:46 -06:00
Lorenzo Migliorero
576ff02773 refactor: change ssh private key permission to 600 2024-07-27 11:55:44 +02:00
Lorenzo Migliorero
d8b28107cd refactor: prefer write file 2024-07-27 11:51:16 +02:00
Mauricio Siu
9898cac2f5 Merge pull request #277 from Dokploy/refactor/spawn-async
refactor: add error message in error builder
2024-07-27 00:49:44 -06:00
Mauricio Siu
dd9bed4c2b refactor: add error message in error builder 2024-07-27 00:08:40 -06:00
Lorenzo Migliorero
14c8ae675a fix: linting 2024-07-26 10:14:13 +02:00
Lorenzo Migliorero
bda0689e18 fix: ssh permission 2024-07-26 10:11:38 +02:00
Lorenzo Migliorero
7e39be4ca1 fix: migrations 2024-07-26 09:51:35 +02:00
Mauricio Siu
2e3a7c6164 Merge branch 'canary' into feat/shared-ssh 2024-07-26 01:14:55 -06:00
Mauricio Siu
f02f75e3a0 Merge pull request #267 from lorenzomigliorero/feat/condition-certificate
feat: condition domain certificate field
2024-07-26 01:13:43 -06:00
Mauricio Siu
fe51dd6b0a refactor: remove flush sync 2024-07-26 01:04:52 -06:00
Lorenzo Migliorero
2724336cad feat: ssh key type and whitespaces 2024-07-25 23:32:52 +02:00
Lorenzo Migliorero
12bd017d07 fix: type 2024-07-25 22:53:48 +02:00
Lorenzo Migliorero
a2eff67d44 feat: generate ssh key 2024-07-25 22:52:39 +02:00
Lorenzo Migliorero
71555a15f8 feat: last used at 2024-07-25 22:15:40 +02:00
Lorenzo Migliorero
c681aa2e9f feat: compose app 2024-07-25 22:10:35 +02:00
Lorenzo Migliorero
1f81ebd4fe feat: ssh keys filesystel 2024-07-25 20:16:49 +02:00
Lorenzo Migliorero
d243470029 feat: link field with application 2024-07-25 19:32:02 +02:00
Mauricio Siu
054e581023 Merge pull request #271 from Dokploy/262-ssh-keys-are-not-reusable-after-a-dokploy-update
refactor(directories): add 600 permissions to SSH_PATH #262
2024-07-25 09:52:08 -06:00
Lorenzo Migliorero
f866250c25 feat: new table and crud operations 2024-07-25 15:19:03 +02:00
Lorenzo Migliorero
ee58672d58 refactor: dry validation rules 2024-07-25 11:03:14 +02:00
Mauricio Siu
135894da2a Merge branch 'canary' into 262-ssh-keys-are-not-reusable-after-a-dokploy-update 2024-07-25 02:10:51 -06:00
Mauricio Siu
06c8688ddd Merge pull request #269 from binaryYuki/canary
fix: Ensure Proper Permissions for acme.json in Traefik Configuration
2024-07-25 02:10:08 -06:00
Mauricio Siu
d8474b8aa3 Merge pull request #273 from Dokploy/258-when-an-ipv6-address-is-available-the-user-may-be-directed-to-sign-into-a-url-which-will-not-work-for-them
refactor(script): make ipv4 first and format the url when is ipv6 #258
2024-07-25 02:06:42 -06:00
Mauricio Siu
9a4b474cdc refactor(traefik-setup): change order of chmodsync 2024-07-25 02:04:54 -06:00
Mauricio Siu
1519a71535 refactor(script): make ipv4 first and format the url when is ipv6 #258 2024-07-25 01:49:41 -06:00
Mauricio Siu
9e47103131 refactor(script): make ipv4 first and format the url when is ipv6 #258 2024-07-25 01:48:52 -06:00
Yuki
ef689f06d6 Update traefik-setup.ts 2024-07-25 15:25:04 +08:00
Yuki
54c7572447 check if exist
Check if the file already exist, if yes modify its mode
2024-07-25 15:18:59 +08:00
Lorenzo Migliorero
4cacc6b3d1 fix: type 2024-07-25 09:15:13 +02:00
Mauricio Siu
8b193d4317 Merge pull request #272 from Dokploy/fix/templates-volumes
fix(templates): change path of volumes to be in files folder to prevent the volumes delete in each deploy
2024-07-25 01:11:23 -06:00
Mauricio Siu
e72add74c3 fix(templates): change path of volumes to be in files folder to prevent delete the volumes 2024-07-25 01:02:10 -06:00
Lorenzo Migliorero
115c8641e7 fix: nullable type 2024-07-25 08:59:10 +02:00
Mauricio Siu
0af532f87e refactor(directories): add 600 permissions to SSH_PATH #262 2024-07-25 00:51:15 -06:00
Mauricio Siu
d1bd2b29fe Merge pull request #270 from Dokploy/fix/undefined-host-databases
fix(databases): add ip to useeffect deps
2024-07-25 00:00:00 -06:00
Mauricio Siu
734a6607c8 fix(databases): add ip to useeffect deps 2024-07-24 23:31:03 -06:00
Mauricio Siu
d3a2b03bb7 Merge pull request #268 from lorenzomigliorero/fix/terminal-select-text
fix: terminal monospace font
2024-07-24 23:16:16 -06:00
Mauricio Siu
9a1436d0ae Merge pull request #265 from Dokploy/feat/replace-docker-builder
refactor(docker-build): replace docker build with the command
2024-07-24 21:42:59 -06:00
Yuki
087e2c81cc accept suggestion by coderabbit
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-07-25 11:34:18 +08:00
Yuki
32f35a6ca0 Update traefik-setup.ts 2024-07-25 11:25:28 +08:00
Lorenzo Migliorero
7fd35999b1 fix: terminal text selectable 2024-07-24 19:38:25 +02:00
Lorenzo Migliorero
fa5b75e6fb fix: type 2024-07-24 19:01:18 +02:00
Lorenzo Migliorero
7262e0debe Merge branch 'canary' of github.com:Dokploy/dokploy into feat/condition-certificate 2024-07-24 18:57:55 +02:00
Lorenzo Migliorero
13c686c228 feat: condition certificate 2024-07-24 18:47:52 +02:00
Mauricio Siu
083bb7b87d Merge pull request #264 from lorenzomigliorero/fix/http-to-https
fix: http to https
2024-07-24 02:45:27 -06:00
Lorenzo Migliorero
1b7ecd5a41 refactor: remove comment 2024-07-24 10:39:15 +02:00
Mauricio Siu
56b52b3f9c refactor(docker-build): replace docker build with the command 2024-07-24 00:04:59 -06:00
Lorenzo Migliorero
88f67b1c71 test: reset baseapp 2024-07-23 21:06:57 +02:00
Lorenzo Migliorero
75bd10cbd5 fix: http to https 2024-07-23 20:55:35 +02:00
Mauricio Siu
d3397cfbd0 Merge pull request #263 from lorenzomigliorero/fix/update-redirect
fix: update redirect
2024-07-23 10:11:23 -06:00
Lorenzo Migliorero
a4bf48fa68 fix: update redirect 2024-07-23 14:34:46 +02:00
Mauricio Siu
dfe3294088 Merge pull request #249 from lorenzomigliorero/feat/buildargs
feat: buildargs
2024-07-22 21:19:14 -06:00
Mauricio Siu
5b1ca4eafc refactor: rename form 2024-07-22 21:13:57 -06:00
Mauricio Siu
82721251cc refactor: remove secrets 2024-07-22 21:12:26 -06:00
Mauricio Siu
cd051b72fc refactor: remove imports 2024-07-22 21:12:13 -06:00
Mauricio Siu
411070cfcc Merge pull request #260 from lorenzomigliorero/fix/docker-compose-monitoring
fix: docker compose monitoring
2024-07-22 20:24:58 -06:00
Lorenzo Migliorero
8230c1ba91 fix: docker compose monitoring 2024-07-22 22:43:47 +02:00
Lorenzo Migliorero
8b7df6ce16 refactor: single form 2024-07-22 22:17:24 +02:00
Lorenzo Migliorero
6d71eac221 revert: env file 2024-07-22 21:42:07 +02:00
Mauricio Siu
fd3e4a8bc7 Merge pull request #243 from barraudSamuel/feat/jellyfin
feat: add jellyfin template
2024-07-22 13:03:14 -06:00
Mauricio Siu
c13eb65b5a refactor: format 2024-07-22 12:58:14 -06:00
Samuel
bb13a09def Merge branch 'feat/jellyfin' of github.com:barraudSamuel/dokploy into feat/jellyfin 2024-07-22 20:35:12 +03:00
Samuel
94bcea36c6 feat: add jellyfin template 2024-07-22 20:34:26 +03:00
Mauricio Siu
028b9b3f7b Merge pull request #257 from lorenzomigliorero/fix/docker-compose-logs
fix: docker compose logs
2024-07-22 10:32:42 -06:00
Lorenzo Migliorero
b85639f98e fix: add apptype param 2024-07-22 17:42:31 +02:00
Lorenzo Migliorero
7c981b2aac fix: compose containers 2024-07-22 17:33:42 +02:00
Lorenzo Migliorero
59b072e7e0 feat: scope to dockerfile buildtype 2024-07-22 12:24:12 +02:00
Lorenzo Migliorero
6780fa9688 feat: add doc link 2024-07-22 12:21:51 +02:00
Lorenzo Migliorero
ff47a157c7 fix: split by new line char 2024-07-22 12:14:07 +02:00
Lorenzo Migliorero
3601abc4c1 feat: apply buildargs 2024-07-22 11:52:20 +02:00
Mauricio Siu
b1a48d4636 refactor: update job 2024-07-22 03:51:07 -06:00
Mauricio Siu
a15eb3b229 refactor: update jobs 2024-07-22 03:45:45 -06:00
Mauricio Siu
c34c4b244e Merge pull request #251 from Dokploy/canary
v0.4.0
2024-07-22 03:38:47 -06:00
Mauricio Siu
4991e4b1f2 chore(bump): upgrade version 2024-07-22 03:20:43 -06:00
Lorenzo Migliorero
b3b7439617 feat: add build-time variables form 2024-07-22 11:17:59 +02:00
Mauricio Siu
b7c061dcb4 Fix(Builds): Make docker builds 98% faster (#250)
Feat: add circle ci as a runner
2024-07-22 03:14:25 -06:00
Lorenzo Migliorero
e00cbaeb8a build: ignore vscode 2024-07-22 09:59:53 +02:00
Lorenzo Migliorero
655e29d96b feat: buildargs column 2024-07-22 09:59:12 +02:00
Lorenzo Migliorero
7240ff38f1 build: pkg push command 2024-07-22 09:58:49 +02:00
barraud-samuel
4a08bacba0 Merge branch 'Dokploy:canary' into feat/jellyfin 2024-07-22 08:37:17 +02:00
Samuel
54aaa511d5 feat: add jellyfin template 2024-07-22 09:20:16 +03:00
Mauricio Siu
701319efdd Merge pull request #248 from Dokploy/245-volumes-are-canceled-on-deployment
Fix(volumes):Make file mounts are persistent
2024-07-21 20:26:53 -06:00
Mauricio Siu
0fdf176648 test(drop): add code directory 2024-07-21 19:09:38 -06:00
Mauricio Siu
f62d835f57 Merge pull request #247 from lorenzomigliorero/build/pnpm-node-setup
build: pnpm, node and lock file versioning
2024-07-21 19:06:05 -06:00
Mauricio Siu
5bb4710952 Merge branch 'canary' into 245-volumes-are-canceled-on-deployment 2024-07-21 19:05:27 -06:00
Mauricio Siu
9b71ce9388 Merge branch 'canary' into 245-volumes-are-canceled-on-deployment 2024-07-21 18:59:54 -06:00
Mauricio Siu
175d1ec432 refactor: delete comments 2024-07-21 18:57:16 -06:00
Mauricio Siu
8454e4f781 refactor(volumes): rework files volumes to be more simple and persistent 2024-07-21 18:55:57 -06:00
Mauricio Siu
2e79c7230f refactor(volumes): rework volumes and paths 2024-07-21 18:02:42 -06:00
Lorenzo Migliorero
7ddd3bb8a0 build: update pkg engine 2024-07-22 01:51:01 +02:00
Lorenzo Migliorero
b889a9d248 Merge branch 'canary' of github.com:Dokploy/dokploy into build/pnpm-node-setup 2024-07-22 01:45:29 +02:00
Lorenzo Migliorero
fc21c96cd1 build: fix lock conflict 2024-07-22 01:44:03 +02:00
Lorenzo Migliorero
0341b19c9f build: pnpm and node versioning 2024-07-22 01:29:08 +02:00
Mauricio Siu
43095f2435 Merge pull request #246 from Dokploy/216-domains-for-services-created-via-template-1
Refactor: enable autodeploy by default
2024-07-21 12:43:09 -06:00
Samuel
ad696ea54a feat: add jellyfin template 2024-07-21 11:05:44 +03:00
Mauricio Siu
f6128bdf0c refactor(webhook): change autodeploy message 2024-07-21 01:36:41 -06:00
Mauricio Siu
6be6ec940a refactor(applications): enable autodeploy by default 2024-07-21 01:36:18 -06:00
Mauricio Siu
ba9fc59805 refactor(databases): show hide and show icon in enviroment tab 2024-07-21 01:35:52 -06:00
Mauricio Siu
63a1039439 Merge pull request #242 from Dokploy/131-support-for-folder-deployment-and-drag-n-drop
feat(drag-n-drop): add support for drag n drop projects via zip #131
2024-07-21 00:51:41 -06:00
Mauricio Siu
d52692c6a3 feat(drag-n-drop): add support for drag n drop projects via zip #131 2024-07-21 00:44:08 -06:00
Mauricio Siu
b4511ca7a2 Merge pull request #240 from Dokploy/227-add-support-for-environment-variables-during-dockerfile-build-process-in-dokploy
refactor(dockerfile): create .env file when using dockerfile #227
2024-07-20 16:23:04 -06:00
Mauricio Siu
a3c24f1f2a Merge pull request #239 from Dokploy/fix/databases-internal-url
refactor(databases): show ip in external connection instead of hostname
2024-07-20 16:18:26 -06:00
Mauricio Siu
ca599f27f7 refactor(dockerfile): create .env file when using dockerfile #227 2024-07-20 16:17:10 -06:00
Mauricio Siu
f36de7b2f5 refactor(databases): show ip in external connection instead of hostname 2024-07-20 15:23:44 -06:00
Mauricio Siu
0ce055c001 Merge pull request #238 from Dokploy/202-feature-categorize-templates-for-improved-ux
refactor(templates): add tag input selector
2024-07-20 15:15:48 -06:00
Mauricio Siu
fc011a5661 refactor(templates): add tag input selector 2024-07-20 15:10:00 -06:00
Mauricio Siu
60d6d781be Merge pull request #237 from Dokploy/220-update-default-cnb-builder-image-to-herokubuilder24
feat(heroku-buildpacks): upgrade heroku to 24 version
2024-07-20 14:30:38 -06:00
Mauricio Siu
9270739eb6 feat(heroku-buildpacks): upgrade heroku to 24 version 2024-07-20 14:13:55 -06:00
Mauricio Siu
87b87b85c0 Merge pull request #236 from Dokploy/fix/traefik-warnings-restart
fix(traefik): add try catch when starting service
2024-07-20 13:58:11 -06:00
Mauricio Siu
496fd40fa3 refactor: update husky 2024-07-20 13:52:38 -06:00
Mauricio Siu
25fe080582 fix(traefik): add try catch when starting service 2024-07-20 13:37:12 -06:00
Mauricio Siu
1c41091372 Merge pull request #234 from Dokploy/27-feature-implement-email-resend-functionality-on-build-failure
Feat: add notifications provider
2024-07-20 13:03:55 -06:00
Mauricio Siu
9230178005 chore: update biome format 2024-07-20 02:55:17 -06:00
Mauricio Siu
fd092f1248 chore: comment temporaly comitlint 2024-07-20 02:52:04 -06:00
Mauricio Siu
736c186a66 fix(notifications): adjust types 2024-07-20 02:46:05 -06:00
Mauricio Siu
3d348ee762 refactor(notifications): remove secure port 2024-07-20 02:43:33 -06:00
Mauricio Siu
6e78f49c2f refactor: update logo url 2024-07-20 01:04:30 -06:00
Mauricio Siu
e77b30671b refactor(emails): add logo image 2024-07-20 00:56:44 -06:00
Mauricio Siu
244e1227c4 chore(husky): update script 2024-07-20 00:54:01 -06:00
Mauricio Siu
9934dac203 chore(config): update commit lint 2024-07-20 00:31:45 -06:00
Mauricio Siu
44ee326057 refactor(notifications): change render to renderAsync in emails 2024-07-19 23:56:48 -06:00
Mauricio Siu
18f892096b refactor: remove unused var 2024-07-19 22:15:08 -06:00
Mauricio Siu
9954d5b209 refactor(notification): split functions for each notification actio 2024-07-19 21:57:46 -06:00
Mauricio Siu
e0bde5cec9 refactor(notifications): minimize send notifications in more reusable fn 2024-07-19 01:41:01 -06:00
Mauricio Siu
2d4eaeb8b5 feat(notifications): add emails and methos for each action 2024-07-19 01:02:48 -06:00
Mauricio Siu
787506fb6b Merge branch 'canary' into 27-feature-implement-email-resend-functionality-on-build-failure 2024-07-18 20:39:24 -06:00
Mauricio Siu
50c8c3a43a Merge pull request #231 from kdurek/feat/add-commitlint
feat: add commitlint
2024-07-18 20:23:41 -06:00
Krzysztof Durek
1f09c06274 feat: add commitlint 2024-07-18 12:06:13 +02:00
Mauricio Siu
bb59a0cd3f Merge pull request #230 from Dokploy/canary
v0.3.3
2024-07-18 00:11:10 -06:00
Mauricio Siu
1e4217315b chore(version): bump version 2024-07-17 23:05:28 -06:00
Mauricio Siu
b373aca0ff Merge pull request #228 from anh-ld/feat/add-input-copy-button
feat: add copy function to visibility input
2024-07-17 22:28:21 -06:00
Anh (Daniel) Le
87e90cb30b fix: use copy-to-clipboard for visibility input 2024-07-18 11:15:35 +07:00
Mauricio Siu
135fabb852 Merge pull request #229 from kdurek/feat/update-dockerfile-and-cicd
ci: split workflows to separate files
2024-07-17 13:01:12 -06:00
Krzysztof Durek
b0b5b94bb7 Merge branch 'canary' of https://github.com/kdurek/dokploy into feat/update-dockerfile-and-cicd 2024-07-17 20:28:04 +02:00
Mauricio Siu
8f1c1e5202 Merge pull request #226 from kdurek/fix/husky-on-prod
fix: disable husky only on production
2024-07-17 11:52:04 -06:00
Anh (Daniel) Le
e4c243d7a6 fix: format toggle visibility input 2024-07-18 00:15:43 +07:00
Anh (Daniel) Le
c3bca21d14 fix: remove redundant selection api 2024-07-17 18:55:40 +07:00
Krzysztof Durek
1befdb76e7 ci: pnpm gets version from package.json packageManager field 2024-07-17 12:38:49 +02:00
Krzysztof Durek
35652c5c53 build: split build into multiple stages for caching 2024-07-17 12:33:21 +02:00
Krzysztof Durek
9524609092 ci: split workflows to separate files 2024-07-17 12:32:33 +02:00
Anh (Daniel) Le
38c16fe839 feat: add copy function to visibility input 2024-07-17 14:59:16 +07:00
Mauricio Siu
c0587b9409 Update FUNDING.yml 2024-07-16 19:45:41 -06:00
Krzysztof Durek
e249e878f6 fix: disable husky only on production 2024-07-16 14:11:44 +02:00
Krzysztof Durek
2d64815c12 fix: disable husky only on production 2024-07-16 12:05:27 +02:00
Mauricio Siu
af11bc8cd2 chore: add dependencies 2024-07-16 01:16:02 -06:00
Mauricio Siu
6779dec1ff Merge branch 'canary' into 27-feature-implement-email-resend-functionality-on-build-failure 2024-07-16 01:14:58 -06:00
Mauricio Siu
191a6112ce feat(notifications: add app build error providerd 2024-07-16 01:11:45 -06:00
Mauricio Siu
1bf518f768 chore: update migration 2024-07-16 00:39:26 -06:00
Mauricio Siu
d0d4182fc1 Merge pull request #224 from Dokploy/fix/remove-husky
chore(husky): remove script
2024-07-15 21:21:11 -06:00
Mauricio Siu
736f7c2d77 chore(husky): remove script 2024-07-15 21:10:46 -06:00
Mauricio Siu
6e38508477 Merge pull request #219 from kdurek/feat/refactor-format-and-lint
feat: update configs
2024-07-15 20:45:00 -06:00
Mauricio Siu
afe8160d46 Update biome.json 2024-07-15 20:26:39 -06:00
Mauricio Siu
ceb4ae62e2 Update biome.json 2024-07-15 20:25:15 -06:00
Krzysztof Durek
67d0dd5bf7 fix: update test to not throw typescript errors 2024-07-15 14:36:48 +02:00
Krzysztof Durek
6e28545c3f feat: update continuous integration 2024-07-15 13:59:21 +02:00
Krzysztof Durek
382208ae13 Merge branch 'canary' of https://github.com/Dokploy/dokploy into feat/refactor-format-and-lint 2024-07-15 01:13:09 +02:00
Krzysztof Durek
906e8de13b chore: format whole repository with new configs 2024-07-15 01:08:18 +02:00
Krzysztof Durek
7a5c71cda3 feat: update configs 2024-07-15 01:02:18 +02:00
Mauricio Siu
7bc6d0777d Merge pull request #217 from kdurek/feat/umami-template
feat: add umami template
2024-07-14 13:05:27 -06:00
Krzysztof Durek
f684ba7b1f fix: change umami version 2024-07-14 20:42:26 +02:00
Mauricio Siu
86ed884162 Merge pull request #215 from eremannisto/214-clarify-error-message-for-naming-validation
Clarify error message for naming validation in `AppName`
2024-07-14 12:32:23 -06:00
Krzysztof Durek
4ff178ea34 feat: add umami template 2024-07-14 20:28:37 +02:00
Ere Männistö
2eb5c331a1 Clarify error message for naming validation 2024-07-14 15:23:54 +03:00
Mauricio Siu
79ad0818f5 feat(notifications): add build failed and invitation emails from react-email 2024-07-14 02:49:21 -06:00
Mauricio Siu
84c10eec66 chore: add open collective organizations 2024-07-13 00:48:49 -06:00
Mauricio Siu
61673a40e3 Merge pull request #212 from Dokploy/210-every-time-i-create-a-server-on-hetzner-it-does-not-work-after-restart
fix(#210): Make dokploy services automatically start when a crash or restart server
2024-07-13 00:40:49 -06:00
Mauricio Siu
363ba1d20e fix(#210): remove restartpolicy in order to automatically restart the services in any case 2024-07-12 23:35:51 -06:00
Mauricio Siu
5fadd73732 feat: implement test connection for all the providers 2024-07-12 01:29:24 -06:00
Mauricio Siu
44e6a117dd Merge pull request #208 from Dokploy/canary
v0.3.2
2024-07-11 23:21:32 -06:00
Mauricio Siu
86bb119052 chore(version): bump version 2024-07-11 21:24:36 -06:00
Mauricio Siu
54c70ff177 Merge pull request #206 from Dokploy/feat/add-constraints-dokploy-services
refactor(setup): add constraints to dokploy services
2024-07-10 22:47:22 -06:00
Mauricio Siu
eabe14e4c3 refactor(setup): add constraints to dokploy services 2024-07-10 22:40:13 -06:00
Mauricio Siu
342ff4b589 feat(notifications): add delete notification modal 2024-07-09 01:16:06 -06:00
Mauricio Siu
680811357b feat(notifications): WIP add schema and modal 2024-07-09 01:14:09 -06:00
Mauricio Siu
9d0edd810e Merge pull request #204 from henriklovhaug/canary
[Docs/style]: Fix minor spelling error
2024-07-08 10:30:09 -06:00
Henrik Tøn Løvhaug
35ff65a871 Fix spelling 2024-07-08 10:16:26 +02:00
Mauricio Siu
675fbb7692 Merge pull request #200 from ciocan/feat/listmonk
feat: listmonk template
2024-07-06 17:38:29 -06:00
Mauricio Siu
295bd06918 Update templates.ts 2024-07-06 17:17:14 -06:00
Mauricio Siu
89635fa27b Merge branch 'canary' into feat/listmonk 2024-07-06 17:16:01 -06:00
Mauricio Siu
60b19616c1 Update docker-compose.yml 2024-07-06 17:15:17 -06:00
Mauricio Siu
3884dc9259 Merge pull request #198 from ciocan/feat/doublezero
feat: doublezero template
2024-07-06 17:13:27 -06:00
Mauricio Siu
e8648732be Update index.ts 2024-07-06 17:07:19 -06:00
Mauricio Siu
0f0f32a40d Update index.ts 2024-07-06 17:06:40 -06:00
Radu Ciocan
1b91376f5e feat: listmonk template 2024-07-06 23:01:01 +01:00
Radu Ciocan
aa347abfcd fix: code review changes 2024-07-06 20:30:23 +01:00
Radu Ciocan
e49b190c32 Update templates/doublezero/docker-compose.yml
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
2024-07-06 20:13:12 +01:00
Mauricio Siu
bfdc73f8d1 Merge pull request #197 from Dokploy/canary
v0.3.1
2024-07-06 12:01:07 -06:00
Mauricio Siu
525a711c55 refactor(settings): throw error and log the error 2024-07-06 11:55:21 -06:00
Mauricio Siu
e0a0f97f70 refactor(settings): add console logs for errors 2024-07-06 11:34:33 -06:00
Radu Ciocan
66017c8623 fix: update template description 2024-07-06 14:34:30 +01:00
Radu Ciocan
bab93f8145 feat: doublezero template 2024-07-06 14:29:32 +01:00
Mauricio Siu
45aae520d8 refacto(github): comment github app 2024-07-05 22:48:32 -06:00
Mauricio Siu
c8f14c322e chore(version): bump version 2024-07-05 13:43:56 -06:00
Mauricio Siu
334466f28f Merge pull request #196 from Dokploy/fix/remove-registry-login-on-self-hosted
fix(registry): remove login on self hosted
2024-07-05 12:32:04 -06:00
Mauricio Siu
22328eeb83 fix(registry): remove login on self hosted 2024-07-05 12:24:13 -06:00
Mauricio Siu
c2201a304e Merge pull request #192 from kucherenko/canary
feat(open-webui): add open-webui template
2024-07-04 10:51:16 -06:00
Mauricio Siu
f77de1bc52 Update templates.ts 2024-07-04 10:43:30 -06:00
Andrey Kucherenko
74d6b2d591 Merge branch 'Dokploy:canary' into canary 2024-07-04 14:00:59 +03:00
Andrey Kucherenko
b7cc3283e2 chore(review): update code based on code review 2024-07-04 12:27:45 +03:00
Mauricio Siu
5dfa6c5194 Merge pull request #193 from Dokploy/fix/custom-internal-url-with-port
fix(git): set 22 port in git add host
2024-07-04 00:58:57 -06:00
Mauricio Siu
59d662396e fix(git): set 22 port in git add host 2024-07-04 00:39:11 -06:00
Mauricio Siu
cbfcae4ab6 Merge pull request #191 from DarkPhoenix2704/update-nocodb
chore: bump nocodb template version
2024-07-03 13:19:07 -06:00
Andrey Kucherenko
152a54b251 feat(open-webui): add open-webui template 2024-07-03 18:21:01 +03:00
DarkPhoenix2704
1113669bfd chore: bump version 2024-07-03 17:09:25 +05:30
Mauricio Siu
4d251271b9 refactor(webhook): use findAdmin() fn 2024-07-02 21:46:06 -06:00
Mauricio Siu
21263a217c Merge pull request #188 from Dokploy/feat/enable-autodeploy-github
feat(github-webhooks): #186 implement github autodeployment with zero…
2024-07-02 21:12:35 -06:00
Mauricio Siu
3322fdf937 Merge pull request #189 from slowlydev/feat/enable-autodeploy-github
Add web hook verification to GitHub Autodeploy
2024-07-02 18:02:06 -06:00
Slowlydev
b415e2fba1 feat(deploy-github): add webhook secret verification before deploying 2024-07-02 17:35:33 +02:00
Slowlydev
8888a4ce5c chore(deps): add @octokit/webhooks for verifying 2024-07-02 17:35:01 +02:00
Slowlydev
dd3ba7e836 feat(github-redirect): save webhook secret into database on redirect 2024-07-02 17:33:02 +02:00
Slowlydev
cb6d8fceb4 chore: add drizzle migrations for github webhook secret 2024-07-02 17:32:21 +02:00
Slowlydev
d8641b7b4e feat: add github webhook secret to admin schema 2024-07-02 17:31:38 +02:00
Mauricio Siu
997a8395b1 feat: add button to view github app 2024-07-02 00:11:40 -06:00
Mauricio Siu
d2420ed6e8 feat(github-webhooks): #186 implement github autodeployment with zero configuration 2024-07-01 23:43:08 -06:00
Mauricio Siu
64ada7020a Merge pull request #185 from Dokploy/canary
v0.3.0
2024-07-01 00:01:16 -06:00
Mauricio Siu
faf24dfa25 chore(version): bump version 2024-06-30 23:53:53 -06:00
Mauricio Siu
6f4bf428c7 Merge pull request #184 from Dokploy/feat/glitchtip
feat: add glitchtip template
2024-06-30 23:53:51 -06:00
Mauricio Siu
a43627d869 feat: add glitchtip template 2024-06-30 23:49:29 -06:00
Mauricio Siu
addd102d39 Merge pull request #180 from Dokploy/feat/templates
Feat/templates
2024-06-30 22:36:15 -06:00
Mauricio Siu
0d85fd0e3c feat: add metabase template 2024-06-30 22:31:23 -06:00
Mauricio Siu
86fc59d850 feat: add minio 2024-06-30 22:12:06 -06:00
Mauricio Siu
3cd3db6828 feat(tempaltes): add meilisearch, phpmyadmin and rocketchat 2024-06-30 21:39:24 -06:00
Mauricio Siu
2c6fd0f52b Merge branch 'canary' into feat/templates 2024-06-30 21:00:08 -06:00
Mauricio Siu
5fb682b58d Merge pull request #182 from DarkPhoenix2704/feat/nocodb-template
feat: nocodb template
2024-06-30 12:39:37 -06:00
DarkPhoenix2704
b77f330222 fix: use defined version 2024-07-01 00:01:16 +05:30
DarkPhoenix2704
f0b8f3eaa0 chore: update version 2024-07-01 00:01:16 +05:30
DarkPhoenix2704
36af22630b feat: nocodb template 2024-07-01 00:01:13 +05:30
Mauricio Siu
2d53a700f6 Merge pull request #175 from ephraimduncan/template/documenso
feat: add documenso as template
2024-06-30 01:20:18 -06:00
Mauricio Siu
00eeffee13 Merge pull request #176 from ephraimduncan/fix/calcom-template
fix: avoid using defined secrets in calcom template
2024-06-30 01:05:18 -06:00
Ephraim Atta-Duncan
7a32698031 fix: use version on image 2024-06-30 07:03:11 +00:00
Ephraim Atta-Duncan
9d834e1a79 fix: use hex instead of base64 for encryption variables 2024-06-30 07:00:29 +00:00
Ephraim Atta-Duncan
91819c2488 fix: use correct env var 2024-06-30 06:55:21 +00:00
Mauricio Siu
f64392469d refactor(compose): change error message 2024-06-30 00:42:00 -06:00
Mauricio Siu
889e72d21e refactor(templates): use port from env variable 2024-06-30 00:34:19 -06:00
Mauricio Siu
86165d1104 refactor(templates): remove comments 2024-06-30 00:33:08 -06:00
Mauricio Siu
54adab16cf feat(templates): add excalidraw 2024-06-30 00:32:14 -06:00
Mauricio Siu
2e3b0ddcde feat(templates): add appsmith 2024-06-30 00:24:16 -06:00
Mauricio Siu
ed0f3cadd6 feat(templates): add odoo template 2024-06-29 23:38:47 -06:00
Mauricio Siu
898880634a feat(template): add wordpress 2024-06-29 19:56:59 -06:00
Mauricio Siu
b4e154fb28 Merge pull request #177 from ephraimduncan/fix/template-dialog-background
fix: avoid black background on light theme
2024-06-29 19:39:48 -06:00
Mauricio Siu
2e6489d315 Merge pull request #178 from ephraimduncan/chore/remove-row-selection-count
chore: remove row selection count
2024-06-29 19:38:36 -06:00
Mauricio Siu
210fed30a2 feat(templates): add uptime kuma, directus, baserow, ghost, n8n 2024-06-29 19:14:46 -06:00
Ephraim Atta-Duncan
60521c1025 chore: remove row selection count because row selection has been disabled 2024-06-30 00:49:19 +00:00
Ephraim Atta-Duncan
1a496e35c0 fix: avoid black background on light theme 2024-06-30 00:37:20 +00:00
Ephraim Atta-Duncan
f37f98aade fix: avoid using defined secrets in calcom template 2024-06-30 00:33:49 +00:00
Ephraim Atta-Duncan
0eb7b3ecb1 chore: remove obselete version 2024-06-30 00:30:53 +00:00
Ephraim Atta-Duncan
1a7c602861 feat: add documenso as template 2024-06-30 00:28:53 +00:00
Mauricio Siu
4706adc0c0 Merge pull request #174 from Dokploy/canary
v0.2.5
2024-06-29 13:29:39 -06:00
Mauricio Siu
85f025c729 chore(version): bump version 2024-06-29 11:46:32 -06:00
Mauricio Siu
06005eb333 refactor(swagger): add dynamic hosty and protocol in client 2024-06-29 11:46:10 -06:00
Mauricio Siu
0c01efb249 Merge pull request #173 from Dokploy/fix/trpc-json-value
fix(API): integrate next handler for swagger UI
2024-06-28 22:48:55 -06:00
Mauricio Siu
7e9e9dc865 fix(trpc): add openApiHandler to api route 2024-06-28 22:40:13 -06:00
Mauricio Siu
b28bf5f9ec fix: add coalisence operator 2024-06-28 01:23:32 -06:00
Mauricio Siu
c071be6ad9 Merge pull request #172 from Dokploy/167-invalid-password-set-after-creating-a-redis-database
fix(#167): pass args in redis to require pass
2024-06-28 00:11:33 -06:00
Mauricio Siu
059a98c575 fix(#167): pass args in redis to require pass 2024-06-28 00:06:54 -06:00
Mauricio Siu
d2a07195b0 Merge pull request #171 from Dokploy/168-href-on-the-entire-project-card
refactor(#168): make project card be clickable everywhere
2024-06-27 23:13:07 -06:00
Mauricio Siu
4ff1b3c19f refactor(#168): make project card be clickable everywhere 2024-06-27 23:04:12 -06:00
Mauricio Siu
39abd7e374 Merge pull request #170 from Dokploy/147-add-commit-hash-and-commit-message-in-the-deployment-list
147 add commit hash and commit message in the deployment list
2024-06-27 22:41:56 -06:00
Mauricio Siu
899d7565f6 fix: remove token migration from user 2024-06-27 22:00:32 -06:00
Mauricio Siu
3cfc2d6cd8 feat(#147): add hash commit when deploying 2024-06-27 21:53:26 -06:00
Mauricio Siu
817fa91173 Merge pull request #166 from Dokploy/feat/wildcard-domains-generation
feat(#40):  traefik.me modals
2024-06-27 20:07:22 -06:00
Mauricio Siu
4d8a4f713d refactor: generate domains 2024-06-27 20:03:00 -06:00
Mauricio Siu
4865f4f969 feat(#40): add wildcards domains and traefik.me modals 2024-06-25 01:58:49 -06:00
Mauricio Siu
0b7feb5483 Merge pull request #163 from Dokploy/40-feature-request-automatically-generates-domains
40 feature request automatically generates domains
2024-06-24 01:15:59 -06:00
Mauricio Siu
1c139b9503 Merge pull request #162 from Dokploy/fix/make-databases-only-on-dokploy
fix: make databases be only available in manager
2024-06-24 01:13:33 -06:00
Mauricio Siu
d47b7e62e6 fix: make databases be only available in manager 2024-06-24 01:11:37 -06:00
Mauricio Siu
33940a345a refactor: make generate domain port be 3000 by default 2024-06-24 01:08:18 -06:00
Mauricio Siu
f230bda1f7 feat(#40): add domain generation by traefik.me 2024-06-24 00:47:40 -06:00
Mauricio Siu
687524d154 Update README.md 2024-06-23 19:46:54 -06:00
Mauricio Siu
e01d92d1d9 Merge pull request #161 from Dokploy/canary
v0.2.4
2024-06-23 19:40:45 -06:00
Mauricio Siu
8f0a4f0886 chore: bump version 2024-06-23 19:32:11 -06:00
Mauricio Siu
01794c7742 fix: correct url swagger api 2024-06-23 19:21:40 -06:00
Mauricio Siu
19bbe69ee3 Merge pull request #159 from Dokploy/refactor/update-trpc-openapi
Refactor/update trpc openapi
2024-06-23 13:17:23 -06:00
Mauricio Siu
92c4e769ab refactor: add tags to openAPI 2024-06-23 13:08:52 -06:00
Mauricio Siu
0801e91816 refactor: add dokploy trpc open api 2024-06-23 12:17:38 -06:00
Mauricio Siu
b360cc2af4 Merge pull request #158 from Dokploy/57-dokploy-api-or-cli
57 dokploy api or cli
2024-06-23 00:28:39 -06:00
Mauricio Siu
ba5d8feba2 remove file 2024-06-23 00:26:30 -06:00
Mauricio Siu
43be9d0171 refactor: remove console log 2024-06-22 23:49:04 -06:00
Mauricio Siu
a6bbf5d96b chore: remove unused dependencie 2024-06-22 22:59:06 -06:00
Mauricio Siu
7e6e43adfe remove 2024-06-22 22:57:52 -06:00
Mauricio Siu
e8a4611ab7 refactor: fix styles 2024-06-22 22:57:10 -06:00
Mauricio Siu
608db3d401 feat: add no expiration to token generated 2024-06-22 22:38:01 -06:00
Mauricio Siu
0add62f14d refactor: restrict swagger api by user access 2024-06-22 21:45:09 -06:00
Mauricio Siu
1754f63352 feat: add token access to user 2024-06-22 20:45:29 -06:00
Mauricio Siu
edcc7544fb feat: add access to API/CLI support 2024-06-22 20:23:06 -06:00
Mauricio Siu
1edf30546d refactor: remove swagger from server startup 2024-06-22 20:18:22 -06:00
Mauricio Siu
ad806437af feat: add openapi and swagger support 2024-06-22 20:17:55 -06:00
Mauricio Siu
f0eecf354b refactor: remove input 2024-06-22 18:27:16 -06:00
Mauricio Siu
c5ace67b3f Merge branch 'canary' into 57-dokploy-api-or-cli 2024-06-21 21:49:41 -06:00
Mauricio Siu
fe22890311 Merge pull request #156 from Dokploy/canary
v0.2.3
2024-06-21 11:50:40 -06:00
Mauricio Siu
3f2eeaf386 chore: bump version 2024-06-21 10:37:26 -06:00
Mauricio Siu
7826ba5bb5 Merge pull request #150 from Dokploy/149-backup-db-mongodb-to-s3-errors
fix(#149): use database user in mongodump
2024-06-19 00:49:32 -06:00
Mauricio Siu
bdc488e179 fix(#149): use database user in mongodump 2024-06-19 00:45:33 -06:00
Mauricio Siu
fc2abac989 chore: update banner image 2024-06-15 19:27:31 -06:00
Mauricio Siu
101bbd44d8 Update README.md 2024-06-15 04:08:32 -06:00
Mauricio Siu
68c2272e98 chore: update readme 2024-06-15 04:02:24 -06:00
Mauricio Siu
bc28464430 chore: update readme 2024-06-15 04:01:35 -06:00
Mauricio Siu
7df415a386 chore: add issue template 2024-06-15 03:15:02 -06:00
Mauricio Siu
9fbd3039a6 Merge pull request #141 from hehehai/hehehai/fix-env-editor-width-over
fix: env editor width overflow
2024-06-15 03:03:13 -06:00
hehehai
3c00937b94 fix: env editor width overflow 2024-06-13 20:42:46 +08:00
Mauricio Siu
ae4226531e Merge branch 'canary' into 57-dokploy-api-or-cli 2024-06-12 00:23:53 -06:00
Mauricio Siu
a57a776500 Merge pull request #137 from dharsanb/canary
Fix link to docs in README
2024-06-09 14:46:24 -06:00
dharsanb
323e2f54ba fix(readme): fixed readme link to docs 2024-06-10 01:29:19 +05:30
Mauricio Siu
2b7c7632f4 Merge pull request #136 from Dokploy/canary
v0.2.2
2024-06-08 22:06:39 -06:00
Mauricio Siu
7db662e332 chore: bump version 2024-06-08 21:17:55 -06:00
Mauricio Siu
cd1a686b59 refactor: update slugify compose 2024-06-08 18:40:34 -06:00
Mauricio Siu
78d573c4f3 Merge pull request #87 from hehehai/hehehai/feat-server-custom-name
feat: server support custom name
2024-06-08 16:49:15 -06:00
Mauricio Siu
0ef9b1427b chore: add slugify 2024-06-08 16:43:06 -06:00
Mauricio Siu
993d6b52f2 refactor: remove comments 2024-06-08 16:43:01 -06:00
Mauricio Siu
b9ab4a4d1a refactor: remove console log 2024-06-08 16:42:50 -06:00
Mauricio Siu
83153471b8 feat: add docker compose appName validation 2024-06-08 16:42:38 -06:00
Mauricio Siu
909e536f45 refactor: hide enviroment variables when viewing enviroment variables 2024-06-08 16:42:07 -06:00
Mauricio Siu
295cf50060 feat: add slug function 2024-06-08 16:41:46 -06:00
Mauricio Siu
dd16baf234 refactor: use slugify function 2024-06-08 16:41:38 -06:00
Mauricio Siu
72c366aa10 refactor: slugify and add hash to appName 2024-06-08 16:41:05 -06:00
Mauricio Siu
9a4f79f9e6 Merge branch 'canary' into hehehai/feat-server-custom-name 2024-06-08 14:37:51 -06:00
Mauricio Siu
30b81834fc Merge pull request #135 from Dokploy/130-how-to-make-dokploy-to-do-not-require-port-80-and-443-to-be-avilable
feat(#130): allow to pass enviroment variables to assign custom port …
2024-06-08 14:19:14 -06:00
Mauricio Siu
4e3aaa2a69 feat(#130): allow to pass enviroment variables to assign custom port on traefik 2024-06-08 14:13:43 -06:00
Mauricio Siu
3dcd89cc32 Merge pull request #128 from mariusihring/canary
Updated the database view to hide the password in the connection string
2024-06-08 14:05:16 -06:00
Mauricio Siu
41dc388bb0 refactor: update import 2024-06-08 13:40:15 -06:00
Mauricio Siu
44a592f7a7 refactor: simplify props 2024-06-08 13:36:02 -06:00
Mauricio Siu
1a4f5607dc refactor: add props to toggle and change colors of button toggle 2024-06-08 13:28:43 -06:00
Marius
d54c6e4ac9 feat: create input for toggleable inputs like passwords/connectinstrings 2024-06-08 11:55:05 +02:00
Marius
936cf76a4c fix: fix undefined error for database length 2024-06-07 13:04:30 +02:00
Marius
65254f1686 feat: Update the external database view to hide the password 2024-06-07 12:57:46 +02:00
Marius
b312b1d7e0 Updated the database view to hide the password in the connection string 2024-06-07 12:45:33 +02:00
Mauricio Siu
b9bff95c3d feat: wip cli token authentication 2024-06-05 22:42:11 -06:00
hehehai
fae180f157 feat: server support custom name 2024-05-24 15:43:05 +08:00
1336 changed files with 486457 additions and 43805 deletions

2
.github/FUNDING.yml vendored
View File

@@ -1,6 +1,6 @@
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
github: [siumauricio]
patreon: #
open_collective: dokploy
ko_fi: # Replace with a single Ko-fi username

95
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,95 @@
name: Bug Report
description: Create a bug report
labels: ["needs-triage🔍"]
body:
- type: markdown
attributes:
value: |
Before opening a new issue, please do a search of existing issues.
If you need help with your own project, you can start a discussion in the [Q&A Section](https://github.com/Dokploy/dokploy/discussions).
- type: textarea
attributes:
label: To Reproduce
description: |
A detailed, step-by-step description of how to reproduce the issue is required.
Please ensure your report includes clear instructions using numbered lists.
If possible, provide a link to a repository or project where the issue can be reproduced.
placeholder: |
1. Create a application
2. Click X
3. Y will happen
Make sure to:
- Use numbered lists to outline steps clearly.
- Include all relevant commands and configurations.
- Provide a link to a reproducible repository if applicable.
validations:
required: true
- type: textarea
attributes:
label: Current vs. Expected behavior
description: A clear and concise description of what the bug is, and what you expected to happen.
placeholder: "Following the steps from the previous section, I expected A to happen, but I observed B instead"
validations:
required: true
- type: textarea
attributes:
label: Provide environment information
description: Please provide the following information about your environment.
render: bash
placeholder: |
Operating System:
OS: Ubuntu 20.04
Arch: arm64
Dokploy version: 0.2.2'
VPS Provider: DigitalOcean, Hetzner, Linode, etc.
What applications/services are you tying to deploy?
eg - Database, Nextjs App, laravel, etc.
validations:
required: true
- type: dropdown
attributes:
label: Which area(s) are affected? (Select all that apply)
multiple: true
options:
- "Installation"
- "Application"
- "Databases"
- "Docker Compose"
- "Traefik"
- "Docker"
- "Remote server"
- "Local Development"
- "Cloud Version"
validations:
required: true
- type: dropdown
attributes:
label: Are you deploying the applications where Dokploy is installed or on a remote server?
options:
- "Same server where Dokploy is installed"
- "Remote server"
- "Both"
validations:
required: true
- type: textarea
attributes:
label: Additional context
description: |
Any extra information that might help us investigate.
placeholder: |
I tested on a DigitalOcean VPS with Ubuntu 20.04 and Docker version 20.10.12.
- type: dropdown
attributes:
label: Will you send a PR to fix it?
description: Let us know if you are planning to submit a pull request to address this issue.
options:
- "Yes"
- "No"
- "Maybe, need help"
validations:
required: true

5
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Questions?
url: https://github.com/Dokploy/dokploy/discussions
about: Ask your questions here.

View File

@@ -0,0 +1,44 @@
name: Feature Request
description: Suggest a new feature or improvement to the project
labels: ["enhancement"]
body:
- type: textarea
attributes:
label: What problem will this feature address?
description: A clear and concise description of what the problem is.
placeholder: |
I'm always frustrated when I can't do X
validations:
required: true
- type: textarea
attributes:
label: Describe the solution you'd like
description: A clear and concise description of what you want to happen.
placeholder: Add X to the core
validations:
required: true
- type: textarea
attributes:
label: Describe alternatives you've considered
description: A clear and concise description of any alternative solutions or features you've considered.
placeholder: |
Maybe use Y as a workaround?
validations:
required: true
- type: textarea
attributes:
label: Additional context
description: Add any other context or screenshots about the feature request here.
validations:
required: false
- type: dropdown
attributes:
label: Will you send a PR to implement it?
description: Let us know if you are planning to submit a pull request to implement this feature.
options:
- "Yes"
- "No"
- "Maybe, need help"
validations:
required: true

BIN
.github/sponsors/agentdock.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
.github/sponsors/american-cloud.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
.github/sponsors/hostinger.jpg vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

BIN
.github/sponsors/its.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
.github/sponsors/light-node.webp vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

BIN
.github/sponsors/logo.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
.github/sponsors/lxaer.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

BIN
.github/sponsors/mandarin.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
.github/sponsors/openalternative.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

BIN
.github/sponsors/startupfame.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
.github/sponsors/synexa.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

83
.github/workflows/create-pr.yml vendored Normal file
View File

@@ -0,0 +1,83 @@
name: Auto PR to main when version changes
on:
push:
branches:
- canary
permissions:
contents: write
pull-requests: write
jobs:
create-pr:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get version from package.json
id: package_version
run: echo "VERSION=$(jq -r .version ./apps/dokploy/package.json)" >> $GITHUB_ENV
- name: Get latest GitHub tag
id: latest_tag
run: |
LATEST_TAG=$(git ls-remote --tags origin | awk -F'/' '{print $3}' | sort -V | tail -n1)
echo "LATEST_TAG=$LATEST_TAG" >> $GITHUB_ENV
echo $LATEST_TAG
- name: Compare versions
id: compare_versions
run: |
if [ "${{ env.VERSION }}" != "${{ env.LATEST_TAG }}" ]; then
VERSION_CHANGED="true"
else
VERSION_CHANGED="false"
fi
echo "VERSION_CHANGED=$VERSION_CHANGED" >> $GITHUB_ENV
echo "Comparing versions:"
echo "Current version: ${{ env.VERSION }}"
echo "Latest tag: ${{ env.LATEST_TAG }}"
echo "Version changed: $VERSION_CHANGED"
- name: Check if a PR already exists
id: check_pr
run: |
PR_EXISTS=$(gh pr list --state open --base main --head canary --json number --jq '. | length')
echo "PR_EXISTS=$PR_EXISTS" >> $GITHUB_ENV
env:
GH_TOKEN: ${{ secrets.GH_PAT }}
- name: Create Pull Request
if: env.VERSION_CHANGED == 'true' && env.PR_EXISTS == '0'
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
git fetch origin main
git checkout canary
git push origin canary
gh pr create \
--title "🚀 Release ${{ env.VERSION }}" \
--body '
This PR promotes changes from `canary` to `main` for version ${{ env.VERSION }}.
### 🔍 Changes Include:
- Version bump to ${{ env.VERSION }}
- All changes from canary branch
### ✅ Pre-merge Checklist:
- [ ] All tests passing
- [ ] Documentation updated
- [ ] Docker images built and tested
> 🤖 This PR was automatically generated by [GitHub Actions](https://github.com/actions)' \
--base main \
--head canary \
--label "release" --label "automated pr" || true \
--reviewer siumauricio \
--assignee siumauricio
env:
GH_TOKEN: ${{ github.token }}

79
.github/workflows/deploy.yml vendored Normal file
View File

@@ -0,0 +1,79 @@
name: Build Docker images
on:
push:
branches: ["canary", "main", "feat/monitoring"]
jobs:
build-and-push-cloud-image:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push Docker image
uses: docker/build-push-action@v4
with:
context: .
file: ./Dockerfile.cloud
push: true
tags: |
siumauricio/cloud:${{ github.ref_name == 'main' && 'latest' || 'canary' }}
platforms: linux/amd64
build-args: |
NEXT_PUBLIC_UMAMI_HOST=${{ secrets.NEXT_PUBLIC_UMAMI_HOST }}
NEXT_PUBLIC_UMAMI_WEBSITE_ID=${{ secrets.NEXT_PUBLIC_UMAMI_WEBSITE_ID }}
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=${{ secrets.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY }}
build-and-push-schedule-image:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push Docker image
uses: docker/build-push-action@v4
with:
context: .
file: ./Dockerfile.schedule
push: true
tags: |
siumauricio/schedule:${{ github.ref_name == 'main' && 'latest' || 'canary' }}
platforms: linux/amd64
build-and-push-server-image:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push Docker image
uses: docker/build-push-action@v4
with:
context: .
file: ./Dockerfile.server
push: true
tags: |
siumauricio/server:${{ github.ref_name == 'main' && 'latest' || 'canary' }}
platforms: linux/amd64

161
.github/workflows/dokploy.yml vendored Normal file
View File

@@ -0,0 +1,161 @@
name: Dokploy Docker Build
on:
push:
branches: [main, canary, "1061-custom-docker-service-hostname"]
env:
IMAGE_NAME: dokploy/dokploy
jobs:
docker-amd:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set tag and version
id: meta
run: |
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
TAG="latest"
VERSION=$(node -p "require('./apps/dokploy/package.json').version")
elif [ "${{ github.ref }}" = "refs/heads/canary" ]; then
TAG="canary"
else
TAG="feature"
fi
echo "tags=${IMAGE_NAME}:${TAG}-amd64" >> $GITHUB_OUTPUT
- name: Prepare env file
run: |
cp apps/dokploy/.env.production.example .env.production
cp apps/dokploy/.env.production.example apps/dokploy/.env.production
- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}
docker-arm:
runs-on: ubuntu-24.04-arm
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set tag and version
id: meta
run: |
VERSION=$(node -p "require('./apps/dokploy/package.json').version")
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
TAG="latest"
VERSION=$(node -p "require('./apps/dokploy/package.json').version")
elif [ "${{ github.ref }}" = "refs/heads/canary" ]; then
TAG="canary"
else
TAG="feature"
fi
echo "tags=${IMAGE_NAME}:${TAG}-arm64" >> $GITHUB_OUTPUT
- name: Prepare env file
run: |
cp apps/dokploy/.env.production.example .env.production
cp apps/dokploy/.env.production.example apps/dokploy/.env.production
- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
platforms: linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
combine-manifests:
needs: [docker-amd, docker-arm]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Create and push manifests
run: |
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
VERSION=$(node -p "require('./apps/dokploy/package.json').version")
TAG="latest"
docker buildx imagetools create -t ${IMAGE_NAME}:${TAG} \
${IMAGE_NAME}:${TAG}-amd64 \
${IMAGE_NAME}:${TAG}-arm64
docker buildx imagetools create -t ${IMAGE_NAME}:${VERSION} \
${IMAGE_NAME}:${TAG}-amd64 \
${IMAGE_NAME}:${TAG}-arm64
elif [ "${{ github.ref }}" = "refs/heads/canary" ]; then
TAG="canary"
docker buildx imagetools create -t ${IMAGE_NAME}:${TAG} \
${IMAGE_NAME}:${TAG}-amd64 \
${IMAGE_NAME}:${TAG}-arm64
else
TAG="feature"
docker buildx imagetools create -t ${IMAGE_NAME}:${TAG} \
${IMAGE_NAME}:${TAG}-amd64 \
${IMAGE_NAME}:${TAG}-arm64
fi
generate-release:
needs: [combine-manifests]
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get version
id: get_version
run: |
VERSION=$(node -p "require('./apps/dokploy/package.json').version")
echo "version=$VERSION" >> $GITHUB_OUTPUT
- name: Create Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.get_version.outputs.version }}
name: ${{ steps.get_version.outputs.version }}
generate_release_notes: true
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

22
.github/workflows/format.yml vendored Normal file
View File

@@ -0,0 +1,22 @@
name: autofix.ci
on:
push:
branches: [canary]
pull_request:
branches: [canary]
jobs:
format:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup biomeJs
uses: biomejs/setup-biome@v2
- name: Run Biome formatter
run: biome format . --write
- uses: autofix-ci/action@551dded8c6cc8a1054039c8bc0b8b48c51dfc6ef

118
.github/workflows/monitoring.yml vendored Normal file
View File

@@ -0,0 +1,118 @@
name: Dokploy Monitoring Build
on:
push:
branches: [main, canary]
env:
IMAGE_NAME: dokploy/monitoring
jobs:
docker-amd:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set tag
id: meta
run: |
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
TAG="latest"
elif [ "${{ github.ref }}" = "refs/heads/canary" ]; then
TAG="canary"
else
TAG="feature"
fi
echo "tags=${IMAGE_NAME}:${TAG}-amd64" >> $GITHUB_OUTPUT
- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile.monitoring
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}
docker-arm:
runs-on: ubuntu-24.04-arm
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set
id: meta
run: |
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
TAG="latest"
elif [ "${{ github.ref }}" = "refs/heads/canary" ]; then
TAG="canary"
else
TAG="feature"
fi
echo "tags=${IMAGE_NAME}:${TAG}-arm64" >> $GITHUB_OUTPUT
- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile.monitoring
platforms: linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
combine-manifests:
needs: [docker-amd, docker-arm]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Create and push manifests
run: |
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
TAG="latest"
docker buildx imagetools create -t ${IMAGE_NAME}:${TAG} \
${IMAGE_NAME}:${TAG}-amd64 \
${IMAGE_NAME}:${TAG}-arm64
elif [ "${{ github.ref }}" = "refs/heads/canary" ]; then
TAG="canary"
docker buildx imagetools create -t ${IMAGE_NAME}:${TAG} \
${IMAGE_NAME}:${TAG}-amd64 \
${IMAGE_NAME}:${TAG}-arm64
else
TAG="feature"
docker buildx imagetools create -t ${IMAGE_NAME}:${TAG} \
${IMAGE_NAME}:${TAG}-amd64 \
${IMAGE_NAME}:${TAG}-arm64
fi

View File

@@ -1,59 +1,46 @@
name: Pull request
name: Pull Request
on:
pull_request:
branches:
- main
- canary
branches: [main, canary]
push:
branches:
- main
- canary
jobs:
build-app:
if: github.event_name == 'pull_request'
runs-on: ubuntu-20.04
strategy:
matrix:
node-version: [18.18.0]
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v3
with:
version: 8
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- name: Install dependencies
run: pnpm install
- name: Run Build
run: pnpm build
- name: Run Tests
run: pnpm run test
build-and-push-docker-on-push:
if: github.event_name == 'push'
lint-and-typecheck:
runs-on: ubuntu-latest
steps:
- name: Check out the code
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
node-version: 20.16.0
cache: "pnpm"
- run: pnpm install --frozen-lockfile
- run: pnpm run server:build
- run: pnpm typecheck
- name: Prepare .env file
run: |
cp .env.production.example .env.production
build-and-test:
needs: lint-and-typecheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 20.16.0
cache: "pnpm"
- run: pnpm install --frozen-lockfile
- run: pnpm run server:build
- run: pnpm build
- name: Build and push Docker image using custom script
run: |
chmod +x ./docker/push.sh
./docker/push.sh ${{ github.ref_name == 'canary' && 'canary' || '' }}
parallel-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 20.16.0
cache: "pnpm"
- run: pnpm install --frozen-lockfile
- run: pnpm run server:build
- run: pnpm test

69
.gitignore vendored
View File

@@ -1,57 +1,44 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
# Dependencies
node_modules
.pnp
.pnp.js
/redis-data
traefik.yml
.docker
.env.production
# testing
/coverage
/dist
/production-server
# database
/prisma/db.sqlite
/prisma/db.sqlite-journal
/logs
# Local env files
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
# next.js
/.next/
/out/
next-env.d.ts
/dokploy
/config
# Testing
coverage
# production
/build
# Turbo
.turbo
# misc
.DS_Store
*.pem
# Vercel
.vercel
# debug
# Build Outputs
.next/
out/
dist
# Debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
# local env files
# do not commit any .env files to git, except for the .env.example file. https://create.t3.gg/en/usage/env-variables#using-environment-variables
.env
.env*.local
# Editor
.idea
# vercel
.vercel
# Misc
.DS_Store
*.pem
# typescript
*.tsbuildinfo
# otros
/.data
/.main
*.lockb
*.rdb
.db

1
.nvmrc Normal file
View File

@@ -0,0 +1 @@
20.16.0

View File

@@ -1,10 +1,7 @@
# Contributing
Hey, thanks for your interest in contributing to Dokploy! We appreciate your help and taking your time to contribute.
Before you start, please first discuss the feature/bug you want to add with the owners and comunity via github issues.
We have a few guidelines to follow when contributing to this project:
@@ -17,9 +14,10 @@ We have a few guidelines to follow when contributing to this project:
## Commit Convention
Before you craete a Pull Request, please make sure your commit message follows the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification.
Before you create a Pull Request, please make sure your commit message follows the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification.
### Commit Message Format
```
<type>[optional scope]: <description>
@@ -29,75 +27,84 @@ Before you craete a Pull Request, please make sure your commit message follows t
```
#### Type
Must be one of the following:
* **feat**: A new feature
* **fix**: A bug fix
* **docs**: Documentation only changes
* **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
* **refactor**: A code change that neither fixes a bug nor adds a feature
* **perf**: A code change that improves performance
* **test**: Adding missing tests or correcting existing tests
* **build**: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
* **ci**: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
* **chore**: Other changes that don't modify `src` or `test` files
* **revert**: Reverts a previous commit
- **feat**: A new feature
- **fix**: A bug fix
- **docs**: Documentation only changes
- **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
- **refactor**: A code change that neither fixes a bug nor adds a feature
- **perf**: A code change that improves performance
- **test**: Adding missing tests or correcting existing tests
- **build**: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
- **ci**: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
- **chore**: Other changes that don't modify `src` or `test` files
- **revert**: Reverts a previous commit
Example:
```
feat: add new feature
```
## Setup
Before you start, please make the clone based on the `canary` branch, since the `main` branch is the source of truth and should always reflect the latest stable release, also the PRs will be merged to the `canary` branch.
We use Node v20.16.0 and recommend this specific version. If you have nvm installed, you can run `nvm install 20.16.0 && nvm use` in the root directory.
```bash
git clone https://github.com/dokploy/dokploy.git
cd dokploy
pnpm install
cp .env.example .env
cp apps/dokploy/.env.example apps/dokploy/.env
```
## Development
Is required to have **Docker** installed on your machine.
## Requirements
- [Docker](/GUIDES.md#docker)
### Setup
Run the command that will spin up all the required services and files.
```bash
pnpm run setup
pnpm run dokploy:setup
```
Run this script
```bash
pnpm run server:script
```
Now run the development server.
```bash
pnpm run dev
pnpm run dokploy:dev
```
Go to http://localhost:3000 to see the development server
Note: this project uses Biome. If your editor is configured to use another formatter such as Prettier, it's recommended to either change it to use Biome or turn it off.
## Build
```bash
pnpm run build
pnpm run dokploy:build
```
## Docker
To build the docker image
```bash
pnpm run docker:build
```
To push the docker image
```bash
pnpm run docker:push
```
@@ -134,10 +141,14 @@ curl -sSL https://nixpacks.com/install.sh -o install.sh \
```
```bash
# Install Buildpacks
curl -sSL "https://github.com/buildpacks/pack/releases/download/v0.32.1/pack-v0.32.1-linux.tgz" | tar -C /usr/local/bin/ --no-same-owner -xzv pack
# Install Railpack
curl -sSL https://railpack.com/install.sh | sh
```
```bash
# Install Buildpacks
curl -sSL "https://github.com/buildpacks/pack/releases/download/v0.35.0/pack-v0.35.0-linux.tgz" | tar -C /usr/local/bin/ --no-same-owner -xzv pack
```
## Pull Request
@@ -152,91 +163,17 @@ curl -sSL "https://github.com/buildpacks/pack/releases/download/v0.32.1/pack-v0.
Thank you for your contribution!
## Templates
To add a new template, go to `templates` folder and create a new folder with the name of the template.
To add a new template, go to `https://github.com/Dokploy/templates` repository and read the README.md file.
Let's take the example of `plausible` template.
### Recommendations
1. create a folder in `templates/plausible`
2. create a `docker-compose.yml` file inside the folder with the content of compose.
3. create a `index.ts` file inside the folder with the following code as base:
4. When creating a pull request, please provide a video of the template working in action.
```typescript
// EXAMPLE
import {
generateHash,
generateRandomDomain,
type Template,
type Schema,
} from "../utils";
export function generate(schema: Schema): Template {
// do your stuff here, like create a new domain, generate random passwords, mounts.
const mainServiceHash = generateHash(schema.projectName);
const randomDomain = generateRandomDomain(schema);
const secretBase = generateBase64(64);
const toptKeyBase = generateBase64(32);
const envs = [
// If you want to show a domain in the UI, please add the prefix _HOST at the end of the variable name.
`PLAUSIBLE_HOST=${randomDomain}`,
"PLAUSIBLE_PORT=8000",
`BASE_URL=http://${randomDomain}`,
`SECRET_KEY_BASE=${secretBase}`,
`TOTP_VAULT_KEY=${toptKeyBase}`,
`HASH=${mainServiceHash}`,
];
const mounts: Template["mounts"] = [
{
mountPath: "./clickhouse/clickhouse-config.xml",
content: `some content......`,
},
];
return {
envs,
mounts,
};
}
```
4. Now you need to add the information about the template to the `templates/templates.ts` is a object with the following properties:
**Make sure the id of the template is the same as the folder name and don't have any spaces, only slugified names and lowercase.**
```typescript
{
id: "plausible",
name: "Plausible",
version: "v2.1.0",
description:
"Plausible is a open source, self-hosted web analytics platform that lets you track website traffic and user behavior.",
logo: "plausible.svg", // we defined the name and the extension of the logo
links: {
github: "https://github.com/plausible/plausible",
website: "https://plausible.io/",
docs: "https://plausible.io/docs",
},
tags: ["analytics"],
load: () => import("./plausible/index").then((m) => m.generate),
},
```
5. Add the logo or image of the template to `public/templates/plausible.svg`
### Recomendations
- Use the same name of the folder as the id of the template.
- The logo should be in the public folder.
- If you want to show a domain in the UI, please add the prefix _HOST at the end of the variable name.
- If you want to show a domain in the UI, please add the `_HOST` suffix at the end of the variable name.
- Test first on a vps or a server to make sure the template works.
## Docs & Website
To contribute to the Dokploy docs or website, please go to this [repository](https://github.com/Dokploy/website).

View File

@@ -1,64 +1,67 @@
# Etapa 1: Prepare image for building
FROM node:18-slim AS base
# syntax=docker/dockerfile:1
FROM node:20.9-slim AS base
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN corepack enable
FROM base AS build
COPY . /usr/src/app
WORKDIR /usr/src/app
RUN apt-get update && apt-get install -y python3 make g++ git python3-pip pkg-config libsecret-1-dev && rm -rf /var/lib/apt/lists/*
# Install dependencies
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN corepack enable && apt-get update && apt-get install -y python3 make g++ git && rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Copy package.json and pnpm-lock.yaml
COPY package.json pnpm-lock.yaml ./
# Install dependencies only for building
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
# Copy the rest of the source code
COPY . .
# Deploy only the dokploy app
# Build the application
RUN pnpm run build
ENV NODE_ENV=production
RUN pnpm --filter=@dokploy/server build
RUN pnpm --filter=./apps/dokploy run build
# Stage 2: Prepare image for production
FROM node:18-slim AS production
RUN pnpm --filter=./apps/dokploy --prod deploy /prod/dokploy
# Install dependencies only for production
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN corepack enable && apt-get update && apt-get install -y curl && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/*
RUN cp -R /usr/src/app/apps/dokploy/.next /prod/dokploy/.next
RUN cp -R /usr/src/app/apps/dokploy/dist /prod/dokploy/dist
FROM base AS dokploy
WORKDIR /app
# Copy the rest of the source code
COPY --from=base /app/.next ./.next
COPY --from=base /app/dist ./dist
COPY --from=base /app/next.config.mjs ./next.config.mjs
COPY --from=base /app/public ./public
COPY --from=base /app/package.json ./package.json
COPY --from=base /app/drizzle ./drizzle
COPY --from=base /app/.env.production ./.env
COPY --from=base /app/components.json ./components.json
# Set production
ENV NODE_ENV=production
RUN apt-get update && apt-get install -y curl unzip zip apache2-utils iproute2 rsync git-lfs && git lfs install && rm -rf /var/lib/apt/lists/*
# Copy only the necessary files
COPY --from=build /prod/dokploy/.next ./.next
COPY --from=build /prod/dokploy/dist ./dist
COPY --from=build /prod/dokploy/next.config.mjs ./next.config.mjs
COPY --from=build /prod/dokploy/public ./public
COPY --from=build /prod/dokploy/package.json ./package.json
COPY --from=build /prod/dokploy/drizzle ./drizzle
COPY .env.production ./.env
COPY --from=build /prod/dokploy/components.json ./components.json
COPY --from=build /prod/dokploy/node_modules ./node_modules
# Install dependencies only for production
COPY package.json pnpm-lock.yaml ./
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile
# Install docker
RUN curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh && rm get-docker.sh
RUN curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh && rm get-docker.sh && curl https://rclone.org/install.sh | bash
# Install Nixpacks and tsx
# | VERBOSE=1 VERSION=1.21.0 bash
ARG NIXPACKS_VERSION=1.39.0
RUN curl -sSL https://nixpacks.com/install.sh -o install.sh \
&& chmod +x install.sh \
&& ./install.sh \
&& pnpm install -g tsx
# Install Railpack
ARG RAILPACK_VERSION=0.0.64
RUN curl -sSL https://railpack.com/install.sh | bash
# Install buildpacks
RUN curl -sSL "https://github.com/buildpacks/pack/releases/download/v0.32.1/pack-v0.32.1-linux.tgz" | tar -C /usr/local/bin/ --no-same-owner -xzv pack
COPY --from=buildpacksio/pack:0.35.0 /usr/local/bin/pack /usr/local/bin/pack
# Expose port
EXPOSE 3000
CMD ["pnpm", "start"]
CMD [ "pnpm", "start" ]

62
Dockerfile.cloud Normal file
View File

@@ -0,0 +1,62 @@
# syntax=docker/dockerfile:1
FROM node:20.9-slim AS base
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN corepack enable
FROM base AS build
COPY . /usr/src/app
WORKDIR /usr/src/app
RUN apt-get update && apt-get install -y python3 make g++ git python3-pip pkg-config libsecret-1-dev && rm -rf /var/lib/apt/lists/*
# Install dependencies
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm --filter=@dokploy/server --filter=./apps/dokploy install --frozen-lockfile
# Deploy only the dokploy app
ARG NEXT_PUBLIC_UMAMI_HOST
ENV NEXT_PUBLIC_UMAMI_HOST=$NEXT_PUBLIC_UMAMI_HOST
ARG NEXT_PUBLIC_UMAMI_WEBSITE_ID
ENV NEXT_PUBLIC_UMAMI_WEBSITE_ID=$NEXT_PUBLIC_UMAMI_WEBSITE_ID
ARG NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY
ENV NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=$NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY
ENV NODE_ENV=production
RUN pnpm --filter=@dokploy/server build
RUN pnpm --filter=./apps/dokploy run build
RUN pnpm --filter=./apps/dokploy --prod deploy /prod/dokploy
RUN cp -R /usr/src/app/apps/dokploy/.next /prod/dokploy/.next
RUN cp -R /usr/src/app/apps/dokploy/dist /prod/dokploy/dist
FROM base AS dokploy
WORKDIR /app
# Set production
ENV NODE_ENV=production
RUN apt-get update && apt-get install -y curl unzip apache2-utils && rm -rf /var/lib/apt/lists/*
# Copy only the necessary files
COPY --from=build /prod/dokploy/.next ./.next
COPY --from=build /prod/dokploy/dist ./dist
COPY --from=build /prod/dokploy/next.config.mjs ./next.config.mjs
COPY --from=build /prod/dokploy/public ./public
COPY --from=build /prod/dokploy/package.json ./package.json
COPY --from=build /prod/dokploy/drizzle ./drizzle
COPY --from=build /prod/dokploy/components.json ./components.json
COPY --from=build /prod/dokploy/node_modules ./node_modules
# Install RCLONE
RUN curl https://rclone.org/install.sh | bash
# tsx
RUN pnpm install -g tsx
EXPOSE 3000
CMD [ "pnpm", "start" ]

42
Dockerfile.monitoring Normal file
View File

@@ -0,0 +1,42 @@
# syntax=docker/dockerfile:1
# Build stage
FROM golang:1.21-alpine3.19 AS builder
# Instalar dependencias necesarias
RUN apk add --no-cache gcc musl-dev sqlite-dev
# Establecer el directorio de trabajo
WORKDIR /app
# Copiar todo el código fuente primero
COPY . .
# Movernos al directorio de la aplicación golang
WORKDIR /app/apps/monitoring
# Descargar dependencias
RUN go mod download
# Compilar la aplicación
RUN CGO_ENABLED=1 GOOS=linux go build -o main main.go
# Etapa final
FROM alpine:3.19
# Instalar SQLite y otras dependencias necesarias
RUN apk add --no-cache sqlite-libs docker-cli
WORKDIR /app
# Copiar el binario compilado y el archivo monitor.go
COPY --from=builder /app/apps/monitoring/main ./main
COPY --from=builder /app/apps/monitoring/main.go ./monitor.go
# COPY --from=builder /app/apps/golang/.env ./.env
# Exponer el puerto
ENV PORT=3001
EXPOSE 3001
# Ejecutar la aplicación
CMD ["./main"]

37
Dockerfile.schedule Normal file
View File

@@ -0,0 +1,37 @@
# syntax=docker/dockerfile:1
FROM node:20.9-slim AS base
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN corepack enable
FROM base AS build
COPY . /usr/src/app
WORKDIR /usr/src/app
RUN apt-get update && apt-get install -y python3 make g++ git python3-pip pkg-config libsecret-1-dev && rm -rf /var/lib/apt/lists/*
# Install dependencies
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm --filter=@dokploy/server --filter=./apps/schedules install --frozen-lockfile
# Deploy only the dokploy app
ENV NODE_ENV=production
RUN pnpm --filter=@dokploy/server build
RUN pnpm --filter=./apps/schedules run build
RUN pnpm --filter=./apps/schedules --prod deploy /prod/schedules
RUN cp -R /usr/src/app/apps/schedules/dist /prod/schedules/dist
FROM base AS dokploy
WORKDIR /app
# Set production
ENV NODE_ENV=production
# Copy only the necessary files
COPY --from=build /prod/schedules/dist ./dist
COPY --from=build /prod/schedules/package.json ./package.json
COPY --from=build /prod/schedules/node_modules ./node_modules
CMD HOSTNAME=0.0.0.0 && pnpm start

37
Dockerfile.server Normal file
View File

@@ -0,0 +1,37 @@
# syntax=docker/dockerfile:1
FROM node:20.9-slim AS base
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN corepack enable
FROM base AS build
COPY . /usr/src/app
WORKDIR /usr/src/app
RUN apt-get update && apt-get install -y python3 make g++ git python3-pip pkg-config libsecret-1-dev && rm -rf /var/lib/apt/lists/*
# Install dependencies
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm --filter=@dokploy/server --filter=./apps/api install --frozen-lockfile
# Deploy only the dokploy app
ENV NODE_ENV=production
RUN pnpm --filter=@dokploy/server build
RUN pnpm --filter=./apps/api run build
RUN pnpm --filter=./apps/api --prod deploy /prod/api
RUN cp -R /usr/src/app/apps/api/dist /prod/api/dist
FROM base AS dokploy
WORKDIR /app
# Set production
ENV NODE_ENV=production
# Copy only the necessary files
COPY --from=build /prod/api/dist ./dist
COPY --from=build /prod/api/package.json ./package.json
COPY --from=build /prod/api/node_modules ./node_modules
CMD HOSTNAME=0.0.0.0 && pnpm start

49
GUIDES.md Normal file
View File

@@ -0,0 +1,49 @@
# Docker
Here's how to install docker on different operating systems:
## macOS
1. Visit [Docker Desktop for Mac](https://www.docker.com/products/docker-desktop)
2. Download the Docker Desktop installer
3. Double-click the downloaded `.dmg` file
4. Drag Docker to your Applications folder
5. Open Docker Desktop from Applications
6. Follow the onboarding tutorial if desired
## Linux
### Ubuntu
```bash
# Update package index
sudo apt-get update
# Install prerequisites
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
# Add Docker's official GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Set up stable repository
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Install Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
```
## Windows
1. Enable WSL2 if not already enabled
2. Visit [Docker Desktop for Windows](https://www.docker.com/products/docker-desktop)
3. Download the installer
4. Run the installer and follow the prompts
5. Start Docker Desktop from the Start menu

View File

@@ -17,10 +17,10 @@ See the License for the specific language governing permissions and limitations
## Additional Terms for Specific Features
The following additional terms apply to the multi-node support and Docker Compose file support features of Dokploy. In the event of a conflict, these provisions shall take precedence over those in the Apache License:
The following additional terms apply to the multi-node support, Docker Compose file, Preview Deployments and Multi Server features of Dokploy. In the event of a conflict, these provisions shall take precedence over those in the Apache License:
- **Self-Hosted Version Free**: All features of Dokploy, including multi-node support and Docker Compose file support, will always be free to use in the self-hosted version.
- **Restriction on Resale**: The multi-node support and Docker Compose file support features cannot be sold or offered as a service by any party other than the copyright holder without prior written consent.
- **Modification Distribution**: Any modifications to the multi-node support and Docker Compose file support features must be distributed freely and cannot be sold or offered as a service.
- **Self-Hosted Version Free**: All features of Dokploy, including multi-node support, Docker Compose file support, Schedules, Preview Deployments and Multi Server, will always be free to use in the self-hosted version.
- **Restriction on Resale**: The multi-node support, Docker Compose file support, Schedules, Preview Deployments and Multi Server features cannot be sold or offered as a service by any party other than the copyright holder without prior written consent.
- **Modification Distribution**: Any modifications to the multi-node support, Docker Compose file support, Schedules, Preview Deployments and Multi Server features must be distributed freely and cannot be sold or offered as a service.
For further inquiries or permissions, please contact us directly.

View File

@@ -1,57 +0,0 @@
<div align="center">
<h1 align="center">Dokploy</h1>
</div>
<div align="center" style="width:100%;">
<img src="https://raw.githubusercontent.com/Dokploy/dokploy/main/logo.png" alt="Reflex Logo" style="width:60%;">
</div>
<hr>
Dokploy ist eine kostenlose und self-hostable Platform as a Service (PaaS), welche das hosten und managen von deinen Projekten und Datenbanken vereinfacht, das geschieht mithilfe von Docker und Treafik. Es ist designt, um deine Leistung und die Sicherheit deiner Projekte zu verbessern. Dokploy erlaubt dir schnell und einfach auf jeder VPS deine Projekte zu verwirklichen.
## Erklärung
[English](README.md) | [中文](README-zh.md) | [Deutsch](README-de.md) | [Русский Язык](README-ru.md)
## 🌟 Vorteile
- **Projekte**: - **Projekte**: Hoste jegliche Art von Projekt (Node.js, PHP, Python, Go, Ruby, etc.) mit Einfachheit.
- **Datenbanken**: Erstelle und manage Datenbanken, wie MySQL, PostgreSQL, MongoDB, MariaDB, Redis, und mehr.
- **Docker Management**: Einfach Docker container hosten und managen.
- **Traefik Integration**: Automatische Integration mit Traefik für routing und load balancing
- **Real-time Monitoring**: Monitor von CPU, RAM, Speicher, und network Nutzung.
- **Database Backups**: Automatische Backups mit Support für mehrere Speicher Systeme.
## 🚀 Loslegen
Um anzufangen führe einfach den folgende command in einer VPS aus:
```bash
curl -sSL https://dokploy.com/install.sh | sh
```
Getestete Systems:
- Ubuntu 24.04 LTS (Noble Numbat)
- Ubuntu 23.10 (Mantic Minotaur)
- Ubuntu 22.04 LTS (Jammy Jellyfish)
- Ubuntu 20.04 LTS (Focal Fossa)
- Ubuntu 18.04 LTS (Bionic Beaver)
- Debian 12
- Debian 11
- Fedora 40
- Centos 9
- Centos 8
## 📄 Dokumentation
Für eine detaillierte Dokumentation, siehe [docs.dokploy.com/docs](https://docs.dokploy.com)

View File

@@ -1,56 +0,0 @@
<div align="center">
<h1 align="center">Dokploy</h1>
</div>
<div align="center" style="width:100%;">
<img src="https://raw.githubusercontent.com/Dokploy/dokploy/main/logo.png" alt="Логотип Dokploy" style="width:60%;">
</div>
<hr>
Dokploy - это бесплатная самоустанавливаемая Платформа как Сервис (PaaS), которая упрощает развертывание и управление приложениями и базами данных с использованием Docker и Traefik. Разработанный для повышения эффективности и безопасности, Dokploy позволяет развертывать ваши приложения на любом VPS.
## Объяснение
[English](README.md) | [中文](README-zh.md) | [Deutsch](README-de.md)
## 🌟 Особенности
- **Приложения**: Легко развертывать любой тип приложения (Node.js, PHP, Python, Go, Ruby и др.).
- **Базы данных**: Создавайте и управляйте базами данных с поддержкой MySQL, PostgreSQL, MongoDB, MariaDB, Redis и других.
- **Управление Docker**: Легко развертывать и управляйте контейнерами Docker.
- **Интеграция с Traefik**: Автоматически интегрируется с Traefik для маршрутизации и балансировки нагрузки.
- **Мониторинг в реальном времени**: Отслеживайте использование CPU, памяти, хранилища и сети.
- **Резервное копирование баз данных**: Автоматизируйте резервное копирование с поддержкой нескольких мест хранения.
## 🚀 Начало работы
Чтобы установить, выполните следующую команду на VPS:
```bash
curl -sSL https://dokploy.com/install.sh | sh
```
Проверенные системы:
- Ubuntu 24.04 LTS (Noble Numbat)
- Ubuntu 23.10 (Mantic Minotaur)
- Ubuntu 22.04 LTS (Jammy Jellyfish)
- Ubuntu 20.04 LTS (Focal Fossa)
- Ubuntu 18.04 LTS (Bionic Beaver)
- Debian 12
- Debian 11
- Fedora 40
- Centos 9
- Centos 8
## 📄 Документация
Для подробной документации посетите [docs.dokploy.com/docs](https://docs.dokploy.com).

View File

@@ -1,60 +0,0 @@
<div align="center">
<h1 align="center">Dokploy</h1>
</div>
<div align="center" style="width:100%;">
<img src="https://raw.githubusercontent.com/Dokploy/dokploy/main/logo.png" alt="Reflex Logo" style="width:60%;">
</div>
<hr>
Dokploy 是一个免费的自托管平台即服务 (PaaS),它使用 Docker 和 Traefik 简化了应用程序和数据库的部署和管理。 Dokploy 旨在提高效率和安全性,允许您在任何 VPS 上部署应用程序。
## 语言
[English](README.md)
[中文](README-zh.md)
[Deutsch](README-de.md)
[Русский Язык](README-ru.md)
## 🌟 功能
- **应用程序**: 轻松部署任何类型的应用程序(Node.js,PHP,Python,Go、Ruby 等)。数据库: 创建和管理数据库,支持 MySQL,PostgreSQL,MongoDB、MariaDB、Redis 等。
- **Docker 管理**: 轻松部署和管理 Docker 容器。
- **Traefik 集成**: 自动与 Traefik 集成,用于路由和负载均衡。
- **实时监控**: 监控 CPU,内存,存储和网络使用情况。
- **数据库备份**: 支持多种存储目的地自动备份。
## 🚀 入门
要开始使用 请在VPS 上运行以下命令:
```bash
curl -sSL https://dokploy.com/install.sh | sh
```
经过测试的系统:
- Ubuntu 24.04 LTS (Noble Numbat)
- Ubuntu 23.10 (Mantic Minotaur)
- Ubuntu 22.04 LTS (Jammy Jellyfish)
- Ubuntu 20.04 LTS (Focal Fossa)
- Ubuntu 18.04 LTS (Bionic Beaver)
- Debian 12
- Debian 11
- Fedora 40
- Centos 9
- Centos 8
## 📄 文档
如需查看详细的文档资料 请访问[docs.dokploy.com/docs](https://docs.dokploy.com)

170
README.md
View File

@@ -1,59 +1,153 @@
<div align="center">
<h1 align="center">Dokploy</h1>
<div>
<a href="https://dokploy.com" target="_blank" rel="noopener">
<img style="object-fit: cover;" align="center" width="100%"src=".github/sponsors/logo.png" alt="Dokploy - Open Source Alternative to Vercel, Heroku and Netlify." />
</a>
</div>
<div align="center" style="width:100%;">
<img src="https://raw.githubusercontent.com/Dokploy/dokploy/main/logo.png" alt="Reflex Logo" style="width:60%;">
</br>
<div align="center">
<div>Join us on Discord for help, feedback, and discussions!</div>
</br>
<a href="https://discord.gg/2tBnJ3jDJc">
<img src="https://discordapp.com/api/guilds/1234073262418563112/widget.png?style=banner2" alt="Discord Shield"/>
</a>
</div>
<hr>
</div>
<br />
Dokploy is a free, self-hostable Platform as a Service (PaaS) that simplifies the deployment and management of applications and databases.
### Features
Dokploy includes multiple features to make your life easier.
Dokploy is a free self-hostable Platform as a Service (PaaS) that simplifies the deployment and management of applications and databases using Docker and Traefik. Designed to enhance efficiency and security, Dokploy allows you to deploy your applications on any VPS.
## Explanation
[English](README.md) | [中文](README-zh.md) | [Deutsch](README-de.md) | [Русский Язык](README-ru.md)
## 🌟 Features
- **Applications**: Deploy any type of application (Node.js, PHP, Python, Go, Ruby, etc.) with ease.
- **Databases**: Create and manage databases with support for MySQL, PostgreSQL, MongoDB, MariaDB, Redis, and more.
- **Docker Management**: Easily deploy and manage Docker containers.
- **Applications**: Deploy any type of application (Node.js, PHP, Python, Go, Ruby, etc.).
- **Databases**: Create and manage databases with support for MySQL, PostgreSQL, MongoDB, MariaDB, and Redis.
- **Backups**: Automate backups for databases to an external storage destination.
- **Docker Compose**: Native support for Docker Compose to manage complex applications.
- **Multi Node**: Scale applications to multiple nodes using Docker Swarm to manage the cluster.
- **Templates**: Deploy open-source templates (Plausible, Pocketbase, Calcom, etc.) with a single click.
- **Traefik Integration**: Automatically integrates with Traefik for routing and load balancing.
- **Real-time Monitoring**: Monitor CPU, memory, storage, and network usage.
- **Database Backups**: Automate backups with support for multiple storage destinations.
- **Real-time Monitoring**: Monitor CPU, memory, storage, and network usage for every resource.
- **Docker Management**: Easily deploy and manage Docker containers.
- **CLI/API**: Manage your applications and databases using the command line or through the API.
- **Notifications**: Get notified when your deployments succeed or fail (via Slack, Discord, Telegram, Email, etc.).
- **Multi Server**: Deploy and manage your applications remotely to external servers.
- **Self-Hosted**: Self-host Dokploy on your VPS.
## 🚀 Getting Started
To get started run the following command in a VPS:
To get started, run the following command on a VPS:
Want to skip the installation process? [Try the Dokploy Cloud](https://app.dokploy.com).
```bash
curl -sSL https://dokploy.com/install.sh | sh
```
Tested Systems:
For detailed documentation, visit [docs.dokploy.com](https://docs.dokploy.com).
- Ubuntu 24.04 LTS (Noble Numbat)
- Ubuntu 23.10 (Mantic Minotaur)
- Ubuntu 22.04 LTS (Jammy Jellyfish)
- Ubuntu 20.04 LTS (Focal Fossa)
- Ubuntu 18.04 LTS (Bionic Beaver)
- Debian 12
- Debian 11
- Fedora 40
- Centos 9
- Centos 8
## Sponsors
## 📄 Documentation
🙏 We're deeply grateful to all our sponsors who make Dokploy possible! Your support helps cover the costs of hosting, testing, and developing new features.
For detailed documentation, visit [docs.dokploy.com/docs](https://docs.dokploy.com).
[Dokploy Open Collective](https://opencollective.com/dokploy)
[Github Sponsors](https://github.com/sponsors/Siumauricio)
<!-- Hero Sponsors 🎖 -->
<!-- Add Hero Sponsors here -->
### Hero Sponsors 🎖
<div style="display: flex; align-items: center; gap: 20px;">
<a href="https://www.hostinger.com/vps-hosting?ref=dokploy" target="_blank" style="display: inline-block; margin-right: 10px;">
<img src=".github/sponsors/hostinger.jpg" alt="Hostinger" height="50"/>
</a>
<a href="https://www.lxaer.com/?ref=dokploy" target="_blank" style="display: inline-block; margin-right: 10px;">
<img src=".github/sponsors/lxaer.png" alt="LX Aer" height="50"/>
</a>
<a href="https://mandarin3d.com/?ref=dokploy" target="_blank" style="display: inline-block;">
<img src=".github/sponsors/mandarin.png" alt="Mandarin" height="50"/>
</a>
<a href="https://lightnode.com/?ref=dokploy" target="_blank" style="display: inline-block;">
<img src=".github/sponsors/light-node.webp" alt="Lightnode" height="70"/>
</a>
</div>
### Premium Supporters 🥇
<div style="display: flex; align-items: center; gap: 20px;">
<a href="https://supafort.com/?ref=dokploy" target="_blank" style="display: inline-block; margin-right: 20px;">
<img src="https://supafort.com/build/q-4Ht4rBZR.webp" alt="Supafort.com" height="50"/>
</a>
<a href="https://agentdock.ai/?ref=dokploy" target="_blank" style="display: inline-block; margin-right: 50px;">
<img src=".github/sponsors/agentdock.png" alt="agentdock.ai" height="70"/>
</a>
</div>
### Elite Contributors 🥈
<div style="display: flex; align-items: center; gap: 20px;">
<a href="https://americancloud.com/?ref=dokploy" target="_blank" style="display: inline-block; padding: 10px; border-radius: 10px;">
<img src=".github/sponsors/american-cloud.png" alt="AmericanCloud" height="70"/>
</a>
</div>
<!-- Elite Contributors 🥈 -->
<!-- Add Elite Contributors here -->
### Supporting Members 🥉
<div style="display: flex; gap: 30px; flex-wrap: wrap;">
<a href="https://lightspeed.run/?ref=dokploy"><img src="https://github.com/lightspeedrun.png" width="60px" alt="Lightspeed.run"/></a>
<a href="https://cloudblast.io/?ref=dokploy "><img src="https://cloudblast.io/img/logo-icon.193cf13e.svg" width="250px" alt="Cloudblast.io"/></a>
<a href="https://startupfa.me/?ref=dokploy "><img src=".github/sponsors/startupfame.png" width="65px" alt="Startupfame"/></a>
<a href="https://itsdb-center.com?ref=dokploy "><img src=".github/sponsors/its.png" width="65px" alt="Itsdb-center"/></a>
<a href="https://openalternative.co/?ref=dokploy "><img src=".github/sponsors/openalternative.png" width="65px" alt="Openalternative"/></a>
<a href="https://synexa.ai/?ref=dokploy"><img src=".github/sponsors/synexa.png" width="65px" alt="Synexa"/></a>
</div>
### Community Backers 🤝
<div style="display: flex; gap: 30px; flex-wrap: wrap;">
<a href="https://steamsets.com/?ref=dokploy"><img src="https://avatars.githubusercontent.com/u/111978405?s=200&v=4" width="60px" alt="Steamsets.com"/></a>
<a href="https://rivo.gg/?ref=dokploy"><img src="https://avatars.githubusercontent.com/u/126797452?s=200&v=4" width="60px" alt="Rivo.gg"/></a>
<a href="https://photoquest.wedding/?ref=dokploy"><img src="https://photoquest.wedding/favicon/android-chrome-512x512.png" width="60px" alt="Rivo.gg"/></a>
</div>
#### Organizations:
[![Sponsors on Open Collective](https://opencollective.com/dokploy/organizations.svg?width=890)](https://opencollective.com/dokploy)
#### Individuals:
[![Individual Contributors on Open Collective](https://opencollective.com/dokploy/individuals.svg?width=890)](https://opencollective.com/dokploy)
### Contributors 🤝
<a href="https://github.com/dokploy/dokploy/graphs/contributors">
<img src="https://contrib.rocks/image?repo=dokploy/dokploy" />
</a>
## Video Tutorial
<a href="https://youtu.be/mznYKPvhcfw">
<img src="https://dokploy.com/banner.png" alt="Watch the video" width="400" style="border-radius:20px;"/>
</a>
## Contributing
Check out the [Contributing Guide](CONTRIBUTING.md) for more information.

28
SECURITY.md Normal file
View File

@@ -0,0 +1,28 @@
# Dokploy Security Policy
At Dokploy, security is a top priority. We appreciate the help of security researchers and the community in identifying and reporting vulnerabilities.
## How to Report a Vulnerability
If you have discovered a security vulnerability in Dokploy, we ask that you report it responsibly by following these guidelines:
1. **Contact us:** Send an email to [contact@dokploy.com](mailto:contact@dokploy.com).
2. **Provide clear details:** Include as much information as possible to help us understand and reproduce the vulnerability. This should include:
* A clear description of the vulnerability.
* Steps to reproduce the vulnerability.
* Any sample code, screenshots, or videos that might be helpful.
* The potential impact of the vulnerability.
3. **Do not make the vulnerability public:** Please refrain from publicly disclosing the vulnerability until we have had the opportunity to investigate and address it. This is crucial for protecting our users.
4. **Allow us time:** We will endeavor to acknowledge receipt of your report as soon as possible and keep you informed of our progress. The time to resolve the vulnerability may vary depending on its complexity and severity.
## What We Expect From You
* Do not access user data or systems beyond what is necessary to demonstrate the vulnerability.
* Do not perform denial-of-service (DoS) attacks, spamming, or social engineering.
* Do not modify or destroy data that does not belong to you.
## Our Commitment
We are committed to working with you quickly and responsibly to address any legitimate security vulnerability.
Thank you for helping us keep Dokploy secure for everyone.

View File

@@ -1,181 +0,0 @@
import { generateRandomHash } from "@/server/utils/docker/compose";
import { addPrefixToServiceNetworks } from "@/server/utils/docker/compose/network";
import type { ComposeSpecification } from "@/server/utils/docker/types";
import { load } from "js-yaml";
import { expect, test } from "vitest";
const composeFile = `
version: "3.8"
services:
web:
image: nginx:latest
networks:
- frontend
- backend
api:
image: myapi:latest
networks:
- backend
`;
test("Add prefix to networks in services", () => {
const composeData = load(composeFile) as ComposeSpecification;
const prefix = generateRandomHash();
if (!composeData?.services) {
return;
}
const services = addPrefixToServiceNetworks(composeData.services, prefix);
const actualComposeData = { ...composeData, services };
expect(actualComposeData?.services?.web?.networks).toContain(
`frontend-${prefix}`,
);
expect(actualComposeData?.services?.api?.networks).toContain(
`backend-${prefix}`,
);
const apiNetworks = actualComposeData?.services?.api?.networks;
expect(apiNetworks).toBeDefined();
expect(actualComposeData?.services?.api?.networks).toContain(
`backend-${prefix}`,
);
});
// Caso 2: Objeto con aliases
const composeFile2 = `
version: "3.8"
services:
api:
image: myapi:latest
networks:
frontend:
aliases:
- api
networks:
frontend:
driver: bridge
`;
test("Add prefix to networks in services with aliases", () => {
const composeData = load(composeFile2) as ComposeSpecification;
const prefix = generateRandomHash();
if (!composeData?.services) {
return;
}
const services = addPrefixToServiceNetworks(composeData.services, prefix);
const actualComposeData = { ...composeData, services };
expect(actualComposeData.services?.api?.networks).toHaveProperty(
`frontend-${prefix}`,
);
const networkConfig =
actualComposeData?.services?.api?.networks[`frontend-${prefix}`];
expect(networkConfig).toBeDefined();
expect(networkConfig?.aliases).toContain("api");
expect(actualComposeData.services?.api?.networks).not.toHaveProperty(
"frontend-ash",
);
});
const composeFile3 = `
version: "3.8"
services:
redis:
image: redis:alpine
networks:
backend:
networks:
backend:
driver: bridge
`;
test("Add prefix to networks in services (Object with simple networks)", () => {
const composeData = load(composeFile3) as ComposeSpecification;
const prefix = generateRandomHash();
if (!composeData?.services) {
return;
}
const services = addPrefixToServiceNetworks(composeData.services, prefix);
const actualComposeData = { ...composeData, services };
expect(actualComposeData.services?.redis?.networks).toHaveProperty(
`backend-${prefix}`,
);
});
const composeFileCombined = `
version: "3.8"
services:
web:
image: nginx:latest
networks:
- frontend
- backend
api:
image: myapi:latest
networks:
frontend:
aliases:
- api
redis:
image: redis:alpine
networks:
backend:
networks:
frontend:
driver: bridge
backend:
driver: bridge
`;
test("Add prefix to networks in services (combined case)", () => {
const composeData = load(composeFileCombined) as ComposeSpecification;
const prefix = generateRandomHash();
if (!composeData?.services) {
return;
}
const services = addPrefixToServiceNetworks(composeData.services, prefix);
const actualComposeData = { ...composeData, services };
// Caso 1: ListOfStrings
expect(actualComposeData.services?.web?.networks).toContain(
`frontend-${prefix}`,
);
expect(actualComposeData.services?.web?.networks).toContain(
`backend-${prefix}`,
);
// Caso 2: Objeto con aliases
const apiNetworks = actualComposeData.services?.api?.networks;
expect(apiNetworks).toHaveProperty(`frontend-${prefix}`);
expect(apiNetworks[`frontend-${prefix}`]).toBeDefined();
expect(apiNetworks).not.toHaveProperty("frontend");
// Caso 3: Objeto con redes simples
const redisNetworks = actualComposeData.services?.redis?.networks;
expect(redisNetworks).toHaveProperty(`backend-${prefix}`);
expect(redisNetworks).not.toHaveProperty("backend");
});

2
apps/api/.env.example Normal file
View File

@@ -0,0 +1,2 @@
LEMON_SQUEEZY_API_KEY=""
LEMON_SQUEEZY_STORE_ID=""

28
apps/api/.gitignore vendored Normal file
View File

@@ -0,0 +1,28 @@
# dev
.yarn/
!.yarn/releases
.vscode/*
!.vscode/launch.json
!.vscode/*.code-snippets
.idea/workspace.xml
.idea/usage.statistics.xml
.idea/shelf
# deps
node_modules/
# env
.env
.env.production
# logs
logs/
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
# misc
.DS_Store

8
apps/api/README.md Normal file
View File

@@ -0,0 +1,8 @@
```
npm install
npm run dev
```
```
open http://localhost:3000
```

33
apps/api/package.json Normal file
View File

@@ -0,0 +1,33 @@
{
"name": "@dokploy/api",
"version": "0.0.1",
"type": "module",
"scripts": {
"dev": "PORT=4000 tsx watch src/index.ts",
"build": "tsc --project tsconfig.json",
"start": "node dist/index.js",
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@dokploy/server": "workspace:*",
"@hono/node-server": "^1.12.1",
"@hono/zod-validator": "0.3.0",
"@nerimity/mimiqueue": "1.2.3",
"dotenv": "^16.3.1",
"hono": "^4.5.8",
"pino": "9.4.0",
"pino-pretty": "11.2.2",
"react": "18.2.0",
"react-dom": "18.2.0",
"redis": "4.7.0",
"zod": "^3.23.4"
},
"devDependencies": {
"@types/node": "^20.11.17",
"@types/react": "^18.2.37",
"@types/react-dom": "^18.2.15",
"tsx": "^4.7.1",
"typescript": "^5.4.2"
},
"packageManager": "pnpm@9.5.0"
}

61
apps/api/src/index.ts Normal file
View File

@@ -0,0 +1,61 @@
import { serve } from "@hono/node-server";
import { Hono } from "hono";
import "dotenv/config";
import { zValidator } from "@hono/zod-validator";
import { Queue } from "@nerimity/mimiqueue";
import { createClient } from "redis";
import { logger } from "./logger.js";
import { type DeployJob, deployJobSchema } from "./schema.js";
import { deploy } from "./utils.js";
const app = new Hono();
const redisClient = createClient({
url: process.env.REDIS_URL,
});
app.use(async (c, next) => {
if (c.req.path === "/health") {
return next();
}
const authHeader = c.req.header("X-API-Key");
if (process.env.API_KEY !== authHeader) {
return c.json({ message: "Invalid API Key" }, 403);
}
return next();
});
app.post("/deploy", zValidator("json", deployJobSchema), (c) => {
const data = c.req.valid("json");
queue.add(data, { groupName: data.serverId });
return c.json(
{
message: "Deployment Added",
},
200,
);
});
app.get("/health", async (c) => {
return c.json({ status: "ok" });
});
const queue = new Queue({
name: "deployments",
process: async (job: DeployJob) => {
logger.info("Deploying job", job);
return await deploy(job);
},
redisClient,
});
(async () => {
await redisClient.connect();
await redisClient.flushAll();
logger.info("Redis Cleaned");
})();
const port = Number.parseInt(process.env.PORT || "3000");
logger.info("Starting Deployments Server ✅", port);
serve({ fetch: app.fetch, port });

10
apps/api/src/logger.ts Normal file
View File

@@ -0,0 +1,10 @@
import pino from "pino";
export const logger = pino({
transport: {
target: "pino-pretty",
options: {
colorize: true,
},
},
});

34
apps/api/src/schema.ts Normal file
View File

@@ -0,0 +1,34 @@
import { z } from "zod";
export const deployJobSchema = z.discriminatedUnion("applicationType", [
z.object({
applicationId: z.string(),
titleLog: z.string(),
descriptionLog: z.string(),
server: z.boolean().optional(),
type: z.enum(["deploy", "redeploy"]),
applicationType: z.literal("application"),
serverId: z.string().min(1),
}),
z.object({
composeId: z.string(),
titleLog: z.string(),
descriptionLog: z.string(),
server: z.boolean().optional(),
type: z.enum(["deploy", "redeploy"]),
applicationType: z.literal("compose"),
serverId: z.string().min(1),
}),
z.object({
applicationId: z.string(),
previewDeploymentId: z.string(),
titleLog: z.string(),
descriptionLog: z.string(),
server: z.boolean().optional(),
type: z.enum(["deploy"]),
applicationType: z.literal("application-preview"),
serverId: z.string().min(1),
}),
]);
export type DeployJob = z.infer<typeof deployJobSchema>;

82
apps/api/src/utils.ts Normal file
View File

@@ -0,0 +1,82 @@
import {
deployRemoteApplication,
deployRemoteCompose,
deployRemotePreviewApplication,
rebuildRemoteApplication,
rebuildRemoteCompose,
updateApplicationStatus,
updateCompose,
updatePreviewDeployment,
} from "@dokploy/server";
import type { DeployJob } from "./schema";
export const deploy = async (job: DeployJob) => {
try {
if (job.applicationType === "application") {
await updateApplicationStatus(job.applicationId, "running");
if (job.server) {
if (job.type === "redeploy") {
await rebuildRemoteApplication({
applicationId: job.applicationId,
titleLog: job.titleLog,
descriptionLog: job.descriptionLog,
});
} else if (job.type === "deploy") {
await deployRemoteApplication({
applicationId: job.applicationId,
titleLog: job.titleLog,
descriptionLog: job.descriptionLog,
});
}
}
} else if (job.applicationType === "compose") {
await updateCompose(job.composeId, {
composeStatus: "running",
});
if (job.server) {
if (job.type === "redeploy") {
await rebuildRemoteCompose({
composeId: job.composeId,
titleLog: job.titleLog,
descriptionLog: job.descriptionLog,
});
} else if (job.type === "deploy") {
await deployRemoteCompose({
composeId: job.composeId,
titleLog: job.titleLog,
descriptionLog: job.descriptionLog,
});
}
}
} else if (job.applicationType === "application-preview") {
await updatePreviewDeployment(job.previewDeploymentId, {
previewStatus: "running",
});
if (job.server) {
if (job.type === "deploy") {
await deployRemotePreviewApplication({
applicationId: job.applicationId,
titleLog: job.titleLog,
descriptionLog: job.descriptionLog,
previewDeploymentId: job.previewDeploymentId,
});
}
}
}
} catch (_) {
if (job.applicationType === "application") {
await updateApplicationStatus(job.applicationId, "error");
} else if (job.applicationType === "compose") {
await updateCompose(job.composeId, {
composeStatus: "error",
});
} else if (job.applicationType === "application-preview") {
await updatePreviewDeployment(job.previewDeploymentId, {
previewStatus: "error",
});
}
}
return true;
};

18
apps/api/tsconfig.json Normal file
View File

@@ -0,0 +1,18 @@
{
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "Node",
"strict": true,
"skipLibCheck": true,
"outDir": "dist",
"jsx": "react-jsx",
"jsxImportSource": "hono/jsx",
"baseUrl": ".",
"paths": {
"@/*": ["./*"],
"@dokploy/server/*": ["../../packages/server/src/*"]
}
},
"exclude": ["node_modules", "dist"]
}

View File

@@ -0,0 +1,5 @@
node_modules
.git
.gitignore
*.md
dist

59
apps/dokploy/.gitignore vendored Normal file
View File

@@ -0,0 +1,59 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
/redis-data
traefik.yml
.docker
.env.production
# testing
/coverage
/dist
/production-server
# database
/prisma/db.sqlite
/prisma/db.sqlite-journal
/logs
# next.js
/.next/
/out/
next-env.d.ts
/dokploy
/config
# production
/build
# misc
.DS_Store
*.pem
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
# local env files
# do not commit any .env files to git, except for the .env.example file. https://create.t3.gg/en/usage/env-variables#using-environment-variables
.env
.env*.local
# vercel
.vercel
# typescript
*.tsbuildinfo
# otros
/.data
/.main
.vscode
*.lockb
*.rdb
.idea

1
apps/dokploy/.nvmrc Normal file
View File

@@ -0,0 +1 @@
20.16.0

26
apps/dokploy/LICENSE.MD Normal file
View File

@@ -0,0 +1,26 @@
# License
## Core License (Apache License 2.0)
Copyright 2024 Mauricio Siu.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and limitations under the License.
## Additional Terms for Specific Features
The following additional terms apply to the multi-node support, Docker Compose file, Preview Deployments and Multi Server features of Dokploy. In the event of a conflict, these provisions shall take precedence over those in the Apache License:
- **Self-Hosted Version Free**: All features of Dokploy, including multi-node support, Docker Compose file support, Preview Deployments and Multi Server, will always be free to use in the self-hosted version.
- **Restriction on Resale**: The multi-node support, Docker Compose file support, Preview Deployments and Multi Server features cannot be sold or offered as a service by any party other than the copyright holder without prior written consent.
- **Modification Distribution**: Any modifications to the multi-node support, Docker Compose file support, Preview Deployments and Multi Server features must be distributed freely and cannot be sold or offered as a service.
For further inquiries or permissions, please contact us directly.

View File

@@ -1,7 +1,7 @@
import { expect, test } from "vitest";
import { addSuffixToAllProperties } from "@dokploy/server";
import type { ComposeSpecification } from "@dokploy/server";
import { load } from "js-yaml";
import { addPrefixToAllProperties } from "@/server/utils/docker/compose";
import type { ComposeSpecification } from "@/server/utils/docker/types";
import { expect, test } from "vitest";
const composeFile1 = `
version: "3.8"
@@ -119,11 +119,11 @@ secrets:
file: ./db_password.txt
`) as ComposeSpecification;
test("Add prefix to all properties in compose file 1", () => {
test("Add suffix to all properties in compose file 1", () => {
const composeData = load(composeFile1) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
const updatedComposeData = addPrefixToAllProperties(composeData, prefix);
const updatedComposeData = addSuffixToAllProperties(composeData, suffix);
expect(updatedComposeData).toEqual(expectedComposeFile1);
});
@@ -242,11 +242,11 @@ secrets:
file: ./db_password.txt
`) as ComposeSpecification;
test("Add prefix to all properties in compose file 2", () => {
test("Add suffix to all properties in compose file 2", () => {
const composeData = load(composeFile2) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
const updatedComposeData = addPrefixToAllProperties(composeData, prefix);
const updatedComposeData = addSuffixToAllProperties(composeData, suffix);
expect(updatedComposeData).toEqual(expectedComposeFile2);
});
@@ -365,11 +365,11 @@ secrets:
file: ./service_secret.txt
`) as ComposeSpecification;
test("Add prefix to all properties in compose file 3", () => {
test("Add suffix to all properties in compose file 3", () => {
const composeData = load(composeFile3) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
const updatedComposeData = addPrefixToAllProperties(composeData, prefix);
const updatedComposeData = addSuffixToAllProperties(composeData, suffix);
expect(updatedComposeData).toEqual(expectedComposeFile3);
});
@@ -466,11 +466,11 @@ volumes:
driver: local
`) as ComposeSpecification;
test("Add prefix to all properties in Plausible compose file", () => {
test("Add suffix to all properties in Plausible compose file", () => {
const composeData = load(composeFile) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
const updatedComposeData = addPrefixToAllProperties(composeData, prefix);
const updatedComposeData = addSuffixToAllProperties(composeData, suffix);
expect(updatedComposeData).toEqual(expectedComposeFile);
});

View File

@@ -1,6 +1,6 @@
import { generateRandomHash } from "@/server/utils/docker/compose";
import { addPrefixToConfigsRoot } from "@/server/utils/docker/compose/configs";
import type { ComposeSpecification } from "@/server/utils/docker/types";
import { generateRandomHash } from "@dokploy/server";
import { addSuffixToConfigsRoot } from "@dokploy/server";
import type { ComposeSpecification } from "@dokploy/server";
import { load } from "js-yaml";
import { expect, test } from "vitest";
@@ -23,19 +23,19 @@ configs:
file: ./web-config.yml
`;
test("Add prefix to configs in root property", () => {
test("Add suffix to configs in root property", () => {
const composeData = load(composeFile) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData?.configs) {
return;
}
const configs = addPrefixToConfigsRoot(composeData.configs, prefix);
const configs = addSuffixToConfigsRoot(composeData.configs, suffix);
expect(configs).toBeDefined();
for (const configKey of Object.keys(configs)) {
expect(configKey).toContain(`-${prefix}`);
expect(configKey).toContain(`-${suffix}`);
expect(configs[configKey]).toBeDefined();
}
});
@@ -59,23 +59,23 @@ configs:
file: ./another-config.yml
`;
test("Add prefix to multiple configs in root property", () => {
test("Add suffix to multiple configs in root property", () => {
const composeData = load(composeFileMultipleConfigs) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData?.configs) {
return;
}
const configs = addPrefixToConfigsRoot(composeData.configs, prefix);
const configs = addSuffixToConfigsRoot(composeData.configs, suffix);
expect(configs).toBeDefined();
for (const configKey of Object.keys(configs)) {
expect(configKey).toContain(`-${prefix}`);
expect(configKey).toContain(`-${suffix}`);
expect(configs[configKey]).toBeDefined();
}
expect(configs).toHaveProperty(`web-config-${prefix}`);
expect(configs).toHaveProperty(`another-config-${prefix}`);
expect(configs).toHaveProperty(`web-config-${suffix}`);
expect(configs).toHaveProperty(`another-config-${suffix}`);
});
const composeFileDifferentProperties = `
@@ -92,25 +92,25 @@ configs:
external: true
`;
test("Add prefix to configs with different properties in root property", () => {
test("Add suffix to configs with different properties in root property", () => {
const composeData = load(
composeFileDifferentProperties,
) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData?.configs) {
return;
}
const configs = addPrefixToConfigsRoot(composeData.configs, prefix);
const configs = addSuffixToConfigsRoot(composeData.configs, suffix);
expect(configs).toBeDefined();
for (const configKey of Object.keys(configs)) {
expect(configKey).toContain(`-${prefix}`);
expect(configKey).toContain(`-${suffix}`);
expect(configs[configKey]).toBeDefined();
}
expect(configs).toHaveProperty(`web-config-${prefix}`);
expect(configs).toHaveProperty(`special-config-${prefix}`);
expect(configs).toHaveProperty(`web-config-${suffix}`);
expect(configs).toHaveProperty(`special-config-${suffix}`);
});
const composeFileConfigRoot = `
@@ -162,15 +162,15 @@ configs:
file: ./db-config.yml
`) as ComposeSpecification;
test("Add prefix to configs in root property", () => {
test("Add suffix to configs in root property", () => {
const composeData = load(composeFileConfigRoot) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
if (!composeData?.configs) {
return;
}
const configs = addPrefixToConfigsRoot(composeData.configs, prefix);
const configs = addSuffixToConfigsRoot(composeData.configs, suffix);
const updatedComposeData = { ...composeData, configs };
// Verificar que el resultado coincide con el archivo esperado

View File

@@ -1,6 +1,6 @@
import { generateRandomHash } from "@/server/utils/docker/compose";
import { addPrefixToConfigsInServices } from "@/server/utils/docker/compose/configs";
import type { ComposeSpecification } from "@/server/utils/docker/types";
import { generateRandomHash } from "@dokploy/server";
import { addSuffixToConfigsInServices } from "@dokploy/server";
import type { ComposeSpecification } from "@dokploy/server";
import { load } from "js-yaml";
import { expect, test } from "vitest";
@@ -19,19 +19,19 @@ configs:
file: ./web-config.yml
`;
test("Add prefix to configs in services", () => {
test("Add suffix to configs in services", () => {
const composeData = load(composeFile) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData?.services) {
return;
}
const services = addPrefixToConfigsInServices(composeData.services, prefix);
const services = addSuffixToConfigsInServices(composeData.services, suffix);
const actualComposeData = { ...composeData, services };
expect(actualComposeData.services?.web?.configs).toContainEqual({
source: `web-config-${prefix}`,
source: `web-config-${suffix}`,
target: "/etc/nginx/nginx.conf",
});
});
@@ -51,17 +51,17 @@ configs:
file: ./web-config.yml
`;
test("Add prefix to configs in services with single config", () => {
test("Add suffix to configs in services with single config", () => {
const composeData = load(
composeFileSingleServiceConfig,
) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData?.services) {
return;
}
const services = addPrefixToConfigsInServices(composeData.services, prefix);
const services = addSuffixToConfigsInServices(composeData.services, suffix);
expect(services).toBeDefined();
for (const serviceKey of Object.keys(services)) {
@@ -69,7 +69,7 @@ test("Add prefix to configs in services with single config", () => {
if (serviceConfigs) {
for (const config of serviceConfigs) {
if (typeof config === "object") {
expect(config.source).toContain(`-${prefix}`);
expect(config.source).toContain(`-${suffix}`);
}
}
}
@@ -105,17 +105,17 @@ configs:
file: ./common-config.yml
`;
test("Add prefix to configs in services with multiple configs", () => {
test("Add suffix to configs in services with multiple configs", () => {
const composeData = load(
composeFileMultipleServicesConfigs,
) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData?.services) {
return;
}
const services = addPrefixToConfigsInServices(composeData.services, prefix);
const services = addSuffixToConfigsInServices(composeData.services, suffix);
expect(services).toBeDefined();
for (const serviceKey of Object.keys(services)) {
@@ -123,7 +123,7 @@ test("Add prefix to configs in services with multiple configs", () => {
if (serviceConfigs) {
for (const config of serviceConfigs) {
if (typeof config === "object") {
expect(config.source).toContain(`-${prefix}`);
expect(config.source).toContain(`-${suffix}`);
}
}
}
@@ -179,17 +179,17 @@ services:
`) as ComposeSpecification;
test("Add prefix to configs in services", () => {
test("Add suffix to configs in services", () => {
const composeData = load(composeFileConfigServices) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
if (!composeData?.services) {
return;
}
const updatedComposeData = addPrefixToConfigsInServices(
const updatedComposeData = addSuffixToConfigsInServices(
composeData.services,
prefix,
suffix,
);
const actualComposeData = { ...composeData, services: updatedComposeData };

View File

@@ -1,9 +1,6 @@
import { generateRandomHash } from "@/server/utils/docker/compose";
import {
addPrefixToAllConfigs,
addPrefixToConfigsRoot,
} from "@/server/utils/docker/compose/configs";
import type { ComposeSpecification } from "@/server/utils/docker/types";
import { generateRandomHash } from "@dokploy/server";
import { addSuffixToAllConfigs } from "@dokploy/server";
import type { ComposeSpecification } from "@dokploy/server";
import { load } from "js-yaml";
import { expect, test } from "vitest";
@@ -80,12 +77,12 @@ configs:
file: ./db-config.yml
`) as ComposeSpecification;
test("Add prefix to all configs in root and services", () => {
test("Add suffix to all configs in root and services", () => {
const composeData = load(composeFileCombinedConfigs) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
const updatedComposeData = addPrefixToAllConfigs(composeData, prefix);
const updatedComposeData = addSuffixToAllConfigs(composeData, suffix);
expect(updatedComposeData).toEqual(expectedComposeFileCombinedConfigs);
});
@@ -162,14 +159,14 @@ configs:
file: ./db-config.yml
`) as ComposeSpecification;
test("Add prefix to configs with environment and external", () => {
test("Add suffix to configs with environment and external", () => {
const composeData = load(
composeFileWithEnvAndExternal,
) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
const updatedComposeData = addPrefixToAllConfigs(composeData, prefix);
const updatedComposeData = addSuffixToAllConfigs(composeData, suffix);
expect(updatedComposeData).toEqual(expectedComposeFileWithEnvAndExternal);
});
@@ -234,14 +231,14 @@ configs:
file: ./db-config.yml
`) as ComposeSpecification;
test("Add prefix to configs with template driver and labels", () => {
test("Add suffix to configs with template driver and labels", () => {
const composeData = load(
composeFileWithTemplateDriverAndLabels,
) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
const updatedComposeData = addPrefixToAllConfigs(composeData, prefix);
const updatedComposeData = addSuffixToAllConfigs(composeData, suffix);
expect(updatedComposeData).toEqual(
expectedComposeFileWithTemplateDriverAndLabels,

View File

@@ -0,0 +1,109 @@
import type { Domain } from "@dokploy/server";
import { createDomainLabels } from "@dokploy/server";
import { describe, expect, it } from "vitest";
describe("createDomainLabels", () => {
const appName = "test-app";
const baseDomain: Domain = {
host: "example.com",
port: 8080,
https: false,
uniqueConfigKey: 1,
customCertResolver: null,
certificateType: "none",
applicationId: "",
composeId: "",
domainType: "compose",
serviceName: "test-app",
domainId: "",
path: "/",
createdAt: "",
previewDeploymentId: "",
};
it("should create basic labels for web entrypoint", async () => {
const labels = await createDomainLabels(appName, baseDomain, "web");
expect(labels).toEqual([
"traefik.http.routers.test-app-1-web.rule=Host(`example.com`)",
"traefik.http.routers.test-app-1-web.entrypoints=web",
"traefik.http.services.test-app-1-web.loadbalancer.server.port=8080",
"traefik.http.routers.test-app-1-web.service=test-app-1-web",
]);
});
it("should create labels for websecure entrypoint", async () => {
const labels = await createDomainLabels(appName, baseDomain, "websecure");
expect(labels).toEqual([
"traefik.http.routers.test-app-1-websecure.rule=Host(`example.com`)",
"traefik.http.routers.test-app-1-websecure.entrypoints=websecure",
"traefik.http.services.test-app-1-websecure.loadbalancer.server.port=8080",
"traefik.http.routers.test-app-1-websecure.service=test-app-1-websecure",
]);
});
it("should add the path prefix if is different than / empty", async () => {
const labels = await createDomainLabels(
appName,
{
...baseDomain,
path: "/hello",
},
"websecure",
);
expect(labels).toEqual([
"traefik.http.routers.test-app-1-websecure.rule=Host(`example.com`) && PathPrefix(`/hello`)",
"traefik.http.routers.test-app-1-websecure.entrypoints=websecure",
"traefik.http.services.test-app-1-websecure.loadbalancer.server.port=8080",
"traefik.http.routers.test-app-1-websecure.service=test-app-1-websecure",
]);
});
it("should add redirect middleware for https on web entrypoint", async () => {
const httpsBaseDomain = { ...baseDomain, https: true };
const labels = await createDomainLabels(appName, httpsBaseDomain, "web");
expect(labels).toContain(
"traefik.http.routers.test-app-1-web.middlewares=redirect-to-https@file",
);
});
it("should add Let's Encrypt configuration for websecure with letsencrypt certificate", async () => {
const letsencryptDomain = {
...baseDomain,
https: true,
certificateType: "letsencrypt" as const,
};
const labels = await createDomainLabels(
appName,
letsencryptDomain,
"websecure",
);
expect(labels).toContain(
"traefik.http.routers.test-app-1-websecure.tls.certresolver=letsencrypt",
);
});
it("should not add Let's Encrypt configuration for non-letsencrypt certificate", async () => {
const nonLetsencryptDomain = {
...baseDomain,
https: true,
certificateType: "none" as const,
};
const labels = await createDomainLabels(
appName,
nonLetsencryptDomain,
"websecure",
);
expect(labels).not.toContain(
"traefik.http.routers.test-app-1-websecure.tls.certresolver=letsencrypt",
);
});
it("should handle different ports correctly", async () => {
const customPortDomain = { ...baseDomain, port: 3000 };
const labels = await createDomainLabels(appName, customPortDomain, "web");
expect(labels).toContain(
"traefik.http.services.test-app-1-web.loadbalancer.server.port=3000",
);
});
});

View File

@@ -0,0 +1,29 @@
import { addDokployNetworkToRoot } from "@dokploy/server";
import { describe, expect, it } from "vitest";
describe("addDokployNetworkToRoot", () => {
it("should create network object if networks is undefined", () => {
const result = addDokployNetworkToRoot(undefined);
expect(result).toEqual({ "dokploy-network": { external: true } });
});
it("should add network to an empty object", () => {
const result = addDokployNetworkToRoot({});
expect(result).toEqual({ "dokploy-network": { external: true } });
});
it("should not modify existing network configuration", () => {
const existing = { "dokploy-network": { external: false } };
const result = addDokployNetworkToRoot(existing);
expect(result).toEqual({ "dokploy-network": { external: true } });
});
it("should add network alongside existing networks", () => {
const existing = { "other-network": { external: true } };
const result = addDokployNetworkToRoot(existing);
expect(result).toEqual({
"other-network": { external: true },
"dokploy-network": { external: true },
});
});
});

View File

@@ -0,0 +1,24 @@
import { addDokployNetworkToService } from "@dokploy/server";
import { describe, expect, it } from "vitest";
describe("addDokployNetworkToService", () => {
it("should add network to an empty array", () => {
const result = addDokployNetworkToService([]);
expect(result).toEqual(["dokploy-network"]);
});
it("should not add duplicate network to an array", () => {
const result = addDokployNetworkToService(["dokploy-network"]);
expect(result).toEqual(["dokploy-network"]);
});
it("should add network to an existing array with other networks", () => {
const result = addDokployNetworkToService(["other-network"]);
expect(result).toEqual(["other-network", "dokploy-network"]);
});
it("should add network to an object if networks is an object", () => {
const result = addDokployNetworkToService({ "other-network": {} });
expect(result).toEqual({ "other-network": {}, "dokploy-network": {} });
});
});

View File

@@ -1,6 +1,6 @@
import { generateRandomHash } from "@/server/utils/docker/compose";
import { addPrefixToNetworksRoot } from "@/server/utils/docker/compose/network";
import type { ComposeSpecification } from "@/server/utils/docker/types";
import { generateRandomHash } from "@dokploy/server";
import { addSuffixToNetworksRoot } from "@dokploy/server";
import type { ComposeSpecification } from "@dokploy/server";
import { load } from "js-yaml";
import { expect, test } from "vitest";
@@ -35,19 +35,19 @@ test("Generate random hash with 8 characters", () => {
expect(hash.length).toBe(8);
});
test("Add prefix to networks root property", () => {
test("Add suffix to networks root property", () => {
const composeData = load(composeFile) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData?.networks) {
return;
}
const networks = addPrefixToNetworksRoot(composeData.networks, prefix);
const networks = addSuffixToNetworksRoot(composeData.networks, suffix);
expect(networks).toBeDefined();
for (const volumeKey of Object.keys(networks)) {
expect(volumeKey).toContain(`-${prefix}`);
expect(volumeKey).toContain(`-${suffix}`);
}
});
@@ -79,19 +79,19 @@ networks:
internal: true
`;
test("Add prefix to advanced networks root property (2 TRY)", () => {
test("Add suffix to advanced networks root property (2 TRY)", () => {
const composeData = load(composeFile2) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData?.networks) {
return;
}
const networks = addPrefixToNetworksRoot(composeData.networks, prefix);
const networks = addSuffixToNetworksRoot(composeData.networks, suffix);
expect(networks).toBeDefined();
for (const networkKey of Object.keys(networks)) {
expect(networkKey).toContain(`-${prefix}`);
expect(networkKey).toContain(`-${suffix}`);
}
});
@@ -120,19 +120,19 @@ networks:
external: true
`;
test("Add prefix to networks with external properties", () => {
test("Add suffix to networks with external properties", () => {
const composeData = load(composeFile3) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData?.networks) {
return;
}
const networks = addPrefixToNetworksRoot(composeData.networks, prefix);
const networks = addSuffixToNetworksRoot(composeData.networks, suffix);
expect(networks).toBeDefined();
for (const networkKey of Object.keys(networks)) {
expect(networkKey).toContain(`-${prefix}`);
expect(networkKey).toContain(`-${suffix}`);
}
});
@@ -160,19 +160,19 @@ networks:
external: true
`;
test("Add prefix to networks with IPAM configurations", () => {
test("Add suffix to networks with IPAM configurations", () => {
const composeData = load(composeFile4) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData?.networks) {
return;
}
const networks = addPrefixToNetworksRoot(composeData.networks, prefix);
const networks = addSuffixToNetworksRoot(composeData.networks, suffix);
expect(networks).toBeDefined();
for (const networkKey of Object.keys(networks)) {
expect(networkKey).toContain(`-${prefix}`);
expect(networkKey).toContain(`-${suffix}`);
}
});
@@ -201,19 +201,19 @@ networks:
external: true
`;
test("Add prefix to networks with custom options", () => {
test("Add suffix to networks with custom options", () => {
const composeData = load(composeFile5) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData?.networks) {
return;
}
const networks = addPrefixToNetworksRoot(composeData.networks, prefix);
const networks = addSuffixToNetworksRoot(composeData.networks, suffix);
expect(networks).toBeDefined();
for (const networkKey of Object.keys(networks)) {
expect(networkKey).toContain(`-${prefix}`);
expect(networkKey).toContain(`-${suffix}`);
}
});
@@ -240,7 +240,7 @@ networks:
external: true
`;
// Expected compose file with static prefix `testhash`
// Expected compose file with static suffix `testhash`
const expectedComposeFile6 = `
version: "3.8"
@@ -264,18 +264,47 @@ networks:
external: true
`;
test("Add prefix to networks with static prefix", () => {
test("Add suffix to networks with static suffix", () => {
const composeData = load(composeFile6) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
if (!composeData?.networks) {
return;
}
const networks = addPrefixToNetworksRoot(composeData.networks, prefix);
const networks = addSuffixToNetworksRoot(composeData.networks, suffix);
const expectedComposeData = load(
expectedComposeFile6,
) as ComposeSpecification;
expect(networks).toStrictEqual(expectedComposeData.networks);
});
const composeFile7 = `
version: "3.8"
services:
web:
image: nginx:latest
networks:
- dokploy-network
networks:
dokploy-network:
`;
test("It shoudn't add suffix to dokploy-network", () => {
const composeData = load(composeFile7) as ComposeSpecification;
const suffix = generateRandomHash();
if (!composeData?.networks) {
return;
}
const networks = addSuffixToNetworksRoot(composeData.networks, suffix);
expect(networks).toBeDefined();
for (const networkKey of Object.keys(networks)) {
expect(networkKey).toContain("dokploy-network");
}
});

View File

@@ -0,0 +1,273 @@
import { generateRandomHash } from "@dokploy/server";
import { addSuffixToServiceNetworks } from "@dokploy/server";
import type { ComposeSpecification } from "@dokploy/server";
import { load } from "js-yaml";
import { expect, test } from "vitest";
const composeFile = `
version: "3.8"
services:
web:
image: nginx:latest
networks:
- frontend
- backend
api:
image: myapi:latest
networks:
- backend
`;
test("Add suffix to networks in services", () => {
const composeData = load(composeFile) as ComposeSpecification;
const suffix = generateRandomHash();
if (!composeData?.services) {
return;
}
const services = addSuffixToServiceNetworks(composeData.services, suffix);
const actualComposeData = { ...composeData, services };
expect(actualComposeData?.services?.web?.networks).toContain(
`frontend-${suffix}`,
);
expect(actualComposeData?.services?.api?.networks).toContain(
`backend-${suffix}`,
);
const apiNetworks = actualComposeData?.services?.api?.networks;
expect(apiNetworks).toBeDefined();
expect(actualComposeData?.services?.api?.networks).toContain(
`backend-${suffix}`,
);
});
// Caso 2: Objeto con aliases
const composeFile2 = `
version: "3.8"
services:
api:
image: myapi:latest
networks:
frontend:
aliases:
- api
networks:
frontend:
driver: bridge
`;
test("Add suffix to networks in services with aliases", () => {
const composeData = load(composeFile2) as ComposeSpecification;
const suffix = generateRandomHash();
if (!composeData?.services) {
return;
}
const services = addSuffixToServiceNetworks(composeData.services, suffix);
const actualComposeData = { ...composeData, services };
expect(actualComposeData.services?.api?.networks).toHaveProperty(
`frontend-${suffix}`,
);
const networkConfig = actualComposeData?.services?.api?.networks as {
[key: string]: { aliases?: string[] };
};
expect(networkConfig[`frontend-${suffix}`]).toBeDefined();
expect(networkConfig[`frontend-${suffix}`]?.aliases).toContain("api");
expect(actualComposeData.services?.api?.networks).not.toHaveProperty(
"frontend-ash",
);
});
const composeFile3 = `
version: "3.8"
services:
redis:
image: redis:alpine
networks:
backend:
networks:
backend:
driver: bridge
`;
test("Add suffix to networks in services (Object with simple networks)", () => {
const composeData = load(composeFile3) as ComposeSpecification;
const suffix = generateRandomHash();
if (!composeData?.services) {
return;
}
const services = addSuffixToServiceNetworks(composeData.services, suffix);
const actualComposeData = { ...composeData, services };
expect(actualComposeData.services?.redis?.networks).toHaveProperty(
`backend-${suffix}`,
);
});
const composeFileCombined = `
version: "3.8"
services:
web:
image: nginx:latest
networks:
- frontend
- backend
api:
image: myapi:latest
networks:
frontend:
aliases:
- api
redis:
image: redis:alpine
networks:
backend:
networks:
frontend:
driver: bridge
backend:
driver: bridge
`;
test("Add suffix to networks in services (combined case)", () => {
const composeData = load(composeFileCombined) as ComposeSpecification;
const suffix = generateRandomHash();
if (!composeData?.services) {
return;
}
const services = addSuffixToServiceNetworks(composeData.services, suffix);
const actualComposeData = { ...composeData, services };
// Caso 1: ListOfStrings
expect(actualComposeData.services?.web?.networks).toContain(
`frontend-${suffix}`,
);
expect(actualComposeData.services?.web?.networks).toContain(
`backend-${suffix}`,
);
// Caso 2: Objeto con aliases
const apiNetworks = actualComposeData.services?.api?.networks as {
[key: string]: unknown;
};
expect(apiNetworks).toHaveProperty(`frontend-${suffix}`);
expect(apiNetworks[`frontend-${suffix}`]).toBeDefined();
expect(apiNetworks).not.toHaveProperty("frontend");
// Caso 3: Objeto con redes simples
const redisNetworks = actualComposeData.services?.redis?.networks;
expect(redisNetworks).toHaveProperty(`backend-${suffix}`);
expect(redisNetworks).not.toHaveProperty("backend");
});
const composeFile7 = `
version: "3.8"
services:
web:
image: nginx:latest
networks:
- dokploy-network
`;
test("It shoudn't add suffix to dokploy-network in services", () => {
const composeData = load(composeFile7) as ComposeSpecification;
const suffix = generateRandomHash();
if (!composeData?.services) {
return;
}
const networks = addSuffixToServiceNetworks(composeData.services, suffix);
const service = networks.web;
expect(service).toBeDefined();
expect(service?.networks).toContain("dokploy-network");
});
const composeFile8 = `
version: "3.8"
services:
web:
image: nginx:latest
networks:
- frontend
- backend
- dokploy-network
api:
image: myapi:latest
networks:
frontend:
aliases:
- api
dokploy-network:
aliases:
- api
redis:
image: redis:alpine
networks:
dokploy-network:
db:
image: myapi:latest
networks:
dokploy-network:
aliases:
- apid
`;
test("It shoudn't add suffix to dokploy-network in services multiples cases", () => {
const composeData = load(composeFile8) as ComposeSpecification;
const suffix = generateRandomHash();
if (!composeData?.services) {
return;
}
const networks = addSuffixToServiceNetworks(composeData.services, suffix);
const service = networks.web;
const api = networks.api;
const redis = networks.redis;
const db = networks.db;
const dbNetworks = db?.networks as {
[key: string]: unknown;
};
const apiNetworks = api?.networks as {
[key: string]: unknown;
};
expect(service).toBeDefined();
expect(service?.networks).toContain("dokploy-network");
expect(redis?.networks).toHaveProperty("dokploy-network");
expect(dbNetworks["dokploy-network"]).toBeDefined();
expect(apiNetworks["dokploy-network"]).toBeDefined();
});

View File

@@ -1,10 +1,10 @@
import { generateRandomHash } from "@/server/utils/docker/compose";
import { generateRandomHash } from "@dokploy/server";
import {
addPrefixToAllNetworks,
addPrefixToServiceNetworks,
} from "@/server/utils/docker/compose/network";
import { addPrefixToNetworksRoot } from "@/server/utils/docker/compose/network";
import type { ComposeSpecification } from "@/server/utils/docker/types";
addSuffixToAllNetworks,
addSuffixToServiceNetworks,
} from "@dokploy/server";
import { addSuffixToNetworksRoot } from "@dokploy/server";
import type { ComposeSpecification } from "@dokploy/server";
import { load } from "js-yaml";
import { expect, test } from "vitest";
@@ -38,52 +38,54 @@ networks:
driver: bridge
`;
test("Add prefix to networks in services and root (combined case)", () => {
test("Add suffix to networks in services and root (combined case)", () => {
const composeData = load(composeFileCombined) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
// Prefijo para redes definidas en el root
if (composeData.networks) {
composeData.networks = addPrefixToNetworksRoot(
composeData.networks = addSuffixToNetworksRoot(
composeData.networks,
prefix,
suffix,
);
}
// Prefijo para redes definidas en los servicios
if (composeData.services) {
composeData.services = addPrefixToServiceNetworks(
composeData.services = addSuffixToServiceNetworks(
composeData.services,
prefix,
suffix,
);
}
const actualComposeData = { ...composeData };
// Verificar redes en root
expect(actualComposeData.networks).toHaveProperty(`frontend-${prefix}`);
expect(actualComposeData.networks).toHaveProperty(`backend-${prefix}`);
expect(actualComposeData.networks).toHaveProperty(`frontend-${suffix}`);
expect(actualComposeData.networks).toHaveProperty(`backend-${suffix}`);
expect(actualComposeData.networks).not.toHaveProperty("frontend");
expect(actualComposeData.networks).not.toHaveProperty("backend");
// Caso 1: ListOfStrings
expect(actualComposeData.services?.web?.networks).toContain(
`frontend-${prefix}`,
`frontend-${suffix}`,
);
expect(actualComposeData.services?.web?.networks).toContain(
`backend-${prefix}`,
`backend-${suffix}`,
);
// Caso 2: Objeto con aliases
const apiNetworks = actualComposeData.services?.api?.networks;
expect(apiNetworks).toHaveProperty(`frontend-${prefix}`);
expect(apiNetworks[`frontend-${prefix}`]?.aliases).toContain("api");
const apiNetworks = actualComposeData.services?.api?.networks as {
[key: string]: { aliases?: string[] };
};
expect(apiNetworks).toHaveProperty(`frontend-${suffix}`);
expect(apiNetworks?.[`frontend-${suffix}`]?.aliases).toContain("api");
expect(apiNetworks).not.toHaveProperty("frontend");
// Caso 3: Objeto con redes simples
const redisNetworks = actualComposeData.services?.redis?.networks;
expect(redisNetworks).toHaveProperty(`backend-${prefix}`);
expect(redisNetworks).toHaveProperty(`backend-${suffix}`);
expect(redisNetworks).not.toHaveProperty("backend");
});
@@ -117,14 +119,14 @@ networks:
driver: bridge
`);
test("Add prefix to networks in compose file", () => {
test("Add suffix to networks in compose file", () => {
const composeData = load(composeFileCombined) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
if (!composeData?.networks) {
return;
}
const updatedComposeData = addPrefixToAllNetworks(composeData, prefix);
const updatedComposeData = addSuffixToAllNetworks(composeData, suffix);
expect(updatedComposeData).toEqual(expectedComposeFile);
});
@@ -179,11 +181,11 @@ networks:
driver: bridge
`);
test("Add prefix to networks in compose file with external and internal networks", () => {
test("Add suffix to networks in compose file with external and internal networks", () => {
const composeData = load(composeFile2) as ComposeSpecification;
const prefix = "testhash";
const updatedComposeData = addPrefixToAllNetworks(composeData, prefix);
const suffix = "testhash";
const updatedComposeData = addSuffixToAllNetworks(composeData, suffix);
expect(updatedComposeData).toEqual(expectedComposeFile2);
});
@@ -244,11 +246,89 @@ networks:
com.docker.network.bridge.enable_icc: "true"
`);
test("Add prefix to networks in compose file with multiple services and complex network configurations", () => {
test("Add suffix to networks in compose file with multiple services and complex network configurations", () => {
const composeData = load(composeFile3) as ComposeSpecification;
const prefix = "testhash";
const updatedComposeData = addPrefixToAllNetworks(composeData, prefix);
const suffix = "testhash";
const updatedComposeData = addSuffixToAllNetworks(composeData, suffix);
expect(updatedComposeData).toEqual(expectedComposeFile3);
});
const composeFile4 = `
version: "3.8"
services:
app:
image: myapp:latest
networks:
frontend:
aliases:
- app
backend:
dokploy-network:
worker:
image: worker:latest
networks:
- backend
- dokploy-network
networks:
frontend:
driver: bridge
attachable: true
backend:
driver: bridge
driver_opts:
com.docker.network.bridge.enable_icc: "true"
dokploy-network:
driver: bridge
`;
const expectedComposeFile4 = load(`
version: "3.8"
services:
app:
image: myapp:latest
networks:
frontend-testhash:
aliases:
- app
backend-testhash:
dokploy-network:
worker:
image: worker:latest
networks:
- backend-testhash
- dokploy-network
networks:
frontend-testhash:
driver: bridge
attachable: true
backend-testhash:
driver: bridge
driver_opts:
com.docker.network.bridge.enable_icc: "true"
dokploy-network:
driver: bridge
`);
test("Expect don't add suffix to dokploy-network in compose file with multiple services and complex network configurations", () => {
const composeData = load(composeFile4) as ComposeSpecification;
const suffix = "testhash";
const updatedComposeData = addSuffixToAllNetworks(composeData, suffix);
expect(updatedComposeData).toEqual(expectedComposeFile4);
});

View File

@@ -1,8 +1,8 @@
import { generateRandomHash } from "@dokploy/server";
import { addSuffixToSecretsRoot } from "@dokploy/server";
import type { ComposeSpecification } from "@dokploy/server";
import { load } from "js-yaml";
import { expect, test } from "vitest";
import { load, dump } from "js-yaml";
import { generateRandomHash } from "@/server/utils/docker/compose";
import type { ComposeSpecification } from "@/server/utils/docker/types";
import { addPrefixToSecretsRoot } from "@/server/utils/docker/compose/secrets";
test("Generate random hash with 8 characters", () => {
const hash = generateRandomHash();
@@ -23,18 +23,18 @@ secrets:
file: ./db_password.txt
`;
test("Add prefix to secrets in root property", () => {
test("Add suffix to secrets in root property", () => {
const composeData = load(composeFileSecretsRoot) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData?.secrets) {
return;
}
const secrets = addPrefixToSecretsRoot(composeData.secrets, prefix);
const secrets = addSuffixToSecretsRoot(composeData.secrets, suffix);
expect(secrets).toBeDefined();
if (secrets) {
for (const secretKey of Object.keys(secrets)) {
expect(secretKey).toContain(`-${prefix}`);
expect(secretKey).toContain(`-${suffix}`);
expect(secrets[secretKey]).toBeDefined();
}
}
@@ -52,19 +52,19 @@ secrets:
file: ./api_key.txt
`;
test("Add prefix to secrets in root property (Test 1)", () => {
test("Add suffix to secrets in root property (Test 1)", () => {
const composeData = load(composeFileSecretsRoot1) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData?.secrets) {
return;
}
const secrets = addPrefixToSecretsRoot(composeData.secrets, prefix);
const secrets = addSuffixToSecretsRoot(composeData.secrets, suffix);
expect(secrets).toBeDefined();
if (secrets) {
for (const secretKey of Object.keys(secrets)) {
expect(secretKey).toContain(`-${prefix}`);
expect(secretKey).toContain(`-${suffix}`);
expect(secrets[secretKey]).toBeDefined();
}
}
@@ -84,19 +84,19 @@ secrets:
external: true
`;
test("Add prefix to secrets in root property (Test 2)", () => {
test("Add suffix to secrets in root property (Test 2)", () => {
const composeData = load(composeFileSecretsRoot2) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData?.secrets) {
return;
}
const secrets = addPrefixToSecretsRoot(composeData.secrets, prefix);
const secrets = addSuffixToSecretsRoot(composeData.secrets, suffix);
expect(secrets).toBeDefined();
if (secrets) {
for (const secretKey of Object.keys(secrets)) {
expect(secretKey).toContain(`-${prefix}`);
expect(secretKey).toContain(`-${suffix}`);
expect(secrets[secretKey]).toBeDefined();
}
}

View File

@@ -1,6 +1,6 @@
import { generateRandomHash } from "@/server/utils/docker/compose";
import { addPrefixToSecretsInServices } from "@/server/utils/docker/compose/secrets";
import type { ComposeSpecification } from "@/server/utils/docker/types";
import { generateRandomHash } from "@dokploy/server";
import { addSuffixToSecretsInServices } from "@dokploy/server";
import type { ComposeSpecification } from "@dokploy/server";
import { load } from "js-yaml";
import { expect, test } from "vitest";
@@ -18,22 +18,22 @@ secrets:
file: ./db_password.txt
`;
test("Add prefix to secrets in services", () => {
test("Add suffix to secrets in services", () => {
const composeData = load(composeFileSecretsServices) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData.services) {
return;
}
const updatedComposeData = addPrefixToSecretsInServices(
const updatedComposeData = addSuffixToSecretsInServices(
composeData.services,
prefix,
suffix,
);
const actualComposeData = { ...composeData, services: updatedComposeData };
expect(actualComposeData.services?.db?.secrets).toContain(
`db_password-${prefix}`,
`db_password-${suffix}`,
);
});
@@ -51,22 +51,22 @@ secrets:
file: ./app_secret.txt
`;
test("Add prefix to secrets in services (Test 1)", () => {
test("Add suffix to secrets in services (Test 1)", () => {
const composeData = load(composeFileSecretsServices1) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData.services) {
return;
}
const updatedComposeData = addPrefixToSecretsInServices(
const updatedComposeData = addSuffixToSecretsInServices(
composeData.services,
prefix,
suffix,
);
const actualComposeData = { ...composeData, services: updatedComposeData };
expect(actualComposeData.services?.app?.secrets).toContain(
`app_secret-${prefix}`,
`app_secret-${suffix}`,
);
});
@@ -90,24 +90,24 @@ secrets:
file: ./frontend_secret.txt
`;
test("Add prefix to secrets in services (Test 2)", () => {
test("Add suffix to secrets in services (Test 2)", () => {
const composeData = load(composeFileSecretsServices2) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData.services) {
return;
}
const updatedComposeData = addPrefixToSecretsInServices(
const updatedComposeData = addSuffixToSecretsInServices(
composeData.services,
prefix,
suffix,
);
const actualComposeData = { ...composeData, services: updatedComposeData };
expect(actualComposeData.services?.backend?.secrets).toContain(
`backend_secret-${prefix}`,
`backend_secret-${suffix}`,
);
expect(actualComposeData.services?.frontend?.secrets).toContain(
`frontend_secret-${prefix}`,
`frontend_secret-${suffix}`,
);
});

View File

@@ -1,5 +1,5 @@
import { addPrefixToAllSecrets } from "@/server/utils/docker/compose/secrets";
import type { ComposeSpecification } from "@/server/utils/docker/types";
import { addSuffixToAllSecrets } from "@dokploy/server";
import type { ComposeSpecification } from "@dokploy/server";
import { load } from "js-yaml";
import { expect, test } from "vitest";
@@ -47,11 +47,11 @@ secrets:
file: ./app_secret.txt
`) as ComposeSpecification;
test("Add prefix to all secrets", () => {
test("Add suffix to all secrets", () => {
const composeData = load(composeFileCombinedSecrets) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
const updatedComposeData = addPrefixToAllSecrets(composeData, prefix);
const updatedComposeData = addSuffixToAllSecrets(composeData, suffix);
expect(updatedComposeData).toEqual(expectedComposeFileCombinedSecrets);
});
@@ -98,11 +98,11 @@ secrets:
file: ./cache_secret.txt
`) as ComposeSpecification;
test("Add prefix to all secrets (3rd Case)", () => {
test("Add suffix to all secrets (3rd Case)", () => {
const composeData = load(composeFileCombinedSecrets3) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
const updatedComposeData = addPrefixToAllSecrets(composeData, prefix);
const updatedComposeData = addSuffixToAllSecrets(composeData, suffix);
expect(updatedComposeData).toEqual(expectedComposeFileCombinedSecrets3);
});
@@ -149,11 +149,11 @@ secrets:
file: ./db_password.txt
`) as ComposeSpecification;
test("Add prefix to all secrets (4th Case)", () => {
test("Add suffix to all secrets (4th Case)", () => {
const composeData = load(composeFileCombinedSecrets4) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
const updatedComposeData = addPrefixToAllSecrets(composeData, prefix);
const updatedComposeData = addSuffixToAllSecrets(composeData, suffix);
expect(updatedComposeData).toEqual(expectedComposeFileCombinedSecrets4);
});

View File

@@ -1,6 +1,6 @@
import { generateRandomHash } from "@/server/utils/docker/compose";
import { addPrefixToServiceNames } from "@/server/utils/docker/compose/service";
import type { ComposeSpecification } from "@/server/utils/docker/types";
import { generateRandomHash } from "@dokploy/server";
import { addSuffixToServiceNames } from "@dokploy/server";
import type { ComposeSpecification } from "@dokploy/server";
import { load } from "js-yaml";
import { expect, test } from "vitest";
@@ -27,33 +27,33 @@ test("Generate random hash with 8 characters", () => {
expect(hash.length).toBe(8);
});
test("Add prefix to service names with container_name in compose file", () => {
test("Add suffix to service names with container_name in compose file", () => {
const composeData = load(composeFile) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData.services) {
return;
}
const updatedComposeData = addPrefixToServiceNames(
const updatedComposeData = addSuffixToServiceNames(
composeData.services,
prefix,
suffix,
);
const actualComposeData = { ...composeData, services: updatedComposeData };
// Verificar que el nombre del contenedor ha cambiado correctamente
expect(actualComposeData.services[`web-${prefix}`].container_name).toBe(
`web_container-${prefix}`,
expect(actualComposeData.services?.[`web-${suffix}`]?.container_name).toBe(
`web_container-${suffix}`,
);
// Verificar que la nueva clave del servicio tiene el prefijo y la vieja clave no existe
expect(actualComposeData.services).toHaveProperty(`web-${prefix}`);
expect(actualComposeData.services).toHaveProperty(`web-${suffix}`);
expect(actualComposeData.services).not.toHaveProperty("web");
// Verificar que la configuración de la imagen sigue igual
expect(actualComposeData.services[`web-${prefix}`].image).toBe(
expect(actualComposeData.services?.[`web-${suffix}`]?.image).toBe(
"nginx:latest",
);
expect(actualComposeData.services[`api-${prefix}`].image).toBe(
expect(actualComposeData.services?.[`api-${suffix}`]?.image).toBe(
"myapi:latest",
);
});

View File

@@ -1,6 +1,6 @@
import { generateRandomHash } from "@/server/utils/docker/compose";
import { addPrefixToServiceNames } from "@/server/utils/docker/compose/service";
import type { ComposeSpecification } from "@/server/utils/docker/types";
import { generateRandomHash } from "@dokploy/server";
import { addSuffixToServiceNames } from "@dokploy/server";
import type { ComposeSpecification } from "@dokploy/server";
import { load } from "js-yaml";
import { expect, test } from "vitest";
@@ -32,49 +32,49 @@ networks:
driver: bridge
`;
test("Add prefix to service names with depends_on (array) in compose file", () => {
test("Add suffix to service names with depends_on (array) in compose file", () => {
const composeData = load(composeFile4) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData.services) {
return;
}
const updatedComposeData = addPrefixToServiceNames(
const updatedComposeData = addSuffixToServiceNames(
composeData.services,
prefix,
suffix,
);
const actualComposeData = { ...composeData, services: updatedComposeData };
// Verificar que la nueva clave del servicio tiene el prefijo y la vieja clave no existe
expect(actualComposeData.services).toHaveProperty(`web-${prefix}`);
expect(actualComposeData.services).toHaveProperty(`web-${suffix}`);
expect(actualComposeData.services).not.toHaveProperty("web");
// Verificar que la configuración de la imagen sigue igual
expect(actualComposeData.services[`web-${prefix}`].image).toBe(
expect(actualComposeData.services?.[`web-${suffix}`]?.image).toBe(
"nginx:latest",
);
expect(actualComposeData.services[`api-${prefix}`].image).toBe(
expect(actualComposeData.services?.[`api-${suffix}`]?.image).toBe(
"myapi:latest",
);
// Verificar que los nombres en depends_on tienen el prefijo
expect(actualComposeData.services[`web-${prefix}`].depends_on).toContain(
`db-${prefix}`,
expect(actualComposeData.services?.[`web-${suffix}`]?.depends_on).toContain(
`db-${suffix}`,
);
expect(actualComposeData.services[`web-${prefix}`].depends_on).toContain(
`api-${prefix}`,
expect(actualComposeData.services?.[`web-${suffix}`]?.depends_on).toContain(
`api-${suffix}`,
);
// Verificar que los servicios `db` y `api` también tienen el prefijo
expect(actualComposeData.services).toHaveProperty(`db-${prefix}`);
expect(actualComposeData.services).toHaveProperty(`db-${suffix}`);
expect(actualComposeData.services).not.toHaveProperty("db");
expect(actualComposeData.services[`db-${prefix}`].image).toBe(
expect(actualComposeData.services?.[`db-${suffix}`]?.image).toBe(
"postgres:latest",
);
expect(actualComposeData.services).toHaveProperty(`api-${prefix}`);
expect(actualComposeData.services).toHaveProperty(`api-${suffix}`);
expect(actualComposeData.services).not.toHaveProperty("api");
expect(actualComposeData.services[`api-${prefix}`].image).toBe(
expect(actualComposeData.services?.[`api-${suffix}`]?.image).toBe(
"myapi:latest",
);
});
@@ -102,49 +102,49 @@ networks:
driver: bridge
`;
test("Add prefix to service names with depends_on (object) in compose file", () => {
test("Add suffix to service names with depends_on (object) in compose file", () => {
const composeData = load(composeFile5) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData.services) {
return;
}
const updatedComposeData = addPrefixToServiceNames(
const updatedComposeData = addSuffixToServiceNames(
composeData.services,
prefix,
suffix,
);
const actualComposeData = { ...composeData, services: updatedComposeData };
// Verificar que la nueva clave del servicio tiene el prefijo y la vieja clave no existe
expect(actualComposeData.services).toHaveProperty(`web-${prefix}`);
expect(actualComposeData.services).toHaveProperty(`web-${suffix}`);
expect(actualComposeData.services).not.toHaveProperty("web");
// Verificar que la configuración de la imagen sigue igual
expect(actualComposeData.services[`web-${prefix}`].image).toBe(
expect(actualComposeData.services?.[`web-${suffix}`]?.image).toBe(
"nginx:latest",
);
expect(actualComposeData.services[`api-${prefix}`].image).toBe(
expect(actualComposeData.services?.[`api-${suffix}`]?.image).toBe(
"myapi:latest",
);
// Verificar que los nombres en depends_on tienen el prefijo
const webDependsOn = actualComposeData.services[`web-${prefix}`]
.depends_on as Record<string, any>;
expect(webDependsOn).toHaveProperty(`db-${prefix}`);
expect(webDependsOn).toHaveProperty(`api-${prefix}`);
expect(webDependsOn[`db-${prefix}`].condition).toBe("service_healthy");
expect(webDependsOn[`api-${prefix}`].condition).toBe("service_started");
const webDependsOn = actualComposeData.services?.[`web-${suffix}`]
?.depends_on as Record<string, any>;
expect(webDependsOn).toHaveProperty(`db-${suffix}`);
expect(webDependsOn).toHaveProperty(`api-${suffix}`);
expect(webDependsOn[`db-${suffix}`].condition).toBe("service_healthy");
expect(webDependsOn[`api-${suffix}`].condition).toBe("service_started");
// Verificar que los servicios `db` y `api` también tienen el prefijo
expect(actualComposeData.services).toHaveProperty(`db-${prefix}`);
expect(actualComposeData.services).toHaveProperty(`db-${suffix}`);
expect(actualComposeData.services).not.toHaveProperty("db");
expect(actualComposeData.services[`db-${prefix}`].image).toBe(
expect(actualComposeData.services?.[`db-${suffix}`]?.image).toBe(
"postgres:latest",
);
expect(actualComposeData.services).toHaveProperty(`api-${prefix}`);
expect(actualComposeData.services).toHaveProperty(`api-${suffix}`);
expect(actualComposeData.services).not.toHaveProperty("api");
expect(actualComposeData.services[`api-${prefix}`].image).toBe(
expect(actualComposeData.services?.[`api-${suffix}`]?.image).toBe(
"myapi:latest",
);
});

View File

@@ -1,6 +1,6 @@
import { generateRandomHash } from "@/server/utils/docker/compose";
import { addPrefixToServiceNames } from "@/server/utils/docker/compose/service";
import type { ComposeSpecification } from "@/server/utils/docker/types";
import { generateRandomHash } from "@dokploy/server";
import { addSuffixToServiceNames } from "@dokploy/server";
import type { ComposeSpecification } from "@dokploy/server";
import { load } from "js-yaml";
import { expect, test } from "vitest";
@@ -30,41 +30,41 @@ networks:
driver: bridge
`;
test("Add prefix to service names with extends (string) in compose file", () => {
test("Add suffix to service names with extends (string) in compose file", () => {
const composeData = load(composeFile6) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData.services) {
return;
}
const updatedComposeData = addPrefixToServiceNames(
const updatedComposeData = addSuffixToServiceNames(
composeData.services,
prefix,
suffix,
);
const actualComposeData = { ...composeData, services: updatedComposeData };
// Verificar que la nueva clave del servicio tiene el prefijo y la vieja clave no existe
expect(actualComposeData.services).toHaveProperty(`web-${prefix}`);
expect(actualComposeData.services).toHaveProperty(`web-${suffix}`);
expect(actualComposeData.services).not.toHaveProperty("web");
// Verificar que la configuración de la imagen sigue igual
expect(actualComposeData.services[`web-${prefix}`].image).toBe(
expect(actualComposeData.services?.[`web-${suffix}`]?.image).toBe(
"nginx:latest",
);
expect(actualComposeData.services[`api-${prefix}`].image).toBe(
expect(actualComposeData.services?.[`api-${suffix}`]?.image).toBe(
"myapi:latest",
);
// Verificar que el nombre en extends tiene el prefijo
expect(actualComposeData.services[`web-${prefix}`].extends).toBe(
`base_service-${prefix}`,
expect(actualComposeData.services?.[`web-${suffix}`]?.extends).toBe(
`base_service-${suffix}`,
);
// Verificar que el servicio `base_service` también tiene el prefijo
expect(actualComposeData.services).toHaveProperty(`base_service-${prefix}`);
expect(actualComposeData.services).toHaveProperty(`base_service-${suffix}`);
expect(actualComposeData.services).not.toHaveProperty("base_service");
expect(actualComposeData.services[`base_service-${prefix}`].image).toBe(
expect(actualComposeData.services?.[`base_service-${suffix}`]?.image).toBe(
"base:latest",
);
});
@@ -90,42 +90,42 @@ networks:
driver: bridge
`;
test("Add prefix to service names with extends (object) in compose file", () => {
test("Add suffix to service names with extends (object) in compose file", () => {
const composeData = load(composeFile7) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData.services) {
return;
}
const updatedComposeData = addPrefixToServiceNames(
const updatedComposeData = addSuffixToServiceNames(
composeData.services,
prefix,
suffix,
);
const actualComposeData = { ...composeData, services: updatedComposeData };
// Verificar que la nueva clave del servicio tiene el prefijo y la vieja clave no existe
expect(actualComposeData.services).toHaveProperty(`web-${prefix}`);
expect(actualComposeData.services).toHaveProperty(`web-${suffix}`);
expect(actualComposeData.services).not.toHaveProperty("web");
// Verificar que la configuración de la imagen sigue igual
expect(actualComposeData.services[`web-${prefix}`].image).toBe(
expect(actualComposeData.services?.[`web-${suffix}`]?.image).toBe(
"nginx:latest",
);
expect(actualComposeData.services[`api-${prefix}`].image).toBe(
expect(actualComposeData.services?.[`api-${suffix}`]?.image).toBe(
"myapi:latest",
);
// Verificar que el nombre en extends.service tiene el prefijo
const webExtends = actualComposeData.services[`web-${prefix}`].extends;
const webExtends = actualComposeData.services?.[`web-${suffix}`]?.extends;
if (typeof webExtends !== "string") {
expect(webExtends.service).toBe(`base_service-${prefix}`);
expect(webExtends?.service).toBe(`base_service-${suffix}`);
}
// Verificar que el servicio `base_service` también tiene el prefijo
expect(actualComposeData.services).toHaveProperty(`base_service-${prefix}`);
expect(actualComposeData.services).toHaveProperty(`base_service-${suffix}`);
expect(actualComposeData.services).not.toHaveProperty("base_service");
expect(actualComposeData.services[`base_service-${prefix}`].image).toBe(
expect(actualComposeData.services?.[`base_service-${suffix}`]?.image).toBe(
"base:latest",
);
});

View File

@@ -1,6 +1,6 @@
import { generateRandomHash } from "@/server/utils/docker/compose";
import { addPrefixToServiceNames } from "@/server/utils/docker/compose/service";
import type { ComposeSpecification } from "@/server/utils/docker/types";
import { generateRandomHash } from "@dokploy/server";
import { addSuffixToServiceNames } from "@dokploy/server";
import type { ComposeSpecification } from "@dokploy/server";
import { load } from "js-yaml";
import { expect, test } from "vitest";
@@ -31,46 +31,46 @@ networks:
driver: bridge
`;
test("Add prefix to service names with links in compose file", () => {
test("Add suffix to service names with links in compose file", () => {
const composeData = load(composeFile2) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData.services) {
return;
}
const updatedComposeData = addPrefixToServiceNames(
const updatedComposeData = addSuffixToServiceNames(
composeData.services,
prefix,
suffix,
);
const actualComposeData = { ...composeData, services: updatedComposeData };
// Verificar que la nueva clave del servicio tiene el prefijo y la vieja clave no existe
expect(actualComposeData.services).toHaveProperty(`web-${prefix}`);
expect(actualComposeData.services).toHaveProperty(`web-${suffix}`);
expect(actualComposeData.services).not.toHaveProperty("web");
// Verificar que la configuración de la imagen sigue igual
expect(actualComposeData.services[`web-${prefix}`].image).toBe(
expect(actualComposeData.services?.[`web-${suffix}`]?.image).toBe(
"nginx:latest",
);
expect(actualComposeData.services[`api-${prefix}`].image).toBe(
expect(actualComposeData.services?.[`api-${suffix}`]?.image).toBe(
"myapi:latest",
);
// Verificar que los nombres en links tienen el prefijo
expect(actualComposeData.services[`web-${prefix}`].links).toContain(
`db-${prefix}`,
expect(actualComposeData.services?.[`web-${suffix}`]?.links).toContain(
`db-${suffix}`,
);
// Verificar que los servicios `db` y `api` también tienen el prefijo
expect(actualComposeData.services).toHaveProperty(`db-${prefix}`);
expect(actualComposeData.services).toHaveProperty(`db-${suffix}`);
expect(actualComposeData.services).not.toHaveProperty("db");
expect(actualComposeData.services[`db-${prefix}`].image).toBe(
expect(actualComposeData.services?.[`db-${suffix}`]?.image).toBe(
"postgres:latest",
);
expect(actualComposeData.services).toHaveProperty(`api-${prefix}`);
expect(actualComposeData.services).toHaveProperty(`api-${suffix}`);
expect(actualComposeData.services).not.toHaveProperty("api");
expect(actualComposeData.services[`api-${prefix}`].image).toBe(
expect(actualComposeData.services?.[`api-${suffix}`]?.image).toBe(
"myapi:latest",
);
});

View File

@@ -1,6 +1,6 @@
import { generateRandomHash } from "@/server/utils/docker/compose";
import { addPrefixToServiceNames } from "@/server/utils/docker/compose/service";
import type { ComposeSpecification } from "@/server/utils/docker/types";
import { generateRandomHash } from "@dokploy/server";
import { addSuffixToServiceNames } from "@dokploy/server";
import type { ComposeSpecification } from "@dokploy/server";
import { load } from "js-yaml";
import { expect, test } from "vitest";
@@ -26,23 +26,23 @@ networks:
driver: bridge
`;
test("Add prefix to service names in compose file", () => {
test("Add suffix to service names in compose file", () => {
const composeData = load(composeFile) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData.services) {
return;
}
const updatedComposeData = addPrefixToServiceNames(
const updatedComposeData = addSuffixToServiceNames(
composeData.services,
prefix,
suffix,
);
const actualComposeData = { ...composeData, services: updatedComposeData };
// Verificar que los nombres de los servicios han cambiado correctamente
expect(actualComposeData.services).toHaveProperty(`web-${prefix}`);
expect(actualComposeData.services).toHaveProperty(`api-${prefix}`);
expect(actualComposeData.services).toHaveProperty(`web-${suffix}`);
expect(actualComposeData.services).toHaveProperty(`api-${suffix}`);
// Verificar que las claves originales no existen
expect(actualComposeData.services).not.toHaveProperty("web");
expect(actualComposeData.services).not.toHaveProperty("api");

View File

@@ -1,8 +1,8 @@
import {
addPrefixToAllServiceNames,
addPrefixToServiceNames,
} from "@/server/utils/docker/compose/service";
import type { ComposeSpecification } from "@/server/utils/docker/types";
addSuffixToAllServiceNames,
addSuffixToServiceNames,
} from "@dokploy/server";
import type { ComposeSpecification } from "@dokploy/server";
import { load } from "js-yaml";
import { expect, test } from "vitest";
@@ -70,17 +70,17 @@ networks:
driver: bridge
`);
test("Add prefix to all service names in compose file", () => {
test("Add suffix to all service names in compose file", () => {
const composeData = load(composeFileCombinedAllCases) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
if (!composeData.services) {
return;
}
const updatedComposeData = addPrefixToServiceNames(
const updatedComposeData = addSuffixToServiceNames(
composeData.services,
prefix,
suffix,
);
const actualComposeData = { ...composeData, services: updatedComposeData };
@@ -175,11 +175,11 @@ networks:
driver: bridge
`) as ComposeSpecification;
test("Add prefix to all service names in compose file 1", () => {
test("Add suffix to all service names in compose file 1", () => {
const composeData = load(composeFile1) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
const updatedComposeData = addPrefixToAllServiceNames(composeData, prefix);
const updatedComposeData = addSuffixToAllServiceNames(composeData, suffix);
expect(updatedComposeData).toEqual(expectedComposeFile1);
});
@@ -270,11 +270,11 @@ networks:
driver: bridge
`) as ComposeSpecification;
test("Add prefix to all service names in compose file 2", () => {
test("Add suffix to all service names in compose file 2", () => {
const composeData = load(composeFile2) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
const updatedComposeData = addPrefixToAllServiceNames(composeData, prefix);
const updatedComposeData = addSuffixToAllServiceNames(composeData, suffix);
expect(updatedComposeData).toEqual(expectedComposeFile2);
});
@@ -365,11 +365,11 @@ networks:
driver: bridge
`) as ComposeSpecification;
test("Add prefix to all service names in compose file 3", () => {
test("Add suffix to all service names in compose file 3", () => {
const composeData = load(composeFile3) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
const updatedComposeData = addPrefixToAllServiceNames(composeData, prefix);
const updatedComposeData = addSuffixToAllServiceNames(composeData, suffix);
expect(updatedComposeData).toEqual(expectedComposeFile3);
});

View File

@@ -1,6 +1,6 @@
import { generateRandomHash } from "@/server/utils/docker/compose";
import { addPrefixToServiceNames } from "@/server/utils/docker/compose/service";
import type { ComposeSpecification } from "@/server/utils/docker/types";
import { generateRandomHash } from "@dokploy/server";
import { addSuffixToServiceNames } from "@dokploy/server";
import type { ComposeSpecification } from "@dokploy/server";
import { load } from "js-yaml";
import { expect, test } from "vitest";
@@ -35,42 +35,44 @@ networks:
driver: bridge
`;
test("Add prefix to service names with volumes_from in compose file", () => {
test("Add suffix to service names with volumes_from in compose file", () => {
const composeData = load(composeFile3) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData.services) {
return;
}
const updatedComposeData = addPrefixToServiceNames(
const updatedComposeData = addSuffixToServiceNames(
composeData.services,
prefix,
suffix,
);
const actualComposeData = { ...composeData, services: updatedComposeData };
// Verificar que la nueva clave del servicio tiene el prefijo y la vieja clave no existe
expect(actualComposeData.services).toHaveProperty(`web-${prefix}`);
expect(actualComposeData.services).toHaveProperty(`web-${suffix}`);
expect(actualComposeData.services).not.toHaveProperty("web");
// Verificar que la configuración de la imagen sigue igual
expect(actualComposeData.services[`web-${prefix}`].image).toBe(
expect(actualComposeData.services?.[`web-${suffix}`]?.image).toBe(
"nginx:latest",
);
expect(actualComposeData.services[`api-${prefix}`].image).toBe(
expect(actualComposeData.services?.[`api-${suffix}`]?.image).toBe(
"myapi:latest",
);
// Verificar que los nombres en volumes_from tienen el prefijo
expect(actualComposeData.services[`web-${prefix}`].volumes_from).toContain(
`shared-${prefix}`,
expect(actualComposeData.services?.[`web-${suffix}`]?.volumes_from).toContain(
`shared-${suffix}`,
);
expect(actualComposeData.services[`api-${prefix}`].volumes_from).toContain(
`shared-${prefix}`,
expect(actualComposeData.services?.[`api-${suffix}`]?.volumes_from).toContain(
`shared-${suffix}`,
);
// Verificar que el servicio shared también tiene el prefijo
expect(actualComposeData.services).toHaveProperty(`shared-${prefix}`);
expect(actualComposeData.services).toHaveProperty(`shared-${suffix}`);
expect(actualComposeData.services).not.toHaveProperty("shared");
expect(actualComposeData.services[`shared-${prefix}`].image).toBe("busybox");
expect(actualComposeData.services?.[`shared-${suffix}`]?.image).toBe(
"busybox",
);
});

View File

@@ -1,9 +1,6 @@
import { generateRandomHash } from "@/server/utils/docker/compose";
import {
addPrefixToVolumesRoot,
addPrefixToAllVolumes,
} from "@/server/utils/docker/compose/volume";
import type { ComposeSpecification } from "@/server/utils/docker/types";
import { generateRandomHash } from "@dokploy/server";
import { addSuffixToAllVolumes, addSuffixToVolumesRoot } from "@dokploy/server";
import type { ComposeSpecification } from "@dokploy/server";
import { load } from "js-yaml";
import { expect, test } from "vitest";
@@ -142,15 +139,15 @@ test("Generate random hash with 8 characters", () => {
// Docker compose needs unique names for services, volumes, networks and containers
// So base on a input which is a dockercompose file, it should replace the name with a hash and return a new dockercompose file
test("Add prefix to volumes root property", () => {
test("Add suffix to volumes root property", () => {
const composeData = load(composeFile) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData?.volumes) {
return;
}
const volumes = addPrefixToVolumesRoot(composeData.volumes, prefix);
const volumes = addSuffixToVolumesRoot(composeData.volumes, suffix);
// {
// 'db-data-af045046': { driver: 'local' },
@@ -160,15 +157,15 @@ test("Add prefix to volumes root property", () => {
expect(volumes).toBeDefined();
for (const volumeKey of Object.keys(volumes)) {
expect(volumeKey).toContain(`-${prefix}`);
expect(volumeKey).toContain(`-${suffix}`);
}
});
test("Expect to change the prefix in all the possible places", () => {
test("Expect to change the suffix in all the possible places", () => {
const composeData = load(composeFile) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
const updatedComposeData = addPrefixToAllVolumes(composeData, prefix);
const updatedComposeData = addSuffixToAllVolumes(composeData, suffix);
expect(updatedComposeData).toEqual(expectedDockerCompose);
});
@@ -217,11 +214,11 @@ volumes:
mongo-data-testhash:
`) as ComposeSpecification;
test("Expect to change the prefix in all the possible places (2 Try)", () => {
test("Expect to change the suffix in all the possible places (2 Try)", () => {
const composeData = load(composeFile2) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
const updatedComposeData = addPrefixToAllVolumes(composeData, prefix);
const updatedComposeData = addSuffixToAllVolumes(composeData, suffix);
expect(updatedComposeData).toEqual(expectedDockerCompose2);
});
@@ -270,11 +267,11 @@ volumes:
mongo-data-testhash:
`) as ComposeSpecification;
test("Expect to change the prefix in all the possible places (3 Try)", () => {
test("Expect to change the suffix in all the possible places (3 Try)", () => {
const composeData = load(composeFile3) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
const updatedComposeData = addPrefixToAllVolumes(composeData, prefix);
const updatedComposeData = addSuffixToAllVolumes(composeData, suffix);
expect(updatedComposeData).toEqual(expectedDockerCompose3);
});
@@ -1009,13 +1006,13 @@ services:
volumes:
db-config-testhash:
`) as ComposeSpecification;
`);
test("Expect to change the prefix in all the possible places (4 Try)", () => {
test("Expect to change the suffix in all the possible places (4 Try)", () => {
const composeData = load(composeFileComplex) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
const updatedComposeData = addPrefixToAllVolumes(composeData, prefix);
const updatedComposeData = addSuffixToAllVolumes(composeData, suffix);
expect(updatedComposeData).toEqual(expectedDockerComposeComplex);
});
@@ -1110,11 +1107,68 @@ volumes:
db-data-testhash:
`) as ComposeSpecification;
test("Expect to change the prefix in all the possible places (5 Try)", () => {
test("Expect to change the suffix in all the possible places (5 Try)", () => {
const composeData = load(composeFileExample1) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
const updatedComposeData = addPrefixToAllVolumes(composeData, prefix);
const updatedComposeData = addSuffixToAllVolumes(composeData, suffix);
expect(updatedComposeData).toEqual(expectedDockerComposeExample1);
});
const composeFileBackrest = `
services:
backrest:
image: garethgeorge/backrest:v1.7.3
restart: unless-stopped
ports:
- 9898
environment:
- BACKREST_PORT=9898
- BACKREST_DATA=/data
- BACKREST_CONFIG=/config/config.json
- XDG_CACHE_HOME=/cache
- TZ=\${TZ}
volumes:
- backrest/data:/data
- backrest/config:/config
- backrest/cache:/cache
- /:/userdata:ro
volumes:
backrest:
backrest-cache:
`;
const expectedDockerComposeBackrest = load(`
services:
backrest:
image: garethgeorge/backrest:v1.7.3
restart: unless-stopped
ports:
- 9898
environment:
- BACKREST_PORT=9898
- BACKREST_DATA=/data
- BACKREST_CONFIG=/config/config.json
- XDG_CACHE_HOME=/cache
- TZ=\${TZ}
volumes:
- backrest-testhash/data:/data
- backrest-testhash/config:/config
- backrest-testhash/cache:/cache
- /:/userdata:ro
volumes:
backrest-testhash:
backrest-cache-testhash:
`) as ComposeSpecification;
test("Should handle volume paths with subdirectories correctly", () => {
const composeData = load(composeFileBackrest) as ComposeSpecification;
const suffix = "testhash";
const updatedComposeData = addSuffixToAllVolumes(composeData, suffix);
expect(updatedComposeData).toEqual(expectedDockerComposeBackrest);
});

View File

@@ -1,6 +1,6 @@
import { generateRandomHash } from "@/server/utils/docker/compose";
import { addPrefixToVolumesRoot } from "@/server/utils/docker/compose/volume";
import type { ComposeSpecification } from "@/server/utils/docker/types";
import { generateRandomHash } from "@dokploy/server";
import { addSuffixToVolumesRoot } from "@dokploy/server";
import type { ComposeSpecification } from "@dokploy/server";
import { load } from "js-yaml";
import { expect, test } from "vitest";
@@ -29,18 +29,18 @@ test("Generate random hash with 8 characters", () => {
expect(hash.length).toBe(8);
});
test("Add prefix to volumes in root property", () => {
test("Add suffix to volumes in root property", () => {
const composeData = load(composeFile) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData?.volumes) {
return;
}
const volumes = addPrefixToVolumesRoot(composeData.volumes, prefix);
const volumes = addSuffixToVolumesRoot(composeData.volumes, suffix);
expect(volumes).toBeDefined();
for (const volumeKey of Object.keys(volumes)) {
expect(volumeKey).toContain(`-${prefix}`);
expect(volumeKey).toContain(`-${suffix}`);
expect(volumes[volumeKey]).toBeDefined();
}
});
@@ -67,18 +67,18 @@ networks:
driver: bridge
`;
test("Add prefix to volumes in root property (Case 2)", () => {
test("Add suffix to volumes in root property (Case 2)", () => {
const composeData = load(composeFile2) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData?.volumes) {
return;
}
const volumes = addPrefixToVolumesRoot(composeData.volumes, prefix);
const volumes = addSuffixToVolumesRoot(composeData.volumes, suffix);
expect(volumes).toBeDefined();
for (const volumeKey of Object.keys(volumes)) {
expect(volumeKey).toContain(`-${prefix}`);
expect(volumeKey).toContain(`-${suffix}`);
expect(volumes[volumeKey]).toBeDefined();
}
});
@@ -101,19 +101,19 @@ networks:
driver: bridge
`;
test("Add prefix to volumes in root property (Case 3)", () => {
test("Add suffix to volumes in root property (Case 3)", () => {
const composeData = load(composeFile3) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData?.volumes) {
return;
}
const volumes = addPrefixToVolumesRoot(composeData.volumes, prefix);
const volumes = addSuffixToVolumesRoot(composeData.volumes, suffix);
expect(volumes).toBeDefined();
for (const volumeKey of Object.keys(volumes)) {
expect(volumeKey).toContain(`-${prefix}`);
expect(volumeKey).toContain(`-${suffix}`);
expect(volumes[volumeKey]).toBeDefined();
}
});
@@ -179,15 +179,15 @@ volumes:
`) as ComposeSpecification;
test("Add prefix to volumes in root property", () => {
test("Add suffix to volumes in root property", () => {
const composeData = load(composeFile4) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
if (!composeData?.volumes) {
return;
}
const volumes = addPrefixToVolumesRoot(composeData.volumes, prefix);
const volumes = addSuffixToVolumesRoot(composeData.volumes, suffix);
const updatedComposeData = { ...composeData, volumes };
// Verificar que el resultado coincide con el archivo esperado

View File

@@ -1,6 +1,6 @@
import { generateRandomHash } from "@/server/utils/docker/compose";
import { addPrefixToVolumesInServices } from "@/server/utils/docker/compose/volume";
import type { ComposeSpecification } from "@/server/utils/docker/types";
import { generateRandomHash } from "@dokploy/server";
import { addSuffixToVolumesInServices } from "@dokploy/server";
import type { ComposeSpecification } from "@dokploy/server";
import { load } from "js-yaml";
import { expect, test } from "vitest";
@@ -21,22 +21,22 @@ services:
- db_data:/var/lib/postgresql/data
`;
test("Add prefix to volumes declared directly in services", () => {
test("Add suffix to volumes declared directly in services", () => {
const composeData = load(composeFile1) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData.services) {
return;
}
const updatedComposeData = addPrefixToVolumesInServices(
const updatedComposeData = addSuffixToVolumesInServices(
composeData.services,
prefix,
suffix,
);
const actualComposeData = { ...composeData, services: updatedComposeData };
expect(actualComposeData.services?.db?.volumes).toContain(
`db_data-${prefix}:/var/lib/postgresql/data`,
`db_data-${suffix}:/var/lib/postgresql/data`,
);
});
@@ -56,25 +56,25 @@ volumes:
driver: local
`;
test("Add prefix to volumes declared directly in services (Case 2)", () => {
test("Add suffix to volumes declared directly in services (Case 2)", () => {
const composeData = load(composeFileTypeVolume) as ComposeSpecification;
const prefix = generateRandomHash();
const suffix = generateRandomHash();
if (!composeData.services) {
return;
}
const updatedComposeData = addPrefixToVolumesInServices(
const updatedComposeData = addSuffixToVolumesInServices(
composeData.services,
prefix,
suffix,
);
const actualComposeData = { ...composeData, services: updatedComposeData };
expect(actualComposeData.services?.db?.volumes).toEqual([
{
type: "volume",
source: `db-test-${prefix}`,
source: `db-test-${suffix}`,
target: "/var/lib/postgresql/data",
},
]);

View File

@@ -1,9 +1,5 @@
import { generateRandomHash } from "@/server/utils/docker/compose";
import {
addPrefixToAllVolumes,
addPrefixToVolumesInServices,
} from "@/server/utils/docker/compose/volume";
import type { ComposeSpecification } from "@/server/utils/docker/types";
import { addSuffixToAllVolumes } from "@dokploy/server";
import type { ComposeSpecification } from "@dokploy/server";
import { load } from "js-yaml";
import { expect, test } from "vitest";
@@ -47,12 +43,12 @@ volumes:
driver: local
`) as ComposeSpecification;
test("Add prefix to volumes with type: volume in services", () => {
test("Add suffix to volumes with type: volume in services", () => {
const composeData = load(composeFileTypeVolume) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
const updatedComposeData = addPrefixToAllVolumes(composeData, prefix);
const updatedComposeData = addSuffixToAllVolumes(composeData, suffix);
const actualComposeData = { ...composeData, ...updatedComposeData };
expect(actualComposeData).toEqual(expectedComposeFileTypeVolume);
@@ -96,12 +92,12 @@ volumes:
driver: local
`) as ComposeSpecification;
test("Add prefix to mixed volumes in services", () => {
test("Add suffix to mixed volumes in services", () => {
const composeData = load(composeFileTypeVolume1) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
const updatedComposeData = addPrefixToAllVolumes(composeData, prefix);
const updatedComposeData = addSuffixToAllVolumes(composeData, suffix);
const actualComposeData = { ...composeData, ...updatedComposeData };
expect(actualComposeData).toEqual(expectedComposeFileTypeVolume1);
@@ -157,12 +153,12 @@ volumes:
device: /path/to/app/logs
`) as ComposeSpecification;
test("Add prefix to complex volume configurations in services", () => {
test("Add suffix to complex volume configurations in services", () => {
const composeData = load(composeFileTypeVolume2) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
const updatedComposeData = addPrefixToAllVolumes(composeData, prefix);
const updatedComposeData = addSuffixToAllVolumes(composeData, suffix);
const actualComposeData = { ...composeData, ...updatedComposeData };
expect(actualComposeData).toEqual(expectedComposeFileTypeVolume2);
@@ -276,12 +272,12 @@ volumes:
device: /path/to/shared/logs
`) as ComposeSpecification;
test("Add prefix to complex nested volumes configuration in services", () => {
test("Add suffix to complex nested volumes configuration in services", () => {
const composeData = load(composeFileTypeVolume3) as ComposeSpecification;
const prefix = "testhash";
const suffix = "testhash";
const updatedComposeData = addPrefixToAllVolumes(composeData, prefix);
const updatedComposeData = addSuffixToAllVolumes(composeData, suffix);
const actualComposeData = { ...composeData, ...updatedComposeData };
expect(actualComposeData).toEqual(expectedComposeFileTypeVolume3);

View File

@@ -0,0 +1,98 @@
import { extractCommitMessage } from "@/pages/api/deploy/[refreshToken]";
import { describe, expect, it } from "vitest";
describe("GitHub Webhook Skip CI", () => {
const mockGithubHeaders = {
"x-github-event": "push",
};
const createMockBody = (message: string) => ({
head_commit: {
message,
},
});
const skipKeywords = [
"[skip ci]",
"[ci skip]",
"[no ci]",
"[skip actions]",
"[actions skip]",
];
it("should detect skip keywords in commit message", () => {
for (const keyword of skipKeywords) {
const message = `feat: add new feature ${keyword}`;
const commitMessage = extractCommitMessage(
mockGithubHeaders,
createMockBody(message),
);
expect(commitMessage.includes(keyword)).toBe(true);
}
});
it("should not detect skip keywords in normal commit message", () => {
const message = "feat: add new feature";
const commitMessage = extractCommitMessage(
mockGithubHeaders,
createMockBody(message),
);
for (const keyword of skipKeywords) {
expect(commitMessage.includes(keyword)).toBe(false);
}
});
it("should handle different webhook sources", () => {
// GitHub
expect(
extractCommitMessage(
{ "x-github-event": "push" },
{ head_commit: { message: "[skip ci] test" } },
),
).toBe("[skip ci] test");
// GitLab
expect(
extractCommitMessage(
{ "x-gitlab-event": "push" },
{ commits: [{ message: "[skip ci] test" }] },
),
).toBe("[skip ci] test");
// Bitbucket
expect(
extractCommitMessage(
{ "x-event-key": "repo:push" },
{
push: {
changes: [{ new: { target: { message: "[skip ci] test" } } }],
},
},
),
).toBe("[skip ci] test");
// Gitea
expect(
extractCommitMessage(
{ "x-gitea-event": "push" },
{ commits: [{ message: "[skip ci] test" }] },
),
).toBe("[skip ci] test");
});
it("should handle missing commit message", () => {
expect(extractCommitMessage(mockGithubHeaders, {})).toBe("NEW COMMIT");
expect(extractCommitMessage({ "x-gitlab-event": "push" }, {})).toBe(
"NEW COMMIT",
);
expect(
extractCommitMessage(
{ "x-event-key": "repo:push" },
{ push: { changes: [] } },
),
).toBe("NEW COMMIT");
expect(extractCommitMessage({ "x-gitea-event": "push" }, {})).toBe(
"NEW COMMIT",
);
});
});

View File

@@ -0,0 +1,218 @@
import fs from "node:fs/promises";
import path from "node:path";
import { paths } from "@dokploy/server/constants";
const { APPLICATIONS_PATH } = paths();
import type { ApplicationNested } from "@dokploy/server";
import { unzipDrop } from "@dokploy/server";
import AdmZip from "adm-zip";
import { afterAll, beforeAll, describe, expect, it, vi } from "vitest";
vi.mock("@dokploy/server/constants", async (importOriginal) => {
const actual = await importOriginal();
return {
// @ts-ignore
...actual,
paths: () => ({
APPLICATIONS_PATH: "./__test__/drop/zips/output",
}),
};
});
if (typeof window === "undefined") {
const undici = require("undici");
globalThis.File = undici.File as any;
globalThis.FileList = undici.FileList as any;
}
const baseApp: ApplicationNested = {
applicationId: "",
herokuVersion: "",
giteaBranch: "",
giteaBuildPath: "",
giteaId: "",
giteaOwner: "",
giteaRepository: "",
cleanCache: false,
watchPaths: [],
enableSubmodules: false,
applicationStatus: "done",
triggerType: "push",
appName: "",
autoDeploy: true,
serverId: "",
registryUrl: "",
branch: null,
dockerBuildStage: "",
isPreviewDeploymentsActive: false,
previewBuildArgs: null,
previewCertificateType: "none",
previewCustomCertResolver: null,
previewEnv: null,
previewHttps: false,
previewPath: "/",
previewPort: 3000,
previewLimit: 0,
previewWildcard: "",
project: {
env: "",
organizationId: "",
name: "",
description: "",
createdAt: "",
projectId: "",
},
buildArgs: null,
buildPath: "/",
gitlabPathNamespace: "",
buildType: "nixpacks",
bitbucketBranch: "",
bitbucketBuildPath: "",
bitbucketId: "",
bitbucketRepository: "",
bitbucketOwner: "",
githubId: "",
gitlabProjectId: 0,
gitlabBranch: "",
gitlabBuildPath: "",
gitlabId: "",
gitlabRepository: "",
gitlabOwner: "",
command: null,
cpuLimit: null,
cpuReservation: null,
createdAt: "",
customGitBranch: "",
customGitBuildPath: "",
customGitSSHKeyId: null,
customGitUrl: "",
description: "",
dockerfile: null,
dockerImage: null,
dropBuildPath: null,
enabled: null,
env: null,
healthCheckSwarm: null,
labelsSwarm: null,
memoryLimit: null,
memoryReservation: null,
modeSwarm: null,
mounts: [],
name: "",
networkSwarm: null,
owner: null,
password: null,
placementSwarm: null,
ports: [],
projectId: "",
publishDirectory: null,
isStaticSpa: null,
redirects: [],
refreshToken: "",
registry: null,
registryId: null,
replicas: 1,
repository: null,
restartPolicySwarm: null,
rollbackConfigSwarm: null,
security: [],
sourceType: "git",
subtitle: null,
title: null,
updateConfigSwarm: null,
username: null,
dockerContextPath: null,
rollbackActive: false,
};
describe("unzipDrop using real zip files", () => {
// const { APPLICATIONS_PATH } = paths();
beforeAll(async () => {
await fs.rm(APPLICATIONS_PATH, { recursive: true, force: true });
});
afterAll(async () => {
await fs.rm(APPLICATIONS_PATH, { recursive: true, force: true });
});
it("should correctly extract a zip with a single root folder", async () => {
baseApp.appName = "single-file";
// const appName = "single-file";
try {
const outputPath = path.join(APPLICATIONS_PATH, baseApp.appName, "code");
const zip = new AdmZip("./__test__/drop/zips/single-file.zip");
console.log(`Output Path: ${outputPath}`);
const zipBuffer = zip.toBuffer();
const file = new File([zipBuffer], "single.zip");
await unzipDrop(file, baseApp);
const files = await fs.readdir(outputPath, { withFileTypes: true });
expect(files.some((f) => f.name === "test.txt")).toBe(true);
} catch (err) {
console.log(err);
} finally {
}
});
});
// it("should correctly extract a zip with a single root folder and a subfolder", async () => {
// baseApp.appName = "folderwithfile";
// // const appName = "folderwithfile";
// const outputPath = path.join(APPLICATIONS_PATH, baseApp.appName, "code");
// const zip = new AdmZip("./__test__/drop/zips/folder-with-file.zip");
// const zipBuffer = zip.toBuffer();
// const file = new File([zipBuffer], "single.zip");
// await unzipDrop(file, baseApp);
// const files = await fs.readdir(outputPath, { withFileTypes: true });
// expect(files.some((f) => f.name === "folder1.txt")).toBe(true);
// });
// it("should correctly extract a zip with multiple root folders", async () => {
// baseApp.appName = "two-folders";
// // const appName = "two-folders";
// const outputPath = path.join(APPLICATIONS_PATH, baseApp.appName, "code");
// const zip = new AdmZip("./__test__/drop/zips/two-folders.zip");
// const zipBuffer = zip.toBuffer();
// const file = new File([zipBuffer], "single.zip");
// await unzipDrop(file, baseApp);
// const files = await fs.readdir(outputPath, { withFileTypes: true });
// expect(files.some((f) => f.name === "folder1")).toBe(true);
// expect(files.some((f) => f.name === "folder2")).toBe(true);
// });
// it("should correctly extract a zip with a single root with a file", async () => {
// baseApp.appName = "nested";
// // const appName = "nested";
// const outputPath = path.join(APPLICATIONS_PATH, baseApp.appName, "code");
// const zip = new AdmZip("./__test__/drop/zips/nested.zip");
// const zipBuffer = zip.toBuffer();
// const file = new File([zipBuffer], "single.zip");
// await unzipDrop(file, baseApp);
// const files = await fs.readdir(outputPath, { withFileTypes: true });
// expect(files.some((f) => f.name === "folder1")).toBe(true);
// expect(files.some((f) => f.name === "folder2")).toBe(true);
// expect(files.some((f) => f.name === "folder3")).toBe(true);
// });
// it("should correctly extract a zip with a single root with a folder", async () => {
// baseApp.appName = "folder-with-sibling-file";
// // const appName = "folder-with-sibling-file";
// const outputPath = path.join(APPLICATIONS_PATH, baseApp.appName, "code");
// const zip = new AdmZip("./__test__/drop/zips/folder-with-sibling-file.zip");
// const zipBuffer = zip.toBuffer();
// const file = new File([zipBuffer], "single.zip");
// await unzipDrop(file, baseApp);
// const files = await fs.readdir(outputPath, { withFileTypes: true });
// expect(files.some((f) => f.name === "folder1")).toBe(true);
// expect(files.some((f) => f.name === "test.txt")).toBe(true);
// });
// });

Binary file not shown.

View File

@@ -0,0 +1 @@
Gogogogogogo

View File

@@ -0,0 +1 @@
gogogogogog

View File

@@ -0,0 +1 @@
gogogogogogogogogo

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
dsafasdfasdf

Binary file not shown.

179
apps/dokploy/__test__/env/shared.test.ts vendored Normal file
View File

@@ -0,0 +1,179 @@
import { prepareEnvironmentVariables } from "@dokploy/server/index";
import { describe, expect, it } from "vitest";
const projectEnv = `
ENVIRONMENT=staging
DATABASE_URL=postgres://postgres:postgres@localhost:5432/project_db
PORT=3000
`;
const serviceEnv = `
ENVIRONMENT=\${{project.ENVIRONMENT}}
DATABASE_URL=\${{project.DATABASE_URL}}
SERVICE_PORT=4000
`;
describe("prepareEnvironmentVariables", () => {
it("resolves project variables correctly", () => {
const resolved = prepareEnvironmentVariables(serviceEnv, projectEnv);
expect(resolved).toEqual([
"ENVIRONMENT=staging",
"DATABASE_URL=postgres://postgres:postgres@localhost:5432/project_db",
"SERVICE_PORT=4000",
]);
});
it("handles undefined project variables", () => {
const incompleteProjectEnv = `
NODE_ENV=production
`;
const invalidServiceEnv = `
UNDEFINED_VAR=\${{project.UNDEFINED_VAR}}
`;
expect(
() =>
prepareEnvironmentVariables(invalidServiceEnv, incompleteProjectEnv), // Cambiado el orden
).toThrow("Invalid project environment variable: project.UNDEFINED_VAR");
});
it("allows service-specific variables to override project variables", () => {
const serviceSpecificEnv = `
ENVIRONMENT=production
DATABASE_URL=\${{project.DATABASE_URL}}
`;
const resolved = prepareEnvironmentVariables(
serviceSpecificEnv,
projectEnv,
);
expect(resolved).toEqual([
"ENVIRONMENT=production", // Overrides project variable
"DATABASE_URL=postgres://postgres:postgres@localhost:5432/project_db",
]);
});
it("resolves complex references for dynamic endpoints", () => {
const projectEnv = `
BASE_URL=https://api.example.com
API_VERSION=v1
PORT=8000
`;
const serviceEnv = `
API_ENDPOINT=\${{project.BASE_URL}}/\${{project.API_VERSION}}/endpoint
SERVICE_PORT=9000
`;
const resolved = prepareEnvironmentVariables(serviceEnv, projectEnv);
expect(resolved).toEqual([
"API_ENDPOINT=https://api.example.com/v1/endpoint",
"SERVICE_PORT=9000",
]);
});
it("handles missing project variables gracefully", () => {
const projectEnv = `
PORT=8080
`;
const serviceEnv = `
MISSING_VAR=\${{project.MISSING_KEY}}
SERVICE_PORT=3000
`;
expect(() => prepareEnvironmentVariables(serviceEnv, projectEnv)).toThrow(
"Invalid project environment variable: project.MISSING_KEY",
);
});
it("overrides project variables with service-specific values", () => {
const projectEnv = `
ENVIRONMENT=staging
DATABASE_URL=postgres://project:project@localhost:5432/project_db
`;
const serviceEnv = `
ENVIRONMENT=\${{project.ENVIRONMENT}}
DATABASE_URL=postgres://service:service@localhost:5432/service_db
SERVICE_NAME=my-service
`;
const resolved = prepareEnvironmentVariables(serviceEnv, projectEnv);
expect(resolved).toEqual([
"ENVIRONMENT=staging",
"DATABASE_URL=postgres://service:service@localhost:5432/service_db",
"SERVICE_NAME=my-service",
]);
});
it("handles project variables with normal and unusual characters", () => {
const projectEnv = `
ENVIRONMENT=PRODUCTION
`;
// Needs to be in quotes
const serviceEnv = `
NODE_ENV=\${{project.ENVIRONMENT}}
SPECIAL_VAR="$^@$^@#$^@!#$@#$-\${{project.ENVIRONMENT}}"
`;
const resolved = prepareEnvironmentVariables(serviceEnv, projectEnv);
expect(resolved).toEqual([
"NODE_ENV=PRODUCTION",
"SPECIAL_VAR=$^@$^@#$^@!#$@#$-PRODUCTION",
]);
});
it("handles complex cases with multiple references, special characters, and spaces", () => {
const projectEnv = `
ENVIRONMENT=STAGING
APP_NAME=MyApp
`;
const serviceEnv = `
NODE_ENV=\${{project.ENVIRONMENT}}
COMPLEX_VAR="Prefix-$#^!@-\${{project.ENVIRONMENT}}--\${{project.APP_NAME}} Suffix "
`;
const resolved = prepareEnvironmentVariables(serviceEnv, projectEnv);
expect(resolved).toEqual([
"NODE_ENV=STAGING",
"COMPLEX_VAR=Prefix-$#^!@-STAGING--MyApp Suffix ",
]);
});
it("handles references enclosed in single quotes", () => {
const projectEnv = `
ENVIRONMENT=STAGING
APP_NAME=MyApp
`;
const serviceEnv = `
NODE_ENV='\${{project.ENVIRONMENT}}'
COMPLEX_VAR='Prefix-$#^!@-\${{project.ENVIRONMENT}}--\${{project.APP_NAME}} Suffix'
`;
const resolved = prepareEnvironmentVariables(serviceEnv, projectEnv);
expect(resolved).toEqual([
"NODE_ENV=STAGING",
"COMPLEX_VAR=Prefix-$#^!@-STAGING--MyApp Suffix",
]);
});
it("handles double and single quotes combined", () => {
const projectEnv = `
ENVIRONMENT=PRODUCTION
APP_NAME=MyApp
`;
const serviceEnv = `
NODE_ENV="'\${{project.ENVIRONMENT}}'"
COMPLEX_VAR="'Prefix \"DoubleQuoted\" and \${{project.APP_NAME}}'"
`;
const resolved = prepareEnvironmentVariables(serviceEnv, projectEnv);
expect(resolved).toEqual([
"NODE_ENV='PRODUCTION'",
"COMPLEX_VAR='Prefix \"DoubleQuoted\" and MyApp'",
]);
});
});

View File

@@ -0,0 +1,56 @@
import { parseRawConfig, processLogs } from "@dokploy/server";
import { describe, expect, it } from "vitest";
const sampleLogEntry = `{"ClientAddr":"172.19.0.1:56732","ClientHost":"172.19.0.1","ClientPort":"56732","ClientUsername":"-","DownstreamContentSize":0,"DownstreamStatus":304,"Duration":14729375,"OriginContentSize":0,"OriginDuration":14051833,"OriginStatus":304,"Overhead":677542,"RequestAddr":"s222-umami-c381af.traefik.me","RequestContentSize":0,"RequestCount":122,"RequestHost":"s222-umami-c381af.traefik.me","RequestMethod":"GET","RequestPath":"/dashboard?_rsc=1rugv","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"s222-umami-60e104-47-web@docker","ServiceAddr":"10.0.1.15:3000","ServiceName":"s222-umami-60e104-47-web@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"10.0.1.15:3000","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2024-08-25T04:34:37.306691884Z","StartUTC":"2024-08-25T04:34:37.306691884Z","entryPointName":"web","level":"info","msg":"","time":"2024-08-25T04:34:37Z"}`;
describe("processLogs", () => {
it("should process a single log entry correctly", () => {
const result = processLogs(sampleLogEntry);
expect(result).toHaveLength(1);
expect(result[0]).toEqual({
hour: "2024-08-25T04:00:00Z",
count: 1,
});
});
it("should process multiple log entries and group by hour", () => {
const sampleLogEntry = `{"ClientAddr":"172.19.0.1:58094","ClientHost":"172.19.0.1","ClientPort":"58094","ClientUsername":"-","DownstreamContentSize":50,"DownstreamStatus":200,"Duration":35914250,"OriginContentSize":50,"OriginDuration":35817959,"OriginStatus":200,"Overhead":96291,"RequestAddr":"s222-pocketbase-f4a6e5.traefik.me","RequestContentSize":0,"RequestCount":991,"RequestHost":"s222-pocketbase-f4a6e5.traefik.me","RequestMethod":"GET","RequestPath":"/api/logs/stats?filter=","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"s222-pocketbase-e94e25-44-web@docker","ServiceAddr":"10.0.1.12:80","ServiceName":"s222-pocketbase-e94e25-44-web@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"10.0.1.12:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2024-08-25T17:44:29.274072471Z","StartUTC":"2024-08-25T17:44:29.274072471Z","entryPointName":"web","level":"info","msg":"","time":"2024-08-25T17:44:29Z"}
{"ClientAddr":"172.19.0.1:58108","ClientHost":"172.19.0.1","ClientPort":"58108","ClientUsername":"-","DownstreamContentSize":30975,"DownstreamStatus":200,"Duration":31406458,"OriginContentSize":30975,"OriginDuration":31046791,"OriginStatus":200,"Overhead":359667,"RequestAddr":"s222-pocketbase-f4a6e5.traefik.me","RequestContentSize":0,"RequestCount":992,"RequestHost":"s222-pocketbase-f4a6e5.traefik.me","RequestMethod":"GET","RequestPath":"/api/logs?page=1\u0026perPage=50\u0026sort=-rowid\u0026skipTotal=1\u0026filter=","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"s222-pocketbase-e94e25-44-web@docker","ServiceAddr":"10.0.1.12:80","ServiceName":"s222-pocketbase-e94e25-44-web@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"10.0.1.12:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2024-08-25T17:44:29.278990221Z","StartUTC":"2024-08-25T17:44:29.278990221Z","entryPointName":"web","level":"info","msg":"","time":"2024-08-25T17:44:29Z"}
`;
const result = processLogs(sampleLogEntry);
expect(result).toHaveLength(1);
expect(result).toEqual([{ hour: "2024-08-25T17:00:00Z", count: 2 }]);
});
it("should return an empty array for empty input", () => {
expect(processLogs("")).toEqual([]);
expect(processLogs(null as any)).toEqual([]);
expect(processLogs(undefined as any)).toEqual([]);
});
// it("should parse a single log entry correctly", () => {
// const result = parseRawConfig(sampleLogEntry);
// expect(result).toHaveLength(1);
// expect(result.data[0]).toHaveProperty("ClientAddr", "172.19.0.1:56732");
// expect(result.data[0]).toHaveProperty(
// "StartUTC",
// "2024-08-25T04:34:37.306691884Z",
// );
// });
it("should parse multiple log entries", () => {
const multipleEntries = `${sampleLogEntry}\n${sampleLogEntry}`;
const result = parseRawConfig(multipleEntries);
expect(result.data).toHaveLength(2);
for (const entry of result.data) {
expect(entry).toHaveProperty("ClientAddr", "172.19.0.1:56732");
}
});
it("should handle whitespace and empty lines", () => {
const entryWithWhitespace = `\n${sampleLogEntry}\n\n${sampleLogEntry}\n`;
const result = parseRawConfig(entryWithWhitespace);
expect(result.data).toHaveLength(2);
});
});

View File

@@ -0,0 +1,497 @@
import type { Schema } from "@dokploy/server/templates";
import type { CompleteTemplate } from "@dokploy/server/templates/processors";
import { processTemplate } from "@dokploy/server/templates/processors";
import { describe, expect, it } from "vitest";
describe("processTemplate", () => {
// Mock schema for testing
const mockSchema: Schema = {
projectName: "test",
serverIp: "127.0.0.1",
};
describe("variables processing", () => {
it("should process basic variables with utility functions", () => {
const template: CompleteTemplate = {
metadata: {} as any,
variables: {
main_domain: "${domain}",
secret_base: "${base64:64}",
totp_key: "${base64:32}",
password: "${password:32}",
hash: "${hash:16}",
},
config: {
domains: [],
env: {},
},
};
const result = processTemplate(template, mockSchema);
expect(result.envs).toHaveLength(0);
expect(result.domains).toHaveLength(0);
expect(result.mounts).toHaveLength(0);
});
it("should allow referencing variables in other variables", () => {
const template: CompleteTemplate = {
metadata: {} as any,
variables: {
main_domain: "${domain}",
api_domain: "api.${main_domain}",
},
config: {
domains: [],
env: {},
},
};
const result = processTemplate(template, mockSchema);
expect(result.envs).toHaveLength(0);
expect(result.domains).toHaveLength(0);
expect(result.mounts).toHaveLength(0);
});
it("should allow creation of real jwt secret", () => {
const template: CompleteTemplate = {
metadata: {} as any,
variables: {
jwt_secret: "cQsdycq1hDLopQonF6jUTqgQc5WEZTwWLL02J6XJ",
anon_payload: JSON.stringify({
role: "tester",
iss: "dockploy",
iat: "${timestamps:2025-01-01T00:00:00Z}",
exp: "${timestamps:2030-01-01T00:00:00Z}",
}),
anon_key: "${jwt:jwt_secret:anon_payload}",
},
config: {
domains: [],
env: {
ANON_KEY: "${anon_key}",
},
},
};
const result = processTemplate(template, mockSchema);
expect(result.envs).toHaveLength(1);
expect(result.envs).toContain(
"ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOiIxNzM1Njg5NjAwIiwiZXhwIjoiMTg5MzQ1NjAwMCIsInJvbGUiOiJ0ZXN0ZXIiLCJpc3MiOiJkb2NrcGxveSJ9.BG5JoxL2_NaTFbPgyZdm3kRWenf_O3su_HIRKGCJ_kY",
);
expect(result.mounts).toHaveLength(0);
expect(result.domains).toHaveLength(0);
});
});
describe("domains processing", () => {
it("should process domains with explicit host", () => {
const template: CompleteTemplate = {
metadata: {} as any,
variables: {
main_domain: "${domain}",
},
config: {
domains: [
{
serviceName: "plausible",
port: 8000,
host: "${main_domain}",
},
],
env: {},
},
};
const result = processTemplate(template, mockSchema);
expect(result.domains).toHaveLength(1);
const domain = result.domains[0];
expect(domain).toBeDefined();
if (!domain) return;
expect(domain).toMatchObject({
serviceName: "plausible",
port: 8000,
});
expect(domain.host).toBeDefined();
expect(domain.host).toContain(mockSchema.projectName);
});
it("should generate random domain if host is not specified", () => {
const template: CompleteTemplate = {
metadata: {} as any,
variables: {},
config: {
domains: [
{
serviceName: "plausible",
port: 8000,
},
],
env: {},
},
};
const result = processTemplate(template, mockSchema);
expect(result.domains).toHaveLength(1);
const domain = result.domains[0];
expect(domain).toBeDefined();
if (!domain || !domain.host) return;
expect(domain.host).toBeDefined();
expect(domain.host).toContain(mockSchema.projectName);
});
it("should allow using ${domain} directly in host", () => {
const template: CompleteTemplate = {
metadata: {} as any,
variables: {},
config: {
domains: [
{
serviceName: "plausible",
port: 8000,
host: "${domain}",
},
],
env: {},
},
};
const result = processTemplate(template, mockSchema);
expect(result.domains).toHaveLength(1);
const domain = result.domains[0];
expect(domain).toBeDefined();
if (!domain || !domain.host) return;
expect(domain.host).toBeDefined();
expect(domain.host).toContain(mockSchema.projectName);
});
});
describe("environment variables processing", () => {
it("should process env vars with variable references", () => {
const template: CompleteTemplate = {
metadata: {} as any,
variables: {
main_domain: "${domain}",
secret_base: "${base64:64}",
},
config: {
domains: [],
env: {
BASE_URL: "http://${main_domain}",
SECRET_KEY_BASE: "${secret_base}",
},
},
};
const result = processTemplate(template, mockSchema);
expect(result.envs).toHaveLength(2);
const baseUrl = result.envs.find((env: string) =>
env.startsWith("BASE_URL="),
);
const secretKey = result.envs.find((env: string) =>
env.startsWith("SECRET_KEY_BASE="),
);
expect(baseUrl).toBeDefined();
expect(secretKey).toBeDefined();
if (!baseUrl || !secretKey) return;
expect(baseUrl).toContain(mockSchema.projectName);
const base64Value = secretKey.split("=")[1];
expect(base64Value).toBeDefined();
if (!base64Value) return;
expect(base64Value).toMatch(/^[A-Za-z0-9+/]+={0,2}$/);
expect(base64Value.length).toBeGreaterThanOrEqual(86);
expect(base64Value.length).toBeLessThanOrEqual(88);
});
it("should process env vars when provided as an array", () => {
const template: CompleteTemplate = {
metadata: {} as any,
variables: {},
config: {
domains: [],
env: [
'CLOUDFLARE_TUNNEL_TOKEN="<INSERT TOKEN>"',
'ANOTHER_VAR="some value"',
"DOMAIN=${domain}",
],
mounts: [],
},
};
const result = processTemplate(template, mockSchema);
expect(result.envs).toHaveLength(3);
// Should preserve exact format for static values
expect(result.envs[0]).toBe('CLOUDFLARE_TUNNEL_TOKEN="<INSERT TOKEN>"');
expect(result.envs[1]).toBe('ANOTHER_VAR="some value"');
// Should process variables in array items
expect(result.envs[2]).toContain(mockSchema.projectName);
});
it("should allow using utility functions directly in env vars", () => {
const template: CompleteTemplate = {
metadata: {} as any,
variables: {},
config: {
domains: [],
env: {
RANDOM_DOMAIN: "${domain}",
SECRET_KEY: "${base64:32}",
},
},
};
const result = processTemplate(template, mockSchema);
expect(result.envs).toHaveLength(2);
const randomDomainEnv = result.envs.find((env: string) =>
env.startsWith("RANDOM_DOMAIN="),
);
const secretKeyEnv = result.envs.find((env: string) =>
env.startsWith("SECRET_KEY="),
);
expect(randomDomainEnv).toBeDefined();
expect(secretKeyEnv).toBeDefined();
if (!randomDomainEnv || !secretKeyEnv) return;
expect(randomDomainEnv).toContain(mockSchema.projectName);
const base64Value = secretKeyEnv.split("=")[1];
expect(base64Value).toBeDefined();
if (!base64Value) return;
expect(base64Value).toMatch(/^[A-Za-z0-9+/]+={0,2}$/);
expect(base64Value.length).toBeGreaterThanOrEqual(42);
expect(base64Value.length).toBeLessThanOrEqual(44);
});
it("should handle boolean values in env vars when provided as an array", () => {
const template: CompleteTemplate = {
metadata: {} as any,
variables: {},
config: {
domains: [],
env: [
"ENABLE_USER_SIGN_UP=false",
"DEBUG_MODE=true",
"SOME_NUMBER=42",
],
mounts: [],
},
};
const result = processTemplate(template, mockSchema);
expect(result.envs).toHaveLength(3);
expect(result.envs).toContain("ENABLE_USER_SIGN_UP=false");
expect(result.envs).toContain("DEBUG_MODE=true");
expect(result.envs).toContain("SOME_NUMBER=42");
});
it("should handle boolean values in env vars when provided as an object", () => {
const template: CompleteTemplate = {
metadata: {} as any,
variables: {},
config: {
domains: [],
env: {
ENABLE_USER_SIGN_UP: false,
DEBUG_MODE: true,
SOME_NUMBER: 42,
},
},
};
const result = processTemplate(template, mockSchema);
expect(result.envs).toHaveLength(3);
expect(result.envs).toContain("ENABLE_USER_SIGN_UP=false");
expect(result.envs).toContain("DEBUG_MODE=true");
expect(result.envs).toContain("SOME_NUMBER=42");
});
});
describe("mounts processing", () => {
it("should process mounts with variable references", () => {
const template: CompleteTemplate = {
metadata: {} as any,
variables: {
config_path: "/etc/config",
secret_key: "${base64:32}",
},
config: {
domains: [],
env: {},
mounts: [
{
filePath: "${config_path}/config.xml",
content: "secret_key=${secret_key}",
},
],
},
};
const result = processTemplate(template, mockSchema);
expect(result.mounts).toHaveLength(1);
const mount = result.mounts[0];
expect(mount).toBeDefined();
if (!mount) return;
expect(mount.filePath).toContain("/etc/config");
expect(mount.content).toMatch(/secret_key=[A-Za-z0-9+/]{32}/);
});
it("should allow using utility functions directly in mount content", () => {
const template: CompleteTemplate = {
metadata: {} as any,
variables: {},
config: {
domains: [],
env: {},
mounts: [
{
filePath: "/config/secrets.txt",
content: "random_domain=${domain}\nsecret=${base64:32}",
},
],
},
};
const result = processTemplate(template, mockSchema);
expect(result.mounts).toHaveLength(1);
const mount = result.mounts[0];
expect(mount).toBeDefined();
if (!mount) return;
expect(mount.content).toContain(mockSchema.projectName);
expect(mount.content).toMatch(/secret=[A-Za-z0-9+/]{32}/);
});
});
describe("complex template processing", () => {
it("should process a complete template with all features", () => {
const template: CompleteTemplate = {
metadata: {} as any,
variables: {
main_domain: "${domain}",
secret_base: "${base64:64}",
totp_key: "${base64:32}",
},
config: {
domains: [
{
serviceName: "plausible",
port: 8000,
host: "${main_domain}",
},
{
serviceName: "api",
port: 3000,
host: "api.${main_domain}",
},
],
env: {
BASE_URL: "http://${main_domain}",
SECRET_KEY_BASE: "${secret_base}",
TOTP_VAULT_KEY: "${totp_key}",
},
mounts: [
{
filePath: "/config/app.conf",
content: `
domain=\${main_domain}
secret=\${secret_base}
totp=\${totp_key}
`,
},
],
},
};
const result = processTemplate(template, mockSchema);
// Check domains
expect(result.domains).toHaveLength(2);
const [domain1, domain2] = result.domains;
expect(domain1).toBeDefined();
expect(domain2).toBeDefined();
if (!domain1 || !domain2) return;
expect(domain1.host).toBeDefined();
expect(domain1.host).toContain(mockSchema.projectName);
expect(domain2.host).toContain("api.");
expect(domain2.host).toContain(mockSchema.projectName);
// Check env vars
expect(result.envs).toHaveLength(3);
const baseUrl = result.envs.find((env: string) =>
env.startsWith("BASE_URL="),
);
const secretKey = result.envs.find((env: string) =>
env.startsWith("SECRET_KEY_BASE="),
);
const totpKey = result.envs.find((env: string) =>
env.startsWith("TOTP_VAULT_KEY="),
);
expect(baseUrl).toBeDefined();
expect(secretKey).toBeDefined();
expect(totpKey).toBeDefined();
if (!baseUrl || !secretKey || !totpKey) return;
expect(baseUrl).toContain(mockSchema.projectName);
// Check base64 lengths and format
const secretKeyValue = secretKey.split("=")[1];
const totpKeyValue = totpKey.split("=")[1];
expect(secretKeyValue).toBeDefined();
expect(totpKeyValue).toBeDefined();
if (!secretKeyValue || !totpKeyValue) return;
expect(secretKeyValue).toMatch(/^[A-Za-z0-9+/]+={0,2}$/);
expect(secretKeyValue.length).toBeGreaterThanOrEqual(86);
expect(secretKeyValue.length).toBeLessThanOrEqual(88);
expect(totpKeyValue).toMatch(/^[A-Za-z0-9+/]+={0,2}$/);
expect(totpKeyValue.length).toBeGreaterThanOrEqual(42);
expect(totpKeyValue.length).toBeLessThanOrEqual(44);
// Check mounts
expect(result.mounts).toHaveLength(1);
const mount = result.mounts[0];
expect(mount).toBeDefined();
if (!mount) return;
expect(mount.content).toContain(mockSchema.projectName);
expect(mount.content).toMatch(/secret=[A-Za-z0-9+/]{86,88}/);
expect(mount.content).toMatch(/totp=[A-Za-z0-9+/]{42,44}/);
});
});
describe("Should populate envs, domains and mounts in the case we didn't used any variable", () => {
it("should populate envs, domains and mounts in the case we didn't used any variable", () => {
const template: CompleteTemplate = {
metadata: {} as any,
variables: {},
config: {
domains: [
{
serviceName: "plausible",
port: 8000,
host: "${hash}",
},
],
env: {
BASE_URL: "http://${domain}",
SECRET_KEY_BASE: "${password:32}",
TOTP_VAULT_KEY: "${base64:128}",
},
mounts: [
{
filePath: "/config/secrets.txt",
content: "random_domain=${domain}\nsecret=${password:32}",
},
],
},
};
const result = processTemplate(template, mockSchema);
expect(result.envs).toHaveLength(3);
expect(result.domains).toHaveLength(1);
expect(result.mounts).toHaveLength(1);
});
});
});

View File

@@ -0,0 +1,232 @@
import type { Schema } from "@dokploy/server/templates";
import { processValue } from "@dokploy/server/templates/processors";
import { describe, expect, it } from "vitest";
describe("helpers functions", () => {
// Mock schema for testing
const mockSchema: Schema = {
projectName: "test",
serverIp: "127.0.0.1",
};
// some helpers to test jwt
type JWTParts = [string, string, string];
const jwtMatchExp = /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+$/;
const jwtBase64Decode = (str: string) => {
const base64 = str.replace(/-/g, "+").replace(/_/g, "/");
const padding = "=".repeat((4 - (base64.length % 4)) % 4);
const decoded = Buffer.from(base64 + padding, "base64").toString("utf-8");
return JSON.parse(decoded);
};
const jwtCheckHeader = (jwtHeader: string) => {
const decodedHeader = jwtBase64Decode(jwtHeader);
expect(decodedHeader).toHaveProperty("alg");
expect(decodedHeader).toHaveProperty("typ");
expect(decodedHeader.alg).toEqual("HS256");
expect(decodedHeader.typ).toEqual("JWT");
};
describe("${domain}", () => {
it("should generate a random domain", () => {
const domain = processValue("${domain}", {}, mockSchema);
expect(domain.startsWith(`${mockSchema.projectName}-`)).toBeTruthy();
expect(
domain.endsWith(
`${mockSchema.serverIp.replaceAll(".", "-")}.traefik.me`,
),
).toBeTruthy();
});
});
describe("${base64}", () => {
it("should generate a base64 string", () => {
const base64 = processValue("${base64}", {}, mockSchema);
expect(base64).toMatch(/^[A-Za-z0-9+=/]+={0,2}$/);
});
it.each([
[4, 8],
[8, 12],
[16, 24],
[32, 44],
[64, 88],
[128, 172],
])(
"should generate a base64 string from parameter %d bytes length",
(length, finalLength) => {
const base64 = processValue(`\${base64:${length}}`, {}, mockSchema);
expect(base64).toMatch(/^[A-Za-z0-9+=/]+={0,2}$/);
expect(base64.length).toBe(finalLength);
},
);
});
describe("${password}", () => {
it("should generate a password string", () => {
const password = processValue("${password}", {}, mockSchema);
expect(password).toMatch(/^[A-Za-z0-9]+$/);
});
it.each([6, 8, 12, 16, 32])(
"should generate a password string respecting parameter %d length",
(length) => {
const password = processValue(`\${password:${length}}`, {}, mockSchema);
expect(password).toMatch(/^[A-Za-z0-9]+$/);
expect(password.length).toBe(length);
},
);
});
describe("${hash}", () => {
it("should generate a hash string", () => {
const hash = processValue("${hash}", {}, mockSchema);
expect(hash).toMatch(/^[A-Za-z0-9]+$/);
});
it.each([6, 8, 12, 16, 32])(
"should generate a hash string respecting parameter %d length",
(length) => {
const hash = processValue(`\${hash:${length}}`, {}, mockSchema);
expect(hash).toMatch(/^[A-Za-z0-9]+$/);
expect(hash.length).toBe(length);
},
);
});
describe("${uuid}", () => {
it("should generate a UUID string", () => {
const uuid = processValue("${uuid}", {}, mockSchema);
expect(uuid).toMatch(
/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/,
);
});
});
describe("${timestamp}", () => {
it("should generate a timestamp string in milliseconds", () => {
const timestamp = processValue("${timestamp}", {}, mockSchema);
const nowLength = Math.floor(Date.now()).toString().length;
expect(timestamp).toMatch(/^\d+$/);
expect(timestamp.length).toBe(nowLength);
});
});
describe("${timestampms}", () => {
it("should generate a timestamp string in milliseconds", () => {
const timestamp = processValue("${timestampms}", {}, mockSchema);
const nowLength = Date.now().toString().length;
expect(timestamp).toMatch(/^\d+$/);
expect(timestamp.length).toBe(nowLength);
});
it("should generate a timestamp string in milliseconds from parameter", () => {
const timestamp = processValue(
"${timestampms:2025-01-01}",
{},
mockSchema,
);
expect(timestamp).toEqual("1735689600000");
});
});
describe("${timestamps}", () => {
it("should generate a timestamp string in seconds", () => {
const timestamps = processValue("${timestamps}", {}, mockSchema);
const nowLength = Math.floor(Date.now() / 1000).toString().length;
expect(timestamps).toMatch(/^\d+$/);
expect(timestamps.length).toBe(nowLength);
});
it("should generate a timestamp string in seconds from parameter", () => {
const timestamps = processValue(
"${timestamps:2025-01-01}",
{},
mockSchema,
);
expect(timestamps).toEqual("1735689600");
});
});
describe("${randomPort}", () => {
it("should generate a random port string", () => {
const randomPort = processValue("${randomPort}", {}, mockSchema);
expect(randomPort).toMatch(/^\d+$/);
expect(Number(randomPort)).toBeLessThan(65536);
});
});
describe("${username}", () => {
it("should generate a username string", () => {
const username = processValue("${username}", {}, mockSchema);
expect(username).toMatch(/^[a-zA-Z0-9._-]{3,}$/);
});
});
describe("${email}", () => {
it("should generate an email string", () => {
const email = processValue("${email}", {}, mockSchema);
expect(email).toMatch(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/);
});
});
describe("${jwt}", () => {
it("should generate a JWT string", () => {
const jwt = processValue("${jwt}", {}, mockSchema);
expect(jwt).toMatch(jwtMatchExp);
const parts = jwt.split(".") as JWTParts;
const decodedPayload = jwtBase64Decode(parts[1]);
jwtCheckHeader(parts[0]);
expect(decodedPayload).toHaveProperty("iat");
expect(decodedPayload).toHaveProperty("iss");
expect(decodedPayload).toHaveProperty("exp");
expect(decodedPayload.iss).toEqual("dokploy");
});
it.each([6, 8, 12, 16, 32])(
"should generate a random hex string from parameter %d byte length",
(length) => {
const jwt = processValue(`\${jwt:${length}}`, {}, mockSchema);
expect(jwt).toMatch(/^[A-Za-z0-9-_.]+$/);
expect(jwt.length).toBeGreaterThanOrEqual(length); // bytes translated to hex can take up to 2x the length
expect(jwt.length).toBeLessThanOrEqual(length * 2);
},
);
});
describe("${jwt:secret}", () => {
it("should generate a JWT string respecting parameter secret from variable", () => {
const jwt = processValue(
"${jwt:secret}",
{ secret: "mysecret" },
mockSchema,
);
expect(jwt).toMatch(jwtMatchExp);
const parts = jwt.split(".") as JWTParts;
const decodedPayload = jwtBase64Decode(parts[1]);
jwtCheckHeader(parts[0]);
expect(decodedPayload).toHaveProperty("iat");
expect(decodedPayload).toHaveProperty("iss");
expect(decodedPayload).toHaveProperty("exp");
expect(decodedPayload.iss).toEqual("dokploy");
});
});
describe("${jwt:secret:payload}", () => {
it("should generate a JWT string respecting parameters secret and payload from variables", () => {
const iat = Math.floor(new Date("2025-01-01T00:00:00Z").getTime() / 1000);
const expiry = iat + 3600;
const jwt = processValue(
"${jwt:secret:payload}",
{
secret: "mysecret",
payload: `{"iss": "test-issuer", "iat": ${iat}, "exp": ${expiry}, "customprop": "customvalue"}`,
},
mockSchema,
);
expect(jwt).toMatch(jwtMatchExp);
const parts = jwt.split(".") as JWTParts;
jwtCheckHeader(parts[0]);
const decodedPayload = jwtBase64Decode(parts[1]);
expect(decodedPayload).toHaveProperty("iat");
expect(decodedPayload.iat).toEqual(iat);
expect(decodedPayload).toHaveProperty("iss");
expect(decodedPayload.iss).toEqual("test-issuer");
expect(decodedPayload).toHaveProperty("exp");
expect(decodedPayload.exp).toEqual(expiry);
expect(decodedPayload).toHaveProperty("customprop");
expect(decodedPayload.customprop).toEqual("customvalue");
expect(jwt).toEqual(
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3MzU2ODk2MDAsImV4cCI6MTczNTY5MzIwMCwiaXNzIjoidGVzdC1pc3N1ZXIiLCJjdXN0b21wcm9wIjoiY3VzdG9tdmFsdWUifQ.m42U7PZSUSCf7gBOJrxJir0rQmyPq4rA59Dydr_QahI",
);
});
});
});

View File

@@ -0,0 +1,133 @@
import { fs, vol } from "memfs";
vi.mock("node:fs", () => ({
...fs,
default: fs,
}));
import type { FileConfig, User } from "@dokploy/server";
import {
createDefaultServerTraefikConfig,
loadOrCreateConfig,
updateServerTraefik,
} from "@dokploy/server";
import { beforeEach, expect, test, vi } from "vitest";
const baseAdmin: User = {
https: false,
enablePaidFeatures: false,
allowImpersonation: false,
role: "user",
metricsConfig: {
containers: {
refreshRate: 20,
services: {
include: [],
exclude: [],
},
},
server: {
type: "Dokploy",
cronJob: "",
port: 4500,
refreshRate: 20,
retentionDays: 2,
token: "",
thresholds: {
cpu: 0,
memory: 0,
},
urlCallback: "",
},
},
cleanupCacheApplications: false,
cleanupCacheOnCompose: false,
cleanupCacheOnPreviews: false,
createdAt: new Date(),
serverIp: null,
certificateType: "none",
host: null,
letsEncryptEmail: null,
sshPrivateKey: null,
enableDockerCleanup: false,
logCleanupCron: null,
serversQuantity: 0,
stripeCustomerId: "",
stripeSubscriptionId: "",
banExpires: new Date(),
banned: true,
banReason: "",
email: "",
expirationDate: "",
id: "",
isRegistered: false,
name: "",
createdAt2: new Date().toISOString(),
emailVerified: false,
image: "",
updatedAt: new Date(),
twoFactorEnabled: false,
};
beforeEach(() => {
vol.reset();
createDefaultServerTraefikConfig();
});
test("Should read the configuration file", () => {
const config: FileConfig = loadOrCreateConfig("dokploy");
expect(config.http?.routers?.["dokploy-router-app"]?.service).toBe(
"dokploy-service-app",
);
});
test("Should apply redirect-to-https", () => {
updateServerTraefik(
{
...baseAdmin,
https: true,
certificateType: "letsencrypt",
},
"example.com",
);
const config: FileConfig = loadOrCreateConfig("dokploy");
expect(config.http?.routers?.["dokploy-router-app"]?.middlewares).toContain(
"redirect-to-https",
);
});
test("Should change only host when no certificate", () => {
updateServerTraefik(baseAdmin, "example.com");
const config: FileConfig = loadOrCreateConfig("dokploy");
expect(config.http?.routers?.["dokploy-router-app-secure"]).toBeUndefined();
});
test("Should not touch config without host", () => {
const originalConfig: FileConfig = loadOrCreateConfig("dokploy");
updateServerTraefik(baseAdmin, null);
const config: FileConfig = loadOrCreateConfig("dokploy");
expect(originalConfig).toEqual(config);
});
test("Should remove websecure if https rollback to http", () => {
updateServerTraefik(
{ ...baseAdmin, certificateType: "letsencrypt" },
"example.com",
);
updateServerTraefik({ ...baseAdmin, certificateType: "none" }, "example.com");
const config: FileConfig = loadOrCreateConfig("dokploy");
expect(config.http?.routers?.["dokploy-router-app-secure"]).toBeUndefined();
expect(
config.http?.routers?.["dokploy-router-app"]?.middlewares,
).not.toContain("redirect-to-https");
});

View File

@@ -0,0 +1,251 @@
import type { Domain } from "@dokploy/server";
import type { Redirect } from "@dokploy/server";
import type { ApplicationNested } from "@dokploy/server";
import { createRouterConfig } from "@dokploy/server";
import { expect, test } from "vitest";
const baseApp: ApplicationNested = {
rollbackActive: false,
applicationId: "",
herokuVersion: "",
giteaRepository: "",
giteaOwner: "",
giteaBranch: "",
giteaBuildPath: "",
giteaId: "",
cleanCache: false,
applicationStatus: "done",
appName: "",
autoDeploy: true,
enableSubmodules: false,
serverId: "",
branch: null,
dockerBuildStage: "",
registryUrl: "",
watchPaths: [],
buildArgs: null,
isPreviewDeploymentsActive: false,
previewBuildArgs: null,
triggerType: "push",
previewCertificateType: "none",
previewEnv: null,
previewHttps: false,
previewPath: "/",
previewPort: 3000,
previewLimit: 0,
previewCustomCertResolver: null,
previewWildcard: "",
project: {
env: "",
organizationId: "",
name: "",
description: "",
createdAt: "",
projectId: "",
},
buildPath: "/",
gitlabPathNamespace: "",
buildType: "nixpacks",
bitbucketBranch: "",
bitbucketBuildPath: "",
bitbucketId: "",
bitbucketRepository: "",
bitbucketOwner: "",
githubId: "",
gitlabProjectId: 0,
gitlabBranch: "",
gitlabBuildPath: "",
gitlabId: "",
gitlabRepository: "",
gitlabOwner: "",
command: null,
cpuLimit: null,
cpuReservation: null,
createdAt: "",
customGitBranch: "",
customGitBuildPath: "",
customGitSSHKeyId: null,
customGitUrl: "",
description: "",
dockerfile: null,
dockerImage: null,
dropBuildPath: null,
enabled: null,
env: null,
healthCheckSwarm: null,
labelsSwarm: null,
memoryLimit: null,
memoryReservation: null,
modeSwarm: null,
mounts: [],
name: "",
networkSwarm: null,
owner: null,
password: null,
placementSwarm: null,
ports: [],
projectId: "",
publishDirectory: null,
isStaticSpa: null,
redirects: [],
refreshToken: "",
registry: null,
registryId: null,
replicas: 1,
repository: null,
restartPolicySwarm: null,
rollbackConfigSwarm: null,
security: [],
sourceType: "git",
subtitle: null,
title: null,
updateConfigSwarm: null,
username: null,
dockerContextPath: null,
};
const baseDomain: Domain = {
applicationId: "",
certificateType: "none",
createdAt: "",
domainId: "",
host: "",
https: false,
path: null,
port: null,
serviceName: "",
composeId: "",
customCertResolver: null,
domainType: "application",
uniqueConfigKey: 1,
previewDeploymentId: "",
};
const baseRedirect: Redirect = {
redirectId: "",
regex: "",
replacement: "",
permanent: false,
uniqueConfigKey: 1,
createdAt: "",
applicationId: "",
};
/** Middlewares */
test("Web entrypoint on http domain", async () => {
const router = await createRouterConfig(
baseApp,
{ ...baseDomain, https: false },
"web",
);
expect(router.middlewares).not.toContain("redirect-to-https");
expect(router.rule).not.toContain("PathPrefix");
});
test("Web entrypoint on http domain with custom path", async () => {
const router = await createRouterConfig(
baseApp,
{ ...baseDomain, path: "/foo", https: false },
"web",
);
expect(router.rule).toContain("PathPrefix(`/foo`)");
});
test("Web entrypoint on http domain with redirect", async () => {
const router = await createRouterConfig(
{
...baseApp,
appName: "test",
redirects: [{ ...baseRedirect, uniqueConfigKey: 1 }],
},
{ ...baseDomain, https: false },
"web",
);
expect(router.middlewares).not.toContain("redirect-to-https");
expect(router.middlewares).toContain("redirect-test-1");
});
test("Web entrypoint on http domain with multiple redirect", async () => {
const router = await createRouterConfig(
{
...baseApp,
appName: "test",
redirects: [
{ ...baseRedirect, uniqueConfigKey: 1 },
{ ...baseRedirect, uniqueConfigKey: 2 },
],
},
{ ...baseDomain, https: false },
"web",
);
expect(router.middlewares).not.toContain("redirect-to-https");
expect(router.middlewares).toContain("redirect-test-1");
expect(router.middlewares).toContain("redirect-test-2");
});
test("Web entrypoint on https domain", async () => {
const router = await createRouterConfig(
baseApp,
{ ...baseDomain, https: true },
"web",
);
expect(router.middlewares).toContain("redirect-to-https");
});
test("Web entrypoint on https domain with redirect", async () => {
const router = await createRouterConfig(
{
...baseApp,
appName: "test",
redirects: [{ ...baseRedirect, uniqueConfigKey: 1 }],
},
{ ...baseDomain, https: true },
"web",
);
expect(router.middlewares).toContain("redirect-to-https");
expect(router.middlewares).not.toContain("redirect-test-1");
});
test("Websecure entrypoint on https domain", async () => {
const router = await createRouterConfig(
baseApp,
{ ...baseDomain, https: true },
"websecure",
);
expect(router.middlewares).not.toContain("redirect-to-https");
});
test("Websecure entrypoint on https domain with redirect", async () => {
const router = await createRouterConfig(
{
...baseApp,
appName: "test",
redirects: [{ ...baseRedirect, uniqueConfigKey: 1 }],
},
{ ...baseDomain, https: true },
"websecure",
);
expect(router.middlewares).not.toContain("redirect-to-https");
expect(router.middlewares).toContain("redirect-test-1");
});
/** Certificates */
test("CertificateType on websecure entrypoint", async () => {
const router = await createRouterConfig(
baseApp,
{ ...baseDomain, certificateType: "letsencrypt" },
"websecure",
);
expect(router.tls?.certResolver).toBe("letsencrypt");
});

View File

@@ -0,0 +1,61 @@
import { normalizeS3Path } from "@dokploy/server/utils/backups/utils";
import { describe, expect, test } from "vitest";
describe("normalizeS3Path", () => {
test("should handle empty and whitespace-only prefix", () => {
expect(normalizeS3Path("")).toBe("");
expect(normalizeS3Path("/")).toBe("");
expect(normalizeS3Path(" ")).toBe("");
expect(normalizeS3Path("\t")).toBe("");
expect(normalizeS3Path("\n")).toBe("");
expect(normalizeS3Path(" \n \t ")).toBe("");
});
test("should trim whitespace from prefix", () => {
expect(normalizeS3Path(" prefix")).toBe("prefix/");
expect(normalizeS3Path("prefix ")).toBe("prefix/");
expect(normalizeS3Path(" prefix ")).toBe("prefix/");
expect(normalizeS3Path("\tprefix\t")).toBe("prefix/");
expect(normalizeS3Path(" prefix/nested ")).toBe("prefix/nested/");
});
test("should remove leading slashes", () => {
expect(normalizeS3Path("/prefix")).toBe("prefix/");
expect(normalizeS3Path("///prefix")).toBe("prefix/");
});
test("should remove trailing slashes", () => {
expect(normalizeS3Path("prefix/")).toBe("prefix/");
expect(normalizeS3Path("prefix///")).toBe("prefix/");
});
test("should remove both leading and trailing slashes", () => {
expect(normalizeS3Path("/prefix/")).toBe("prefix/");
expect(normalizeS3Path("///prefix///")).toBe("prefix/");
});
test("should handle nested paths", () => {
expect(normalizeS3Path("prefix/nested")).toBe("prefix/nested/");
expect(normalizeS3Path("/prefix/nested/")).toBe("prefix/nested/");
expect(normalizeS3Path("///prefix/nested///")).toBe("prefix/nested/");
});
test("should preserve middle slashes", () => {
expect(normalizeS3Path("prefix/nested/deep")).toBe("prefix/nested/deep/");
expect(normalizeS3Path("/prefix/nested/deep/")).toBe("prefix/nested/deep/");
});
test("should handle special characters", () => {
expect(normalizeS3Path("prefix-with-dashes")).toBe("prefix-with-dashes/");
expect(normalizeS3Path("prefix_with_underscores")).toBe(
"prefix_with_underscores/",
);
expect(normalizeS3Path("prefix.with.dots")).toBe("prefix.with.dots/");
});
test("should handle the cases from the bug report", () => {
expect(normalizeS3Path("instance-backups/")).toBe("instance-backups/");
expect(normalizeS3Path("/instance-backups/")).toBe("instance-backups/");
expect(normalizeS3Path("instance-backups")).toBe("instance-backups/");
});
});

View File

@@ -1,16 +1,25 @@
import { defineConfig } from "vitest/config";
import path from "node:path";
import tsconfigPaths from "vite-tsconfig-paths";
import { defineConfig } from "vitest/config";
export default defineConfig({
plugins: [
tsconfigPaths({
root: "./",
projects: ["tsconfig.json"],
}),
],
test: {
include: ["__test__/**/*.test.ts"], // Incluir solo los archivos de test en el directorio __test__
exclude: ["**/node_modules/**", "**/dist/**", "**/.docker/**"],
pool: "forks",
},
define: {
"process.env": {
NODE: "test",
},
},
plugins: [tsconfigPaths()],
resolve: {
alias: {
"@dokploy/server": path.resolve(
__dirname,
"../../../packages/server/src",
),
},
},
});

View File

@@ -0,0 +1,17 @@
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "default",
"rsc": false,
"tsx": true,
"tailwind": {
"config": "tailwind.config.ts",
"css": "styles/globals.css",
"baseColor": "zinc",
"cssVariables": true,
"prefix": ""
},
"aliases": {
"components": "@/components",
"utils": "@/lib/utils"
}
}

View File

@@ -1,3 +1,5 @@
import { AlertBlock } from "@/components/shared/alert-block";
import { CodeEditor } from "@/components/shared/code-editor";
import { Button } from "@/components/ui/button";
import {
Dialog,
@@ -17,21 +19,19 @@ import {
FormLabel,
FormMessage,
} from "@/components/ui/form";
import { api } from "@/utils/api";
import { AlertBlock } from "@/components/shared/alert-block";
import { zodResolver } from "@hookform/resolvers/zod";
import { useEffect } from "react";
import { useForm } from "react-hook-form";
import { toast } from "sonner";
import { z } from "zod";
import { HelpCircle, Settings } from "lucide-react";
import {
Tooltip,
TooltipContent,
TooltipProvider,
TooltipTrigger,
} from "@/components/ui/tooltip";
import { CodeEditor } from "@/components/shared/code-editor";
import { api } from "@/utils/api";
import { zodResolver } from "@hookform/resolvers/zod";
import { HelpCircle, Settings } from "lucide-react";
import { useEffect } from "react";
import { useForm } from "react-hook-form";
import { toast } from "sonner";
import { z } from "zod";
const HealthCheckSwarmSchema = z
.object({
@@ -130,7 +130,7 @@ const createStringToJSONSchema = (schema: z.ZodTypeAny) => {
}
try {
return JSON.parse(str);
} catch (e) {
} catch (_e) {
ctx.addIssue({ code: "custom", message: "Invalid JSON format" });
return z.NEVER;
}
@@ -259,7 +259,7 @@ export const AddSwarmSettings = ({ applicationId }: Props) => {
refetch();
})
.catch(() => {
toast.error("Error to update the swarm settings");
toast.error("Error updating the swarm settings");
});
};
return (
@@ -278,6 +278,12 @@ export const AddSwarmSettings = ({ applicationId }: Props) => {
</DialogDescription>
</DialogHeader>
{isError && <AlertBlock type="error">{error?.message}</AlertBlock>}
<div className="px-4">
<AlertBlock type="info">
Changing settings such as placements may cause the logs/monitoring
to be unavailable.
</AlertBlock>
</div>
<Form {...form}>
<form

View File

@@ -1,4 +1,5 @@
import React from "react";
import { AlertBlock } from "@/components/shared/alert-block";
import { Button } from "@/components/ui/button";
import {
Card,
CardContent,
@@ -6,8 +7,6 @@ import {
CardHeader,
CardTitle,
} from "@/components/ui/card";
import { api } from "@/utils/api";
import { z } from "zod";
import {
Form,
FormControl,
@@ -16,11 +15,6 @@ import {
FormLabel,
FormMessage,
} from "@/components/ui/form";
import { toast } from "sonner";
import { zodResolver } from "@hookform/resolvers/zod";
import { useForm } from "react-hook-form";
import { useEffect } from "react";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
import {
Select,
@@ -31,17 +25,22 @@ import {
SelectTrigger,
SelectValue,
} from "@/components/ui/select";
import Link from "next/link";
import { api } from "@/utils/api";
import { zodResolver } from "@hookform/resolvers/zod";
import { Server } from "lucide-react";
import Link from "next/link";
import { useEffect } from "react";
import { useForm } from "react-hook-form";
import { toast } from "sonner";
import { z } from "zod";
import { AddSwarmSettings } from "./modify-swarm-settings";
import { AlertBlock } from "@/components/shared/alert-block";
interface Props {
applicationId: string;
}
const AddRedirectchema = z.object({
replicas: z.number(),
replicas: z.number().min(1, "Replicas must be at least 1"),
registryId: z.string(),
});
@@ -81,7 +80,10 @@ export const ShowClusterSettings = ({ applicationId }: Props) => {
const onSubmit = async (data: AddCommand) => {
await mutateAsync({
applicationId,
registryId: data?.registryId === "none" ? null : data?.registryId,
registryId:
data?.registryId === "none" || !data?.registryId
? null
: data?.registryId,
replicas: data?.replicas,
})
.then(async () => {
@@ -91,7 +93,7 @@ export const ShowClusterSettings = ({ applicationId }: Props) => {
});
})
.catch(() => {
toast.error("Error to update the command");
toast.error("Error updating the command");
});
};
@@ -128,9 +130,11 @@ export const ShowClusterSettings = ({ applicationId }: Props) => {
placeholder="1"
{...field}
onChange={(e) => {
field.onChange(Number(e.target.value));
const value = e.target.value;
field.onChange(value === "" ? 0 : Number(value));
}}
type="number"
value={field.value || ""}
/>
</FormControl>

View File

@@ -1,4 +1,4 @@
import React from "react";
import { Button } from "@/components/ui/button";
import {
Card,
CardContent,
@@ -6,8 +6,6 @@ import {
CardHeader,
CardTitle,
} from "@/components/ui/card";
import { api } from "@/utils/api";
import { z } from "zod";
import {
Form,
FormControl,
@@ -16,12 +14,13 @@ import {
FormLabel,
FormMessage,
} from "@/components/ui/form";
import { toast } from "sonner";
import { zodResolver } from "@hookform/resolvers/zod";
import { useForm } from "react-hook-form";
import { useEffect } from "react";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
import { api } from "@/utils/api";
import { zodResolver } from "@hookform/resolvers/zod";
import { useEffect } from "react";
import { useForm } from "react-hook-form";
import { toast } from "sonner";
import { z } from "zod";
interface Props {
applicationId: string;
}
@@ -71,7 +70,7 @@ export const AddCommand = ({ applicationId }: Props) => {
});
})
.catch(() => {
toast.error("Error to update the command");
toast.error("Error updating the command");
});
};
@@ -81,7 +80,8 @@ export const AddCommand = ({ applicationId }: Props) => {
<div>
<CardTitle className="text-xl">Run Command</CardTitle>
<CardDescription>
Run a custom command in the container
Run a custom command in the container after the application
initialized
</CardDescription>
</div>
</CardHeader>

View File

@@ -0,0 +1,347 @@
import { AlertBlock } from "@/components/shared/alert-block";
import { CodeEditor } from "@/components/shared/code-editor";
import { Button } from "@/components/ui/button";
import {
Card,
CardContent,
CardDescription,
CardHeader,
CardTitle,
} from "@/components/ui/card";
import {
Dialog,
DialogContent,
DialogDescription,
DialogHeader,
DialogTitle,
} from "@/components/ui/dialog";
import {
Form,
FormControl,
FormField,
FormItem,
FormLabel,
FormMessage,
} from "@/components/ui/form";
import { ScrollArea } from "@/components/ui/scroll-area";
import { Separator } from "@/components/ui/separator";
import { Textarea } from "@/components/ui/textarea";
import { api } from "@/utils/api";
import { zodResolver } from "@hookform/resolvers/zod";
import { Code2, Globe2, HardDrive } from "lucide-react";
import { useEffect, useState } from "react";
import { useForm } from "react-hook-form";
import { toast } from "sonner";
import { z } from "zod";
const ImportSchema = z.object({
base64: z.string(),
});
type ImportType = z.infer<typeof ImportSchema>;
interface Props {
composeId: string;
}
export const ShowImport = ({ composeId }: Props) => {
const [showModal, setShowModal] = useState(false);
const [showMountContent, setShowMountContent] = useState(false);
const [selectedMount, setSelectedMount] = useState<{
filePath: string;
content: string;
} | null>(null);
const [templateInfo, setTemplateInfo] = useState<{
compose: string;
template: {
domains: Array<{
serviceName: string;
port: number;
path?: string;
host?: string;
}>;
envs: string[];
mounts: Array<{
filePath: string;
content: string;
}>;
};
} | null>(null);
const utils = api.useUtils();
const { mutateAsync: processTemplate, isLoading: isLoadingTemplate } =
api.compose.processTemplate.useMutation();
const {
mutateAsync: importTemplate,
isLoading: isImporting,
isSuccess: isImportSuccess,
} = api.compose.import.useMutation();
const form = useForm<ImportType>({
defaultValues: {
base64: "",
},
resolver: zodResolver(ImportSchema),
});
useEffect(() => {
form.reset({
base64: "",
});
}, [isImportSuccess]);
const onSubmit = async () => {
const base64 = form.getValues("base64");
if (!base64) {
toast.error("Please enter a base64 template");
return;
}
try {
await importTemplate({
composeId,
base64,
});
toast.success("Template imported successfully");
await utils.compose.one.invalidate({
composeId,
});
setShowModal(false);
} catch (_error) {
toast.error("Error importing template");
}
};
const handleLoadTemplate = async () => {
const base64 = form.getValues("base64");
if (!base64) {
toast.error("Please enter a base64 template");
return;
}
try {
const result = await processTemplate({
composeId,
base64,
});
setTemplateInfo(result);
setShowModal(true);
} catch (_error) {
toast.error("Error processing template");
}
};
const handleShowMountContent = (mount: {
filePath: string;
content: string;
}) => {
setSelectedMount(mount);
setShowMountContent(true);
};
return (
<>
<Card className="bg-background">
<CardHeader>
<CardTitle className="text-xl">Import</CardTitle>
<CardDescription>Import your Template configuration</CardDescription>
</CardHeader>
<CardContent className="flex flex-col gap-4">
<AlertBlock type="warning">
Warning: Importing a template will remove all existing environment
variables, mounts, and domains from this service.
</AlertBlock>
<Form {...form}>
<form
onSubmit={form.handleSubmit(onSubmit)}
className="grid w-full gap-4"
>
<FormField
control={form.control}
name="base64"
render={({ field }) => (
<FormItem>
<FormLabel>Configuration (Base64)</FormLabel>
<FormControl>
<Textarea
placeholder="Enter your Base64 configuration here..."
className="font-mono min-h-[200px]"
{...field}
/>
</FormControl>
<FormMessage />
</FormItem>
)}
/>
<div className="flex justify-end gap-2">
<Button
type="button"
className="w-fit"
variant="outline"
isLoading={isLoadingTemplate}
onClick={handleLoadTemplate}
>
Load
</Button>
</div>
<Dialog open={showModal} onOpenChange={setShowModal}>
<DialogContent className="max-h-[80vh] max-w-[50vw] overflow-y-auto">
<DialogHeader>
<DialogTitle className="text-2xl font-bold">
Template Information
</DialogTitle>
<DialogDescription className="space-y-2">
<p>Review the template information before importing</p>
<AlertBlock type="warning">
Warning: This will remove all existing environment
variables, mounts, and domains from this service.
</AlertBlock>
</DialogDescription>
</DialogHeader>
<div className="flex flex-col gap-6">
<div className="space-y-4">
<div className="flex items-center gap-2">
<Code2 className="h-5 w-5 text-primary" />
<h3 className="text-lg font-semibold">
Docker Compose
</h3>
</div>
<CodeEditor
language="yaml"
value={templateInfo?.compose || ""}
className="font-mono"
readOnly
/>
</div>
<Separator />
{templateInfo?.template.domains &&
templateInfo.template.domains.length > 0 && (
<div className="space-y-4">
<div className="flex items-center gap-2">
<Globe2 className="h-5 w-5 text-primary" />
<h3 className="text-lg font-semibold">Domains</h3>
</div>
<div className="grid grid-cols-1 gap-3">
{templateInfo.template.domains.map(
(domain, index) => (
<div
key={index}
className="rounded-lg border bg-card p-3 text-card-foreground shadow-sm"
>
<div className="font-medium">
{domain.serviceName}
</div>
<div className="text-sm text-muted-foreground space-y-1">
<div>Port: {domain.port}</div>
{domain.host && (
<div>Host: {domain.host}</div>
)}
{domain.path && (
<div>Path: {domain.path}</div>
)}
</div>
</div>
),
)}
</div>
</div>
)}
{templateInfo?.template.envs &&
templateInfo.template.envs.length > 0 && (
<div className="space-y-4">
<div className="flex items-center gap-2">
<Code2 className="h-5 w-5 text-primary" />
<h3 className="text-lg font-semibold">
Environment Variables
</h3>
</div>
<div className="grid grid-cols-1 gap-2">
{templateInfo.template.envs.map((env, index) => (
<div
key={index}
className="rounded-lg truncate border bg-card p-2 font-mono text-sm"
>
{env}
</div>
))}
</div>
</div>
)}
{templateInfo?.template.mounts &&
templateInfo.template.mounts.length > 0 && (
<div className="space-y-4">
<div className="flex items-center gap-2">
<HardDrive className="h-5 w-5 text-primary" />
<h3 className="text-lg font-semibold">Mounts</h3>
</div>
<div className="grid grid-cols-1 gap-2">
{templateInfo.template.mounts.map(
(mount, index) => (
<div
key={index}
className="rounded-lg border bg-card p-2 font-mono text-sm hover:bg-accent cursor-pointer transition-colors"
onClick={() => handleShowMountContent(mount)}
>
{mount.filePath}
</div>
),
)}
</div>
</div>
)}
</div>
<div className="flex justify-end gap-2 pt-4">
<Button
variant="outline"
onClick={() => setShowModal(false)}
>
Cancel
</Button>
<Button
isLoading={isImporting}
type="submit"
onClick={form.handleSubmit(onSubmit)}
className="w-fit"
>
Import
</Button>
</div>
</DialogContent>
</Dialog>
</form>
</Form>
</CardContent>
</Card>
<Dialog open={showMountContent} onOpenChange={setShowMountContent}>
<DialogContent className="max-w-[50vw]">
<DialogHeader>
<DialogTitle className="text-xl font-bold">
{selectedMount?.filePath}
</DialogTitle>
<DialogDescription>Mount File Content</DialogDescription>
</DialogHeader>
<ScrollArea className="h-[45vh] pr-4">
<CodeEditor
language="yaml"
value={selectedMount?.content || ""}
className="font-mono"
readOnly
/>
</ScrollArea>
<div className="flex justify-end gap-2 pt-4">
<Button onClick={() => setShowMountContent(false)}>Close</Button>
</div>
</DialogContent>
</Dialog>
</>
);
};

Some files were not shown because too many files have changed in this diff Show More