{"id":302,"date":"2020-02-02T00:00:52","date_gmt":"2020-02-01T23:00:52","guid":{"rendered":"https:\/\/codedoneright.eu\/?page_id=302"},"modified":"2020-02-22T08:21:31","modified_gmt":"2020-02-22T07:21:31","slug":"ftp-server","status":"publish","type":"page","link":"https:\/\/codedoneright.eu\/?page_id=302","title":{"rendered":"FTP server"},"content":{"rendered":"\n<div style=\"height:56px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>FTP server is a service that allows exchange of files in a very simple form.   It enables you to drop massive amount of files fairly quickly.  You set up a server that can serve and accept files. We are setting up an FTP server so that YOU can upload and download files, but only on the local network.  <\/p>\n\n\n\n<p>Why local network only? Mainly because FTP is insecure. It sends the password in the clear. Like 100% clear. Any data spoofing software can just yank your password and your server is now completely vulnerable. Worst case scenario would be that all your data is now compromised.  If you do not have any spyware on your PC then you can utilize FTP on local network without any worry. Keep your antivirus on that Windows machine up to date!<\/p>\n\n\n\n<p>If you want to share files with others it is best to put them on your website directly, which is simpler and users have access only to the files you have shared on the website. Seriously Later I will show you how to just drop files in a public folder so anyone can access them if that is what you need. Do not use FTP to share files. We are not in the &#8217;90 anymore. You can set up a server open to everybody, but again \u2013 why bother with a dedicated service if we can utilize HTTP protocol?<\/p>\n\n\n\n<div style=\"height:76px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Setting up an FTP server<\/h2>\n\n\n\n<p>Setting up a basic FTP server if a fairly simple task via a package called  <em>vsftpd <\/em>(or Very Secure FTP Daemon). I will show you how to set up the service so that your administrative account will be able to rummage around the server.<\/p>\n\n\n\n<div style=\"height:56px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h5 class=\"wp-block-heading\">Required<\/h5>\n\n\n\n<ul><li>For LAN access \u2013 nothing<\/li><li>For internet access (not recommenced) \u2013 enable <a href=\"https:\/\/codedoneright.eu\/?page_id=375\">port forwarding<\/a> for FTP access<\/li><li>If you followed <a href=\"https:\/\/codedoneright.eu\/?page_id=187\">basic security<\/a> tutorial \u2013 <a href=\"https:\/\/codedoneright.eu\/?page_id=187\">add rules in UFW<\/a> to allow FTP access<\/li><\/ul>\n\n\n\n<div style=\"height:76px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Creating an FTP folder<\/h2>\n\n\n\n<p>Even if you are the sole user of your FTP it is still a good idea to have one specific folder where you can dump your files, but not required. If on the other hand you are planning on making your files public (do not do that via FTP, see above why), then you just have to have a specific folder for them.<\/p>\n\n\n\n<p>Run the following code to create a directory for your files<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir \/var\/ftp<\/code><\/pre>\n\n\n\n<p>As with custom logs from <a href=\"https:\/\/codedoneright.eu\/?page_id=187\">previous tutorial<\/a> about security, you can specify a folder wherever you want it to be \u2013  <em>\/var\/<\/em> is a good choice. <\/p>\n\n\n\n<p>By default the owner of the folder will be <em>root<\/em>. As we do not use <em>root <\/em>account, files would have to be copied to the folder using <em>sudo <\/em>command, let us claim the folder for the administrative user account we created previously (if you have followed previous tutorials you are using it now) by running the <em>chown <\/em>command<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo chown -R $USER:$USER \/var\/ftp\/<\/code><\/pre>\n\n\n\n<p>Just remember to substitute <em>$USER<\/em> with your username.<\/p>\n\n\n\n<p>We should also adjust permissions so that we can read and write with this user while allowing other users to only download files. That is Linux administration 101 \u2013 look, but do not touch. Run the following<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo chmod -R 755 \/var\/ftp\/<\/code><\/pre>\n\n\n\n<p>This way the administrative user will have full control over the folder, but if we decide to make an account for another user, said user will only be able to download files from this folder. Execute rights are in place so that the directory can be listed.<\/p>\n\n\n\n<div style=\"height:76px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Installing vsftpd<\/h2>\n\n\n\n<p>Installation is simple, run the following command<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install vsftpd<\/code><\/pre>\n\n\n\n<p>Daemon will be configured using the default configuration file located here<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/vsftpd.conf<\/code><\/pre>\n\n\n\n<p>and, by default, <em>vsftpd <\/em>will be started immediately and every time your server boots up the FTP service will start on its own as well.<\/p>\n\n\n\n<p>It is a good idea to make a backup of the config file so that purging and reinstalling will not be necessary in case we screw up the config too much. Run the following command<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo cp \/etc\/vsftpd.conf \/etc\/vsftpd.conf_OLD<\/code><\/pre>\n\n\n\n<p>If you want to remove the modified config and restore the original run the following two commands<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo rm \/etc\/vsftpd.conf\nsudo cp \/etc\/vsftpd.conf_OLD \/etc\/vsftpd.conf<\/code><\/pre>\n\n\n\n<p>Backup of our config will remain as <em>_OLD<\/em> in case you screw up again.<\/p>\n\n\n\n<div style=\"height:76px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">vsftpd configuration<\/h2>\n\n\n\n<p>Everything is done via the configuration file mentioned above. If you want a more in-depth explanation of expressions used in the configuration file, follow <a href=\"https:\/\/security.appspot.com\/vsftpd\/vsftpd_conf.html\">this<\/a> link. For now we will just configure the server so that you can download and upload files, while being able to navigate the whole filesystem.<\/p>\n\n\n\n<p><strong>CAUTION <\/strong>default values of the <em>vsftpd.conf<\/em> change between version, default config is pretty strict though<\/p>\n\n\n\n<p><strong>CAUTION <\/strong>some of the lines I am instructing you to put in the file are already there. Make sure the lines you are adding are not already present in the file. If they are, you can modify them directly or comment them out by putting # sign at the beginning of the line and adding all your custom lines in one place<\/p>\n\n\n\n<p>Open the configuration file by running<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/vsftpd.conf<\/code><\/pre>\n\n\n\n<p>First, we want to tell vsftpd to open connections on ports specified by us in the security part of the tutorial, add the following to the config<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pasv_min_port=$PASSIVE_MIN\npasv_max_port=$PASSIVE_MAX<\/code><\/pre>\n\n\n\n<p>If you do not remember which range you have opened run the following<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw status numbered<\/code><\/pre>\n\n\n\n<p>Or go <a href=\"https:\/\/codedoneright.eu\/?page_id=187\">here<\/a> for a refresher about UFW<\/p>\n\n\n\n<p>Next, we want to make sure that anonymous users cannot log in, but local users can, local meaning users with accounts on your server. We also want to be able to upload files as well. Add the following three lines to the config<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>anonymous_enable=NO\nlocal_enable=YES\nwrite_enable=YES<\/code><\/pre>\n\n\n\n<p>You can specify the folder we created previously to be opened upon logging in by adding<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>local_root=\/var\/ftp\/<\/code><\/pre>\n\n\n\n<p>Now let up reload the config file by running the following command<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo service vsftpd reload<\/code><\/pre>\n\n\n\n<p>That is basically it, you should be able to connect to your server now.<\/p>\n\n\n\n<div style=\"height:76px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Connecting to your FTP server<\/h2>\n\n\n\n<h5 class=\"wp-block-heading\">With browser<\/h5>\n\n\n\n<p>You can test the FTP with your browser. Type the local IP address of your server in the address bar, in the following manner<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ftp:\/\/your.local.ip.address<\/code><\/pre>\n\n\n\n<p>put your credentials (user and password), and it should display the contents of the <em>\/var\/ftp\/<\/em> folder<\/p>\n\n\n\n<p>You will not be able to upload files with your browser.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">With FileZilla<\/h5>\n\n\n\n<p>FileZilla is a great and free FTP client which will help us to upload and download from our server. Grab it from <a href=\"https:\/\/filezilla-project.org\/\">here<\/a>. <\/p>\n\n\n\n<p>Once you open the FileZilla client, take a look at the top of your screen. You should be able to find the following<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"732\" height=\"86\" src=\"https:\/\/codedoneright.eu\/wp-content\/uploads\/ftp.png\" alt=\"FileZilla FTP client connection panel\" class=\"wp-image-330\"\/><figcaption>FileZilla connection panel<\/figcaption><\/figure>\n\n\n\n<p>In the <em>Host <\/em>field put your server IP, fill out the username and password fields as well and click <em>Quickconnect<\/em><\/p>\n\n\n\n<p>FileZilla should take you to your <em>\/var\/ftp\/<\/em> folder. You can download and upload files as you wish. If you cannot upload files check if <em>vsftpd.conf<\/em> file has <em>write_enabled=YES<\/em> directive and that the user you are logged in as has permission to write to that folder (see <em>chmod <\/em>command to rectify that).<\/p>\n\n\n\n<div style=\"height:76px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Securing your FTP server connection with a certificate<\/h2>\n\n\n\n<p>Once you have a <a href=\"https:\/\/codedoneright.eu\/?page_id=583\">certificate<\/a>, you can use it with FTP as well. In order to enable the certificate, go back to <em>vsftpd.conf<\/em> file and change the following three lines<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#rsa_cert_file=\/etc\/ssl\/certs\/ssl-cert-snakeoil.pem\n#rsa_private_key_file=\/etc\/ssl\/private\/ssl-cert-snakeoil.key\nssl_enable=NO<\/code><\/pre>\n\n\n\n<p>To those<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/letsencrypt\/live\/example.com\/fullchain.pem\n\/etc\/letsencrypt\/live\/example.com\/privkey.pem\nssl_enable=YES<\/code><\/pre>\n\n\n\n<p>Substitute <em>example.com<\/em> with the <em>FQDN <\/em>of your website. Certbot will tell you where exactly is your certificate, you can copy file paths to a local file for ease of use. Jut keep them private, even the links. This information certifies that your website is actually what it seems to be.<\/p>\n\n\n\n<p>After enabling the certificate you have lost the ability to connect to your FTP server with a browser, as they are unable to provide a SSL connection over FTP. It is just the way it is.<\/p>\n\n\n\n<p>FileZilla on the other hand, upon your first connection, will display a window informing you about the certificate of your server. It will look something like this<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.digicert.com\/images\/support-images\/filezilla-ssl-cert-installation-3.png\" alt=\"SSL certificate on our FTP connection\"\/><\/figure>\n\n\n\n<p>Image credit <a href=\"http:\/\/digicert.com\">digicert.com<\/a><\/p>\n\n\n\n<p>For convenience you can tick the box at the bottom and FileZilla will remember your certificate upon future secure connections.<\/p>\n\n\n\n<p>Since it is only you who will use the FTP server, you can skip certificate part entirely. Seriously, <strong>do not connect via FTP<\/strong> to your server <strong>from outside<\/strong> your local network. <\/p>\n\n\n\n<div style=\"height:76px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Enabling and disabling FTP server<\/h2>\n\n\n\n<p>If you are not actively using FTP you might as well disable the service. Why constantly run something that is not in use? Enable it only when you need to upload something, and then disable it again.<\/p>\n\n\n\n<p>To disable the service run the following command<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo service vsftpd stop<\/code><\/pre>\n\n\n\n<p>If you want to enable the service run the following<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo service vsftpd start<\/code><\/pre>\n\n\n\n<p>Any FTP connection will be impossible with <em>vsftpd <\/em>service stopped, that should be obvious. Remember that when you are scratching your head and trying to figure out why you cannot connect to upload your photos any more.<\/p>\n\n\n\n<p>To check if FTP is running type the following<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo service vsftpd status<\/code><\/pre>\n\n\n\n<p>If you want to start, stop or check other services just substitute <em>vsftpd <\/em>with the service name.<\/p>\n\n\n\n<div style=\"height:76px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>FTP is not the best way of serving files to users, but it is an invaluable tool for us to upload to our server. If you want to upload dozens of pictures for your WordPress site you can do it in a jiffy rather than use the WordPress Media tab and upload one by one. <\/p>\n\n\n\n<p>Just make sure that you do not open the server to everybody in the whole world.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>FTP server is a service that allows exchange of files in a very simple form. It enables you to drop massive amount of files fairly quickly. You set up a server that can serve and accept files. We are setting&hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"parent":483,"menu_order":5,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>FTP server the easy way with vsftpd &#8212; Code Done Right!<\/title>\n<meta name=\"description\" content=\"Share files with others or make your life easier by setting up an FTP server on your Raspberry Pi. Learn how to setup the basics\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/codedoneright.eu\/?page_id=302\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"FTP server the easy way with vsftpd &#8212; Code Done Right!\" \/>\n<meta name=\"twitter:description\" content=\"Share files with others or make your life easier by setting up an FTP server on your Raspberry Pi. Learn how to setup the basics\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/codedoneright.eu\/wp-content\/uploads\/ftp.png\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/codedoneright.eu\/?page_id=302\",\"url\":\"https:\/\/codedoneright.eu\/?page_id=302\",\"name\":\"FTP server the easy way with vsftpd &#8212; Code Done Right!\",\"isPartOf\":{\"@id\":\"https:\/\/codedoneright.eu\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/codedoneright.eu\/?page_id=302#primaryimage\"},\"image\":{\"@id\":\"https:\/\/codedoneright.eu\/?page_id=302#primaryimage\"},\"thumbnailUrl\":\"https:\/\/codedoneright.eu\/wp-content\/uploads\/ftp.png\",\"datePublished\":\"2020-02-01T23:00:52+00:00\",\"dateModified\":\"2020-02-22T07:21:31+00:00\",\"description\":\"Share files with others or make your life easier by setting up an FTP server on your Raspberry Pi. Learn how to setup the basics\",\"breadcrumb\":{\"@id\":\"https:\/\/codedoneright.eu\/?page_id=302#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/codedoneright.eu\/?page_id=302\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/codedoneright.eu\/?page_id=302#primaryimage\",\"url\":\"https:\/\/codedoneright.eu\/wp-content\/uploads\/ftp.png\",\"contentUrl\":\"https:\/\/codedoneright.eu\/wp-content\/uploads\/ftp.png\",\"width\":732,\"height\":86},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/codedoneright.eu\/?page_id=302#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/codedoneright.eu\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Server features\",\"item\":\"https:\/\/codedoneright.eu\/?page_id=483\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"FTP server\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/codedoneright.eu\/#website\",\"url\":\"https:\/\/codedoneright.eu\/\",\"name\":\"Code Done Right!\",\"description\":\"Raspberry Pi server guides\",\"publisher\":{\"@id\":\"https:\/\/codedoneright.eu\/#\/schema\/person\/50378701e349dbd5d40888bc5b532568\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/codedoneright.eu\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/codedoneright.eu\/#\/schema\/person\/50378701e349dbd5d40888bc5b532568\",\"name\":\"CodeDoneRight\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/codedoneright.eu\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/codedoneright.eu\/wp-content\/uploads\/www_icon.png\",\"contentUrl\":\"https:\/\/codedoneright.eu\/wp-content\/uploads\/www_icon.png\",\"width\":120,\"height\":120,\"caption\":\"CodeDoneRight\"},\"logo\":{\"@id\":\"https:\/\/codedoneright.eu\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/codedoneright.eu\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"FTP server the easy way with vsftpd &#8212; Code Done Right!","description":"Share files with others or make your life easier by setting up an FTP server on your Raspberry Pi. Learn how to setup the basics","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:\/\/codedoneright.eu\/?page_id=302","twitter_card":"summary_large_image","twitter_title":"FTP server the easy way with vsftpd &#8212; Code Done Right!","twitter_description":"Share files with others or make your life easier by setting up an FTP server on your Raspberry Pi. Learn how to setup the basics","twitter_image":"https:\/\/codedoneright.eu\/wp-content\/uploads\/ftp.png","twitter_misc":{"Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/codedoneright.eu\/?page_id=302","url":"https:\/\/codedoneright.eu\/?page_id=302","name":"FTP server the easy way with vsftpd &#8212; Code Done Right!","isPartOf":{"@id":"https:\/\/codedoneright.eu\/#website"},"primaryImageOfPage":{"@id":"https:\/\/codedoneright.eu\/?page_id=302#primaryimage"},"image":{"@id":"https:\/\/codedoneright.eu\/?page_id=302#primaryimage"},"thumbnailUrl":"https:\/\/codedoneright.eu\/wp-content\/uploads\/ftp.png","datePublished":"2020-02-01T23:00:52+00:00","dateModified":"2020-02-22T07:21:31+00:00","description":"Share files with others or make your life easier by setting up an FTP server on your Raspberry Pi. Learn how to setup the basics","breadcrumb":{"@id":"https:\/\/codedoneright.eu\/?page_id=302#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/codedoneright.eu\/?page_id=302"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/codedoneright.eu\/?page_id=302#primaryimage","url":"https:\/\/codedoneright.eu\/wp-content\/uploads\/ftp.png","contentUrl":"https:\/\/codedoneright.eu\/wp-content\/uploads\/ftp.png","width":732,"height":86},{"@type":"BreadcrumbList","@id":"https:\/\/codedoneright.eu\/?page_id=302#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/codedoneright.eu\/"},{"@type":"ListItem","position":2,"name":"Server features","item":"https:\/\/codedoneright.eu\/?page_id=483"},{"@type":"ListItem","position":3,"name":"FTP server"}]},{"@type":"WebSite","@id":"https:\/\/codedoneright.eu\/#website","url":"https:\/\/codedoneright.eu\/","name":"Code Done Right!","description":"Raspberry Pi server guides","publisher":{"@id":"https:\/\/codedoneright.eu\/#\/schema\/person\/50378701e349dbd5d40888bc5b532568"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/codedoneright.eu\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/codedoneright.eu\/#\/schema\/person\/50378701e349dbd5d40888bc5b532568","name":"CodeDoneRight","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/codedoneright.eu\/#\/schema\/person\/image\/","url":"https:\/\/codedoneright.eu\/wp-content\/uploads\/www_icon.png","contentUrl":"https:\/\/codedoneright.eu\/wp-content\/uploads\/www_icon.png","width":120,"height":120,"caption":"CodeDoneRight"},"logo":{"@id":"https:\/\/codedoneright.eu\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/codedoneright.eu"]}]}},"_links":{"self":[{"href":"https:\/\/codedoneright.eu\/index.php?rest_route=\/wp\/v2\/pages\/302"}],"collection":[{"href":"https:\/\/codedoneright.eu\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/codedoneright.eu\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/codedoneright.eu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codedoneright.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=302"}],"version-history":[{"count":44,"href":"https:\/\/codedoneright.eu\/index.php?rest_route=\/wp\/v2\/pages\/302\/revisions"}],"predecessor-version":[{"id":655,"href":"https:\/\/codedoneright.eu\/index.php?rest_route=\/wp\/v2\/pages\/302\/revisions\/655"}],"up":[{"embeddable":true,"href":"https:\/\/codedoneright.eu\/index.php?rest_route=\/wp\/v2\/pages\/483"}],"wp:attachment":[{"href":"https:\/\/codedoneright.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}