root@danak-new:/captain/data# cat config-captain.json { "namespace": "captain", "goAccessInfo": { "isEnabled": true, "data": { "rotationFrequencyCron": "0 0 1 * *", "logRetentionDays": 180 } }, "pro": { "installationId": "d972914c-b802-450f-85bf-b5b64a6b9390" }, "hashedPassword": "$2b$10$ykOWyl.Ps9pnMFwTlsK9lugTDu/GhqlXQyPjeFVqEbihleajodPcG", "appDefinitions": { "dmenu-plus-front": { "hasPersistentData": false, "projectId": "64feebc1-5645-488e-a938-9776f26cef5a", "description": "", "instanceCount": 1, "captainDefinitionRelativeFilePath": "./captain-definition", "networks": [ "captain-overlay-network" ], "envVars": [], "volumes": [], "ports": [], "tags": [], "versions": [ { "version": 0, "timeStamp": "2026-05-26T07:01:26.363Z", "deployedImageName": "caprover/caprover-placeholder-app:latest", "gitHash": "" }, { "version": 1, "timeStamp": "2026-05-26T07:02:18.976Z" }, { "version": 2, "timeStamp": "2026-05-26T07:03:16.406Z" }, { "version": 3, "timeStamp": "2026-05-26T11:43:28.292Z" }, { "version": 4, "timeStamp": "2026-05-26T12:19:27.972Z", "deployedImageName": "img-captain-dmenu-plus-front:4", "gitHash": "facfda9060df53a0bae332ad7e53aaf8927f794c\n" }, { "version": 5, "timeStamp": "2026-05-26T12:40:50.180Z", "deployedImageName": "img-captain-dmenu-plus-front:5", "gitHash": "facfda9060df53a0bae332ad7e53aaf8927f794c\n" }, { "version": 6, "timeStamp": "2026-05-30T07:13:10.139Z", "deployedImageName": "img-captain-dmenu-plus-front:6", "gitHash": "09e61d5edb89a4f24af6e8da940e4cdac9fd209a\n" }, { "version": 7, "timeStamp": "2026-05-30T18:30:11.009Z", "deployedImageName": "img-captain-dmenu-plus-front:7", "gitHash": "09e61d5edb89a4f24af6e8da940e4cdac9fd209a\n" }, { "version": 8, "timeStamp": "2026-05-30T20:33:01.860Z" }, { "version": 9, "timeStamp": "2026-05-30T20:34:22.382Z" }, { "version": 10, "timeStamp": "2026-05-30T20:36:57.838Z", "deployedImageName": "img-captain-dmenu-plus-front:10", "gitHash": "1916b589b28d2bb8d8d5f9807b076c72026d4d89\n" }, { "version": 11, "timeStamp": "2026-05-31T06:50:15.845Z", "deployedImageName": "img-captain-dmenu-plus-front:11", "gitHash": "1916b589b28d2bb8d8d5f9807b076c72026d4d89\n" }, { "version": 12, "timeStamp": "2026-05-31T08:27:23.758Z" }, { "version": 13, "timeStamp": "2026-05-31T08:36:33.820Z" }, { "version": 14, "timeStamp": "2026-05-31T08:40:06.397Z" }, { "version": 15, "timeStamp": "2026-06-01T12:52:06.054Z" }, { "version": 16, "timeStamp": "2026-06-01T12:57:54.197Z" }, { "version": 17, "timeStamp": "2026-06-01T13:01:01.429Z" }, { "version": 18, "timeStamp": "2026-06-01T13:04:19.789Z", "deployedImageName": "img-captain-dmenu-plus-front:18", "gitHash": "ce1a4ea7a8bbca9477139826c980ed1d320ebb61\n" }, { "version": 19, "timeStamp": "2026-06-03T11:50:53.657Z" }, { "version": 20, "timeStamp": "2026-06-03T11:54:14.701Z", "deployedImageName": "img-captain-dmenu-plus-front:20", "gitHash": "194533ec5f4dfcc9775de5027dc85c82ff35187f\n" }, { "version": 21, "timeStamp": "2026-06-03T12:23:51.512Z", "deployedImageName": "img-captain-dmenu-plus-front:21", "gitHash": "e5629ac784941dbbff07328315adc9ede173ea8e\n" }, { "version": 22, "timeStamp": "2026-06-03T12:55:45.390Z", "deployedImageName": "img-captain-dmenu-plus-front:22", "gitHash": "dc3646eef6069f61516ecc47b9c2e50e4a74c6a9\n" }, { "version": 23, "timeStamp": "2026-06-03T19:10:16.206Z", "deployedImageName": "img-captain-dmenu-plus-front:23", "gitHash": "ace6a0b2881e7bf181f1cd60962f76c5c1099fc1\n" }, { "version": 24, "timeStamp": "2026-06-06T06:10:30.713Z", "deployedImageName": "img-captain-dmenu-plus-front:24", "gitHash": "e68543f869ccbd8ce3f2543e2242c5c5136548d0\n" }, { "version": 25, "timeStamp": "2026-06-06T08:41:49.433Z", "deployedImageName": "img-captain-dmenu-plus-front:25", "gitHash": "94e41da139fda2c184d44b5f1975b3610ff2714c\n" }, { "version": 26, "timeStamp": "2026-06-06T09:16:43.445Z", "deployedImageName": "img-captain-dmenu-plus-front:26", "gitHash": "1ce80f551c29453d02034a3ef7c2b976dacdeb2d\n" }, { "version": 27, "timeStamp": "2026-06-06T11:25:47.723Z", "deployedImageName": "img-captain-dmenu-plus-front:27", "gitHash": "c9d152fbaf42e4953529ee792d9dc37a6c8b48e5\n" }, { "version": 28, "timeStamp": "2026-06-06T11:49:05.454Z", "deployedImageName": "img-captain-dmenu-plus-front:28", "gitHash": "804f6f69ae85445804bf5eafe092d96ca6755080\n" }, { "version": 29, "timeStamp": "2026-06-06T12:54:02.791Z", "deployedImageName": "img-captain-dmenu-plus-front:29", "gitHash": "75e23237e60a104c08e840c27af99c67fe2f7e6d\n" } ], "deployedVersion": 29, "notExposeAsWebApp": false, "customDomain": [ { "publicDomain": "dmenu.danakcorp.com", "hasSsl": false }, { "publicDomain": "passataplus.ir", "hasSsl": false }, { "publicDomain": "cookieca.ir", "hasSsl": false } ], "hasDefaultSubDomainSsl": false, "redirectDomain": "", "forceSsl": false, "websocketSupport": false, "appPushWebhook": { "tokenVersion": "17904f49-f877-4761-8515-2ac3ae548eee", "pushWebhookToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InRva2VuVmVyc2lvbiI6IjE3OTA0ZjQ5LWY4NzctNDc2MS04NTE1LTJhYzNhZTU0OGVlZSIsImFwcE5hbWUiOiJkbWVudS1wbHVzLWZyb250IiwibmFtZXNwYWNlIjoiY2FwdGFpbiJ9LCJpYXQiOjE3Nzk3Nzg5MzR9._UT37z4KqAD-scpTvNhpba8a9He1kyHvAypcJGP_Xro", "repoInfo": { "repo": "https://git.danakcorp.com/danak/dmenu-plus-front", "user": "tech@danakcorp.com", "password": "", "sshKey": "", "branch": "production", "passwordEncrypted": "9e05047539cd9834dd571bc5095994b7:79c3f1e3a555843ed73780bb6b130ce7" } }, "containerHttpPort": 3000, "preDeployFunction": "", "serviceUpdateOverride": "", "appDeployTokenConfig": { "enabled": false }, "customNginxConfig": "<%\nif (s.forceSsl) {\n%>\n server {\n\n listen 80;\n\n server_name <%-s.publicDomain%>;\n\n # Used by Lets Encrypt\n location /.well-known/acme-challenge/ {\n root <%-s.staticWebRoot%>;\n }\n\n # Used by CapRover for health check\n location /.well-known/captain-identifier {\n root <%-s.staticWebRoot%>;\n }\n\n location / {\n return 302 https://$http_host$request_uri;\n }\n }\n<%\n}\n%>\n\n\nserver {\n\n <%\n if (!s.forceSsl) {\n %>\n listen 80;\n <%\n }\n if (s.hasSsl) {\n %>\n listen 443 ssl;\n http2 on;\n ssl_certificate <%-s.crtPath%>;\n ssl_certificate_key <%-s.keyPath%>;\n <%\n }\n if (s.logAccessPath) {\n %>\n access_log <%-s.logAccessPath%>;\n <%\n }\n %>\n\n client_max_body_size 500m;\n\n server_name <%-s.publicDomain%>;\n\n # 127.0.0.11 is DNS set up by Docker, see:\n # https://docs.docker.com/engine/userguide/networking/configure-dns/\n # https://github.com/moby/moby/issues/20026\n resolver 127.0.0.11 valid=10s;\n # IMPORTANT!! If you are here from an old thread to set a custom port, you do not need to modify this port manually here!!\n # Simply change the Container HTTP Port from the dashboard HTTP panel\n set $upstream http://<%-s.localDomain%>:<%-s.containerHttpPort%>;\n\n location / {\n\n\n\t<%\n\tif (s.redirectToPath) {\n\t%>\n\t return 302 <%-s.redirectToPath%>$request_uri;\n\t<%\n\t} else {\n\t%>\n\n\t\t <%\n\t\t if (s.httpBasicAuthPath) {\n\t\t %>\n\t\t\t auth_basic \"Restricted Access\";\n\t\t\t auth_basic_user_file <%-s.httpBasicAuthPath%>; \n\t\t <%\n\t\t }\n\t\t %>\n\n\t\t\t proxy_pass $upstream;\n\t\t\t proxy_set_header Host $host;\n\t\t\t proxy_set_header X-Real-IP $remote_addr;\n\t\t\t proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n\t\t\t proxy_set_header X-Forwarded-Proto $scheme;\n\n\t\t <%\n\t\t if (s.websocketSupport) {\n\t\t %>\n\t\t\t proxy_set_header Upgrade $http_upgrade;\n\t\t\t proxy_set_header Connection \"upgrade\";\n\t\t\t proxy_http_version 1.1;\n\t\t <%\n\t\t }\n\t\t %>\n \n \n\t<%\n\t}\n\t%>\n\t\n }\n\n # Used by Lets Encrypt\n location /.well-known/acme-challenge/ {\n root <%-s.staticWebRoot%>;\n }\n \n # Used by CapRover for health check\n location /.well-known/captain-identifier {\n root <%-s.staticWebRoot%>;\n }\n\n error_page 502 /captain_502_custom_error_page.html;\n location = /captain_502_custom_error_page.html {\n root <%-s.customErrorPagesDirectory%>;\n internal;\n }\n}\n" }, "redis": { "hasPersistentData": true, "projectId": "094d89f8-f16f-4258-8fbe-0c3a53aa2952", "description": "", "instanceCount": 1, "captainDefinitionRelativeFilePath": "./captain-definition", "networks": [ "captain-overlay-network" ], "envVars": [], "volumes": [ { "containerPath": "/var/lib/redis/data", "volumeName": "redis-data" } ], "ports": [], "tags": [], "versions": [ { "version": 0, "timeStamp": "2026-05-28T16:25:57.115Z", "deployedImageName": "caprover/caprover-placeholder-app:latest", "gitHash": "" }, { "version": 1, "timeStamp": "2026-05-28T16:27:24.957Z", "deployedImageName": "redis:7-alpine", "gitHash": "" } ], "deployedVersion": 1, "notExposeAsWebApp": true, "customDomain": [], "hasDefaultSubDomainSsl": false, "redirectDomain": "", "forceSsl": false, "websocketSupport": false, "containerHttpPort": 80, "nodeId": "vf60j0m9hlskifwb7jhbcuu1y", "preDeployFunction": "", "serviceUpdateOverride": "", "appDeployTokenConfig": { "enabled": false } }, "dpage-api": { "hasPersistentData": false, "projectId": "58efbc07-e8c1-4a47-bbc5-bb78f3c0e529", "description": "", "instanceCount": 1, "captainDefinitionRelativeFilePath": "./captain-definition", "networks": [ "captain-overlay-network" ], "envVars": [ { "key": "NODE_ENV", "value": "production" }, { "key": "DB_NAME", "value": "dpage" }, { "key": "DB_USER", "value": "danak" }, { "key": "DB_PASS", "value": "48ae186c32f8b69d" }, { "key": "DB_HOST", "value": "srv-captain--postgres-db" }, { "key": "DB_PORT", "value": "5432" }, { "key": "APP_PORT", "value": "4000" }, { "key": "APP_NAME", "value": "dpage-api" }, { "key": "SMS_BASE_URL", "value": "https://api.sms.ir/v1" }, { "key": "SMS_API_KEY", "value": "QkkNxhyXZ6GtEf1soOTtikomO3mA4LaNQDH8mol8huDIwh00" }, { "key": "SMS_PATTERN_OTP", "value": "832351" }, { "key": "JWT_SECRET", "value": "some_secret_value_Z6GtEf1soOTt" }, { "key": "JWT_EXPIRATION_TIME", "value": "1200" }, { "key": "BUCKET_NAME", "value": "c778261" }, { "key": "BUCKET_REGION", "value": "us-west-2" }, { "key": "PARSPACK_S3_ENDPOINT", "value": "https://c778261.parspack.net" }, { "key": "BUCKET_ACCESS_KEY", "value": "plIXwwB0ZLIMoBsm" }, { "key": "BUCKET_SECRET_KEY", "value": "4QKZZmQ3Rl1v4esv6lMFMwFmke8zbmbI" }, { "key": "REFRESH_TOKEN_EXPIRE", "value": "15" }, { "key": "OTP_EXPIRATION_TIME", "value": "240" }, { "key": "SUPER_ADMIN_USERNAME", "value": "danak@dsc.com" }, { "key": "SUPER_ADMIN_PASSWORD", "value": "DsCdAnAk?@ABC" }, { "key": "DANAK_API_URL", "value": "https://api.danakcorp.com" }, { "key": "EXTERNAL_API_KEYS", "value": "uqXssnB2q8rs2soa9almm1jkL6vN0xOh0" }, { "key": "CATALOGUE_PRICE", "value": "2000000" }, { "key": "DESIGN_PRICE_UNDER_10", "value": "700000" }, { "key": "DESIGN_PRICE_10_TO_30", "value": "500000" }, { "key": "DESIGN_PRICE_30_TO_70", "value": "400000" }, { "key": "DESIGN_PRICE_ABOVE_70", "value": "350000" } ], "volumes": [], "ports": [], "tags": [], "versions": [ { "version": 0, "timeStamp": "2026-05-28T16:30:40.107Z", "deployedImageName": "caprover/caprover-placeholder-app:latest", "gitHash": "" }, { "version": 1, "timeStamp": "2026-05-28T16:36:39.460Z", "deployedImageName": "img-captain-dpage-api:1", "gitHash": "6cd0af8477b0768b0f1fffb40c2f8c5f04b1e65d\n" }, { "version": 2, "timeStamp": "2026-05-28T16:42:28.367Z", "deployedImageName": "img-captain-dpage-api:2", "gitHash": "23c5d9c667dd23d540b5e33b75418f9d8a784f56\n" }, { "version": 3, "timeStamp": "2026-06-03T09:19:58.490Z", "deployedImageName": "img-captain-dpage-api:3", "gitHash": "afb8f9436c766f877dfea8d111fc6e400ebef31d\n" }, { "version": 4, "timeStamp": "2026-06-07T12:10:01.684Z", "deployedImageName": "img-captain-dpage-api:4", "gitHash": "e915af91d8aa7f229140e75da6daa51b448b5a6a\n" }, { "version": 5, "timeStamp": "2026-06-07T12:25:14.063Z", "deployedImageName": "img-captain-dpage-api:5", "gitHash": "4aba85ab4e93da2d7780d680ccc8001f679a4162\n" } ], "deployedVersion": 5, "notExposeAsWebApp": false, "customDomain": [ { "publicDomain": "dpage-api.danakcorp.com", "hasSsl": false } ], "hasDefaultSubDomainSsl": false, "redirectDomain": "", "forceSsl": false, "websocketSupport": false, "containerHttpPort": 4000, "preDeployFunction": "", "serviceUpdateOverride": "", "appDeployTokenConfig": { "enabled": false }, "appPushWebhook": { "tokenVersion": "28ae0f8e-9716-4f69-980c-a146548cc6a3", "pushWebhookToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InRva2VuVmVyc2lvbiI6IjI4YWUwZjhlLTk3MTYtNGY2OS05ODBjLWExNDY1NDhjYzZhMyIsImFwcE5hbWUiOiJkcGFnZS1hcGkiLCJuYW1lc3BhY2UiOiJjYXB0YWluIn0sImlhdCI6MTc3OTk4NjE4Mn0.dyo_N6j_M_pls7qQfdf141ttLWvxa31-dgaGeZoukCc", "repoInfo": { "repo": "https://git.danakcorp.com/danak/dpage-api", "user": "tech@danakcorp.com", "branch": "main", "password": "", "sshKey": "", "passwordEncrypted": "cecc1a2e5575ed5e160087f9d0e04a90:bd2d697f940f9a81521fed034e54b251" } } }, "dmenu-api": { "hasPersistentData": false, "projectId": "64feebc1-5645-488e-a938-9776f26cef5a", "description": "", "instanceCount": 1, "captainDefinitionRelativeFilePath": "./captain-definition", "networks": [ "captain-overlay-network" ], "envVars": [ { "key": "NODE_ENV", "value": "production" }, { "key": "DB_NAME", "value": "dmenu" }, { "key": "DB_USER", "value": "danak" }, { "key": "DB_PASS", "value": "48ae186c32f8b69d" }, { "key": "DB_HOST", "value": "srv-captain--postgres-db" }, { "key": "DB_PORT", "value": "5432" }, { "key": "APP_PORT", "value": "4000" }, { "key": "APP_NAME", "value": "dmenu-api" }, { "key": "REDIS_URI", "value": "redis://srv-captain--redis:6379/0" }, { "key": "REDIS_HOST", "value": "srv-captain--redis" }, { "key": "REDIS_PORT", "value": "6379" }, { "key": "REDIS_PASSWORD", "value": "" }, { "key": "CACHE_TTL", "value": "3600" }, { "key": "CACHE_NAMESPACE", "value": "dMenu" }, { "key": "SMS_BASE_URL", "value": "https://api.sms.ir/v1" }, { "key": "SMS_API_KEY", "value": "QkkNxhyXZ6GtEf1soOTtikomO3mA4LaNQDH8mol8huDIwh00" }, { "key": "SMS_PATTERN_OTP", "value": "832351" }, { "key": "JWT_SECRET", "value": "some_secret_value_Z6GtEf1soOTt" }, { "key": "JWT_EXPIRATION_TIME", "value": "1200" }, { "key": "BUCKET_NAME", "value": "c585127" }, { "key": "BUCKET_REGION", "value": "Tehran11" }, { "key": "PARSPACK_S3_ENDPOINT", "value": "https://c585127.parspack.net" }, { "key": "BUCKET_ACCESS_KEY", "value": "4u5LxhRf42dIzM13" }, { "key": "BUCKET_SECRET_KEY", "value": "BabE8dTQoxKRnVjXm45gfuldcQ133RsF" }, { "key": "REFRESH_TOKEN_EXPIRE", "value": "15" }, { "key": "OTP_EXPIRATION_TIME", "value": "240" }, { "key": "ZARINPAL_BASE_URL", "value": "https://payment.zarinpal.com" }, { "key": "SMS_PATTERN_ORDER_CREATED", "value": "912114" }, { "key": "SMS_PATTERN_PAYMENT_SUCCESS", "value": "682377" }, { "key": "SMS_PATTERN_ORDER_STATUS_CHANGE", "value": "425344" }, { "key": "SMS_PATTERN_ORDER_STATUS_COMPLETED", "value": "907455" }, { "key": "SMS_PATTERN_REVIEW_CREATED", "value": "246967" }, { "key": "SMS_PATTERN_PAGER_CREATED", "value": "763298" }, { "key": "SMS_PATTERN_ONLINE_PAYMENT_SUCCEED", "value": "977651" }, { "key": "SUPER_ADMIN_USERNAME", "value": "danak@dsc.com" }, { "key": "SUPER_ADMIN_PASSWORD", "value": "DsCdAnAk?@ABC" } ], "volumes": [], "ports": [], "tags": [], "versions": [ { "version": 0, "timeStamp": "2026-05-29T05:31:03.505Z", "deployedImageName": "caprover/caprover-placeholder-app:latest", "gitHash": "" }, { "version": 1, "timeStamp": "2026-05-29T05:35:12.978Z" }, { "version": 2, "timeStamp": "2026-05-29T05:36:00.917Z" }, { "version": 3, "timeStamp": "2026-05-29T05:49:46.966Z", "deployedImageName": "img-captain-dmenu-api:3", "gitHash": "455278f398512fdc3b881f0d4a1e134560c63c02\n" }, { "version": 4, "timeStamp": "2026-05-29T06:08:35.554Z", "deployedImageName": "img-captain-dmenu-api:4", "gitHash": "8124938720dd59f1e61d9b896295667bfc8a5f0d\n" }, { "version": 5, "timeStamp": "2026-06-03T12:09:11.101Z", "deployedImageName": "img-captain-dmenu-api:5", "gitHash": "4f8cf601740e9eb5fc0c545ae4ceeb6c600a190a\n" }, { "version": 6, "timeStamp": "2026-06-04T14:01:09.475Z", "deployedImageName": "img-captain-dmenu-api:6", "gitHash": "9a6eebf3855fd11f399d0f94f6da2f6dc20f7c36\n" }, { "version": 7, "timeStamp": "2026-06-04T14:19:44.396Z", "deployedImageName": "img-captain-dmenu-api:7", "gitHash": "02ebdf83b62943f079b3c92541dda4b958804994\n" }, { "version": 8, "timeStamp": "2026-06-05T14:20:34.420Z", "deployedImageName": "img-captain-dmenu-api:8", "gitHash": "66413f4ce12318e860ba4593f5dc9a69e43469f7\n" }, { "version": 9, "timeStamp": "2026-06-05T16:00:41.627Z", "deployedImageName": "img-captain-dmenu-api:9", "gitHash": "4d2b4ce6da8b6551e594eb1647179ded93de3bc7\n" }, { "version": 10, "timeStamp": "2026-06-06T09:58:31.294Z", "deployedImageName": "img-captain-dmenu-api:10", "gitHash": "c6c9812fd6b3310fb9734f675d6ee520444c2714\n" } ], "deployedVersion": 10, "notExposeAsWebApp": false, "customDomain": [ { "publicDomain": "dmenu-api.danakcorp.com", "hasSsl": false } ], "hasDefaultSubDomainSsl": false, "redirectDomain": "", "forceSsl": false, "websocketSupport": true, "containerHttpPort": 4000, "preDeployFunction": "", "serviceUpdateOverride": "", "appDeployTokenConfig": { "enabled": false }, "appPushWebhook": { "tokenVersion": "2b6771fc-ad65-473e-bfd2-ddf64ce045c7", "pushWebhookToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InRva2VuVmVyc2lvbiI6IjJiNjc3MWZjLWFkNjUtNDczZS1iZmQyLWRkZjY0Y2UwNDVjNyIsImFwcE5hbWUiOiJkbWVudS1hcGkiLCJuYW1lc3BhY2UiOiJjYXB0YWluIn0sImlhdCI6MTc4MDAzMjkwOH0.nZ4p6F5V3rZwwQuGcF94FKJ1EKqLAAaUz453wQOXMpk", "repoInfo": { "repo": "https://git.danakcorp.com/morteza/dmenu-api", "user": "tech@danakcorp.com", "password": "", "sshKey": "", "branch": "production", "passwordEncrypted": "1ff96d8282fe05c9783f148014a1131b:801415d619acabb9759904b9a7f6f3d9" } } }, "dpage-editor": { "hasPersistentData": false, "projectId": "58efbc07-e8c1-4a47-bbc5-bb78f3c0e529", "description": "", "instanceCount": 1, "captainDefinitionRelativeFilePath": "./captain-definition", "networks": [ "captain-overlay-network" ], "envVars": [ { "key": "VITE_API_URL", "value": "https://dpage-api.danakcorp.com" }, { "key": "VITE_TOKEN_NAME", "value": "dpage-editor-t" }, { "key": "VITE_REFRESH_TOKEN_NAME", "value": "dpage-editor-refresh-t" } ], "volumes": [], "ports": [], "tags": [], "versions": [ { "version": 0, "timeStamp": "2026-05-30T05:46:14.397Z", "deployedImageName": "caprover/caprover-placeholder-app:latest", "gitHash": "" }, { "version": 1, "timeStamp": "2026-05-30T05:48:23.617Z" }, { "version": 2, "timeStamp": "2026-05-30T05:50:43.854Z" }, { "version": 3, "timeStamp": "2026-05-30T05:57:46.055Z" }, { "version": 4, "timeStamp": "2026-05-30T06:06:55.326Z", "deployedImageName": "img-captain-dpage-editor:4", "gitHash": "4babfbc232d4ecb4f76b84e9ab3778ad5ab0ac04\n" }, { "version": 5, "timeStamp": "2026-05-30T06:37:35.179Z", "deployedImageName": "img-captain-dpage-editor:5", "gitHash": "d374055aebe0af7c44a2c2809f167c317071a15a\n" }, { "version": 6, "timeStamp": "2026-05-30T09:17:31.171Z", "deployedImageName": "img-captain-dpage-editor:6", "gitHash": "f95aeb18102fa29feb28ef41786b90b686eda893\n" }, { "version": 7, "timeStamp": "2026-06-01T06:15:11.190Z", "deployedImageName": "img-captain-dpage-editor:7", "gitHash": "994fc4af4b29c8d9aaa42348099bdac4dde7756e\n" }, { "version": 8, "timeStamp": "2026-06-01T07:55:56.171Z", "deployedImageName": "img-captain-dpage-editor:8", "gitHash": "da0069f2bc939dbf2b6599429a6fbd975e33832c\n" }, { "version": 9, "timeStamp": "2026-06-01T10:54:09.685Z", "deployedImageName": "img-captain-dpage-editor:9", "gitHash": "04da87b7d7a555d4b2102d75387bbe8ce9884290\n" }, { "version": 10, "timeStamp": "2026-06-03T11:22:17.193Z", "deployedImageName": "img-captain-dpage-editor:10", "gitHash": "9b72105115c8a28cbe0031e79892e0c1f446ce94\n" }, { "version": 11, "timeStamp": "2026-06-06T12:12:04.403Z" }, { "version": 12, "timeStamp": "2026-06-06T12:13:43.396Z" }, { "version": 13, "timeStamp": "2026-06-06T12:14:14.716Z" }, { "version": 14, "timeStamp": "2026-06-06T12:14:59.561Z", "deployedImageName": "img-captain-dpage-editor:14", "gitHash": "251d18145a5352434437fcf4f1e20446be31a1c9\n" }, { "version": 15, "timeStamp": "2026-06-06T12:46:36.551Z", "deployedImageName": "img-captain-dpage-editor:15", "gitHash": "81a786d2a4c9451cc5c52ef98604e31f6cc54751\n" }, { "version": 16, "timeStamp": "2026-06-07T12:01:44.338Z", "deployedImageName": "img-captain-dpage-editor:16", "gitHash": "9b00a22d112775637d7ea43cf3f4af8c2f18691e\n" }, { "version": 17, "timeStamp": "2026-06-07T12:41:42.442Z" }, { "version": 18, "timeStamp": "2026-06-07T12:43:26.039Z", "deployedImageName": "img-captain-dpage-editor:18", "gitHash": "89d91551847731102afe85d3952395bbdd15d8d9\n" } ], "deployedVersion": 18, "notExposeAsWebApp": false, "customDomain": [ { "publicDomain": "dpage.danakcorp.com", "hasSsl": false } ], "hasDefaultSubDomainSsl": false, "redirectDomain": "", "forceSsl": false, "websocketSupport": false, "appPushWebhook": { "tokenVersion": "962b3d18-0158-4d31-9b07-2fcbf1f8c903", "pushWebhookToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InRva2VuVmVyc2lvbiI6Ijk2MmIzZDE4LTAxNTgtNGQzMS05YjA3LTJmY2JmMWY4YzkwMyIsImFwcE5hbWUiOiJkcGFnZS1lZGl0b3IiLCJuYW1lc3BhY2UiOiJjYXB0YWluIn0sImlhdCI6MTc4MDEyMDA5OX0.DC597mDN_-dIZs6YZ_1hNzI-A-2rWQtfZ6ypJzqio5M", "repoInfo": { "repo": "https://git.danakcorp.com/danak/dpage-editor", "user": "tech@danakcorp.com", "password": "", "sshKey": "", "branch": "master", "passwordEncrypted": "ced477e13079d597db9734af7c297b0c:3b42cd13a0f9e832f3c77be11b038291" } }, "containerHttpPort": 80, "preDeployFunction": "", "serviceUpdateOverride": "", "appDeployTokenConfig": { "enabled": false }, "customNginxConfig": "<%\nif (s.forceSsl) {\n%>\n server {\n\n listen 80;\n\n server_name <%-s.publicDomain%>;\n\n # Used by Lets Encrypt\n location /.well-known/acme-challenge/ {\n root <%-s.staticWebRoot%>;\n }\n\n # Used by CapRover for health check\n location /.well-known/captain-identifier {\n root <%-s.staticWebRoot%>;\n }\n\n location / {\n return 302 https://$http_host$request_uri;\n }\n }\n<%\n}\n%>\n\n\nserver {\n\n <%\n if (!s.forceSsl) {\n %>\n listen 80;\n <%\n }\n if (s.hasSsl) {\n %>\n listen 443 ssl;\n http2 on;\n ssl_certificate <%-s.crtPath%>;\n ssl_certificate_key <%-s.keyPath%>;\n <%\n }\n if (s.logAccessPath) {\n %>\n access_log <%-s.logAccessPath%>;\n <%\n }\n %>\n\n client_max_body_size 500m;\n\n server_name <%-s.publicDomain%>;\n\n # 127.0.0.11 is DNS set up by Docker, see:\n # https://docs.docker.com/engine/userguide/networking/configure-dns/\n # https://github.com/moby/moby/issues/20026\n resolver 127.0.0.11 valid=10s;\n # IMPORTANT!! If you are here from an old thread to set a custom port, you do not need to modify this port manually here!!\n # Simply change the Container HTTP Port from the dashboard HTTP panel\n set $upstream http://<%-s.localDomain%>:<%-s.containerHttpPort%>;\n\n location / {\n\n\n\t<%\n\tif (s.redirectToPath) {\n\t%>\n\t return 302 <%-s.redirectToPath%>$request_uri;\n\t<%\n\t} else {\n\t%>\n\n\t\t <%\n\t\t if (s.httpBasicAuthPath) {\n\t\t %>\n\t\t\t auth_basic \"Restricted Access\";\n\t\t\t auth_basic_user_file <%-s.httpBasicAuthPath%>; \n\t\t <%\n\t\t }\n\t\t %>\n\n\t\t\t proxy_pass $upstream;\n\t\t\t proxy_set_header Host $host;\n\t\t\t proxy_set_header X-Real-IP $remote_addr;\n\t\t\t proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n\t\t\t proxy_set_header X-Forwarded-Proto $scheme;\n\n\t\t <%\n\t\t if (s.websocketSupport) {\n\t\t %>\n\t\t\t proxy_set_header Upgrade $http_upgrade;\n\t\t\t proxy_set_header Connection \"upgrade\";\n\t\t\t proxy_http_version 1.1;\n\t\t <%\n\t\t }\n\t\t %>\n \n \n\t<%\n\t}\n\t%>\n\t\n }\n\n # Used by Lets Encrypt\n location /.well-known/acme-challenge/ {\n root <%-s.staticWebRoot%>;\n }\n \n # Used by CapRover for health check\n location /.well-known/captain-identifier {\n root <%-s.staticWebRoot%>;\n }\n\n error_page 502 /captain_502_custom_error_page.html;\n location = /captain_502_custom_error_page.html {\n root <%-s.customErrorPagesDirectory%>;\n internal;\n }\n}\n" }, "dkala-front": { "hasPersistentData": false, "projectId": "548c4c35-f008-4ace-9918-18535a08cb5d", "description": "", "instanceCount": 1, "captainDefinitionRelativeFilePath": "./captain-definition", "networks": [ "captain-overlay-network" ], "envVars": [], "volumes": [], "ports": [], "tags": [], "versions": [ { "version": 0, "timeStamp": "2026-05-30T08:23:29.684Z", "deployedImageName": "caprover/caprover-placeholder-app:latest", "gitHash": "" }, { "version": 1, "timeStamp": "2026-05-30T08:28:55.192Z", "deployedImageName": "img-captain-dkala-front:1", "gitHash": "ae59823aa669e6f7fd97fabc0b98e136df9e43bc\n" } ], "deployedVersion": 1, "notExposeAsWebApp": false, "customDomain": [ { "publicDomain": "dkala.danakcorp.com", "hasSsl": false }, { "publicDomain": "avitaprotein.com", "hasSsl": false } ], "hasDefaultSubDomainSsl": false, "redirectDomain": "", "forceSsl": false, "websocketSupport": false, "appPushWebhook": { "tokenVersion": "7bb9e217-c3a4-4ff6-8c72-dae8f319d499", "pushWebhookToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InRva2VuVmVyc2lvbiI6IjdiYjllMjE3LWMzYTQtNGZmNi04YzcyLWRhZThmMzE5ZDQ5OSIsImFwcE5hbWUiOiJka2FsYS1mcm9udCIsIm5hbWVzcGFjZSI6ImNhcHRhaW4ifSwiaWF0IjoxNzgwMTI5NDk2fQ.YVgITfcVaCC_9zTXWibU1Q8J6oGt0tsoMM2uyx5vJxE", "repoInfo": { "repo": "https://git.danakcorp.com/danak/dkala-front.git", "user": "tech@danakcorp.com", "password": "", "sshKey": "", "branch": "main", "passwordEncrypted": "9fc8291e45169a217f5f3ae42587d8cf:f345c548ddf8ed5528db2cfa1e741435" } }, "containerHttpPort": 3000, "preDeployFunction": "", "serviceUpdateOverride": "", "appDeployTokenConfig": { "enabled": false }, "customNginxConfig": "" }, "dkala-api": { "hasPersistentData": false, "projectId": "548c4c35-f008-4ace-9918-18535a08cb5d", "description": "", "instanceCount": 1, "captainDefinitionRelativeFilePath": "./captain-definition", "networks": [ "captain-overlay-network" ], "envVars": [ { "key": "NODE_ENV", "value": "development" }, { "key": "DB_NAME", "value": "dkala" }, { "key": "DB_USER", "value": "danak" }, { "key": "DB_PASS", "value": "48ae186c32f8b69d" }, { "key": "DB_HOST", "value": "srv-captain--postgres-db" }, { "key": "DB_PORT", "value": "5432" }, { "key": "APP_PORT", "value": "4000" }, { "key": "APP_NAME", "value": "dkala-api" }, { "key": "REDIS_URI", "value": "redis://srv-captain--redis:6379/1" }, { "key": "REDIS_HOST", "value": "srv-captain--redis" }, { "key": "REDIS_PORT", "value": "6379" }, { "key": "REDIS_PASSWORD", "value": "" }, { "key": "CACHE_TTL", "value": "3600" }, { "key": "CACHE_NAMESPACE", "value": "dMenu" }, { "key": "SMS_BASE_URL", "value": "https://api.sms.ir/v1" }, { "key": "SMS_API_KEY", "value": "QkkNxhyXZ6GtEf1soOTtikomO3mA4LaNQDH8mol8huDIwh00" }, { "key": "SMS_PATTERN_OTP", "value": "832351" }, { "key": "JWT_SECRET", "value": "some_secret_value_Z6GtEf1soOTt" }, { "key": "JWT_EXPIRATION_TIME", "value": "1200" }, { "key": "BUCKET_NAME", "value": "c378939" }, { "key": "BUCKET_REGION", "value": "default" }, { "key": "PARSPACK_S3_ENDPOINT", "value": "https://c378939.parspack.net" }, { "key": "BUCKET_ACCESS_KEY", "value": "F7gRkI39G6vzhJ6K" }, { "key": "BUCKET_SECRET_KEY", "value": "MTix6koReLkR9X0r7Vqb32XtlfTPyF26" }, { "key": "REFRESH_TOKEN_EXPIRE", "value": "15" }, { "key": "OTP_EXPIRATION_TIME", "value": "240" }, { "key": "SMS_PATTERN_ORDER_CREATED", "value": "912114" }, { "key": "SMS_PATTERN_PAYMENT_SUCCESS", "value": "682377" }, { "key": "SMS_PATTERN_ORDER_STATUS_CHANGE", "value": "425344" }, { "key": "SMS_PATTERN_ORDER_STATUS_COMPLETED", "value": "907455" }, { "key": "SMS_PATTERN_REVIEW_CREATED", "value": "246967" }, { "key": "SMS_PATTERN_PAGER_CREATED", "value": "763298" }, { "key": "SMS_PATTERN_ONLINE_PAYMENT_SUCCEED", "value": "977651" }, { "key": "SUPER_ADMIN_USERNAME", "value": "danak@dsc.com" }, { "key": "SUPER_ADMIN_PASSWORD", "value": "DsCdAnAk?@ABC" } ], "volumes": [], "ports": [], "tags": [], "versions": [ { "version": 0, "timeStamp": "2026-05-30T21:26:37.345Z", "deployedImageName": "caprover/caprover-placeholder-app:latest", "gitHash": "" }, { "version": 1, "timeStamp": "2026-05-30T21:45:40.550Z", "deployedImageName": "img-captain-dkala-api:1", "gitHash": "85cccf3ba62e8237761ec8fc5068ccf5b51cff27\n" }, { "version": 2, "timeStamp": "2026-05-30T22:01:48.954Z", "deployedImageName": "img-captain-dkala-api:2", "gitHash": "cd35b6349f9114bdf70873cfa144b3be95f599fc\n" }, { "version": 3, "timeStamp": "2026-05-31T09:14:07.405Z", "deployedImageName": "img-captain-dkala-api:3", "gitHash": "cd35b6349f9114bdf70873cfa144b3be95f599fc\n" } ], "deployedVersion": 3, "notExposeAsWebApp": false, "customDomain": [ { "publicDomain": "dkala-api.danakcorp.com", "hasSsl": false } ], "hasDefaultSubDomainSsl": false, "redirectDomain": "", "forceSsl": false, "websocketSupport": false, "containerHttpPort": 4000, "preDeployFunction": "", "serviceUpdateOverride": "", "appDeployTokenConfig": { "enabled": false }, "appPushWebhook": { "tokenVersion": "05e19208-c9ac-4429-afb4-ca5927bef917", "pushWebhookToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InRva2VuVmVyc2lvbiI6IjA1ZTE5MjA4LWM5YWMtNDQyOS1hZmI0LWNhNTkyN2JlZjkxNyIsImFwcE5hbWUiOiJka2FsYS1hcGkiLCJuYW1lc3BhY2UiOiJjYXB0YWluIn0sImlhdCI6MTc4MDE3NzUzM30.DAC9uKJpwlLFva9Dxbg-XgUjQzAgOLPbGYCkEesyDyE", "repoInfo": { "repo": "https://git.danakcorp.com/danak/dkala-api", "user": "tech@danakcorp.com", "branch": "main", "password": "", "sshKey": "", "passwordEncrypted": "527c16e7fe6e021a23a3f7963dc4e1a8:d7de99978687b0c6f363cb4155427bdc" } } }, "dmail-api": { "hasPersistentData": false, "projectId": "8ed679e8-397c-41ca-88d8-3da6d8d35eba", "description": "", "instanceCount": 1, "captainDefinitionRelativeFilePath": "./captain-definition", "networks": [ "captain-overlay-network" ], "envVars": [ { "key": "NODE_ENV", "value": "production" }, { "key": "PORT", "value": "4000" }, { "key": "DB_HOST", "value": "srv-captain--postgres-db" }, { "key": "DB_PORT", "value": "5432" }, { "key": "DB_NAME", "value": "dmail" }, { "key": "DB_USER", "value": "danak" }, { "key": "DB_PASS", "value": "48ae186c32f8b69d" }, { "key": "REDIS_URI", "value": "redis://srv-captain--redis:6379/3" }, { "key": "AXIOS_TIMEOUT", "value": "5000" }, { "key": "CACHE_TTL", "value": "180000" }, { "key": "THROTTLE_TTL", "value": "300000" }, { "key": "THROTTLE_LIMIT", "value": "10" }, { "key": "JWT_SECRET_KEY", "value": "2ygxIB1PJhK/L2PToqR3+52gRmUIdPfwTguYlB7ZRCdRyvA/N36jjkjbYJLoMxEL6xGmk5CQmCmn9c0FsBlN1g" }, { "key": "JWT_ISSUER", "value": "console-danak" }, { "key": "ACCESS_TOKEN_EXPIRE", "value": "45" }, { "key": "REFRESH_TOKEN_EXPIRE", "value": "6" }, { "key": "BUCKET_NAME", "value": "danak-project" }, { "key": "BUCKET_REGION", "value": "default" }, { "key": "BUCKET_URL", "value": "https://s3.ir-thr-at1.arvanstorage.ir" }, { "key": "BUCKET_ACCESS_KEY", "value": "4bd15218-60f1-4ce7-a7aa-3fd319b13372" }, { "key": "BUCKET_SECRET_KEY", "value": "de772e5bd62fb04fb3669e67e09ddb101db60c65d77eea66b215ce58275e6a76" }, { "key": "BUCKET_UPLOAD_URL", "value": "https://storage.danakcorp.com" }, { "key": "WILDDUCK_BASE_URL", "value": "https://mail-api.danakcorp.com" }, { "key": "WILDDUCK_ACCESS_TOKEN", "value": "mc3TbGeF070JXoetf8okxKzT3op8Xc" }, { "key": "WILDDUCK_TIMEOUT", "value": "30000" }, { "key": "WILDDUCK_RETRIES", "value": "3" }, { "key": "DANAKCORP_API_URL", "value": "https://api.danakcorp.com" }, { "key": "DANAKCORP_API_KEY", "value": "uqXssnB2q8rs2soa9almm1jkL6vN0xOh0" }, { "key": "AI_BASE_URL", "value": "https://ai.liara.ir/api/v1/6880d29486b58bb25152b246" }, { "key": "AI_DEFAULT_MODEL", "value": "google/gemini-2.0-flash-001" }, { "key": "AI_DEFAULT_TTS_MODEL", "value": "mamam" }, { "key": "AI_API_KEY", "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySUQiOiI2NGVkY2ZmYWJiODUyOWZmNWFmOTU3YmEiLCJ0eXBlIjoiYXV0aCIsImlhdCI6MTc1MzI3NTU5N30.E4qoL2XnxSve541kQWyJVpHns3NKbCcLsdhYg0k4J_w" }, { "key": "NAJVA_API_URL", "value": "https://push.najva.com/v1/send/token/" }, { "key": "NAJVA_API_KEY", "value": "31c61583b0730bcd2e53413260bd0eb4ca36f69435ceb801ef" }, { "key": "NAJVA_WEBSITE_ID", "value": "100423" }, { "key": "PUSH_TTL", "value": "24" }, { "key": "FRONTEND_URL", "value": "https://dmail.danakcorp.com" }, { "key": "WEBHOOK_BASE_URL", "value": "https://dmail-api.danakcorp.com" }, { "key": "WEBHOOK_PATH", "value": "/webhooks/email/wildduck" }, { "key": "SUPER_ADMIN_USERNAME", "value": "danak@dsc.com" }, { "key": "SUPER_ADMIN_PASSWORD", "value": "DsCdAnAk?@ABC" } ], "volumes": [], "ports": [], "tags": [], "versions": [ { "version": 0, "timeStamp": "2026-05-31T09:00:19.314Z", "deployedImageName": "caprover/caprover-placeholder-app:latest", "gitHash": "" }, { "version": 1, "timeStamp": "2026-05-31T09:08:03.171Z" }, { "version": 2, "timeStamp": "2026-05-31T09:48:00.221Z" }, { "version": 3, "timeStamp": "2026-05-31T09:50:08.138Z" }, { "version": 4, "timeStamp": "2026-05-31T09:51:58.145Z" }, { "version": 5, "timeStamp": "2026-05-31T10:40:59.433Z" }, { "version": 6, "timeStamp": "2026-05-31T10:49:02.526Z" }, { "version": 7, "timeStamp": "2026-05-31T11:05:00.944Z" }, { "version": 8, "timeStamp": "2026-05-31T11:17:14.165Z" }, { "version": 9, "timeStamp": "2026-06-01T11:02:40.513Z" }, { "version": 10, "timeStamp": "2026-06-01T13:51:13.374Z", "deployedImageName": "img-captain-dmail-api:10", "gitHash": "669c6fd358922cce3abb2db4a1bd4727bfe1b42a\n" }, { "version": 11, "timeStamp": "2026-06-01T16:08:22.881Z", "deployedImageName": "img-captain-dmail-api:11", "gitHash": "e359a5c5e6a331f53bab74ec197c486ea81ebd6f\n" }, { "version": 12, "timeStamp": "2026-06-04T12:25:49.841Z", "deployedImageName": "img-captain-dmail-api:12", "gitHash": "cbccb8bc68c82e045c94dcd2859faea3212c4415\n" } ], "deployedVersion": 12, "notExposeAsWebApp": false, "customDomain": [ { "publicDomain": "dmail-api.danakcorp.com", "hasSsl": false }, { "publicDomain": "dmail-api.dev.danakcorp.com", "hasSsl": false } ], "hasDefaultSubDomainSsl": false, "redirectDomain": "", "forceSsl": false, "websocketSupport": true, "containerHttpPort": 4000, "preDeployFunction": "", "serviceUpdateOverride": "", "appDeployTokenConfig": { "enabled": false }, "appPushWebhook": { "tokenVersion": "7f6fc5dc-b073-4c0a-9194-a4c2bd244436", "pushWebhookToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InRva2VuVmVyc2lvbiI6IjdmNmZjNWRjLWIwNzMtNGMwYS05MTk0LWE0YzJiZDI0NDQzNiIsImFwcE5hbWUiOiJkbWFpbC1hcGkiLCJuYW1lc3BhY2UiOiJjYXB0YWluIn0sImlhdCI6MTc4MDIxODQ3N30.QgcTTSYDnJ2AfioEENRnDs0pTRJjdOQIXiSZH4GfVQ4", "repoInfo": { "repo": "https://git.danakcorp.com/danak/dmail-api", "user": "tech@danakcorp.com", "password": "", "sshKey": "", "branch": "main", "passwordEncrypted": "1f103029d7c9dc9f0a10e6ad79776af7:f630277fd79efd1705ed74c1a946ca68" } } }, "dmail-admin": { "hasPersistentData": false, "projectId": "8ed679e8-397c-41ca-88d8-3da6d8d35eba", "description": "", "instanceCount": 1, "captainDefinitionRelativeFilePath": "./captain-definition", "networks": [ "captain-overlay-network" ], "envVars": [], "volumes": [], "ports": [], "tags": [], "versions": [ { "version": 0, "timeStamp": "2026-05-31T09:45:32.827Z", "deployedImageName": "caprover/caprover-placeholder-app:latest", "gitHash": "" }, { "version": 1, "timeStamp": "2026-05-31T09:50:40.182Z" }, { "version": 2, "timeStamp": "2026-05-31T09:55:23.525Z" }, { "version": 3, "timeStamp": "2026-05-31T10:05:20.236Z" }, { "version": 4, "timeStamp": "2026-05-31T10:09:36.667Z" }, { "version": 5, "timeStamp": "2026-05-31T10:11:03.716Z" }, { "version": 6, "timeStamp": "2026-05-31T10:15:55.480Z" }, { "version": 7, "timeStamp": "2026-05-31T10:16:19.493Z" }, { "version": 8, "timeStamp": "2026-05-31T10:39:58.808Z" }, { "version": 9, "timeStamp": "2026-05-31T10:57:30.775Z" }, { "version": 10, "timeStamp": "2026-05-31T11:06:50.789Z" }, { "version": 11, "timeStamp": "2026-05-31T11:29:15.675Z", "deployedImageName": "img-captain-dmail-admin:11", "gitHash": "aa4da4362d90fb68c038b85e67e33b7443833632\n" }, { "version": 12, "timeStamp": "2026-05-31T11:42:56.594Z" }, { "version": 13, "timeStamp": "2026-05-31T11:53:57.378Z" }, { "version": 14, "timeStamp": "2026-05-31T12:09:31.393Z" }, { "version": 15, "timeStamp": "2026-05-31T12:44:28.727Z", "deployedImageName": "img-captain-dmail-admin:15", "gitHash": "b33879b85be331071cc90eb5b71d4a682c2b44d2\n" } ], "deployedVersion": 15, "notExposeAsWebApp": false, "customDomain": [ { "publicDomain": "dmail-admin.danakcorp.com", "hasSsl": false } ], "hasDefaultSubDomainSsl": false, "redirectDomain": "", "forceSsl": false, "websocketSupport": false, "appPushWebhook": { "tokenVersion": "8673c1d1-8ba6-4a6a-9e2e-3d2d7768f67e", "pushWebhookToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InRva2VuVmVyc2lvbiI6Ijg2NzNjMWQxLThiYTYtNGE2YS05ZTJlLTNkMmQ3NzY4ZjY3ZSIsImFwcE5hbWUiOiJkbWFpbC1hZG1pbiIsIm5hbWVzcGFjZSI6ImNhcHRhaW4ifSwiaWF0IjoxNzgwMjIwODQ3fQ.--dy0QEeEenXpDp3nCznhDXSBJKIfmzpImk6FE5VJ_4", "repoInfo": { "repo": "https://git.danakcorp.com/danak/dmail-admin", "user": "tech@danakcorp.com", "password": "", "sshKey": "", "branch": "master", "passwordEncrypted": "45f84b1835997b8547858db7b8d5c6e7:e555ae620ad499e9580bb721d2c1f36b" } }, "containerHttpPort": 80, "preDeployFunction": "", "serviceUpdateOverride": "", "appDeployTokenConfig": { "enabled": false } }, "dmenu-admin": { "hasPersistentData": false, "projectId": "64feebc1-5645-488e-a938-9776f26cef5a", "description": "", "instanceCount": 1, "captainDefinitionRelativeFilePath": "./captain-definition", "networks": [ "captain-overlay-network" ], "envVars": [], "volumes": [], "ports": [], "tags": [], "versions": [ { "version": 0, "timeStamp": "2026-05-31T12:39:24.045Z", "deployedImageName": "caprover/caprover-placeholder-app:latest", "gitHash": "" }, { "version": 1, "timeStamp": "2026-05-31T12:41:06.075Z" }, { "version": 2, "timeStamp": "2026-05-31T13:00:30.493Z" }, { "version": 3, "timeStamp": "2026-05-31T13:04:41.128Z" }, { "version": 4, "timeStamp": "2026-05-31T13:11:33.415Z" }, { "version": 5, "timeStamp": "2026-05-31T13:25:43.549Z" }, { "version": 6, "timeStamp": "2026-05-31T13:32:53.319Z" }, { "version": 7, "timeStamp": "2026-05-31T17:37:55.569Z" }, { "version": 8, "timeStamp": "2026-05-31T18:12:05.214Z" }, { "version": 9, "timeStamp": "2026-05-31T18:16:04.315Z" }, { "version": 10, "timeStamp": "2026-05-31T20:08:13.242Z" }, { "version": 11, "timeStamp": "2026-06-01T05:35:28.215Z" }, { "version": 12, "timeStamp": "2026-06-01T05:43:51.719Z" }, { "version": 13, "timeStamp": "2026-06-01T06:18:05.891Z" }, { "version": 14, "timeStamp": "2026-06-01T06:24:06.147Z" }, { "version": 15, "timeStamp": "2026-06-01T06:27:48.768Z" }, { "version": 16, "timeStamp": "2026-06-01T06:31:41.690Z" }, { "version": 17, "timeStamp": "2026-06-01T06:36:39.793Z", "deployedImageName": "img-captain-dmenu-admin:17", "gitHash": "d9e6c874664424c9fdd984fb0fcc3593cbae8f88\n" }, { "version": 18, "timeStamp": "2026-06-01T06:42:46.130Z", "deployedImageName": "img-captain-dmenu-admin:18", "gitHash": "6ed440b14f1f1871030f7c399e102eafa074db8a\n" }, { "version": 19, "timeStamp": "2026-06-01T06:59:58.175Z", "deployedImageName": "img-captain-dmenu-admin:19", "gitHash": "5f55917f11eceeebd712babf73c80ed32595670a\n" }, { "version": 20, "timeStamp": "2026-06-01T07:13:46.629Z", "deployedImageName": "img-captain-dmenu-admin:20", "gitHash": "28b16064b1b747bc0c54d1354f5d57d647d2c63c\n" }, { "version": 21, "timeStamp": "2026-06-02T11:32:55.492Z", "deployedImageName": "img-captain-dmenu-admin:21", "gitHash": "42c5e68b29ed3f6dc75c0b0e9b8d98f7b2852645\n" }, { "version": 22, "timeStamp": "2026-06-02T13:19:31.611Z", "deployedImageName": "img-captain-dmenu-admin:22", "gitHash": "94c6a9663b45338e7d1c18764b41fa97a650de1a\n" }, { "version": 23, "timeStamp": "2026-06-03T07:37:09.021Z", "deployedImageName": "img-captain-dmenu-admin:23", "gitHash": "c404ac14be198a469ece96229947ecefac1c4886\n" } ], "deployedVersion": 23, "notExposeAsWebApp": false, "customDomain": [ { "publicDomain": "dmenu-admin.danakcorp.com", "hasSsl": false } ], "hasDefaultSubDomainSsl": false, "redirectDomain": "", "forceSsl": false, "websocketSupport": false, "appPushWebhook": { "tokenVersion": "a275dd6c-74ce-4a80-bb73-09db76f321e2", "pushWebhookToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InRva2VuVmVyc2lvbiI6ImEyNzVkZDZjLTc0Y2UtNGE4MC1iYjczLTA5ZGI3NmYzMjFlMiIsImFwcE5hbWUiOiJkbWVudS1hZG1pbiIsIm5hbWVzcGFjZSI6ImNhcHRhaW4ifSwiaWF0IjoxNzgwMjMxMjYxfQ.qiNVt96pOsYD1eNI7Kf2j4FEA3PiLIJNBch_D-32sa8", "repoInfo": { "repo": "https://git.danakcorp.com/danak/dmenu-admin", "user": "tech@danakcorp.com", "password": "", "sshKey": "", "branch": "production", "passwordEncrypted": "a9292135b980109d0c32d506ffc6efcd:e74df0aee007b1e78ac9ef8405f7edf0" } }, "containerHttpPort": 80, "preDeployFunction": "", "serviceUpdateOverride": "", "appDeployTokenConfig": { "enabled": false }, "customNginxConfig": "" }, "dmail-front": { "hasPersistentData": false, "projectId": "8ed679e8-397c-41ca-88d8-3da6d8d35eba", "description": "", "instanceCount": 1, "captainDefinitionRelativeFilePath": "./captain-definition", "networks": [ "captain-overlay-network" ], "envVars": [], "volumes": [], "ports": [], "tags": [], "versions": [ { "version": 0, "timeStamp": "2026-05-31T13:06:52.686Z", "deployedImageName": "caprover/caprover-placeholder-app:latest", "gitHash": "" }, { "version": 1, "timeStamp": "2026-05-31T13:13:55.980Z" }, { "version": 2, "timeStamp": "2026-05-31T13:41:30.506Z" }, { "version": 3, "timeStamp": "2026-06-01T05:25:16.365Z", "deployedImageName": "img-captain-dmail-front:3", "gitHash": "fd25fe77754b24e618cece44fde701eb4f01ffe1\n" } ], "deployedVersion": 3, "notExposeAsWebApp": false, "customDomain": [ { "publicDomain": "dmail.danakcorp.com", "hasSsl": false } ], "hasDefaultSubDomainSsl": false, "redirectDomain": "", "forceSsl": false, "websocketSupport": false, "appPushWebhook": { "tokenVersion": "5751daf9-73ea-42b2-acdd-169b4b125e26", "pushWebhookToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InRva2VuVmVyc2lvbiI6IjU3NTFkYWY5LTczZWEtNDJiMi1hY2RkLTE2OWI0YjEyNWUyNiIsImFwcE5hbWUiOiJkbWFpbC1mcm9udCIsIm5hbWVzcGFjZSI6ImNhcHRhaW4ifSwiaWF0IjoxNzgwMjMyODMxfQ.s2OTYvmU-RWuJx_nA_bu7dnF9n7LhXVQm4Z-cXYQFuY", "repoInfo": { "repo": "https://git.danakcorp.com/danak/dmail-front.git", "user": "tech@danakcorp.com", "password": "", "sshKey": "", "branch": "master", "passwordEncrypted": "317652cd98b588760c0ca420b93828f8:9adc05aff8e940f806a40b481deb2625" } }, "containerHttpPort": 80, "preDeployFunction": "", "serviceUpdateOverride": "", "appDeployTokenConfig": { "enabled": false } }, "dsc-api": { "hasPersistentData": false, "projectId": "82fddec7-d91c-4f4c-9361-ff1444e9b8ad", "description": "", "instanceCount": 1, "captainDefinitionRelativeFilePath": "./captain-definition", "networks": [ "captain-overlay-network" ], "envVars": [ { "key": "NODE_ENV", "value": "production" }, { "key": "PORT", "value": "3500" }, { "key": "DB_HOST", "value": "srv-captain--postgres-db" }, { "key": "DB_PORT", "value": "5432" }, { "key": "DB_NAME", "value": "dsc" }, { "key": "DB_USER", "value": "danak" }, { "key": "DB_PASS", "value": "48ae186c32f8b69d" }, { "key": "SMS_API_URL", "value": "https://api.sms.ir/v1" }, { "key": "SMS_API_KEY", "value": "QkkNxhyXZ6GtEf1soOTtikomO3mA4LaNQDH8mol8huDIwh00" }, { "key": "SMS_PATTERN_OTP", "value": "842088" }, { "key": "SMS_PATTERN_INVOICE", "value": "683883" }, { "key": "SMS_PATTERN_LOGIN", "value": "149141" }, { "key": "SMS_PATTERN_INVOICE_CREATED", "value": "829067" }, { "key": "SMS_PATTERN_ANNOUNCEMENT", "value": "752330" }, { "key": "SMS_PATTERN_WALLET_CHARGE", "value": "727726" }, { "key": "SMS_PATTERN_WALLET_DEDUCTION", "value": "360785" }, { "key": "SMS_PATTERN_TICKET_CREATED", "value": "853506" }, { "key": "SMS_PATTERN_TICKET_ANSWERED", "value": "179464" }, { "key": "SMS_PATTERN_TICKET_ASSIGNED_ADMIN", "value": "321927" }, { "key": "SMS_PATTERN_INVOICE_APPROVED", "value": "303807" }, { "key": "SMS_PATTERN_INVOICE_PAID", "value": "533817" }, { "key": "SMS_PATTERN_RECURRING_INVOICE_DRAFT", "value": "219287" }, { "key": "SMS_PATTERN_SUBSCRIPTION_CANCELLED", "value": "166142" }, { "key": "SMS_PATTERN_INVOICE_REMINDER", "value": "370266" }, { "key": "SMS_PATTERN_INVOICE_OVERDUE", "value": "160735" }, { "key": "SMS_PATTERN_PAYMENT_REMINDER", "value": "629772" }, { "key": "SMS_PATTERN_PAYMENT_CANCELLATION", "value": "197945" }, { "key": "SMS_PATTERN_BLOG_NEW_COMMENT", "value": "378881" }, { "key": "SMS_PATTERN_NEW_SERVICE_REVIEW", "value": "593446" }, { "key": "SMS_PATTERN_NEW_CUSTOMER", "value": "966214" }, { "key": "SMS_PATTERN_NEW_SUBSCRIPTION", "value": "757095" }, { "key": "SMS_PATTERN_NEW_TICKET_GLOBAL", "value": "536596" }, { "key": "SMS_PATTERN_NEW_CRITICISM", "value": "983724" }, { "key": "SMS_PATTERN_USER_PASSWORD", "value": "486237" }, { "key": "SMTP_HOST", "value": "smtps.danakcorp.com" }, { "key": "SMTP_PORT", "value": "465" }, { "key": "SMTP_USER", "value": "no-reply-danakcorp.com" }, { "key": "SMTP_PASS", "value": "Mahyar.SR4@" }, { "key": "MAIL_FROM", "value": "no-reply " }, { "key": "EMAIL_SECRET", "value": "xDkdptbC2N7LoR2Aa4Q9U/aAGOi4DxG2748" }, { "key": "REDIS_URI", "value": "redis://srv-captain--redis:6379/2" }, { "key": "CACHE_TTL", "value": "180000" }, { "key": "THROTTLE_TTL", "value": "300000" }, { "key": "THROTTLE_LIMIT", "value": "10" }, { "key": "JWT_SECRET_KEY", "value": "2ygxIB1PJhK/L2PToqR3+52gRmUIdPfwTguYlB7ZRCdRyvA/N36jjkjbYJLoMxEL\n6xGmk5CQmCmn9c0FsBlN1g" }, { "key": "JWT_ISSUER", "value": "console-danak" }, { "key": "ACCESS_TOKEN_EXPIRE", "value": "80000" }, { "key": "REFRESH_TOKEN_EXPIRE", "value": "6" }, { "key": "BUCKET_NAME", "value": "danak-project" }, { "key": "BUCKET_REGION", "value": "default" }, { "key": "BUCKET_URL", "value": "https://s3.ir-thr-at1.arvanstorage.ir" }, { "key": "BUCKET_ACCESS_KEY", "value": "4bd15218-60f1-4ce7-a7aa-3fd319b13372" }, { "key": "BUCKET_SECRET_KEY", "value": "de772e5bd62fb04fb3669e67e09ddb101db60c65d77eea66b215ce58275e6a76" }, { "key": "BUCKET_UPLOAD_URL", "value": "https://storage.danakcorp.com" }, { "key": "ZARINPAL_MERCHANT_ID", "value": "fc0b7503-bba5-40d1-9f9d-dae52ac02eef" }, { "key": "PARSIAN_LOGIN_ACCOUNT", "value": "uqXnB2q8rjkL6vN0xOh0" }, { "key": "SITE_URL", "value": "https://console.danakcorp.com" }, { "key": "API_URL", "value": "https://api.danakcorp.com" }, { "key": "CALLBACK_URL", "value": "https://api.danakcorp.com/payments/verify" }, { "key": "TELEGRAM_BOT_TOKEN", "value": "7839690719:AAGsyfwympR4rDLm2JCx43CQh52s1o865uY" }, { "key": "TELEGRAM_BOT_NAME", "value": "danak_logs_bot" }, { "key": "TELEGRAM_CHAT_ID", "value": "7801476800" }, { "key": "EXTERNAL_API_KEYS", "value": "uqXssnB2q8rs2soa9almm1jkL6vN0xOh0" }, { "key": "DMENU_BACKEND_URL", "value": "https://dmenu-api.danakcorp.com" }, { "key": "DMENU_USERNAME", "value": "danak@dsc.com" }, { "key": "DMENU_PASSWORD", "value": "DsCdAnAk?@ABC" }, { "key": "DKALA_BACKEND_URL", "value": "https://dkala-api.danakcorp.com" }, { "key": "DKALA_USERNAME", "value": "danak@dsc.com" }, { "key": "DKALA_PASSWORD", "value": "DsCdAnAk?@ABC" }, { "key": "DPAGE_BACKEND_URL", "value": "https://dpage-api.danakcorp.com" }, { "key": "DPAGE_USERNAME", "value": "danak@dsc.com" }, { "key": "DPAGE_PASSWORD", "value": "DsCdAnAk?@ABC" }, { "key": "DMAIL_BACKEND_URL", "value": "https://dmail-api.danakcorp.com" }, { "key": "DMAIL_USERNAME", "value": "danak@dsc.com" }, { "key": "DMAIL_PASSWORD", "value": "DsCdAnAk?@ABC" } ], "volumes": [], "ports": [], "tags": [], "versions": [ { "version": 0, "timeStamp": "2026-05-31T18:26:33.901Z", "deployedImageName": "caprover/caprover-placeholder-app:latest", "gitHash": "" }, { "version": 1, "timeStamp": "2026-05-31T18:32:24.294Z" }, { "version": 2, "timeStamp": "2026-06-01T07:18:14.588Z" }, { "version": 3, "timeStamp": "2026-06-01T07:42:38.368Z" }, { "version": 4, "timeStamp": "2026-06-01T07:46:40.925Z" }, { "version": 5, "timeStamp": "2026-06-01T07:49:40.546Z" }, { "version": 6, "timeStamp": "2026-06-01T07:57:12.322Z" }, { "version": 7, "timeStamp": "2026-06-01T08:04:38.080Z" }, { "version": 8, "timeStamp": "2026-06-01T08:06:32.702Z" }, { "version": 9, "timeStamp": "2026-06-01T08:30:31.070Z" }, { "version": 10, "timeStamp": "2026-06-01T08:53:04.674Z" }, { "version": 11, "timeStamp": "2026-06-01T09:15:19.716Z" }, { "version": 12, "timeStamp": "2026-06-01T09:21:54.965Z" }, { "version": 13, "timeStamp": "2026-06-01T09:24:38.534Z" }, { "version": 14, "timeStamp": "2026-06-01T09:35:05.652Z" }, { "version": 15, "timeStamp": "2026-06-01T10:43:22.260Z" }, { "version": 16, "timeStamp": "2026-06-01T12:15:44.646Z", "deployedImageName": "img-captain-dsc-api:16", "gitHash": "8adea37c18ea12992be6bbf3000ef4c8c20b79b2\n" }, { "version": 17, "timeStamp": "2026-06-01T13:20:58.453Z", "deployedImageName": "img-captain-dsc-api:17", "gitHash": "3bdb3031018e1237490e5f3c4ae7d2efdc391377\n" }, { "version": 18, "timeStamp": "2026-06-07T12:45:17.970Z", "deployedImageName": "img-captain-dsc-api:18", "gitHash": "9e65be2c5849039a7e04a1192fc1d99a04cbddf5\n" } ], "deployedVersion": 18, "notExposeAsWebApp": false, "customDomain": [ { "publicDomain": "api.danakcorp.com", "hasSsl": false } ], "hasDefaultSubDomainSsl": false, "redirectDomain": "", "forceSsl": false, "websocketSupport": false, "containerHttpPort": 3500, "preDeployFunction": "", "serviceUpdateOverride": "", "appDeployTokenConfig": { "enabled": false }, "appPushWebhook": { "tokenVersion": "e20ed131-3013-4609-a801-75611f1bc135", "pushWebhookToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InRva2VuVmVyc2lvbiI6ImUyMGVkMTMxLTMwMTMtNDYwOS1hODAxLTc1NjExZjFiYzEzNSIsImFwcE5hbWUiOiJkc2MtYXBpIiwibmFtZXNwYWNlIjoiY2FwdGFpbiJ9LCJpYXQiOjE3ODAyNTIzNDB9.nGhG1v68GJ_7cp0k4RNLN0N-N7l8C20ldRt1uG0RhJs", "repoInfo": { "repo": "https://git.danakcorp.com/danak/dsc-api", "user": "tech@danakcorp.com", "password": "", "sshKey": "", "branch": "main", "passwordEncrypted": "e6f013a7031417068dbefd7f10ed17bf:a6a49e7045139b3ee06bc087fbc0cfdd" } } }, "admin-panel": { "hasPersistentData": false, "projectId": "82fddec7-d91c-4f4c-9361-ff1444e9b8ad", "description": "", "instanceCount": 1, "captainDefinitionRelativeFilePath": "./captain-definition", "networks": [ "captain-overlay-network" ], "envVars": [], "volumes": [], "ports": [], "tags": [], "versions": [ { "version": 0, "timeStamp": "2026-06-01T07:36:12.591Z", "deployedImageName": "caprover/caprover-placeholder-app:latest", "gitHash": "" }, { "version": 1, "timeStamp": "2026-06-01T07:39:45.834Z", "deployedImageName": "img-captain-admin-panel:1", "gitHash": "e0d0017a10d770bfd96670a7a24a07bd451f9051\n" }, { "version": 2, "timeStamp": "2026-06-03T09:42:08.636Z", "deployedImageName": "img-captain-admin-panel:2", "gitHash": "19b47df5b15551b35549ba3aef7d029110975b7c\n" } ], "deployedVersion": 2, "notExposeAsWebApp": false, "customDomain": [ { "publicDomain": "admin-panel.danakcorp.com", "hasSsl": false } ], "hasDefaultSubDomainSsl": false, "redirectDomain": "", "forceSsl": false, "websocketSupport": false, "appPushWebhook": { "tokenVersion": "8b2ba01e-7073-48e6-af66-39a5d97b0f40", "pushWebhookToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InRva2VuVmVyc2lvbiI6IjhiMmJhMDFlLTcwNzMtNDhlNi1hZjY2LTM5YTVkOTdiMGY0MCIsImFwcE5hbWUiOiJhZG1pbi1wYW5lbCIsIm5hbWVzcGFjZSI6ImNhcHRhaW4ifSwiaWF0IjoxNzgwMjk5NTQ2fQ.cj4NJ5UhoV1ZLm8BgZxdbRGJnxjhWuHP8-SKVWr7i7A", "repoInfo": { "repo": "https://git.danakcorp.com/danak/danak-admin.git", "user": "tech@danakcorp.com", "password": "", "sshKey": "", "branch": "master", "passwordEncrypted": "1b24c82e7c67c569be2d66c3900cea30:c7167074910e400fd03b6bdb0c56b525" } }, "containerHttpPort": 80, "preDeployFunction": "", "serviceUpdateOverride": "", "appDeployTokenConfig": { "enabled": false } }, "console": { "hasPersistentData": false, "projectId": "82fddec7-d91c-4f4c-9361-ff1444e9b8ad", "description": "", "instanceCount": 1, "captainDefinitionRelativeFilePath": "./captain-definition", "networks": [ "captain-overlay-network" ], "envVars": [], "volumes": [], "ports": [], "tags": [], "versions": [ { "version": 0, "timeStamp": "2026-06-01T08:15:50.195Z", "deployedImageName": "caprover/caprover-placeholder-app:latest", "gitHash": "" }, { "version": 1, "timeStamp": "2026-06-01T08:26:28.510Z" }, { "version": 2, "timeStamp": "2026-06-01T08:32:00.381Z", "deployedImageName": "img-captain-console:2", "gitHash": "6bc8a24683bb3840032a2c76a232806f27f82f10\n" } ], "deployedVersion": 2, "notExposeAsWebApp": false, "customDomain": [ { "publicDomain": "console.danakcorp.com", "hasSsl": false } ], "hasDefaultSubDomainSsl": false, "redirectDomain": "", "forceSsl": false, "websocketSupport": false, "appPushWebhook": { "tokenVersion": "cef69140-8d05-4606-b77a-5380d1cf2656", "pushWebhookToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InRva2VuVmVyc2lvbiI6ImNlZjY5MTQwLThkMDUtNDYwNi1iNzdhLTUzODBkMWNmMjY1NiIsImFwcE5hbWUiOiJjb25zb2xlIiwibmFtZXNwYWNlIjoiY2FwdGFpbiJ9LCJpYXQiOjE3ODAzMDE4Mjh9.NUcQsccRvJMRL_eJUEDMRQH-LzMu1zqD45aAjjzsP08", "repoInfo": { "repo": "https://git.danakcorp.com/danak/danak-console.git", "user": "tech@danakcorp.com", "password": "", "sshKey": "", "branch": "master", "passwordEncrypted": "8668f655b38fc562ccb4e9e792d1be72:fe90ce818990254c6d19c307df735a79" } }, "containerHttpPort": 80, "preDeployFunction": "", "serviceUpdateOverride": "", "appDeployTokenConfig": { "enabled": false } }, "website": { "hasPersistentData": false, "projectId": "82fddec7-d91c-4f4c-9361-ff1444e9b8ad", "description": "", "instanceCount": 1, "captainDefinitionRelativeFilePath": "./captain-definition", "networks": [ "captain-overlay-network" ], "envVars": [], "volumes": [], "ports": [], "tags": [], "versions": [ { "version": 0, "timeStamp": "2026-06-01T09:05:31.972Z", "deployedImageName": "caprover/caprover-placeholder-app:latest", "gitHash": "" }, { "version": 1, "timeStamp": "2026-06-01T09:14:31.617Z" }, { "version": 2, "timeStamp": "2026-06-01T09:43:36.772Z" }, { "version": 3, "timeStamp": "2026-06-01T11:04:23.844Z" }, { "version": 4, "timeStamp": "2026-06-01T11:14:47.797Z" }, { "version": 5, "timeStamp": "2026-06-01T12:00:15.046Z" }, { "version": 6, "timeStamp": "2026-06-05T10:04:02.771Z" }, { "version": 7, "timeStamp": "2026-06-05T10:27:02.650Z", "deployedImageName": "img-captain-website:7", "gitHash": "4e1261f96be2534e93a6b36394d761807cba24ca\n" } ], "deployedVersion": 7, "notExposeAsWebApp": false, "customDomain": [ { "publicDomain": "danakcorp.com", "hasSsl": false } ], "hasDefaultSubDomainSsl": false, "redirectDomain": "", "forceSsl": false, "websocketSupport": false, "appPushWebhook": { "tokenVersion": "729be92b-f483-42d7-9d0e-ecb2b7cc0630", "pushWebhookToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InRva2VuVmVyc2lvbiI6IjcyOWJlOTJiLWY0ODMtNDJkNy05ZDBlLWVjYjJiN2NjMDYzMCIsImFwcE5hbWUiOiJ3ZWJzaXRlIiwibmFtZXNwYWNlIjoiY2FwdGFpbiJ9LCJpYXQiOjE3ODAzMDQ3NDF9.ADRUY1yPE1pAV2I2lY8nm-8-4zaA9Q4cIKf0Gy_iMq4", "repoInfo": { "repo": "https://git.danakcorp.com/danak/danak-website.git", "user": "tech@danakcorp.com", "password": "", "sshKey": "", "branch": "master", "passwordEncrypted": "124c0fb842581801d73dbe0a79c735d2:8a823656f66049943c4a9fec478ab314" } }, "containerHttpPort": 3000, "preDeployFunction": "", "serviceUpdateOverride": "", "appDeployTokenConfig": { "enabled": false } }, "postgres-db": { "hasPersistentData": true, "projectId": "094d89f8-f16f-4258-8fbe-0c3a53aa2952", "description": "", "instanceCount": 1, "captainDefinitionRelativeFilePath": "./captain-definition", "networks": [ "captain-overlay-network" ], "envVars": [ { "key": "POSTGRES_USER", "value": "danak" }, { "key": "POSTGRES_PASSWORD", "value": "48ae186c32f8b69d" }, { "key": "POSTGRES_DB", "value": "dmenu" } ], "volumes": [ { "containerPath": "/var/lib/postgresql/data", "volumeName": "postgres-data" } ], "ports": [ { "hostPort": 5432, "containerPort": 5432 } ], "tags": [], "versions": [ { "version": 0, "timeStamp": "2026-06-02T13:31:26.631Z", "deployedImageName": "caprover/caprover-placeholder-app:latest", "gitHash": "" }, { "version": 1, "timeStamp": "2026-06-02T13:34:55.815Z", "deployedImageName": "postgres:16", "gitHash": "" }, { "version": 2, "timeStamp": "2026-06-03T06:33:06.916Z", "deployedImageName": "postgres:16", "gitHash": "" } ], "deployedVersion": 2, "notExposeAsWebApp": true, "customDomain": [], "hasDefaultSubDomainSsl": false, "redirectDomain": "", "forceSsl": false, "websocketSupport": false, "containerHttpPort": 80, "nodeId": "vf60j0m9hlskifwb7jhbcuu1y", "preDeployFunction": "", "serviceUpdateOverride": "", "appDeployTokenConfig": { "enabled": false } }, "dkala-admin": { "hasPersistentData": false, "projectId": "548c4c35-f008-4ace-9918-18535a08cb5d", "description": "", "instanceCount": 1, "captainDefinitionRelativeFilePath": "./captain-definition", "networks": [ "captain-overlay-network" ], "envVars": [], "volumes": [], "ports": [], "tags": [], "versions": [ { "version": 0, "timeStamp": "2026-06-03T05:51:26.573Z", "deployedImageName": "caprover/caprover-placeholder-app:latest", "gitHash": "" }, { "version": 1, "timeStamp": "2026-06-03T05:53:21.471Z" }, { "version": 2, "timeStamp": "2026-06-03T06:03:27.998Z" }, { "version": 3, "timeStamp": "2026-06-03T06:04:26.684Z" }, { "version": 4, "timeStamp": "2026-06-03T06:07:55.552Z", "deployedImageName": "img-captain-dkala-admin:4", "gitHash": "934c50dc650dc0c0d5ed7d520920cf8ff827f421\n" } ], "deployedVersion": 4, "notExposeAsWebApp": false, "customDomain": [ { "publicDomain": "dkala-admin.danakcorp.com", "hasSsl": false } ], "hasDefaultSubDomainSsl": false, "redirectDomain": "", "forceSsl": false, "websocketSupport": false, "appPushWebhook": { "tokenVersion": "fede1638-9ef5-4fd7-b6f9-df614b64d309", "pushWebhookToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InRva2VuVmVyc2lvbiI6ImZlZGUxNjM4LTllZjUtNGZkNy1iNmY5LWRmNjE0YjY0ZDMwOSIsImFwcE5hbWUiOiJka2FsYS1hZG1pbiIsIm5hbWVzcGFjZSI6ImNhcHRhaW4ifSwiaWF0IjoxNzgwNDY1OTg4fQ.iPpXPf0m29OmaQKoBmxP1zyZU6jpYJcBbzeOXvuqRQo", "repoInfo": { "repo": "https://git.danakcorp.com/danak/dkala-admin.git", "user": "tech@danakcorp.com", "password": "", "sshKey": "", "branch": "main", "passwordEncrypted": "ec76383c18a9b1b21e59566746f0b69e:59b7b44eff12a3278f5865d6c178223a" } }, "containerHttpPort": 80, "preDeployFunction": "", "serviceUpdateOverride": "", "appDeployTokenConfig": { "enabled": false } }, "dzone-api": { "hasPersistentData": false, "projectId": "5012a293-2f54-42d6-b136-12c7473394db", "description": "", "instanceCount": 1, "captainDefinitionRelativeFilePath": "./captain-definition", "networks": [ "captain-overlay-network" ], "envVars": [ { "key": "NODE_ENV", "value": "production" }, { "key": "PORT", "value": "4000" }, { "key": "DB_HOST", "value": "srv-captain--postgres-db" }, { "key": "DB_PORT", "value": "5432" }, { "key": "DB_NAME", "value": "dzone" }, { "key": "DB_USER", "value": "danak" }, { "key": "DB_PASS", "value": "48ae186c32f8b69d" }, { "key": "SMS_API_URL", "value": "https://api.sms.ir/v1" }, { "key": "SMS_API_KEY", "value": "QkkNxhyXZ6GtEf1soOTtikomO3mA4LaNQDH8mol8huDIwh00" }, { "key": "SMS_PATTERN_OTP", "value": "842088" }, { "key": "SMS_PATTERN_INVOICE", "value": "683883" }, { "key": "SMS_PATTERN_LOGIN", "value": "149141" }, { "key": "SMS_PATTERN_INVOICE_CREATED", "value": "829067" }, { "key": "SMS_PATTERN_ANNOUNCEMENT", "value": "752330" }, { "key": "SMS_PATTERN_TICKET_CREATED", "value": "853506" }, { "key": "SMS_PATTERN_TICKET_ANSWERED", "value": "179464" }, { "key": "SMS_PATTERN_TICKET_ASSIGNED_ADMIN", "value": "321927" }, { "key": "SMS_PATTERN_INVOICE_APPROVED", "value": "303807" }, { "key": "SMS_PATTERN_INVOICE_PAID", "value": "533817" }, { "key": "SMS_PATTERN_RECURRING_INVOICE_DRAFT", "value": "219287" }, { "key": "SMS_PATTERN_SUBSCRIPTION_CANCELLED", "value": "166142" }, { "key": "SMS_PATTERN_INVOICE_REMINDER", "value": "370266" }, { "key": "SMS_PATTERN_INVOICE_OVERDUE", "value": "160735" }, { "key": "SMS_PATTERN_PAYMENT_REMINDER", "value": "629772" }, { "key": "SMS_PATTERN_PAYMENT_CANCELLATION", "value": "197945" }, { "key": "REDIS_URI", "value": "redis://srv-captain--redis:6379/4" }, { "key": "CACHE_TTL", "value": "180000" }, { "key": "THROTTLE_TTL", "value": "300000" }, { "key": "THROTTLE_LIMIT", "value": "10" }, { "key": "JWT_SECRET", "value": "2ygxIB1PJhK/L2PToqR3+52gRmUIdPfswTguYlB7ZRCdRyvA/N36jjkjbYJLoMxEL\n6xGmk5CQmCmn9c0FsBlN1g" }, { "key": "JWT_ISSUER", "value": "dzone" }, { "key": "ACCESS_TOKEN_EXPIRE", "value": "30" }, { "key": "REFRESH_TOKEN_EXPIRE", "value": "6" }, { "key": "SMTP_HOST", "value": "cp85.mihanbank.com" }, { "key": "SMTP_PORT", "value": "465" }, { "key": "SMTP_USER", "value": "no-reply@danakcorp.com" }, { "key": "SMTP_PASS", "value": "c=ST.wS;9wb," }, { "key": "MAIL_FROM", "value": "no-reply@danakcorp.com" }, { "key": "EMAIL_SECRET", "value": "xDkdptbC2N7LoR2Aa4Q9U/aAGOi4DxG2748" }, { "key": "BUCKET_NAME", "value": "danak-project" }, { "key": "BUCKET_REGION", "value": "default" }, { "key": "BUCKET_URL", "value": "https://s3.ir-thr-at1.arvanstorage.ir" }, { "key": "BUCKET_ACCESS_KEY", "value": "4bd15218-60f1-4ce7-a7aa-3fd319b13372" }, { "key": "BUCKET_SECRET_KEY", "value": "de772e5bd62fb04fb3669e67e09ddb101db60c65d77eea66b215ce58275e6a76" }, { "key": "BUCKET_UPLOAD_URL", "value": "https://storage.danakcorp.com" }, { "key": "IPG_TYPE", "value": "sandbox" }, { "key": "ZARINPAL_MERCHANT_ID", "value": "fc0b7503-bba5-40d1-9f9d-dae52ac02eef" }, { "key": "SITE_URL", "value": "https://dzone.danakcorp.com" }, { "key": "API_URL", "value": "https://api-dzone.danakcorp.com" }, { "key": "ZARINPAL_API_URL", "value": "zarinpal.com/pg" }, { "key": "CALLBACK_URL", "value": "https://api-dzone.danakcorp.com/payments/verify" }, { "key": "CAPROVER_API_URL", "value": "https://captain.dev.danakcorp.com/api/v2" }, { "key": "CAPROVER_EMAIL", "value": "me" }, { "key": "CAPROVER_AUTH_TOKEN", "value": "" }, { "key": "CAPROVER_PASSWORD", "value": "WSNEaUAg3N3vST3" }, { "key": "CAPROVER_APP_NAME", "value": "dzone" }, { "key": "GEMINI_API_KEY", "value": "AIzaSyAQUWDn3-4jjVv38uWnDFAe933yb38737U" }, { "key": "GEMINI_MODEL", "value": "gemini-2.0-flash" } ], "volumes": [], "ports": [], "tags": [], "versions": [ { "version": 0, "timeStamp": "2026-06-03T08:09:59.517Z", "deployedImageName": "caprover/caprover-placeholder-app:latest", "gitHash": "" }, { "version": 1, "timeStamp": "2026-06-03T08:12:59.892Z" }, { "version": 2, "timeStamp": "2026-06-03T08:35:10.522Z" }, { "version": 3, "timeStamp": "2026-06-03T08:41:27.279Z" }, { "version": 4, "timeStamp": "2026-06-03T08:44:36.341Z" }, { "version": 5, "timeStamp": "2026-06-03T08:45:58.911Z" }, { "version": 6, "timeStamp": "2026-06-03T08:47:28.455Z" }, { "version": 7, "timeStamp": "2026-06-03T08:59:51.896Z", "deployedImageName": "img-captain-dzone-api:7", "gitHash": "a548a4e196647f4a2124eee264fc103b009671e9\n" } ], "deployedVersion": 7, "notExposeAsWebApp": false, "customDomain": [ { "publicDomain": "api-dzone.danakcorp.com", "hasSsl": false } ], "hasDefaultSubDomainSsl": false, "redirectDomain": "", "forceSsl": false, "websocketSupport": false, "containerHttpPort": 4000, "preDeployFunction": "", "serviceUpdateOverride": "", "appDeployTokenConfig": { "enabled": false }, "appPushWebhook": { "tokenVersion": "de1f111e-96ba-4aeb-a259-b8f23857e508", "pushWebhookToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InRva2VuVmVyc2lvbiI6ImRlMWYxMTFlLTk2YmEtNGFlYi1hMjU5LWI4ZjIzODU3ZTUwOCIsImFwcE5hbWUiOiJkem9uZS1hcGkiLCJuYW1lc3BhY2UiOiJjYXB0YWluIn0sImlhdCI6MTc4MDQ3NDM1N30.a18RmlINTbzDLk1mwMyD_a7VzNfXqtASz2K8_jYcGt8", "repoInfo": { "repo": "https://git.danakcorp.com/danak/dzone-api", "user": "tech@danakcorp.com", "branch": "main", "password": "", "sshKey": "", "passwordEncrypted": "1539d3a3af2a1ba56eecc47499261f44:0b0463de35860cb190a1f97634cfff43" } } }, "help": { "hasPersistentData": false, "projectId": "82fddec7-d91c-4f4c-9361-ff1444e9b8ad", "description": "", "instanceCount": 1, "captainDefinitionRelativeFilePath": "./captain-definition", "networks": [ "captain-overlay-network" ], "envVars": [], "volumes": [], "ports": [], "tags": [], "versions": [ { "version": 0, "timeStamp": "2026-06-06T05:45:13.645Z", "deployedImageName": "caprover/caprover-placeholder-app:latest", "gitHash": "" }, { "version": 1, "timeStamp": "2026-06-06T05:47:08.395Z" }, { "version": 2, "timeStamp": "2026-06-06T05:50:26.992Z" }, { "version": 3, "timeStamp": "2026-06-06T05:53:07.641Z" }, { "version": 4, "timeStamp": "2026-06-06T05:57:18.374Z" }, { "version": 5, "timeStamp": "2026-06-06T06:26:59.828Z" }, { "version": 6, "timeStamp": "2026-06-06T06:35:00.338Z" }, { "version": 7, "timeStamp": "2026-06-06T06:36:08.910Z", "deployedImageName": "img-captain-help:7", "gitHash": "c0ea94930148135e0cb34c631c3d1aed0a5de688\n" }, { "version": 8, "timeStamp": "2026-06-06T06:46:27.551Z", "deployedImageName": "img-captain-help:8", "gitHash": "c0ea94930148135e0cb34c631c3d1aed0a5de688\n" } ], "deployedVersion": 8, "notExposeAsWebApp": false, "customDomain": [ { "publicDomain": "help.danakcorp.com", "hasSsl": false } ], "hasDefaultSubDomainSsl": false, "redirectDomain": "", "forceSsl": false, "websocketSupport": false, "appPushWebhook": { "tokenVersion": "a7404b26-9fa8-405c-a0b9-524f8e685b26", "pushWebhookToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InRva2VuVmVyc2lvbiI6ImE3NDA0YjI2LTlmYTgtNDA1Yy1hMGI5LTUyNGY4ZTY4NWIyNiIsImFwcE5hbWUiOiJoZWxwIiwibmFtZXNwYWNlIjoiY2FwdGFpbiJ9LCJpYXQiOjE3ODA3MjQ4MDd9.Td4Syfv-3P8_hfDNTbqkrLgLlOUqQVFOpquD0Liey_s", "repoInfo": { "repo": "https://git.danakcorp.com/danak/help", "user": "tech@danakcorp.com", "password": "", "sshKey": "", "branch": "master", "passwordEncrypted": "a9bd78390b52b6c890b61ffabc70aeb6:b0d8196251cd76c1791deea30a4e192a" } }, "containerHttpPort": 80, "preDeployFunction": "", "serviceUpdateOverride": "", "appDeployTokenConfig": { "enabled": false } }, "dzone-front": { "hasPersistentData": false, "projectId": "5012a293-2f54-42d6-b136-12c7473394db", "description": "", "instanceCount": 1, "captainDefinitionRelativeFilePath": "./captain-definition", "networks": [ "captain-overlay-network" ], "envVars": [], "volumes": [], "ports": [], "tags": [], "versions": [ { "version": 0, "timeStamp": "2026-06-06T06:52:28.426Z", "deployedImageName": "caprover/caprover-placeholder-app:latest", "gitHash": "" }, { "version": 1, "timeStamp": "2026-06-06T06:53:41.223Z" }, { "version": 2, "timeStamp": "2026-06-06T06:56:18.784Z" }, { "version": 3, "timeStamp": "2026-06-06T07:04:46.475Z" }, { "version": 4, "timeStamp": "2026-06-06T07:04:55.302Z" }, { "version": 5, "timeStamp": "2026-06-06T07:07:45.125Z", "deployedImageName": "img-captain-dzone-front:5", "gitHash": "b45649212e8f07dd5fa1b45edd12da4775bea1fc\n" } ], "deployedVersion": 5, "notExposeAsWebApp": false, "customDomain": [ { "publicDomain": "dzone.danakcorp.com", "hasSsl": false } ], "hasDefaultSubDomainSsl": false, "redirectDomain": "", "forceSsl": false, "websocketSupport": true, "appPushWebhook": { "tokenVersion": "73055f46-e7ce-4300-a2cb-d71dc777c9b4", "pushWebhookToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InRva2VuVmVyc2lvbiI6IjczMDU1ZjQ2LWU3Y2UtNDMwMC1hMmNiLWQ3MWRjNzc3YzliNCIsImFwcE5hbWUiOiJkem9uZS1mcm9udCIsIm5hbWVzcGFjZSI6ImNhcHRhaW4ifSwiaWF0IjoxNzgwNzI4ODEwfQ.DhlEX3JUJotUIW0nhb7f8TD_4PnmEFzzEtb1NBrEoCQ", "repoInfo": { "repo": "https://git.danakcorp.com/danak/dzone-front", "user": "tech@danakcorp.com", "branch": "master", "password": "", "sshKey": "", "passwordEncrypted": "0bda36855300d9c7733a61be54cec0b1:46a408aceb43df9b114232568e57df7d" } }, "containerHttpPort": 80, "preDeployFunction": "", "serviceUpdateOverride": "", "appDeployTokenConfig": { "enabled": false } }, "dzone-admin": { "hasPersistentData": false, "projectId": "5012a293-2f54-42d6-b136-12c7473394db", "description": "", "instanceCount": 1, "captainDefinitionRelativeFilePath": "./captain-definition", "networks": [ "captain-overlay-network" ], "envVars": [], "volumes": [], "ports": [], "tags": [], "versions": [ { "version": 0, "timeStamp": "2026-06-06T07:04:45.128Z", "deployedImageName": "caprover/caprover-placeholder-app:latest", "gitHash": "" }, { "version": 1, "timeStamp": "2026-06-06T07:22:33.185Z", "deployedImageName": "img-captain-dzone-admin:1", "gitHash": "ad9433bfb63947b0c96757342f059efa7574a3ae\n" } ], "deployedVersion": 1, "notExposeAsWebApp": false, "customDomain": [ { "publicDomain": "admin-dzone.danakcorp.com", "hasSsl": false } ], "hasDefaultSubDomainSsl": false, "redirectDomain": "", "forceSsl": false, "websocketSupport": false, "containerHttpPort": 80, "preDeployFunction": "", "serviceUpdateOverride": "", "appDeployTokenConfig": { "enabled": false }, "appPushWebhook": { "tokenVersion": "e37c3897-5d4a-4607-afb5-1f209a037cd7", "pushWebhookToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InRva2VuVmVyc2lvbiI6ImUzN2MzODk3LTVkNGEtNDYwNy1hZmI1LTFmMjA5YTAzN2NkNyIsImFwcE5hbWUiOiJkem9uZS1hZG1pbiIsIm5hbWVzcGFjZSI6ImNhcHRhaW4ifSwiaWF0IjoxNzgwNzMwNTQ3fQ.os-KlXMrw0Vj6nr8WlZWMwEzOzy0JwamiEUcVyz2j2Y", "repoInfo": { "repo": "https://git.danakcorp.com/danak/dzone-admin", "user": "tech@danakcorp.com", "branch": "master", "password": "", "sshKey": "", "passwordEncrypted": "7560bdab446e738cd5f20f833e51f475:2444132f0f49011415eda425d43d3ba4" } } }, "test": { "hasPersistentData": false, "projectId": "", "description": "", "instanceCount": 1, "captainDefinitionRelativeFilePath": "./captain-definition", "networks": [ "captain-overlay-network" ], "envVars": [], "volumes": [], "ports": [], "tags": [], "versions": [ { "version": 0, "timeStamp": "2026-06-07T17:05:43.693Z", "deployedImageName": "caprover/caprover-placeholder-app:latest", "gitHash": "" }, { "version": 1, "timeStamp": "2026-06-07T17:06:23.187Z", "deployedImageName": "nginxdemos/hello:latest", "gitHash": "" } ], "deployedVersion": 1, "notExposeAsWebApp": false, "customDomain": [], "hasDefaultSubDomainSsl": false, "redirectDomain": "", "forceSsl": false, "websocketSupport": false } }, "nginxBaseConfig": "user nginx;\nworker_processes 1;\n\nerror_log /var/log/nginx/error.log warn;\npid /var/run/nginx.pid;\n\n\nevents {\n worker_connections 1024;\n}\n\n\nhttp {\n include /etc/nginx/mime.types;\n default_type application/octet-stream;\n\n geo $remote_addr $ip_in_log {\n\n # CIDR Range IPs:\n 172.16.0.0/12 0;\n 10.0.0.0/8 0;\n 192.168.0.0/16\t0;\n \n default 1;\n \n }\n\n log_format main '$remote_addr - $remote_user [$time_local] \"$host\" \"$request\" '\n '$status $body_bytes_sent \"$http_referer\" '\n '\"$http_user_agent\" \"$http_x_forwarded_for\"';\n\n access_log /var/log/nginx/access.log main if=$ip_in_log;\n\n sendfile on;\n #tcp_nopush on;\n\n keepalive_timeout 65;\n\n server_names_hash_bucket_size 128;\n\n ssl_session_cache shared:SSL:20m;\n ssl_session_timeout 1d;\n ssl_session_tickets off;\n\n # Mozilla Intermediate configuration. tweak to your needs.\n ssl_protocols TLSv1.2 TLSv1.3;\n ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;\n ssl_prefer_server_ciphers off;\n\n \n <%\n if (base.dhparamsFilePath) {\n %>\n ssl_dhparam <%-base.dhparamsFilePath%>;\n <%\n }\n %>\n\n # Don't emit NGINX version on error pages and in the “Server” response header field.\n server_tokens off;\n\n #gzip on;\n\n include /etc/nginx/conf.d/*.conf;\n}\n", "nginxCaptainConfig": "\n# Default catch-all page. e.g. if you enter SOME-RANDOM-CHARS.captainroot.domain.com\n server {\n\n # Catch all HTTP\n listen 80;\n\n # Catch all HTTPS\n listen 443 ssl;\n ssl_certificate <%-fake.crtPath%>;\n ssl_certificate_key <%-fake.keyPath%>;\n\n server_name _;\n\n location /nginx_status {\n stub_status on;\n\n access_log off;\n\n # This can be improved by adding authentication as well.\n # CIDR Range IPs:\n allow 172.16.0.0/12;\n allow 10.0.0.0/8;\n allow 192.168.0.0/16;\n\n deny all;\n }\n\n location / {\n root <%-captain.defaultHtmlDir%>;\n index index.html index.htm;\n }\n\n error_page 404 /index.html;\n error_page 500 502 503 504 /error_generic_catch_all.html;\n }\n\n\n# Captain dashboard at captain.captainroot.domain.com\n server {\n\n\tlisten 80;\n\tclient_max_body_size 300m;\n\n\tgzip on;\n\tgzip_disable \"MSIE [1-6]\\.\";\n\tgzip_vary on;\n\tgzip_proxied any;\n\tgzip_comp_level 6;\n\tgzip_min_length 16000;\n\tgzip_buffers 16 8k;\n\tgzip_types\n\t\ttext/css\n\t\ttext/plain\n\t\ttext/javascript\n\t\tapplication/javascript\n\t\tapplication/json\n\t\tapplication/x-javascript\n\t\tapplication/xml\n\t\tapplication/xml+rss\n\t\tapplication/xhtml+xml\n\t\tapplication/x-font-ttf\n\t\tapplication/x-font-opentype\n\t\tapplication/vnd.ms-fontobject\n\t\timage/svg+xml\n\t\timage/x-icon\n\t\tapplication/rss+xml\n\t\tapplication/atom_xml;\n\n\n\n <%\n if (captain.hasRootSsl) {\n %>\n listen 443 ssl;\n ssl_certificate <%-captain.crtPath%>;\n ssl_certificate_key <%-captain.keyPath%>;\n\n <%\n }\n %>\n\n server_name <%-captain.domain%>;\n\n # 127.0.0.11 is DNS set up by Docker, see:\n # https://docs.docker.com/engine/userguide/networking/configure-dns/\n # https://github.com/moby/moby/issues/20026\n resolver 127.0.0.11 valid=10s;\n set $upstream http://<%-captain.serviceName%>:<%-captain.serviceExposedPort%>;\n\n # IMPORTANT!! Except proxy_read_timeout, this block should be same as location /api/v2/user/apps/appData\n location / {\n proxy_pass $upstream;\n proxy_set_header Host $host;\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_set_header X-Forwarded-Proto $scheme;\n }\n\n # temporary until build process becomes an asynchronous process\n location /api/v2/user/apps/appData {\n proxy_pass $upstream;\n proxy_set_header Host $host;\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_set_header X-Forwarded-Proto $scheme;\n\n proxy_read_timeout 120s;\n }\n\n # Used by Lets Encrypt\n location /.well-known/acme-challenge/ {\n root <%-captain.staticWebRoot%>;\n }\n\n # Used by CapRover for health check\n location /.well-known/captain-identifier {\n root <%-captain.staticWebRoot%>;\n }\n\n }\n\n\n\n# Built-in Docker Registry at registry.captainroot.domain.com\n# Port 80/443 is used by Let's Encrypt to support HTTPS\n# But the Registry engine runs on port 996\n server {\n\n listen 80;\n client_max_body_size 500m;\n\n <%\n if (registry.hasRootSsl) {\n %>\n listen 443 ssl;\n ssl_certificate <%-registry.crtPath%>;\n ssl_certificate_key <%-registry.keyPath%>;\n <%\n }\n %>\n\n server_name <%-registry.domain%>;\n\n location / {\n root <%-registry.staticWebRoot%>;\n }\n }\n", "projectsDefinitions": { "58efbc07-e8c1-4a47-bbc5-bb78f3c0e529": { "id": "58efbc07-e8c1-4a47-bbc5-bb78f3c0e529", "name": "dpage", "parentProjectId": "", "description": "" }, "094d89f8-f16f-4258-8fbe-0c3a53aa2952": { "id": "094d89f8-f16f-4258-8fbe-0c3a53aa2952", "name": "database", "parentProjectId": "", "description": "postgres, mongo and redis" }, "64feebc1-5645-488e-a938-9776f26cef5a": { "id": "64feebc1-5645-488e-a938-9776f26cef5a", "name": "dmenu", "parentProjectId": "", "description": "" }, "548c4c35-f008-4ace-9918-18535a08cb5d": { "id": "548c4c35-f008-4ace-9918-18535a08cb5d", "name": "dkala", "parentProjectId": "", "description": "" }, "82fddec7-d91c-4f4c-9361-ff1444e9b8ad": { "id": "82fddec7-d91c-4f4c-9361-ff1444e9b8ad", "name": "danak", "parentProjectId": "", "description": "" }, "8ed679e8-397c-41ca-88d8-3da6d8d35eba": { "id": "8ed679e8-397c-41ca-88d8-3da6d8d35eba", "name": "dmail", "parentProjectId": "", "description": "" }, "5012a293-2f54-42d6-b136-12c7473394db": { "id": "5012a293-2f54-42d6-b136-12c7473394db", "name": "dzone", "parentProjectId": "", "description": "" } }, "featureFlags": { "isProEnabled": true }, "automatedCleanup": { "mostRecentLimit": 1, "cronSchedule": "0 1 * * *", "timezone": "UTC" }, "netDataInfo": { "isEnabled": true, "data": { "smtp": {}, "slack": {}, "telegram": {}, "pushBullet": {} } } }