{ "Affinities": null, "AllAtOnce": false, "Constraints": null, "ConsulNamespace": "", "CreateIndex": 13940845, "Datacenters": [ "dc1" ], "DispatchIdempotencyToken": "", "Dispatched": false, "ID": "calendar-proxy", "JobModifyIndex": 13940997, "Meta": null, "ModifyIndex": 13991837, "Multiregion": null, "Name": "calendar-proxy", "Namespace": "default", "NodePool": "default", "NomadTokenID": "", "ParameterizedJob": null, "ParentID": "", "Payload": null, "Periodic": null, "Priority": 50, "Region": "global", "Spreads": null, "Stable": true, "Status": "running", "StatusDescription": "", "Stop": false, "SubmitTime": 1755792931244089317, "TaskGroups": [ { "Affinities": null, "Constraints": [ { "LTarget": "${attr.consul.version}", "Operand": "semver", "RTarget": ">= 1.8.0" } ], "Consul": null, "Count": 1, "Disconnect": null, "EphemeralDisk": { "Migrate": false, "SizeMB": 300, "Sticky": false }, "MaxClientDisconnect": null, "Meta": null, "Migrate": { "HealthCheck": "checks", "HealthyDeadline": 300000000000, "MaxParallel": 1, "MinHealthyTime": 10000000000 }, "Name": "web", "Networks": [ { "DynamicPorts": [ { "HostNetwork": "default", "Label": "http", "To": 80 } ] } ], "PreventRescheduleOnLost": false, "ReschedulePolicy": { "Attempts": 0, "Delay": 30000000000, "DelayFunction": "exponential", "Interval": 0, "MaxDelay": 3600000000000, "Unlimited": true }, "RestartPolicy": { "Attempts": 3, "Delay": 25000000000, "Interval": 300000000000, "Mode": "fail", "RenderTemplates": false }, "Scaling": null, "Services": [ { "Address": "", "AddressMode": "auto", "CanaryMeta": null, "CanaryTags": null, "Checks": [ { "AddressMode": "", "Args": null, "Body": "", "CheckRestart": null, "Command": "", "Expose": false, "FailuresBeforeCritical": 0, "FailuresBeforeWarning": 0, "GRPCService": "", "GRPCUseTLS": false, "Header": null, "InitialStatus": "", "Interval": 10000000000, "Method": "", "Name": "service: \"calendar-proxy\" check", "Notes": "", "OnUpdate": "require_healthy", "Path": "/health", "PortLabel": "", "Protocol": "", "SuccessBeforePassing": 0, "TLSServerName": "", "TLSSkipVerify": false, "TaskName": "", "Timeout": 3000000000, "Type": "http" } ], "Cluster": "default", "Connect": null, "EnableTagOverride": false, "Identity": null, "Meta": null, "Name": "calendar-proxy", "Namespace": "default", "OnUpdate": "require_healthy", "PortLabel": "http", "Provider": "consul", "TaggedAddresses": null, "Tags": [ "traefik.enable=true", "traefik.http.routers.calendar-proxy.rule=Host(`mail.fbleagh.duckdns.org`)", "traefik.http.routers.calendar-proxy.entrypoints=web" ], "TaskName": "", "Weights": null } ], "ShutdownDelay": null, "Spreads": null, "StopAfterClientDisconnect": null, "Tasks": [ { "Actions": null, "Affinities": null, "Artifacts": null, "CSIPluginConfig": null, "Config": { "volumes": [ "local/nginx.conf:/etc/nginx/nginx.conf", "local/app:/var/www/html" ], "image": "nginx:alpine", "ports": [ "http" ] }, "Constraints": null, "Consul": null, "DispatchPayload": null, "Driver": "docker", "Env": null, "Identities": null, "Identity": { "Audience": [ "nomadproject.io" ], "ChangeMode": "", "ChangeSignal": "", "Env": false, "File": false, "Filepath": "", "Name": "default", "ServiceName": "", "TTL": 0 }, "KillSignal": "", "KillTimeout": 5000000000, "Kind": "", "Leader": false, "Lifecycle": { "Hook": "prestart", "Sidecar": true }, "LogConfig": { "Disabled": false, "MaxFileSizeMB": 10, "MaxFiles": 10 }, "Meta": null, "Name": "nginx", "Resources": { "CPU": 100, "Cores": 0, "Devices": null, "DiskMB": 0, "IOPS": 0, "MemoryMB": 128, "MemoryMaxMB": 0, "NUMA": null, "Networks": null, "SecretsMB": 0 }, "RestartPolicy": { "Attempts": 3, "Delay": 25000000000, "Interval": 300000000000, "Mode": "fail", "RenderTemplates": false }, "ScalingPolicies": null, "Schedule": null, "Services": null, "ShutdownDelay": 0, "Templates": [ { "ChangeMode": "restart", "ChangeScript": null, "ChangeSignal": "", "DestPath": "local/nginx.conf", "EmbeddedTmpl": "events {\n worker_connections 1024;\n}\n\nhttp {\n include /etc/nginx/mime.types;\n default_type application/octet-stream;\n \n sendfile on;\n keepalive_timeout 65;\n \n upstream php-fpm {\n server 127.0.0.1:9000;\n }\n \n server {\n listen 80;\n server_name mail.fbleagh.duckdns.org;\n root /var/www/html;\n index ics.php;\n \n location /health {\n access_log off;\n return 200 \"healthy\\n\";\n add_header Content-Type text/plain;\n }\n \n location / {\n try_files $uri $uri/ /ics.php?$query_string;\n }\n \n location ~ \\.php$ {\n fastcgi_pass php-fpm;\n fastcgi_index index.php;\n fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n include fastcgi_params;\n }\n \n # Security headers\n add_header X-Frame-Options \"SAMEORIGIN\" always;\n add_header X-XSS-Protection \"1; mode=block\" always;\n add_header X-Content-Type-Options \"nosniff\" always;\n \n # Hide nginx version\n server_tokens off;\n }\n}\n", "Envvars": false, "ErrMissingKey": false, "Gid": null, "LeftDelim": "{{", "Once": false, "Perms": "0644", "RightDelim": "}}", "SourcePath": "", "Splay": 5000000000, "Uid": null, "VaultGrace": 0, "Wait": null }, { "ChangeMode": "restart", "ChangeScript": null, "ChangeSignal": "", "DestPath": "local/app/ics.php", "EmbeddedTmpl": " [\n \"header\" => \"User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36\",\n ]\n]);\nif (($data = @file_get_contents($url, false, $context)) === false) {\n $error = error_get_last();\n http_response_code(500);\n print \"HTTP request failed: \" . $error['message'];\n exit;\n}\nheader('Content-Type: text/calendar; charset=utf-8');\nprint $data;\n?>\n", "Envvars": false, "ErrMissingKey": false, "Gid": null, "LeftDelim": "{{", "Once": false, "Perms": "0644", "RightDelim": "}}", "SourcePath": "", "Splay": 5000000000, "Uid": null, "VaultGrace": 0, "Wait": null } ], "User": "", "Vault": null, "VolumeMounts": null }, { "Actions": null, "Affinities": null, "Artifacts": null, "CSIPluginConfig": null, "Config": { "network_mode": "container:nginx-${NOMAD_ALLOC_ID}", "volumes": [ "local/app:/var/www/html", "local/php-fpm.conf:/usr/local/etc/php-fpm.d/www.conf" ], "image": "php:8.2-fpm-alpine" }, "Constraints": null, "Consul": null, "DispatchPayload": null, "Driver": "docker", "Env": null, "Identities": null, "Identity": { "Audience": [ "nomadproject.io" ], "ChangeMode": "", "ChangeSignal": "", "Env": false, "File": false, "Filepath": "", "Name": "default", "ServiceName": "", "TTL": 0 }, "KillSignal": "", "KillTimeout": 5000000000, "Kind": "", "Leader": false, "Lifecycle": null, "LogConfig": { "Disabled": false, "MaxFileSizeMB": 10, "MaxFiles": 10 }, "Meta": null, "Name": "php-fpm", "Resources": { "CPU": 200, "Cores": 0, "Devices": null, "DiskMB": 0, "IOPS": 0, "MemoryMB": 256, "MemoryMaxMB": 0, "NUMA": null, "Networks": null, "SecretsMB": 0 }, "RestartPolicy": { "Attempts": 3, "Delay": 25000000000, "Interval": 300000000000, "Mode": "fail", "RenderTemplates": false }, "ScalingPolicies": null, "Schedule": null, "Services": null, "ShutdownDelay": 0, "Templates": [ { "ChangeMode": "restart", "ChangeScript": null, "ChangeSignal": "", "DestPath": "local/php-fpm.conf", "EmbeddedTmpl": "[www]\nuser = www-data\ngroup = www-data\nlisten = 127.0.0.1:9000\nlisten.owner = www-data\nlisten.group = www-data\npm = dynamic\npm.max_children = 5\npm.start_servers = 2\npm.min_spare_servers = 1\npm.max_spare_servers = 3\n", "Envvars": false, "ErrMissingKey": false, "Gid": null, "LeftDelim": "{{", "Once": false, "Perms": "0644", "RightDelim": "}}", "SourcePath": "", "Splay": 5000000000, "Uid": null, "VaultGrace": 0, "Wait": null }, { "ChangeMode": "restart", "ChangeScript": null, "ChangeSignal": "", "DestPath": "local/app/ics.php", "EmbeddedTmpl": " [\n \"header\" => \"User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36\",\n ]\n]);\nif (($data = @file_get_contents($url, false, $context)) === false) {\n $error = error_get_last();\n http_response_code(500);\n print \"HTTP request failed: \" . $error['message'];\n exit;\n}\nheader('Content-Type: text/calendar; charset=utf-8');\nprint $data;\n?>\n", "Envvars": false, "ErrMissingKey": false, "Gid": null, "LeftDelim": "{{", "Once": false, "Perms": "0644", "RightDelim": "}}", "SourcePath": "", "Splay": 5000000000, "Uid": null, "VaultGrace": 0, "Wait": null } ], "User": "", "Vault": null, "VolumeMounts": null } ], "Update": { "AutoPromote": false, "AutoRevert": true, "Canary": 0, "HealthCheck": "checks", "HealthyDeadline": 180000000000, "MaxParallel": 1, "MinHealthyTime": 10000000000, "ProgressDeadline": 600000000000, "Stagger": 30000000000 }, "Volumes": null } ], "Type": "service", "UI": null, "Update": { "AutoPromote": false, "AutoRevert": false, "Canary": 0, "HealthCheck": "", "HealthyDeadline": 0, "MaxParallel": 1, "MinHealthyTime": 0, "ProgressDeadline": 0, "Stagger": 30000000000 }, "VaultNamespace": "", "Version": 7, "VersionTag": null }