Add daily email
This commit is contained in:
parent
6e974b6559
commit
808d20ba03
4 changed files with 131 additions and 57 deletions
|
@ -1,54 +0,0 @@
|
|||
{
|
||||
"uuid": [
|
||||
{
|
||||
"value": "eb3b17cc-6d49-43e7-80b0-15c6e3ec37f2"
|
||||
}
|
||||
],
|
||||
"langcode": [
|
||||
{
|
||||
"value": "en"
|
||||
}
|
||||
],
|
||||
"uid": [
|
||||
{
|
||||
"target_type": "user",
|
||||
"target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849"
|
||||
}
|
||||
],
|
||||
"filename": [
|
||||
{
|
||||
"value": "marcos-duran.jpg"
|
||||
}
|
||||
],
|
||||
"uri": [
|
||||
{
|
||||
"value": "public:\/\/2025-07\/marcos-duran.jpg",
|
||||
"url": "\/sites\/default\/files\/2025-07\/marcos-duran.jpg"
|
||||
}
|
||||
],
|
||||
"filemime": [
|
||||
{
|
||||
"value": "image\/jpeg"
|
||||
}
|
||||
],
|
||||
"filesize": [
|
||||
{
|
||||
"value": 28004
|
||||
}
|
||||
],
|
||||
"status": [
|
||||
{
|
||||
"value": false
|
||||
}
|
||||
],
|
||||
"created": [
|
||||
{
|
||||
"value": "2025-07-04T09:56:07+00:00"
|
||||
}
|
||||
],
|
||||
"changed": [
|
||||
{
|
||||
"value": "2025-07-04T09:56:07+00:00"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -6659,9 +6659,6 @@
|
|||
"file.c334fcb7-eefc-4692-86ff-14db768ba480",
|
||||
"taxonomy_term.5a23da64-7e26-42fd-8d5d-d7e5f98f54a1"
|
||||
],
|
||||
"file.eb3b17cc-6d49-43e7-80b0-15c6e3ec37f2": [
|
||||
"user.b8966985-d4b2-42a7-a319-2e94ccfbb849"
|
||||
],
|
||||
"file.42b821e5-2a8c-49f6-8c1c-24b461c05995": [
|
||||
"user.b8966985-d4b2-42a7-a319-2e94ccfbb849"
|
||||
],
|
||||
|
@ -6734,5 +6731,12 @@
|
|||
],
|
||||
"path_alias.a85920d4-a113-4497-8861-c8f45b0708e8": [
|
||||
"node.d8a2b106-99f5-455d-b8a9-f1bdcbf12e53"
|
||||
],
|
||||
"node.add68937-4a3d-410d-a0d3-4510e3cb9e19": [
|
||||
"user.b8966985-d4b2-42a7-a319-2e94ccfbb849",
|
||||
"node.3074e1e9-c691-4f73-a71c-cfe5920f884e"
|
||||
],
|
||||
"path_alias.33301c7f-3252-46b8-9f3c-87f8d6efb5e2": [
|
||||
"node.add68937-4a3d-410d-a0d3-4510e3cb9e19"
|
||||
]
|
||||
}
|
97
content/node.add68937-4a3d-410d-a0d3-4510e3cb9e19.json
Normal file
97
content/node.add68937-4a3d-410d-a0d3-4510e3cb9e19.json
Normal file
|
@ -0,0 +1,97 @@
|
|||
{
|
||||
"uuid": [
|
||||
{
|
||||
"value": "add68937-4a3d-410d-a0d3-4510e3cb9e19"
|
||||
}
|
||||
],
|
||||
"langcode": [
|
||||
{
|
||||
"value": "en"
|
||||
}
|
||||
],
|
||||
"type": [
|
||||
{
|
||||
"target_id": "daily_email",
|
||||
"target_type": "node_type",
|
||||
"target_uuid": "8bde1f2f-eef9-4f2d-ae9c-96921f8193d7"
|
||||
}
|
||||
],
|
||||
"revision_timestamp": [
|
||||
{
|
||||
"value": "2025-07-04T19:42:30+00:00"
|
||||
}
|
||||
],
|
||||
"revision_uid": [
|
||||
{
|
||||
"target_type": "user",
|
||||
"target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849"
|
||||
}
|
||||
],
|
||||
"revision_log": [],
|
||||
"status": [
|
||||
{
|
||||
"value": true
|
||||
}
|
||||
],
|
||||
"uid": [
|
||||
{
|
||||
"target_type": "user",
|
||||
"target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849"
|
||||
}
|
||||
],
|
||||
"title": [
|
||||
{
|
||||
"value": "Imperative or declarative"
|
||||
}
|
||||
],
|
||||
"created": [
|
||||
{
|
||||
"value": "2025-07-03T18:47:13+00:00"
|
||||
}
|
||||
],
|
||||
"changed": [
|
||||
{
|
||||
"value": "2025-07-04T19:42:30+00:00"
|
||||
}
|
||||
],
|
||||
"promote": [
|
||||
{
|
||||
"value": false
|
||||
}
|
||||
],
|
||||
"sticky": [
|
||||
{
|
||||
"value": false
|
||||
}
|
||||
],
|
||||
"default_langcode": [
|
||||
{
|
||||
"value": true
|
||||
}
|
||||
],
|
||||
"revision_translation_affected": [
|
||||
{
|
||||
"value": true
|
||||
}
|
||||
],
|
||||
"path": [
|
||||
{
|
||||
"alias": "\/daily\/2025\/07\/03\/imperative-or-declarative",
|
||||
"langcode": "en"
|
||||
}
|
||||
],
|
||||
"body": [
|
||||
{
|
||||
"value": "Yesterday, I wrote about [infrastructure as code][0] and mentioned some of the IaC tools that are available.\r\n\r\nI use Terraform to manage the DNS records for my websites, and use NixOS to configure my laptops and home server.\r\n\r\nBefore NixOS, I used Ansible to provision servers and [deploy application code][1].\r\n\r\nAnsible is imperative, which means you need to declare each step that needs to be run.\r\n\r\nYou need to say to install a package, like a web server.\r\n\r\nYou need to say to create any required users or groups.\r\n\r\nYou need to configure the service so it starts when the server boots.\r\n\r\nYou need to create the configuration files and symlink or copy them to the correct path.\r\n\r\nYou need to add as many steps as needed to perform the task, that will be executed in the given order.\r\n\r\n## Declarative configuration\r\n\r\nThis makes sense for application deployments, but for server configuration, you can also use declarative tools like Terraform and NixOS.\r\n\r\nInstead of writing each step, you declare what the final desired state is.\r\n\r\nYou say Nginx should be enabled by writing `services.nginx.enable = true;` or declaring what the configuration file contents should be - not how to create or symlink the file.\r\n\r\nThis also makes the underlying code easier to update or refactor.\r\n\r\nIf how you install or configure a program changes, you don't need to update your infrastructure code as the final state will be the same - regardless of how it's done.\r\n\r\n[0]: \/daily\/2025\/07\/02\/what-infrastructure-code\r\n[1]: \/presentations\/deploying-php-ansible-ansistrano",
|
||||
"format": "markdown",
|
||||
"processed": "<p>Yesterday, I wrote about <a href=\"http:\/\/localhost:8888\/daily\/2025\/07\/02\/what-infrastructure-code\">infrastructure as code<\/a> and mentioned some of the IaC tools that are available.<\/p>\n<p>I use Terraform to manage the DNS records for my websites, and use NixOS to configure my laptops and home server.<\/p>\n<p>Before NixOS, I used Ansible to provision servers and <a href=\"http:\/\/localhost:8888\/presentations\/deploying-php-ansible-ansistrano\">deploy application code<\/a>.<\/p>\n<p>Ansible is imperative, which means you need to declare each step that needs to be run.<\/p>\n<p>You need to say to install a package, like a web server.<\/p>\n<p>You need to say to create any required users or groups.<\/p>\n<p>You need to configure the service so it starts when the server boots.<\/p>\n<p>You need to create the configuration files and symlink or copy them to the correct path.<\/p>\n<p>You need to add as many steps as needed to perform the task, that will be executed in the given order.<\/p>\n<h2>Declarative configuration<\/h2>\n<p>This makes sense for application deployments, but for server configuration, you can also use declarative tools like Terraform and NixOS.<\/p>\n<p>Instead of writing each step, you declare what the final desired state is.<\/p>\n<p>You say Nginx should be enabled by writing <code>services.nginx.enable = true;<\/code> or declaring what the configuration file contents should be - not how to create or symlink the file.<\/p>\n<p>This also makes the underlying code easier to update or refactor.<\/p>\n<p>If how you install or configure a program changes, you don't need to update your infrastructure code as the final state will be the same - regardless of how it's done.<\/p>\n",
|
||||
"summary": ""
|
||||
}
|
||||
],
|
||||
"field_daily_email_cta": [
|
||||
{
|
||||
"target_type": "node",
|
||||
"target_uuid": "3074e1e9-c691-4f73-a71c-cfe5920f884e"
|
||||
}
|
||||
]
|
||||
}
|
27
content/path_alias.33301c7f-3252-46b8-9f3c-87f8d6efb5e2.json
Normal file
27
content/path_alias.33301c7f-3252-46b8-9f3c-87f8d6efb5e2.json
Normal file
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"uuid": [
|
||||
{
|
||||
"value": "33301c7f-3252-46b8-9f3c-87f8d6efb5e2"
|
||||
}
|
||||
],
|
||||
"langcode": [
|
||||
{
|
||||
"value": "en"
|
||||
}
|
||||
],
|
||||
"path": [
|
||||
{
|
||||
"value": "\/node\/add68937-4a3d-410d-a0d3-4510e3cb9e19"
|
||||
}
|
||||
],
|
||||
"alias": [
|
||||
{
|
||||
"value": "\/daily\/2025\/07\/03\/imperative-or-declarative"
|
||||
}
|
||||
],
|
||||
"status": [
|
||||
{
|
||||
"value": true
|
||||
}
|
||||
]
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue