{"id":2230,"date":"2024-06-07T17:07:02","date_gmt":"2024-06-07T15:07:02","guid":{"rendered":"https:\/\/alessandromasciadri.com\/?p=2230"},"modified":"2024-11-18T20:52:08","modified_gmt":"2024-11-18T19:52:08","slug":"come-eseguire-backup-di-mailcow-con-docker-borgmatic-salvando-i-dati-direttamente-su-nas","status":"publish","type":"post","link":"https:\/\/alessandromasciadri.com\/come-eseguire-backup-di-mailcow-con-docker-borgmatic-salvando-i-dati-direttamente-su-nas\/","title":{"rendered":"Come eseguire backup di mailcow con docker-borgmatic salvando i dati direttamente su NAS"},"content":{"rendered":"\t\t<div data-akihiro-type=\"ama-post\" data-akihiro-id=\"2230\" class=\"akihiro akihiro-2230\" data-akihiro-post-type=\"post\">\n\t\t\t\t<div class=\"akihiro-element akihiro-element-6d7486c e-con-full e-flex e-con e-parent\" data-id=\"6d7486c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"akihiro-element akihiro-element-5050276 akihiro-widget akihiro-widget-text-editor\" data-id=\"5050276\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>In questo scenario vogliamo eseguire il backup di un mail server basato su <a href=\"https:\/\/github.com\/mailcow\/mailcow-dockerized\">mailcow-dockerized<\/a>, un mail server diffuso specialmente per la sua semplicit\u00e0 di installazione e configurazione. Attraverso questa guida vedremo come utilizzare Borgbackup unitamente a Borgmatic per per eseguire il backup dei dati di mailcow direttamente in una shared folder del nostro NAS.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-e674ff2 akihiro-widget akihiro-widget-heading\" data-id=\"e674ff2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h3 class=\"akihiro-heading-title akihiro-size-default\">Installazione di docker-borgmatic<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-7cd3e9e akihiro-widget akihiro-widget-text-editor\" data-id=\"7cd3e9e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Il primo passo fondamentale \u00e8 ottenere l&#8217;immagine di docker-borgmatic ed istanziarne un container. Nei punti seguenti si ipotizza che il percorso di mailcow-dockerized sia quello di default. Per creare il primo file necessario <code>docker-compose.override.yml<\/code> seguiamo quindi questi passaggi:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-dd71a89 akihiro-widget akihiro-widget-code-highlight\" data-id=\"dd71a89\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash \">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>cd \/opt\/mailcow-dockerized\nvi docker-compose.override.yml<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-ecceb8d akihiro-widget akihiro-widget-text-editor\" data-id=\"ecceb8d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\tIncolliamo il seguente contenuto personalizzando il percorso di mount della propria cartella del NAS (<code>\/mnt\/nas-folder<\/code> in questo esempio) e la variabile d&#8217;ambiente <code>BORG_PASSPHRASE<\/code>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-06d8811 akihiro-widget akihiro-widget-code-highlight\" data-id=\"06d8811\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language- \">\n\t\t\t\t<code readonly=\"true\" class=\"language-\">\n\t\t\t\t\t<xmp>version: '2.1'\n\nservices:\n  borgmatic-mailcow:\n    image: ghcr.io\/borgmatic-collective\/borgmatic\n    hostname: mailcow\n    restart: always\n    dns: ${IPV4_NETWORK:-172.22.1}.254\n    volumes:\n      - vmail-vol-1:\/mnt\/source\/vmail:ro\n      - crypt-vol-1:\/mnt\/source\/crypt:ro\n      - redis-vol-1:\/mnt\/source\/redis:ro\n      - rspamd-vol-1:\/mnt\/source\/rspamd:ro\n      - postfix-vol-1:\/mnt\/source\/postfix:ro\n      - mysql-socket-vol-1:\/var\/run\/mysqld\/\n      - borg-config-vol-1:\/root\/.config\/borg\n      - borg-cache-vol-1:\/root\/.cache\/borg\n      - .\/data\/conf\/borgmatic\/etc:\/etc\/borgmatic.d:Z\n      - .\/data\/conf\/borgmatic\/ssh:\/root\/.ssh:Z\n      \n      # Personalizzare con il percorso di mount della cartella del NAS \/mnt\/nas-folder\n      - \/mnt\/nas-folder:\/mnt\/source\/borgfiles\n    environment:\n      - TZ=${TZ}\n      \n      # Personalizzare con una propria passphrase\n      - BORG_PASSPHRASE=YouBetterPutSomethingRealGoodHere\n    networks:\n      mailcow-network:\n        aliases:\n          - borgmatic\n\nvolumes:\n  borg-cache-vol-1:\n  borg-config-vol-1:<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-63b4452 akihiro-widget akihiro-widget-text-editor\" data-id=\"63b4452\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Creiamo ora il file di configurazione di borgmatic. Seguiamo questi passaggi per crearlo automaticamente (minimizzando cos\u00ec il rischio di errore). Carichiamo il file <code>mailcow.conf<\/code><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-3fb635a akihiro-widget akihiro-widget-code-highlight\" data-id=\"3fb635a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash \">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>source mailcow.conf<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-9dc5078 akihiro-widget akihiro-widget-text-editor\" data-id=\"9dc5078\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>E ora generiamo il file di configurazione di borgmatic<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-e69a233 akihiro-widget akihiro-widget-code-highlight\" data-id=\"e69a233\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash \">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>cat <<EOF > data\/conf\/borgmatic\/etc\/config.yaml\nsource_directories:\n    - \/mnt\/source\/vmail\n    - \/mnt\/source\/crypt\n    - \/mnt\/source\/redis\n    - \/mnt\/source\/rspamd\n    - \/mnt\/source\/postfix\nrepositories:\n    - path: ssh:\/\/user@rsync.net:22\/.\/mailcow\n      label: rsync\nexclude_patterns:\n    - '\/mnt\/source\/postfix\/public\/'\n    - '\/mnt\/source\/postfix\/private\/'\n    - '\/mnt\/source\/rspamd\/rspamd.sock'\n\nkeep_hourly: 24\nkeep_daily: 7\nkeep_weekly: 4\nkeep_monthly: 6\n\nmysql_databases:\n    - name: ${DBNAME}\n      username: ${DBUSER}\n      password: ${DBPASS}\n      options: --default-character-set=utf8mb4\nEOF<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-8ce970c akihiro-widget akihiro-widget-text-editor\" data-id=\"8ce970c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Creiamo ora il file data\/conf\/borgmatic\/etc\/crontab.txt <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-58d5181 akihiro-widget akihiro-widget-code-highlight\" data-id=\"58d5181\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash \">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>vi data\/conf\/borgmatic\/etc\/crontab.txt<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-c55e90f akihiro-widget akihiro-widget-text-editor\" data-id=\"c55e90f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Ed inseriamo al suo interno lo scheduling che vogliamo che il backup segua (in questo esempio lo eseguiamo ogni giorno alle 15:30<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-71a5f26 akihiro-widget akihiro-widget-code-highlight\" data-id=\"71a5f26\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash \">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>30 15 * * * PATH=$PATH:\/usr\/local\/bin \/usr\/local\/bin\/borgmatic --stats -v 0 2>&1<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-ffa93b9 akihiro-widget akihiro-widget-heading\" data-id=\"ffa93b9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h3 class=\"akihiro-heading-title akihiro-size-default\">Istanziamento del container docker-borgmatic<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-29e561b akihiro-widget akihiro-widget-text-editor\" data-id=\"29e561b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Siamo ora pronti per istanziare il container di docker-borgmatic. Lanciamo il seguente comando:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-821b866 akihiro-widget akihiro-widget-code-highlight\" data-id=\"821b866\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash \">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>docker compose up -d<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-2cf871c akihiro-widget akihiro-widget-heading\" data-id=\"2cf871c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h3 class=\"akihiro-heading-title akihiro-size-default\">Inizializzazione del repository<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-5730778 akihiro-widget akihiro-widget-text-editor\" data-id=\"5730778\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Possiamo finalmente inizializzare il repository di Borg. Lanciamo quindi il seguente comando:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-29187b5 akihiro-widget akihiro-widget-code-highlight\" data-id=\"29187b5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash \">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>docker compose exec borgmatic-mailcow borgmatic init --encryption repokey-blake2<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-687af83 akihiro-widget akihiro-widget-text-editor\" data-id=\"687af83\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\tIl repository verr\u00e0 inizializzato con la passphrase che abbiamo impostato nella variabile d&#8217;ambiente <code>BORG_PASSPHRASE<\/code>.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-97d270b akihiro-widget akihiro-widget-heading\" data-id=\"97d270b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h3 class=\"akihiro-heading-title akihiro-size-default\">Operazioni aggiuntive<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-963e15d akihiro-widget akihiro-widget-text-editor\" data-id=\"963e15d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Al fine di mantenere il nostro nuovo Borg repository che contiene i dati di backup, possiamo fare riferimento a una serie di utili comandi.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-48af435 akihiro-widget akihiro-widget-heading\" data-id=\"48af435\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h5 class=\"akihiro-heading-title akihiro-size-default\">Esecuzione manuale del task di backup<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-5d9b848 akihiro-widget akihiro-widget-text-editor\" data-id=\"5d9b848\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Nei passaggi precedenti abbiamo impostato una crontab affinch\u00e9 il backup avvenga automaticamente, ma \u00e8 comunque possibile eseguire manualmente il task di backup lanciando il seguente comando:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-7da9c28 akihiro-widget akihiro-widget-code-highlight\" data-id=\"7da9c28\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash \">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>docker compose exec borgmatic-mailcow borgmatic -v 2<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-9bea52b akihiro-widget akihiro-widget-heading\" data-id=\"9bea52b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t<h5 class=\"akihiro-heading-title akihiro-size-default\">Elenco dei backup contenuti nel repository<\/h5>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-fcb74d9 akihiro-widget akihiro-widget-text-editor\" data-id=\"fcb74d9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Nei passaggi precedenti abbiamo impostato una crontab affinch\u00e9 il backup avvenga automaticamente, ma \u00e8 comunque possibile eseguire manualmente il task di backup lanciando il seguente comando:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"akihiro-element akihiro-element-8a2a8d7 akihiro-widget akihiro-widget-code-highlight\" data-id=\"8a2a8d7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"akihiro-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-tomorrow copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-bash \">\n\t\t\t\t<code readonly=\"true\" class=\"language-bash\">\n\t\t\t\t\t<xmp>docker compose exec borgmatic-mailcow borgmatic list<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>In questo scenario vogliamo eseguire il backup di un mail server basato su mailcow-dockerized, un mail server diffuso specialmente per la sua semplicit\u00e0 di installazione e configurazione. Attraverso questa guida vedremo come utilizzare Borgbackup unitamente a Borgmatic per per eseguire il backup dei dati di mailcow direttamente in una shared folder del nostro NAS. Installazione [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[54,56,20,52,19],"class_list":["post-2230","post","type-post","status-publish","format-standard","hentry","category-sistemistica","tag-borg","tag-borgmatic","tag-linux","tag-mailcow","tag-ubuntu"],"_links":{"self":[{"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/posts\/2230","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/comments?post=2230"}],"version-history":[{"count":4,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/posts\/2230\/revisions"}],"predecessor-version":[{"id":2234,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/posts\/2230\/revisions\/2234"}],"wp:attachment":[{"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/media?parent=2230"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/categories?post=2230"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alessandromasciadri.com\/ama-json\/wp\/v2\/tags?post=2230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}