{"id":6594,"date":"2025-04-17T09:46:23","date_gmt":"2025-04-17T09:46:23","guid":{"rendered":"https:\/\/resizemyimg.com\/blog\/?p=6594"},"modified":"2025-04-17T09:49:08","modified_gmt":"2025-04-17T09:49:08","slug":"how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5","status":"publish","type":"post","link":"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/","title":{"rendered":"How to Script Automatic Backups of Self-Hosted Invoice Ninja v5"},"content":{"rendered":"<p>Self-hosting Invoice Ninja v5 offers businesses full control over their data and operations, but with that control comes significant responsibility. One of the most critical tasks for any self-hosted environment is implementing a reliable, automated backup system. Losing client information, invoices, and payments due to accidental deletions, hardware failures, or cyber attacks can have severe repercussions.<\/p>\n<p>This guide will walk you through how to script automatic backups for your self-hosted Invoice Ninja v5 installation, ensuring data integrity and peace of mind.<\/p>\n<h2>Why Automatic Backups Are Essential<\/h2>\n<p>Invoice Ninja stores sensitive client data and financial records, making it a prime target for malware or database corruption. Manual backups are prone to human error and inconsistency. Automating this process removes reliance on memory and simplifies disaster recovery.<\/p>\n<img loading=\"lazy\" decoding=\"async\" width=\"1080\" height=\"1620\" src=\"https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/04\/empty-hallway-with-storage-units-server-backup-database-storage-data-protection.jpg\" class=\"attachment-full size-full\" alt=\"\" srcset=\"https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/04\/empty-hallway-with-storage-units-server-backup-database-storage-data-protection.jpg 1080w, https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/04\/empty-hallway-with-storage-units-server-backup-database-storage-data-protection-200x300.jpg 200w, https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/04\/empty-hallway-with-storage-units-server-backup-database-storage-data-protection-683x1024.jpg 683w, https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/04\/empty-hallway-with-storage-units-server-backup-database-storage-data-protection-575x863.jpg 575w, https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/04\/empty-hallway-with-storage-units-server-backup-database-storage-data-protection-768x1152.jpg 768w, https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/04\/empty-hallway-with-storage-units-server-backup-database-storage-data-protection-1024x1536.jpg 1024w\" sizes=\"(max-width: 1080px) 100vw, 1080px\" \/>\n<p>A comprehensive backup strategy should include:<\/p>\n<ul>\n<li><strong>Database backups<\/strong> \u2013 Invoice Ninja uses a MySQL or PostgreSQL database to store transactional data.<\/li>\n<li><strong>Application files<\/strong> \u2013 These include uploaded receipts, logos, and custom settings.<\/li>\n<li><strong>Encryption keys and environment files<\/strong> \u2013 Essential for decrypting sensitive data stored in the database.<\/li>\n<\/ul>\n<h2>Step-by-Step Guide for Automating Backups<\/h2>\n<p>Here\u2019s a detailed breakdown of how you can script backups on a Linux server hosting Invoice Ninja v5.<\/p>\n<h3>1. Identify Key Components<\/h3>\n<ul>\n<li><em>App directory<\/em>: Usually located at <code>\/var\/www\/invoiceninja<\/code> or similar.<\/li>\n<li><em>Database credentials<\/em>: Stored in the <code>.env<\/code> file in the root of the Invoice Ninja directory.<\/li>\n<\/ul>\n<h3>2. Create the Backup Script<\/h3>\n<p>You can use a Bash script to handle copying files and dumping the database contents:<\/p>\n<pre><code>#!\/bin\/bash\nTIMESTAMP=$(date +\"%F\")\nBACKUP_DIR=\"\/opt\/backups\/invoiceninja\/$TIMESTAMP\"\nAPP_DIR=\"\/var\/www\/invoiceninja\"\nDB_NAME=\"ninja\"\nDB_USER=\"ninja_user\"\nDB_PASS=\"your_db_password\"\n\nmkdir -p $BACKUP_DIR\n\n# Backup Invoice Ninja files\ncp -r $APP_DIR $BACKUP_DIR\/app\n\n# Dump the database\nmysqldump -u $DB_USER -p$DB_PASS $DB_NAME &gt; $BACKUP_DIR\/ninja.sql\n\n# Optional: compress the backup folder\ntar -czf \/opt\/backups\/invoiceninja_$TIMESTAMP.tar.gz -C \/opt\/backups\/invoiceninja $TIMESTAMP\n\n# Cleanup old backups (older than 7 days)\nfind \/opt\/backups\/ -name \"*.tar.gz\" -type f -mtime +7 -delete\n<\/code><\/pre>\n<p><strong>Note:<\/strong> Replace credentials and file paths with values that match your setup. Ensure the script is executable and protect it with limited permissions to avoid unauthorized access.<\/p>\n<h3>3. Configure Cron for Automation<\/h3>\n<p>To automate the backup process, schedule the script using <code>cron<\/code>:<\/p>\n<pre><code>crontab -e<\/code><\/pre>\n<p>Add the following line to run the backup daily at 2 AM:<\/p>\n<pre><code>0 2 * * * \/opt\/scripts\/backup_invoiceninja.sh &gt;&gt; \/var\/log\/invoiceninja_backup.log 2&gt;&amp;1<\/code><\/pre>\n<p>This ensures daily, unattended backups that are logged for audit and troubleshooting.<\/p>\n<h2>Extra Considerations<\/h2>\n<h3><strong>1. Encrypt Your Backups<\/strong><\/h3>\n<p>For added security, especially when storing backups off-site or in cloud storage, use tools like <code>gpg<\/code> or <code>openssl<\/code> to encrypt the backup files.<\/p>\n<h3><strong>2. Remote and Offsite Storage<\/strong><\/h3>\n<p>Storing backups on the same server as your Invoice Ninja app invites disaster. Push compressed backups to a remote server using <code>rsync<\/code>, <code>scp<\/code>, or utilize cloud services like AWS S3, Dropbox, or Google Drive for redundancy.<\/p>\n<img loading=\"lazy\" decoding=\"async\" width=\"1080\" height=\"810\" src=\"https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/09\/a-close-up-of-a-server-room-cloud-backup-storage-data-replication-secure-server-racks.jpg\" class=\"attachment-full size-full\" alt=\"\" srcset=\"https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/09\/a-close-up-of-a-server-room-cloud-backup-storage-data-replication-secure-server-racks.jpg 1080w, https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/09\/a-close-up-of-a-server-room-cloud-backup-storage-data-replication-secure-server-racks-300x225.jpg 300w, https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/09\/a-close-up-of-a-server-room-cloud-backup-storage-data-replication-secure-server-racks-1024x768.jpg 1024w, https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/09\/a-close-up-of-a-server-room-cloud-backup-storage-data-replication-secure-server-racks-575x431.jpg 575w, https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/09\/a-close-up-of-a-server-room-cloud-backup-storage-data-replication-secure-server-racks-768x576.jpg 768w\" sizes=\"(max-width: 1080px) 100vw, 1080px\" \/>\n<h3><strong>3. Restoration Testing<\/strong><\/h3>\n<p>Regularly test your backup recovery process. A backup is only as good as your ability to restore it when needed. Schedule periodic dry-run restorations on a staging environment to validate your scripts and data.<\/p>\n<h2>Conclusion<\/h2>\n<p>Implementing scripted and automated backups for your self-hosted Invoice Ninja v5 is not just a best practice\u2014it\u2019s a business-critical requirement. Whether you operate a small agency or manage financial services, ensuring the safety of transactional data and client records shields your company from data loss and liability.<\/p>\n<p>By investing time into setting up a robust backup system using scripts and automation, you lay the foundation for consistent, secure, and reliable operations. Regular reviews, secure offsite storage, and restoration drills should become part of your standard operating procedures.<\/p>\n<p>With the right backup strategy, you&#8217;re not just protecting files\u2014you&#8217;re maintaining trust and operational continuity.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Self-hosting Invoice Ninja v5 offers businesses full control over their data and operations, but with that control comes significant responsibility. One of the most critical tasks for any self-hosted environment is implementing a reliable, automated backup system. Losing client information, invoices, and payments due to accidental deletions, hardware failures, or cyber attacks can have severe repercussions. <\/p>\n<p class=\"read-more-container\"><a href=\"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/\" class=\"read-more button\">Read more<\/a><\/p>\n","protected":false},"author":91,"featured_media":6595,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6594","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-50","no-featured-image-padding"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Script Automatic Backups of Self-Hosted Invoice Ninja v5<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Script Automatic Backups of Self-Hosted Invoice Ninja v5\" \/>\n<meta property=\"og:description\" content=\"Self-hosting Invoice Ninja v5 offers businesses full control over their data and operations, but with that control comes significant responsibility. One of the most critical tasks for any self-hosted environment is implementing a reliable, automated backup system. Losing client information, invoices, and payments due to accidental deletions, hardware failures, or cyber attacks can have severe repercussions. Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/\" \/>\n<meta property=\"og:site_name\" content=\"Resize my Image Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webfactoryltd\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-17T09:46:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-17T09:49:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/04\/graphs-of-performance-analytics-on-a-laptop-screen-server-backup-database-storage-data-protection.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1080\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jame Miller\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webfactoryltd\" \/>\n<meta name=\"twitter:site\" content=\"@webfactoryltd\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jame Miller\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/\"},\"author\":{\"name\":\"Jame Miller\",\"@id\":\"https:\/\/resizemyimg.com\/blog\/#\/schema\/person\/4bece8cd1b5bcd61a4e5dab002eb7dca\"},\"headline\":\"How to Script Automatic Backups of Self-Hosted Invoice Ninja v5\",\"datePublished\":\"2025-04-17T09:46:23+00:00\",\"dateModified\":\"2025-04-17T09:49:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/\"},\"wordCount\":532,\"publisher\":{\"@id\":\"https:\/\/resizemyimg.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/04\/graphs-of-performance-analytics-on-a-laptop-screen-server-backup-database-storage-data-protection.jpg\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/\",\"url\":\"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/\",\"name\":\"How to Script Automatic Backups of Self-Hosted Invoice Ninja v5\",\"isPartOf\":{\"@id\":\"https:\/\/resizemyimg.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/04\/graphs-of-performance-analytics-on-a-laptop-screen-server-backup-database-storage-data-protection.jpg\",\"datePublished\":\"2025-04-17T09:46:23+00:00\",\"dateModified\":\"2025-04-17T09:49:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/#primaryimage\",\"url\":\"https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/04\/graphs-of-performance-analytics-on-a-laptop-screen-server-backup-database-storage-data-protection.jpg\",\"contentUrl\":\"https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/04\/graphs-of-performance-analytics-on-a-laptop-screen-server-backup-database-storage-data-protection.jpg\",\"width\":1080,\"height\":720},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/resizemyimg.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Script Automatic Backups of Self-Hosted Invoice Ninja v5\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/resizemyimg.com\/blog\/#website\",\"url\":\"https:\/\/resizemyimg.com\/blog\/\",\"name\":\"Resize my Image Blog\",\"description\":\"News, insights, tips&amp;tricks on image related business &amp; SaaS\",\"publisher\":{\"@id\":\"https:\/\/resizemyimg.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/resizemyimg.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/resizemyimg.com\/blog\/#organization\",\"name\":\"WebFactory Ltd\",\"url\":\"https:\/\/resizemyimg.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/resizemyimg.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2019\/12\/webfactory_icon.png\",\"contentUrl\":\"https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2019\/12\/webfactory_icon.png\",\"width\":300,\"height\":300,\"caption\":\"WebFactory Ltd\"},\"image\":{\"@id\":\"https:\/\/resizemyimg.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webfactoryltd\/\",\"https:\/\/x.com\/webfactoryltd\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/resizemyimg.com\/blog\/#\/schema\/person\/4bece8cd1b5bcd61a4e5dab002eb7dca\",\"name\":\"Jame Miller\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/resizemyimg.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f60a3114f608fcfdd6b15a13f37f24b2?s=96&d=monsterid&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f60a3114f608fcfdd6b15a13f37f24b2?s=96&d=monsterid&r=g\",\"caption\":\"Jame Miller\"},\"description\":\"I'm Jame Miller, a cybersecurity analyst and blogger. Sharing knowledge on online security, data protection, and privacy issues is what I do best.\",\"url\":\"https:\/\/resizemyimg.com\/blog\/author\/jamesm\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Script Automatic Backups of Self-Hosted Invoice Ninja v5","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/","og_locale":"en_US","og_type":"article","og_title":"How to Script Automatic Backups of Self-Hosted Invoice Ninja v5","og_description":"Self-hosting Invoice Ninja v5 offers businesses full control over their data and operations, but with that control comes significant responsibility. One of the most critical tasks for any self-hosted environment is implementing a reliable, automated backup system. Losing client information, invoices, and payments due to accidental deletions, hardware failures, or cyber attacks can have severe repercussions. Read more","og_url":"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/","og_site_name":"Resize my Image Blog","article_publisher":"https:\/\/www.facebook.com\/webfactoryltd\/","article_published_time":"2025-04-17T09:46:23+00:00","article_modified_time":"2025-04-17T09:49:08+00:00","og_image":[{"width":1080,"height":720,"url":"https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/04\/graphs-of-performance-analytics-on-a-laptop-screen-server-backup-database-storage-data-protection.jpg","type":"image\/jpeg"}],"author":"Jame Miller","twitter_card":"summary_large_image","twitter_creator":"@webfactoryltd","twitter_site":"@webfactoryltd","twitter_misc":{"Written by":"Jame Miller","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/#article","isPartOf":{"@id":"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/"},"author":{"name":"Jame Miller","@id":"https:\/\/resizemyimg.com\/blog\/#\/schema\/person\/4bece8cd1b5bcd61a4e5dab002eb7dca"},"headline":"How to Script Automatic Backups of Self-Hosted Invoice Ninja v5","datePublished":"2025-04-17T09:46:23+00:00","dateModified":"2025-04-17T09:49:08+00:00","mainEntityOfPage":{"@id":"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/"},"wordCount":532,"publisher":{"@id":"https:\/\/resizemyimg.com\/blog\/#organization"},"image":{"@id":"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/#primaryimage"},"thumbnailUrl":"https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/04\/graphs-of-performance-analytics-on-a-laptop-screen-server-backup-database-storage-data-protection.jpg","articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/","url":"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/","name":"How to Script Automatic Backups of Self-Hosted Invoice Ninja v5","isPartOf":{"@id":"https:\/\/resizemyimg.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/#primaryimage"},"image":{"@id":"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/#primaryimage"},"thumbnailUrl":"https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/04\/graphs-of-performance-analytics-on-a-laptop-screen-server-backup-database-storage-data-protection.jpg","datePublished":"2025-04-17T09:46:23+00:00","dateModified":"2025-04-17T09:49:08+00:00","breadcrumb":{"@id":"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/#primaryimage","url":"https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/04\/graphs-of-performance-analytics-on-a-laptop-screen-server-backup-database-storage-data-protection.jpg","contentUrl":"https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2025\/04\/graphs-of-performance-analytics-on-a-laptop-screen-server-backup-database-storage-data-protection.jpg","width":1080,"height":720},{"@type":"BreadcrumbList","@id":"https:\/\/resizemyimg.com\/blog\/how-to-script-automatic-backups-of-self-hosted-invoice-ninja-v5\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/resizemyimg.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Script Automatic Backups of Self-Hosted Invoice Ninja v5"}]},{"@type":"WebSite","@id":"https:\/\/resizemyimg.com\/blog\/#website","url":"https:\/\/resizemyimg.com\/blog\/","name":"Resize my Image Blog","description":"News, insights, tips&amp;tricks on image related business &amp; SaaS","publisher":{"@id":"https:\/\/resizemyimg.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/resizemyimg.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/resizemyimg.com\/blog\/#organization","name":"WebFactory Ltd","url":"https:\/\/resizemyimg.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/resizemyimg.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2019\/12\/webfactory_icon.png","contentUrl":"https:\/\/resizemyimg.com\/blog\/wp-content\/uploads\/2019\/12\/webfactory_icon.png","width":300,"height":300,"caption":"WebFactory Ltd"},"image":{"@id":"https:\/\/resizemyimg.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webfactoryltd\/","https:\/\/x.com\/webfactoryltd"]},{"@type":"Person","@id":"https:\/\/resizemyimg.com\/blog\/#\/schema\/person\/4bece8cd1b5bcd61a4e5dab002eb7dca","name":"Jame Miller","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/resizemyimg.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f60a3114f608fcfdd6b15a13f37f24b2?s=96&d=monsterid&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f60a3114f608fcfdd6b15a13f37f24b2?s=96&d=monsterid&r=g","caption":"Jame Miller"},"description":"I'm Jame Miller, a cybersecurity analyst and blogger. Sharing knowledge on online security, data protection, and privacy issues is what I do best.","url":"https:\/\/resizemyimg.com\/blog\/author\/jamesm\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/resizemyimg.com\/blog\/wp-json\/wp\/v2\/posts\/6594"}],"collection":[{"href":"https:\/\/resizemyimg.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/resizemyimg.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/resizemyimg.com\/blog\/wp-json\/wp\/v2\/users\/91"}],"replies":[{"embeddable":true,"href":"https:\/\/resizemyimg.com\/blog\/wp-json\/wp\/v2\/comments?post=6594"}],"version-history":[{"count":1,"href":"https:\/\/resizemyimg.com\/blog\/wp-json\/wp\/v2\/posts\/6594\/revisions"}],"predecessor-version":[{"id":6598,"href":"https:\/\/resizemyimg.com\/blog\/wp-json\/wp\/v2\/posts\/6594\/revisions\/6598"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/resizemyimg.com\/blog\/wp-json\/wp\/v2\/media\/6595"}],"wp:attachment":[{"href":"https:\/\/resizemyimg.com\/blog\/wp-json\/wp\/v2\/media?parent=6594"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/resizemyimg.com\/blog\/wp-json\/wp\/v2\/categories?post=6594"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/resizemyimg.com\/blog\/wp-json\/wp\/v2\/tags?post=6594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}