diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-addhost_1.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-addhost_1.webp deleted file mode 100644 index 4c05b72635..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-addhost_1.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-addhost_2.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-addhost_2.webp deleted file mode 100644 index f88719011a..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-addhost_2.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-addhost_3.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-addhost_3.webp deleted file mode 100644 index fe1fa6456d..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-addhost_3.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-addhost_4.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-addhost_4.webp deleted file mode 100644 index bcc7085acd..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-addhost_4.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-addhost_5.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-addhost_5.webp deleted file mode 100644 index 2c5ac20b7d..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-addhost_5.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-addhost_6.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-addhost_6.webp deleted file mode 100644 index d9f32475e5..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-addhost_6.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-addhost_7.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-addhost_7.webp deleted file mode 100644 index db64f560f2..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-addhost_7.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-autorun.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-autorun.webp deleted file mode 100644 index cd70a98708..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-autorun.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-boot_manager.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-boot_manager.webp deleted file mode 100644 index 2bbdfa6211..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-boot_manager.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-configure_iscsi.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-configure_iscsi.webp deleted file mode 100644 index d3f41e0009..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-configure_iscsi.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-datastore_browser.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-datastore_browser.webp deleted file mode 100644 index 81757a7bc1..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-datastore_browser.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-datastore_device.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-datastore_device.webp deleted file mode 100644 index 265c0e3134..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-datastore_device.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-datastore_list.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-datastore_list.webp deleted file mode 100644 index 64342bf7d8..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-datastore_list.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-enable_ssh.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-enable_ssh.webp deleted file mode 100644 index 21558f0aa3..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-enable_ssh.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-esxi-rpn.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-esxi-rpn.webp deleted file mode 100644 index 351b482742..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-esxi-rpn.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-esxi_installer.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-esxi_installer.webp deleted file mode 100644 index d826076ef8..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-esxi_installer.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-idrac.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-idrac.webp deleted file mode 100644 index f8b089011b..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-idrac.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-idrac_console.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-idrac_console.webp deleted file mode 100644 index 0d8a5ef5c5..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-idrac_console.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-kvm-over-ip.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-kvm-over-ip.webp deleted file mode 100644 index fbba9f1a81..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-kvm-over-ip.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-map_device.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-map_device.webp deleted file mode 100644 index 178ede822e..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-map_device.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-new_cluster.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-new_cluster.webp deleted file mode 100644 index a017acafad..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-new_cluster.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-new_cluster_1.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-new_cluster_1.webp deleted file mode 100644 index bd9a9df247..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-new_cluster_1.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-new_cluster_2.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-new_cluster_2.webp deleted file mode 100644 index 13d4995802..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-new_cluster_2.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-new_cluster_3.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-new_cluster_3.webp deleted file mode 100644 index 5b78902d3b..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-new_cluster_3.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-new_cluster_4.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-new_cluster_4.webp deleted file mode 100644 index 7c0a287962..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-new_cluster_4.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-new_cluster_5.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-new_cluster_5.webp deleted file mode 100644 index 21d434a112..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-new_cluster_5.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-one_shoot_boot.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-one_shoot_boot.webp deleted file mode 100644 index b04778ff24..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-one_shoot_boot.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-recent_tasks.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-recent_tasks.webp deleted file mode 100644 index b40afe8f72..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-recent_tasks.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-rpn_switch.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-rpn_switch.webp deleted file mode 100644 index 9aa0e91ba1..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-rpn_switch.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-rpn_switch_connected.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-rpn_switch_connected.webp deleted file mode 100644 index a1ca2565a9..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-rpn_switch_connected.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_cei.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_cei.webp deleted file mode 100644 index 6068b58bf1..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_cei.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_database.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_database.webp deleted file mode 100644 index c0a0b2ea47..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_database.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_directory.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_directory.webp deleted file mode 100644 index 33e243874c..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_directory.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_embedded.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_embedded.webp deleted file mode 100644 index 576baf9582..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_embedded.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_installed.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_installed.webp deleted file mode 100644 index 22a01a407b..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_installed.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_name.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_name.webp deleted file mode 100644 index d39d8ace69..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_name.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_ports.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_ports.webp deleted file mode 100644 index dbc79e14f1..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_ports.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_review.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_review.webp deleted file mode 100644 index bb78eb74c0..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_review.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_service_account.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_service_account.webp deleted file mode 100644 index 5f87d2c7cb..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_service_account.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_signon.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_signon.webp deleted file mode 100644 index f0a147fae7..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_signon.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_vm.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_vm.webp deleted file mode 100644 index e9614a1c80..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vcenter_vm.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-virtual_drive.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-virtual_drive.webp deleted file mode 100644 index 849eeccf3c..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-virtual_drive.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_customize.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_customize.webp deleted file mode 100644 index 0759e082f3..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_customize.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_guest_os.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_guest_os.webp deleted file mode 100644 index 9e0cd3f094..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_guest_os.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_list.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_list.webp deleted file mode 100644 index ff7eb5ff7c..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_list.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_migrate.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_migrate.webp deleted file mode 100644 index a6379b49e8..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_migrate.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_migrate_1.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_migrate_1.webp deleted file mode 100644 index 03c57dc12a..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_migrate_1.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_migrate_2.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_migrate_2.webp deleted file mode 100644 index bf91b7f2de..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_migrate_2.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_migrate_3.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_migrate_3.webp deleted file mode 100644 index fbc1b26fc2..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_migrate_3.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_migrate_4.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_migrate_4.webp deleted file mode 100644 index e67bd62887..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_migrate_4.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_migrate_5.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_migrate_5.webp deleted file mode 100644 index 979fc772c8..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vm_migrate_5.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vmkernel_nic.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vmkernel_nic.webp deleted file mode 100644 index 5d0e5cd91d..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vmkernel_nic.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vsphere_client.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vsphere_client.webp deleted file mode 100644 index 0407114e3e..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-vsphere_client.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-win_adapter_options.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-win_adapter_options.webp deleted file mode 100644 index 0e8784d393..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-win_adapter_options.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-win_ip_settings.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-win_ip_settings.webp deleted file mode 100644 index cc10122b0e..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-win_ip_settings.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-win_network_settings.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-win_network_settings.webp deleted file mode 100644 index 1bf8720530..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-win_network_settings.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-win_network_setttings.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway-win_network_setttings.webp deleted file mode 100644 index 749c31ea3c..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway-win_network_setttings.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/assets/scaleway_vmware.webp b/tutorials/create-esxi-cluster-dedibox/assets/scaleway_vmware.webp deleted file mode 100644 index 07e291b6f8..0000000000 Binary files a/tutorials/create-esxi-cluster-dedibox/assets/scaleway_vmware.webp and /dev/null differ diff --git a/tutorials/create-esxi-cluster-dedibox/index.mdx b/tutorials/create-esxi-cluster-dedibox/index.mdx deleted file mode 100644 index 1cea57e4ab..0000000000 --- a/tutorials/create-esxi-cluster-dedibox/index.mdx +++ /dev/null @@ -1,320 +0,0 @@ ---- -meta: - title: Creating a VMware vSphere cluster on Dedibox servers with RPN-SAN - description: How to create a VMware vSphere cluster on Dedibox servers with RPN-SAN -content: - h1: Creating a VMware vSphere cluster on Dedibox servers with RPN-SAN - paragraph: How to create a VMware vSphere cluster on Dedibox servers with RPN-SAN -tags: vSpehre ESXi vmware dedibox RPN-SAN -hero: assets/scaleway_vmware.webp -categories: - - dedibox -dates: - validation: 2025-01-22 - posted: 2020-12-28 ---- - - - Due to VMware's acquisition by Broadcom, the free edition of VMware vSphere Hypervisor is no longer available on the VMware website. For more details, check out [the EOL of free vSphere Hypervisor](https://knowledge.broadcom.com/external/article?legacyId=2107518). Note that the following content is provided as-is and does not guarantee functionality. -We suggest considering alternative hypervisors such as Proxmox. You can learn how to [deploy virtual machines with Proxmox on Scaleway Dedibox](/tutorials/configure-failover-proxmox/). - - -VMware vSphere is a complete virtualization solution built around two main components: - -- The hypervisor VMware vSphere ESXi, which provides virtual machines for x64-based hardware and their operating systems. Unlike other virtualization solutions, ESXi is not a software application running on a traditional operating system, instead, it provides vital OS components, such as a kernel. - -- VMware vCenter, which manages clusters and provides the graphical management of the entire structure of data center, cluster, network, datastore, CPUs, and virtual machines in the form of a dynamic and seamless operating environment. - -In this tutorial, you learn how to deploy a complete VMware vSphere Cluster running on two Dedibox [CORE-4-L SSD](https://www.scaleway.com/en/dedibox/core/core-4-l-ssd/) servers with additional storage by using the [RPN-SAN](https://www.scaleway.com/en/dedibox/storage/) feature. - -This tutorial consists of the following steps: - - - -- A Dedibox account logged into the [console](https://console.online.net/) -- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization -- 2 Dedibox [CORE-4-L SSD](https://www.scaleway.com/en/dedibox/core/core-4-l-ssd/) servers -- An [RPN-SAN](https://www.scaleway.com/en/dedibox/storage/) -- At least one [failover IP](https://www.scaleway.com/en/dedibox/ip-address/) -- An FQDN pointing to the server's failover IP - -## Installing VMware ESXi via KVM-over-IP - -In this tutorial, we use VMware vSphere Hypervisor (ESXi) 6.7U3b. This version is currently not available for automatic installation from the Dedibox console, therefore we use the manual installation via the KVM-over-IP device of our Dedibox servers. - - - [Download](https://my.vmware.com/en/web/vmware/downloads/info/slug/datacenter_cloud_infrastructure/vmware_vsphere/6_7) the vSphere ESXi ISO image on your local computer before continuing with this tutorial. - - -1. Access the server page of your Dedibox in the console and click **Install** to launch the installation via the KVM-over-IP device. -2. Click KVM over IP: - -3. A disclaimer window pops up. Make sure you have read and agreed to the terms displayed and click **I accept**. You will be redirected to your server's status page. -4. Click **Choose file** (1) and select the downloaded VMware ESXi ISO file. Then click **Map device** (2) to connect the virtual CD-ROM drive to the server. Once done close the pop-up. - -5. Reboot your machine from the Dedibox console. -6. Press **F11** on your keyboard during the boot process to enter the boot manager: - -7. Click **One-shot BIOS Menu** in the boot manager: - -8. Select the **Virtual Optical Drive** to boot the machine from the connected ISO file: - - The server is booting from the ISO file. Depending on your internet connection, this may take a while. Once ready, the ESXi installer displays. -9. Follow the prompts to complete the installation of VMware ESXi on the machine: - - -Repeat the steps above on the second Dedibox server, once the installation of ESXi is completed on the first server. - -## Configuring the RPN interface - -Configure the RPN interface on both servers once the installation of both machines is completed. To do so, the first step is to activate the SSH service from the ESXi web interface. - -1. Connect to the first Dedibox server by typing the server's IP address in a web browser. ESXi login displays. Enter your credentials to log in. -2. Click **Actions** > **Services** > **Enable Secure Shell (SSH)**: - -3. SSH is enabled once the following warning displays: - _SSH is enabled on this host. You should disable SSH unless it is necessary for administrative purposes._ -5. Create a new **VMkernel NIC** by clicking on **Networking** > **VMkernel NICs** > **Add VMkernel NIC** and configure it as follows. Make sure to tick the **vMotion** checkbox as it is required in a later part of this tutorial: - - - - Make sure to configure Jumboframes (MTU 9000) both for the switch and the NIC. - -6. Connect to your server using SSH. The SSH credentials are identical to those for the web interface. -7. Locate the MAC address of the network card connected to the RPN (MTU 9000): - ``` - esxcfg-nics -l - ``` -8. Export the current VMkernel NIC configuration: - ``` - configstorecli config current get -c esx -g network -k vmknics > vmknics.json - ``` -9. Open the VMkernel NIC configuration file in a text editor: - ``` - vi vmknics.json - ``` -10. Replace the MAC address of your RPN VMkernel NIC with your [Virtual MAC](/dedibox-ip-failover/how-to/create-virtual-mac/). - -11. Import the new configuration: - ``` - configstorecli config current set -c esx -g network -k vmknics -i vmknics.json --overwrite - ``` -12. Reboot the machine to activate the new configuration. -13. Enter the ESXi web interface, click **Networking** > **Virtual Switches** > **RPN Switch** and check the IP address of the VMkernel NIC. It now has the RPN IP auto-assigned to the interface via DHCP: - -14. Reactivate the SSH service and connect to the machine via SSH. -15. Run the following command to add the RPN route: - ``` - esxcfg-route -a 10.88.0.0/13 [YOUR_RPN_GATEWAY_IP] - ``` - - - You can find the RPN gateway either on your server's overview page in the Dedibox console or by following [this guide](/dedibox-rpn/how-to/find-rpn-gateway/). - -16. Ping the RPN-SAN to check if the RPN connection is working properly: - ``` - ping san-1.rpn.online.net - ``` -17. Open the file `/etc/rc.local.d/local.sh` in a text editor and add the following lines to it to configure the RPN route automatically during boot: - ``` - esxcfg-route -a 10.88.0.0/13 [YOUR_RPN_GATEWAY_IP] - exit 0 - ``` - -Repeat the steps above on the second Dedibox server. - -### Connecting the RPN-SAN - - - The following steps require an [RPN-SAN](https://www.scaleway.com/en/dedibox/storage/). - - - - To communicate with the RPN-SAN, you must allow your servers to access it. - - -1. Connect to the Dedibox console and click **Storage** > **RPN-SAN**. -2. Select the SAN you want to configure and click **Manage**. -3. Add the server(s) you want to permit to access your SAN services in the list. Optionally, you can add RPN subnet IPs. Note that if you use RPNv2, an [additional configuration](/dedibox-rpn/how-to/configure-rpnv1-gateway/) is required to access the RPN-SAN. - - While it is technically possible, it is not recommended to allow more than one server at a time to communicate with the SAN. The iSCSI protocol does not handle concurrency, you may lose all your data if you allow more than one server to access this storage. - -4. Click **Save** to validate the new configuration of the SAN. -5. Connect to the ESXi web interface of your server. -6. Click **Storage** > **Adapters** > **Software iSCSI**. A configuration pop-up displays. -7. **Enable** the service. Click **Add port binding** and add the RPN Network. Then click **Add dynamic target** and enter the address of your SAN. Then, click **Save configuration**: - - - ESXi rescans for devices, and you can see the new iSCSI disk in the **Devices** tab of the storage section. - -## Adding a new datastore - -To use the RPN-SAN with ESXi, we need to create a new datastore. To do so, follow the steps below: - -1. Connect to the ESXi web interface, then click **Storage** > **Datastores** > **New Datastore**. -2. Select **Create new VMFS datastore** and click **Next**. -3. Enter a name for the new datastore and select the RPN-SAN iSCSI disk from the list of available devices. Then click **Next**: - -4. Configure the partitioning of the datastore. Then click next. A summary displays. -5. Validate all given information and click **Finish** to format the device. - - Be careful, formatting the device will delete all data you may have stored on it. - -6. The newly created datastore displays in the datastore list and is ready for use: - - -## Setting up VMware vCenter Server - -We now have two ESXi hosts and an RPN-SAN but no possibility to manage both hypervisors from a centralized point. Therefore, we deploy a virtual machine, running on Windows Server 2016 and install the VMware vCenter Server 6.7U3j on this machine. -vCenter is a web-based tool for graphical management of the entire fabric of data center, clusters, networks, datastore, CPUs, and virtual machines in the form of a dynamic and seamless operating environment. - - - To proceed with these steps, you need to configure at least one [failover IP](/dedibox-ip-failover/quickstart/) with an associated [virtual MAC address](/dedibox-ip-failover/how-to/create-virtual-mac/). If you have not yet configured it, go to your [Dedibox console](https://console.online.net) before proceeding. - - - - If you do not have a Windows Server 2016 ISO file, [download](https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2016) it directly from Microsoft. - - -### Creating a virtual machine - -1. Connect to the ESXi web interface of one of the machines. -2. Click **Storage** > **Datastore browser** to browse the contents of your datastores. -3. Once you are at the desired location for storing your ISO files, click **Upload** and select the ISO file on your local computer. Confirm by clicking **OK**. The upload progress is visible in the top right corner of the datastore browser. Once the upload is completed, you can close the datastore browser. - - Depending on the speed of your internet connection, the upload may take a while. - - - -4. Create a new virtual machine by clicking on **Virtual Machines** > **Create / Register VM** -5. Select **Create a new virtual machine** and confirm by clicking **Next**. -6. Enter a name for the new virtual machine, and select the compatibility, guest OS family, and guest OS version. Then tick the box to enable Windows Virtualization-based Security and click **Next** to proceed: - -7. Select the storage for the data of your VM and confirm by clicking **Next**. -9. Verify each setting in the summary of all parameters of the virtual machine, and click **Finish** to launch the VM creation. The virtual machine appears in the list. -10. Click its name: - -11. Click **Power on** to switch the VM on. Then click the preview area to see the graphical output of the server. Follow the Windows installer to complete the installation of Windows Server 2016. Choose the **Full Desktop Experience** version of Windows Server 2016, as it will be required to install the vCenter Server application: - - -### Installing VMware vCenter Server - -1. Once installed, log into the Windows VM using the `Administrator` account and the password set during the installation process. Click the network icon (1) and then on **Network Settings** (2). - -2. Click **Change adapter options** in the following screen: - -3. Double-click the network adapter. The adapter details displays. Click **Properties**, then select **Internet Protocol Version 4 (TCP/IPv4)** and click **Properties**: - -4. Configure your servers' failover IP as follows: - - - - IP address: Your failover IP - - Subnet mask: `255.255.255.255` - - Default Gateway: `62.210.0.1` - - Preferred DNS server: `51.159.47.28` - - Alternate DNS server: `51.159.47.26` - - Click **OK** to validate your configuration. You may see a warning about a configuration issue. You can safely ignore this notification. - - Your VM is now connected to the internet. -5. Download the VMware vCenter application in version 6.7U3j directly from the [VMware website](https://my.vmware.com/fr/web/vmware/downloads/info/slug/datacenter_cloud_infrastructure/vmware_vsphere/6_7) onto your virtual machine. -6. Double-click the downloaded ISO file to display it as a virtual CD-ROM drive on Windows. Double-click the `autorun.exe` application to launch the installation wizard: - -7. During the setup wizard, choose the embedded setup, which allows you to install all vCenter components on a single machine: - -8. Choose a system network name for your vCenter. This name must be a working FQDN: - -9. Configure the credentials for the single sign-on system of vCenter: - -10. Set the vCenter service account. You can keep the default settings and continue by clicking **Next**: - -11. Configure the vCenter database. You can keep the default settings so it uses an internal Postgres database: - -12. View the default port information used by the vCenter application and click **Next** to continue. - -13. Decide if you want to participate in the "Customer Experience Improvement Program" by sharing data with VMware. Untick the box if not, and click **Next** to continue. - - - A summary of your configuration displays. -14. Check again if all your settings are correct and click **Install** to launch the installation of VMware vCenter. - - - Log out of the Windows VM once the installation completes, and type the address of your vCenter Server in your web browser to connect to it. - - - -## Configuring vCenter Server - -1. Open a web browser and point it to the domain name of your vCenter. Log in using the `administrator@vsphere.local` user and the password set during the installation. The vSphere dashboard displays: - -2. Click **Actions** > **New datacenter** to create a new data center. A data center is a group of machines. -3. Enter a name for the new data center and click **OK**. It appears in the list on the left. -4. Enter the data center and click **Actions** > **New Host**. Enter the IP address of your first Dedibox server in the form and click **Next**. - -5. Enter the ESXi login credentials of the machine and click **Next**: - -6. vCenter is connecting to the ESXi host and displays a review of the machine. Click **Next** to continue: - -7. vCenter manages all ESXi licenses centrally. Assign a license to the machine and click **Next**: - -8. Choose the **Lockdown mode** for ESXi. If the server is locked down, it can only be managed from vCenter and the ESXi web interface becomes unavailable. - -9. Select the location of the machine. Currently, we only have one data center, so click **Next** to continue: - -10. A summary of your settings displays, click **Finish** to import the machine into vCenter Server: - - -Repeat the import for the second server to manage both of them centrally from the vCenter Server. - -## Creating a cluster - -A cluster is a group of several machines. When a host is added to a cluster, its resources become part of the cluster, and all hosts' resources within it are managed by the cluster. - -1. From the **Datacenter** dashboard in your vSphere web interface click **Actions** > **New Cluster**: - -2. Enter a Name for the cluster and activate the features you want to use: - -3. From the cluster quickstart page, click **Add** in the **Add Hosts** section. Select the hosts you want to add to the cluster and click **Next**. A summary of the hosts that will be added to the cluster displays. - -4. Click **Next** to continue: - -5. Review your configuration and click **Finish** to add the hosts to the cluster: - -6. Configure the cluster by clicking on **Configure** in the **Configure cluster** section on the cluster quickstart page: - - -## Migrating virtual machines - -vCenter Server supports the [vMotion technology](https://www.vmware.com/products/vsphere/vmotion.html) for live migration of virtual machines without any downtime. This allows you to: - -- Automatically optimize virtual machines within resource pools. -- Perform hardware maintenance without scheduling downtime or disrupting business operations. -- Move virtual machines away from failing or underperforming machines. - -The virtual machine retains its network identity and connections, ensuring a seamless migration process that completes in several seconds. It uses the RPN connection between your servers to avoid any impact on the public internet connection, however, some restrictions apply: - -- The origin and destination machine must be in the same RPN group. -- Both servers must be connected to the same RPN-SAN and the VM uses the RPN-SAN as datastore. -- You have ticked the **vMotion** checkbox on the RPN VMkernel network interface on both machines. -- No virtual CD/DVD drives are connected and no local datastore is being used on the VM. - -1. Click the name of the instance you want to migrate to view its details. -2. Click **Actions** > **Migrate** to launch the migration wizard. - -3. Select **Change compute resource only**, as we keep the data of the virtual machine on our RPN-SAN datastore, and click **Next**: - -4. Select the new compute resource to run the virtual machine on. In case you forgot on which physical machine the VM runs, click **VM origin**. Click **Next** to proceed: - -5. Validate the network settings for the virtual machine. Leave the default values and click **Next** to proceed: - -6. Select **Schedule vMotion with high priority** to complete the migration with more allocated CPU resources, then click **Next**: - -7. A summary of your migration displays. Click **Finish** to launch the migration process: - -8. Once the migration is complete, you will see a notification in the **Recent Tasks** bar: - -9. Update the destination host of your failover IP, either from the [Dedibox console](https://console.online.net) or by using the [Dedibox API](https://console.online.net/en/api/). - -## Conclusion - -You have now completed the setup of a two-node ESXi cluster with RPN-SAN as a shared datastore. You got the basics of managing it using vCenter Server and vSphere and were able to move your VM between the two nodes using the vMotion feature over the RPN. For more information about VMware vSphere, refer to the [official documentation](https://docs.vmware.com/en/VMware-vSphere/index.html). For more information about our Scaleway Dedibox dedicated servers, refer to our [product information](https://www.scaleway.com/en/dedibox/) or contact our [solution advisors](https://console.online.net/en/assistance/commercial) by phone or ticket to find the ideal solution for your needs. \ No newline at end of file diff --git a/tutorials/erpnext-13/assets/scaleway-erpnext-getting-started-13.webp b/tutorials/erpnext-13/assets/scaleway-erpnext-getting-started-13.webp deleted file mode 100644 index d30b4003cc..0000000000 Binary files a/tutorials/erpnext-13/assets/scaleway-erpnext-getting-started-13.webp and /dev/null differ diff --git a/tutorials/erpnext-13/assets/scaleway-erpnext_dashboard.webp b/tutorials/erpnext-13/assets/scaleway-erpnext_dashboard.webp deleted file mode 100644 index 2903bf6919..0000000000 Binary files a/tutorials/erpnext-13/assets/scaleway-erpnext_dashboard.webp and /dev/null differ diff --git a/tutorials/erpnext-13/assets/scaleway-erpnext_getting_started.webp b/tutorials/erpnext-13/assets/scaleway-erpnext_getting_started.webp deleted file mode 100644 index 18e77089e3..0000000000 Binary files a/tutorials/erpnext-13/assets/scaleway-erpnext_getting_started.webp and /dev/null differ diff --git a/tutorials/erpnext-13/assets/scaleway-erpnext_login.webp b/tutorials/erpnext-13/assets/scaleway-erpnext_login.webp deleted file mode 100644 index 4ada5cf922..0000000000 Binary files a/tutorials/erpnext-13/assets/scaleway-erpnext_login.webp and /dev/null differ diff --git a/tutorials/erpnext-13/assets/scaleway-erpnext_setup_1.webp b/tutorials/erpnext-13/assets/scaleway-erpnext_setup_1.webp deleted file mode 100644 index e5f5a591ec..0000000000 Binary files a/tutorials/erpnext-13/assets/scaleway-erpnext_setup_1.webp and /dev/null differ diff --git a/tutorials/erpnext-13/assets/scaleway-erpnext_setup_2.webp b/tutorials/erpnext-13/assets/scaleway-erpnext_setup_2.webp deleted file mode 100644 index 071bab7eab..0000000000 Binary files a/tutorials/erpnext-13/assets/scaleway-erpnext_setup_2.webp and /dev/null differ diff --git a/tutorials/erpnext-13/assets/scaleway-erpnext_setup_3.webp b/tutorials/erpnext-13/assets/scaleway-erpnext_setup_3.webp deleted file mode 100644 index 3230af9717..0000000000 Binary files a/tutorials/erpnext-13/assets/scaleway-erpnext_setup_3.webp and /dev/null differ diff --git a/tutorials/erpnext-13/assets/scaleway-erpnext_setup_4.webp b/tutorials/erpnext-13/assets/scaleway-erpnext_setup_4.webp deleted file mode 100644 index 5a2a2f92fe..0000000000 Binary files a/tutorials/erpnext-13/assets/scaleway-erpnext_setup_4.webp and /dev/null differ diff --git a/tutorials/erpnext-13/assets/scaleway-erpnext_setup_5.webp b/tutorials/erpnext-13/assets/scaleway-erpnext_setup_5.webp deleted file mode 100644 index d41c846ba4..0000000000 Binary files a/tutorials/erpnext-13/assets/scaleway-erpnext_setup_5.webp and /dev/null differ diff --git a/tutorials/erpnext-13/assets/scaleway-erpnext_setup_6.webp b/tutorials/erpnext-13/assets/scaleway-erpnext_setup_6.webp deleted file mode 100644 index 3373e6419a..0000000000 Binary files a/tutorials/erpnext-13/assets/scaleway-erpnext_setup_6.webp and /dev/null differ diff --git a/tutorials/erpnext-13/assets/scaleway-erpnext_setup_7.webp b/tutorials/erpnext-13/assets/scaleway-erpnext_setup_7.webp deleted file mode 100644 index bba9c961ef..0000000000 Binary files a/tutorials/erpnext-13/assets/scaleway-erpnext_setup_7.webp and /dev/null differ diff --git a/tutorials/erpnext-13/assets/scaleway-erpnext_test.webp b/tutorials/erpnext-13/assets/scaleway-erpnext_test.webp deleted file mode 100644 index 2a46676961..0000000000 Binary files a/tutorials/erpnext-13/assets/scaleway-erpnext_test.webp and /dev/null differ diff --git a/tutorials/erpnext-13/assets/scaleway_erpnext.webp b/tutorials/erpnext-13/assets/scaleway_erpnext.webp deleted file mode 100644 index 72a94f330e..0000000000 Binary files a/tutorials/erpnext-13/assets/scaleway_erpnext.webp and /dev/null differ diff --git a/tutorials/erpnext-13/index.mdx b/tutorials/erpnext-13/index.mdx deleted file mode 100644 index 07d9f5471b..0000000000 --- a/tutorials/erpnext-13/index.mdx +++ /dev/null @@ -1,378 +0,0 @@ ---- -meta: - title: Deploying ERPNext 13 at Scaleway on Ubuntu 20.04 LTS (Focal Fossa) - description: Learn how to install ERPNext 13 on Ubuntu 20.04 LTS for production setup. Follow this detailed guide for a successful ERPNext deployment. -content: - h1: Deploying ERPNext 13 at Scaleway on Ubuntu 20.04 LTS (Focal Fossa) - paragraph: Learn how to install ERPNext 13 on Ubuntu 20.04 LTS for production setup. Follow this detailed guide for a successful ERPNext deployment. -tags: ERPNext erp odoo Ubuntu Focal-Fossa -categories: - - dedibox - - instances - - elastic-metal -hero: assets/scaleway_erpnext.webp -dates: - validation: 2025-01-22 - posted: 2021-09-14 ---- - -ERPNext is a free and open-source ERP software designed for manufacturers, distributors, and service companies. It comprises a full range of modules, including accounting, sales, CRM, purchasing, warehouse management, and inventory. Moreover, specialized modules are available, tailored to the needs of the education, healthcare, agriculture, and non-profit sectors. It is written in Python, based on the Frappé Framework, and uses a MariaDB database to store its data. The application is available under the GNU GPLv3 license and its source code is hosted on [GitHub](https://github.com/frappe/erpnext). - -This tutorial will show you how to deploy ERPNext 13 on a Scaleway machine running Ubuntu Focal Fossa (20.04 LTS). This could be a [Dedibox](https://www.scaleway.com/en/dedibox/), an [Instance](https://www.scaleway.com/en/virtual-instances/) or an [Elastic Metal server](https://www.scaleway.com/en/elastic-metal/). - - - -- A Scaleway account logged into the [console](https://console.scaleway.com) -- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization -- An [SSH key](/organizations-and-projects/how-to/create-ssh-key/) -- One of the following remote machines running Ubuntu Focal Fossa (20.04 LTS): - - An [Instance](/instances/how-to/create-an-instance/) - - An [Elastic Metal server](/elastic-metal/how-to/create-server/) - - A [Dedibox dedicated server](/dedibox/how-to/order-a-server/) -- `sudo` privileges or access to the root user -- Configured an A-record pointing to your server's IP address - -## Configuring locales - -Start by configuring the system's keyboard mapping for the console as well as the language and character encoding on the host. This step is required to avoid any possible troubles during the ERPNext installation process and does not affect the UI language you will use on the ERPNext web interface. - -1. Log in to your remote machine using SSH: - ``` - ssh root@ - ``` - - - If you are logging into a Dedibox server, you may not be able to log in as root but rather as the user you created during installation. In this case, you may need to prefix commands in the rest of this section with `sudo`. - -2. Update the APT package manager and upgrade the software already installed on the system: - ``` - apt update && apt upgrade -y - ``` -3. Create a new user. Some commands we will run later in this tutorial should not be carried out as root. Here, we call the new user `mariecurie`, but you could call them `erpnext` or whatever you like. Enter a password for them when prompted. You can leave the user information at default values if you wish. - ``` - adduser mariecurie - ``` -4. Give the new user sudo privileges: - ``` - usermod -aG sudo mariecurie - ``` -5. Configure the locale of the system to `en_US.utf8`: - ``` - localectl set-keymap us && localectl set-locale LANG=en_US.utf8 - ``` -6. Open the file `/etc/environment` in a text editor and add the following lines at the end of the file: - ``` - nano /etc/environment - ``` - - ``` - LC_ALL=en_US.UTF-8 - LC_CTYPE=en_US.UTF-8 - LANG=en_US.UTF-8 - ``` - - Save the file and exit the text editor. -7. Reboot your Instance using the `reboot` command. -8. Wait a minute for the reboot to finish, then SSH back into your Instance with the following command: - ``` - ssh root@ - ``` -9. Switch to the `mariecurie` user. - ``` - su - mariecurie - ``` - -All the following steps will be executed from the newly created user account `mariecurie` and by using `sudo`. - -## Installing MariaDB - -1. Add a MariaDB mirror to the `apt` configuration. ERPNext relies on MariaDB as a database engine, but the version available by default in the repositories of Ubuntu is too old and not supported by ERPNext. The mirror allows us to install a more recent version of the system: - ``` - sudo apt install software-properties-common - sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc' - sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://archive.mariadb.org/repo/10.6/ubuntu focal main' - sudo apt update - ``` -2. Install MariaDB using the `apt` package manager: - ``` - sudo apt install mariadb-server-10.6 mariadb-client-10.6 - ``` -3. Install the following packages which are required for ERPNext: - ``` - sudo apt install libmysqlclient-dev python3-mysqldb - ``` -4. Run the interactive setup tool to finalize the installation of MariaDB: - ``` - sudo mysql_secure_installation - ``` - - The setup tool asks you to enter the current MySQL password. As you have a fresh installation, no password is configured yet. Press _Enter_ to continue. When asked to set a root password for MySQL, press _Y_ and enter a secret password and its confirmation. Press _Y_ to remove anonymous users when prompted, then press _Y_ again to disallow root login, press _Y_ to remove the test database and _Y_ to reload the privileges to activate the new configuration. -5. Log in to the MySQL shell. We use a non-root user with superuser privileges: - ``` - sudo mysql - ``` -6. Create a database named after the user that you want to use for connections to your MariaDB server. In this tutorial, we use `mariecurie` again, but you can choose whatever identifier you like. - ``` - CREATE DATABASE mariecurie; - ``` -7. Create a new user account and grant superuser privileges to it. Replace `strong_database_password` in the following command with a secure password for the user: - ``` - GRANT ALL PRIVILEGES ON *.* TO 'mariecurie'@'%' IDENTIFIED BY 'strong_database_password' WITH GRANT OPTION; - ``` -8. Flush the privileges to activate the new user account: - ``` - FLUSH PRIVILEGES; - ``` -9. Exit the MariaDB shell: - ``` - EXIT; - ``` -10. Open the file `/etc/mysql/conf.d/50-server.cnf` in a text editor: - ``` - sudo nano /etc/mysql/conf.d/50-server.cnf - ``` - - Add the code below. Then save the file and exit the text editor: - - ``` - [mysqld] - character-set-client-handshake = FALSE - character-set-server = utf8mb4 - collation-server = utf8mb4_unicode_ci - innodb_read_only_compressed = FALSE - - [mysql] - default-character-set = utf8mb4 - ``` -11. Repeat step 10 for the file `/etc/mysql/my.cnf`: - ``` - sudo nano /etc/mysql/my.cnf - ``` -12. Restart the MariaDB server: - ``` - sudo service mysql restart - ``` - -## Setting up ERPNext - -### Installing prerequisites - -1. Install the following dependencies using the `apt` package manager before continuing with the installation of ERPNext: - ``` - sudo apt install -y apt-transport-https build-essential curl mariadb-client python3-setuptools python3-dev python3-mysqldb libffi-dev python3-pip libcurl4 dnsmasq fontconfig git htop libcrypto++-dev libfreetype6-dev liblcms2-dev libldap2-dev libcups2-dev pv libjpeg8-dev libtiff5-dev tcl8.6-dev tk8.6-dev libssl-dev libdate-manip-perl zlib1g-dev libsasl2-dev libwebp-dev libxext6 libxrender1 libxslt1-dev libxslt1.1 libffi-dev logwatch ntpdate postfix python3-dev python-tk screen vim xfonts-75dpi xfonts-base python3-testresources - ``` -2. Continue to install the required Python dependencies and upgrade `pip` - ``` - sudo -H python3 -m pip install --upgrade setuptools cryptography psutil - ``` -3. Download a script to add the NodeSource repository to your system and save it locally: - ``` - curl -sL https://deb.nodesource.com/setup_14.x -o nodesource_setup.sh - ``` -4. Run the script to configure the NodeSource repository with the `apt` package manager: - ``` - sudo bash nodesource_setup.sh - ``` -5. Install NodeSource using `apt`: - ``` - sudo apt install nodejs - ``` -6. Install `yarn` using `npm`: - ``` - sudo npm install -g yarn - ``` -7. Download the `wkhtmltopdf` package in the `/tmp` directory. ERPNext uses `wkhtmltopdf` to convert HTML content into PDF files using the Qt WebKit rendering engine for generating printable invoices, quotations, and other reports. - ``` - cd /tmp && wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb - ``` -8. Install the downloaded package using `dpkg`: - ``` - sudo dpkg -i wkhtmltox_0.12.6-1.focal_amd64.deb - ``` -9. Copy all the relevant binary files from the installation to the `/usr/bin` directory: - ``` - sudo cp /usr/local/bin/wkhtmlto* /usr/bin/ - ``` -10. Make those files executable: - ``` - sudo chmod a+x /usr/bin/wkhtmlto* - ``` -11. Return to the `/home` directory of the user: - ``` - cd /home/mariecurie - ``` - -### Installing Redis - -ERPNext uses the caching features of [Redis](https://redis.io/) to increase database performance. - -1. Install Redis using the `apt` package manager: - ``` - sudo apt install redis-server - ``` -2. Configure Redis to start automatically during system boot: - ``` - sudo systemctl enable redis-server.service - ``` - -### Installing the Frappe Bench CLI - -As the ERPNext stack's major prerequisites are installed, go on by installing the Frappe `bench` command-line interface. It has been designed to assist users with installing, configuring, and managing applications using the [Frappe Framework](https://frappeframework.com/), like ERPNext. - -1. Clone the `bench` [GitHub repository](https://github.com/frappe/bench) using `git`: - ``` - git clone https://github.com/frappe/bench /home/mariecurie/.bench --depth 1 --branch master - ``` -2. Install the `bench` CLI using `pip3`: - ``` - sudo pip3 install -e /home/mariecurie/.bench - ``` - -### Installing the Frappe framework - -1. Increase Ubuntu's file limit with the following command. This may be necessary for the Frappe Framework installation to succeed: - ``` - echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p - ``` -2. Initialize the Frappe framework using the following command. Remember to replace `/home/mariecurie` with the proper home path of your user: - ``` - bench init /home/mariecurie/frappe-bench --frappe-path https://github.com/frappe/frappe --frappe-branch version-13 --python python3 - ``` - - This step may take a while. Note that the script can recover from warnings such as `Command not being executed in bench directory` and `x is not a valid editable requirement`. - - - The Frappe framework requires specific versions of certain Python packages. In case the `bench init` command fails, install the versions required by running the following command: - ``` - sudo pip3 install markupsafe==2.0.1 setuptools==40.8.0 ansible==5.3.0 ansbile-core==2.12.2 jinja2==2.10.3 - ``` - - - Once the installation completes, you see an output like the following example: - - ``` - ✨ Done in 94.7s - Done in 96.74s. - INFO:bench.utils:setting up backups - no crontab for mariecurie - SUCCESS: Bench /home/mariecurie/frappe-bench initialized - ``` - -### Installing ERPNext web application - -1. Change into the directory into which `frappe-bench` has been installed: - ``` - cd /home/mariecurie/frappe-bench - ``` -2. Download ERPNext using the `bench` command-line interface: - ``` - bench get-app ERPNext https://github.com/frappe/erpnext --branch version-13 - ``` -3. Run the following command to install any missing dependencies: - ``` - bench setup requirements - ``` -4. Create a new site for your ERPNext installation. Ensure you replace the parameters in the command as appropriate: - ``` - bench new-site your_erpnext_domain --admin-password 'a_secure_erpnext_admin_password' --mariadb-root-username mariecurie --mariadb-root-password 'your_mariadb_root_password' - ``` - - The site creation may take a moment, and you can follow the progress in the status bars: - - ``` - Installing frappe... - Updating DocTypes for frappe : [========================================] - Updating country info : [========================================] - ``` -5. Install ERPNext on your new site using `bench`: - ``` - bench --site your_erpnext_domain install-app erpnext - ``` - - Once again you can follow the process in the status bar: - - ``` - Installing ERPNext... - Updating DocTypes for ERPNext : [========================================] - Updating customizations for Address - ``` -6. Test the installation of the site using `bench`: - ``` - bench start - ``` - - Bench will deploy a test environment, and you can access ERPNext at `http://your_erpnext_domain:8000`. If you open this URL in your web browser, the ERPNext login screen displays: - - - - Press `CTRL + C` in your terminal to stop the test environment. - -## Getting production-ready - -Our test environment has proven that our ERPNext installation is working, but some additional steps are required to secure it and make it production-ready. We are again using the `bench` command-line tool to install the following tools on the machine: - -- **Fail2Ban**, a useful tool that analyses server log files for recurring patterns of failures, allowing us to block IPs trying to run brute force attacks against a server. -- **Nginx**, a versatile web server that will be used as a proxy to redirect all requests on the standard HTTP (Port 80) and HTTPS (Port 443) to the ERPNext application listening on port 8000. -- **Supervisor**, a service that ensures all required processes of ERPNext are constantly up and running. In case of any failure, it will restart them. - -1. Run `bench` with the following parameters. Replace `mariecurie` with the name of your user owning the production environment if necessary. Ensure you execute the command from the `frappe-bench` directory of your user. - ``` - sudo bench setup production mariecurie - ``` - - It will create the following configuration files: - - **Nginx:** Two configuration files: `/etc/nginx/nginx.conf`, and `/etc/nginx/conf.d/frappe-bench.conf` - - **Fail2Ban:** One proxy jail (`/etc/fail2ban/jail.d/nginx-proxy.conf`), and one filter configuration (`/etc/fail2ban/filter.d/nginx-proxy.conf`) - - The default values configured in these files are suitable for an essential start and the goals of this tutorial. However, depending on your workload, you may tweak them further. -2. Install [`certbot`](https://certbot.eff.org) using snap. To increase security, we will use TLS to encrypt the connection between clients and the server. Certbot is a tool that can manage the request and renewal of Let's Encrypt certificates and the automatic configuration of Nginx. - ``` - sudo snap install certbot --classic - ``` -3. Run `certbot` to obtain a Let's Encrypt TLS certificate and to reconfigure Nginx to use it: - ``` - sudo certbot --nginx - ``` - - When prompted, enter your email address, agree to the terms of service, and choose to redirect all requests to HTTPS. - Certbot will then request the certificate and update the Nginx configuration accordingly. A message displays once the configuration is done: - - ``` - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: - /etc/letsencrypt/live/your_erpnext_domain/fullchain.pem - Your key file has been saved at: - /etc/letsencrypt/live/your_erpnext_domain/privkey.pem - [...] - ``` - -## Configuring ERPNext - -1. Open a web browser on your local computer and point it to `https://your_erpnext_domain/`. The login page displays. Enter the username **Administrator** in the email address box, and the password that you defined during the setup. Then click **Login**: - - - You are now logged into the ERPNext installation wizard. -2. Choose your language, then click **Next**: - -3. Set your country, timezone, and currency, then click **Next**: - -4. Configure your first user account. Enter your full name, your e-mail address, and a secret password. You can also choose to add a photo. Click **Next** to proceed: - -5. Select your domains. Domains include a predefined set of modules that are designed for different usage types. You can choose one or several domains. If you are not sure which one to choose, select **Distribution** and click **Next** to go to the following step: - -6. Configure your brand: Enter your company name and an abbreviation of it. You can also choose to add a photo. Once done click **Next** to continue: - -7. Enter information about what your company does, your bank's name, the charts template to use, as well as information on your financial year. Then click **Complete Setup**: - - - ERPNext is now configuring your parameters. The configuration may take a moment. The status bar gives you information about the progress of this task: - - - - The ERPNext dashboard displays. You can see an overview of all available categories. ERPNext provides wizards to customize all parameters towards the business needs of your company. - - - -## Going further - -You have now installed, configured, and secured a complete ERPNext 13 application. In the next step, you may want to configure it to your business needs. For more information regarding the configuration and maintenance of the application, refer to the [official ERPNext handbook](https://docs.erpnext.com/docs/user/manual/en). \ No newline at end of file diff --git a/tutorials/erpnext/assets/scaleway-erpnext-getting-started-13.webp b/tutorials/erpnext/assets/scaleway-erpnext-getting-started-13.webp deleted file mode 100644 index d30b4003cc..0000000000 Binary files a/tutorials/erpnext/assets/scaleway-erpnext-getting-started-13.webp and /dev/null differ diff --git a/tutorials/erpnext/assets/scaleway-erpnext_dashboard.webp b/tutorials/erpnext/assets/scaleway-erpnext_dashboard.webp deleted file mode 100644 index 2903bf6919..0000000000 Binary files a/tutorials/erpnext/assets/scaleway-erpnext_dashboard.webp and /dev/null differ diff --git a/tutorials/erpnext/assets/scaleway-erpnext_getting_started.webp b/tutorials/erpnext/assets/scaleway-erpnext_getting_started.webp deleted file mode 100644 index 18e77089e3..0000000000 Binary files a/tutorials/erpnext/assets/scaleway-erpnext_getting_started.webp and /dev/null differ diff --git a/tutorials/erpnext/assets/scaleway-erpnext_login.webp b/tutorials/erpnext/assets/scaleway-erpnext_login.webp deleted file mode 100644 index 4ada5cf922..0000000000 Binary files a/tutorials/erpnext/assets/scaleway-erpnext_login.webp and /dev/null differ diff --git a/tutorials/erpnext/assets/scaleway-erpnext_setup_1.webp b/tutorials/erpnext/assets/scaleway-erpnext_setup_1.webp deleted file mode 100644 index e5f5a591ec..0000000000 Binary files a/tutorials/erpnext/assets/scaleway-erpnext_setup_1.webp and /dev/null differ diff --git a/tutorials/erpnext/assets/scaleway-erpnext_setup_2.webp b/tutorials/erpnext/assets/scaleway-erpnext_setup_2.webp deleted file mode 100644 index 071bab7eab..0000000000 Binary files a/tutorials/erpnext/assets/scaleway-erpnext_setup_2.webp and /dev/null differ diff --git a/tutorials/erpnext/assets/scaleway-erpnext_setup_3.webp b/tutorials/erpnext/assets/scaleway-erpnext_setup_3.webp deleted file mode 100644 index 3230af9717..0000000000 Binary files a/tutorials/erpnext/assets/scaleway-erpnext_setup_3.webp and /dev/null differ diff --git a/tutorials/erpnext/assets/scaleway-erpnext_setup_4.webp b/tutorials/erpnext/assets/scaleway-erpnext_setup_4.webp deleted file mode 100644 index 5a2a2f92fe..0000000000 Binary files a/tutorials/erpnext/assets/scaleway-erpnext_setup_4.webp and /dev/null differ diff --git a/tutorials/erpnext/assets/scaleway-erpnext_setup_5.webp b/tutorials/erpnext/assets/scaleway-erpnext_setup_5.webp deleted file mode 100644 index d41c846ba4..0000000000 Binary files a/tutorials/erpnext/assets/scaleway-erpnext_setup_5.webp and /dev/null differ diff --git a/tutorials/erpnext/assets/scaleway-erpnext_setup_6.webp b/tutorials/erpnext/assets/scaleway-erpnext_setup_6.webp deleted file mode 100644 index 3373e6419a..0000000000 Binary files a/tutorials/erpnext/assets/scaleway-erpnext_setup_6.webp and /dev/null differ diff --git a/tutorials/erpnext/assets/scaleway-erpnext_setup_7.webp b/tutorials/erpnext/assets/scaleway-erpnext_setup_7.webp deleted file mode 100644 index bba9c961ef..0000000000 Binary files a/tutorials/erpnext/assets/scaleway-erpnext_setup_7.webp and /dev/null differ diff --git a/tutorials/erpnext/assets/scaleway-erpnext_test.webp b/tutorials/erpnext/assets/scaleway-erpnext_test.webp deleted file mode 100644 index 2a46676961..0000000000 Binary files a/tutorials/erpnext/assets/scaleway-erpnext_test.webp and /dev/null differ diff --git a/tutorials/erpnext/assets/scaleway_erpnext.webp b/tutorials/erpnext/assets/scaleway_erpnext.webp deleted file mode 100644 index 72a94f330e..0000000000 Binary files a/tutorials/erpnext/assets/scaleway_erpnext.webp and /dev/null differ diff --git a/tutorials/erpnext/index.mdx b/tutorials/erpnext/index.mdx deleted file mode 100644 index 5968e8d4bf..0000000000 --- a/tutorials/erpnext/index.mdx +++ /dev/null @@ -1,351 +0,0 @@ ---- -meta: - title: Deploying ERPNext 12 on Ubuntu 18.04 LTS (Bionic Beaver) - description: Discover how to deploy the ERPNext 12 application on a Scaleway Dedibox dedicated server -content: - h1: Deploying ERPNext 12 on Ubuntu 18.04 LTS (Bionic Beaver) - paragraph: Discover how to deploy the ERPNext 12 application on a Scaleway Dedibox dedicated server -tags: ERPNext erp odoo Ubuntu Bionic-Beaver -categories: - - dedibox -hero: assets/scaleway_erpnext.webp -dates: - validation: 2025-04-08 - posted: 2020-07-28 ---- - -[ERPNext](https://www.erpnext.com/) is a free and open-source ERP software designed to be used by manufacturers, distributors, and service companies. It includes a full range of modules, including accounting, sales, CRM, purchasing, warehouse management, and inventory. Moreover, specialized modules are available tailored to schools, healthcare, agriculture, and non-profit sectors. It uses a MariaDB database to store its data, is written in Python, and is based on the [Frappé Framework](https://frappeframework.com/). The application is released under the GNU GPLv3 license, and its source code is hosted on [GitHub](https://github.com/frappe/erpnext). - -In this tutorial, you will learn how to install and configure ERPNext 12 on Ubuntu 18.04 (Bionic Beaver) on a Scaleway Dedibox dedicated server. - - - See our [updated tutorial](/tutorials/erpnext-13/) for installing ERPNext 13 on Ubuntu 20.04 Focal Fossa. - - - - -- A Scaleway account logged into the [console](https://console.scaleway.com) -- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization -- An [SSH key](/organizations-and-projects/how-to/create-ssh-key/) -- A Scaleway [Dedibox dedicated server](https://www.scaleway.com/en/dedibox/) running on Ubuntu 18.04 (Bionic Beaver) -- `sudo` privileges or access to the root user -- Configured an A-record pointing to your server's IP address - -## Configuring locales - -Start by configuring the system's keyboard mapping for the console as well as the language and character encoding on the host. This step is required to avoid any possible troubles during the ERPNext installation process and does not affect the UI language you will use on the ERPNext web interface. - -1. Update the APT package manager and upgrade the software already installed on the system: - ``` - sudo apt update && sudo apt upgrade -y - ``` -2. Create a new user. Some commands we will run later in this tutorial should not be carried out as root. Here, we call the new user `mariecurie`, but you could call them `erpnext` or whatever you like. Enter a password for them when prompted. You can leave the user information at default values if you wish. - ``` - sudo adduser erpnext - ``` -3. Give the new user sudo privileges: - ``` - sudo usermod -aG sudo erpnext - ``` -4. Open the file `/etc/environment` in a text editor and add the following lines at the end of the file: - ``` - sudo nano /etc/environment - ``` - - ``` - [...] - LC_ALL=en_US.UTF-8 - LC_CTYPE=en_US.UTF-8 - LANG=en_US.UTF-8 - ``` -5. Configure the locale of the system to `en_US.utf8`: - ``` - localectl set-keymap us && localectl set-locale LANG=en_US.utf8 - ``` - - Save the file, exit the text editor, and reboot your Instance using the `reboot` command. - -All the following steps will be executed from the newly created user account and by using `sudo`. - -## Installing MariaDB - -1. ERPNext relies on MariaDB as a database engine, but the version available by default in the repositories of Ubuntu 18.04 LTS is too old and not supported by ERPNext. Therefore, add a MariaDB mirror to the `apt` configuration which allows us to install a more recent version on the system: - ``` - sudo apt install software-properties-common - sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc' - sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://ftp.igh.cnrs.fr/pub/mariadb/repo/10.4/ubuntu bionic main' - sudo apt update - ``` -2. Install MariaDB using the `apt` package manager: - ``` - sudo apt install mariadb-server-10.4 mariadb-client-10.4 - ``` -3. Install the following packages which are required for ERPNext: - ``` - sudo apt install libmysqlclient-dev python3-mysqldb - ``` -4. Finalize the installation of MariaDB by running the interactive setup tool: - ``` - sudo mysql_secure_installation - ``` - - The setup tool asks you to enter the current MySQL password. As we have a fresh installation, no password is configured yet, press _Enter_ to continue. When asked to set a root password for MySQL, press _Y_ and enter a secret password and its confirmation. Press _Y_ to remove anonymous users when prompted, then press _Y_ again to disallow root login, confirm removing the test database, and reload the privileges to activate the new configuration. -5. Use a non-root user with superuser privileges to connect to the database with ERPNext. Log in to the MySQL shell: - ``` - sudo mysql - ``` -6. Create a database named after the user that you want to use for connections to your MariaDB server. In this tutorial, we use `timmy`, but you can choose whatever identifier you like. - ``` - CREATE DATABASE timmy; - ``` -7. Create a new user account and grant superuser privileges to it. Replace `strong_database_password` in the following command with a secure password for the user: - ``` - GRANT ALL PRIVILEGES ON *.* TO 'timmy'@'%' IDENTIFIED BY 'strong_database_password' WITH GRANT OPTION; - ``` -8. Flush the privileges to activate the new user account: - ``` - FLUSH PRIVILEGES; - ``` -9. Exit the MariaDB shell: - ``` - EXIT; - ``` -10. Open the file `/etc/mysql/conf.d/50-server.cnf` in a text editor: - ``` - sudo nano /etc/mysql/conf.d/50-server.cnf - ``` - - Make sure that the character set is set to `utfmb4_unicode_ci`. Then save the file and exit the text editor: - - ``` - [mysqld] - character-set-client-handshake = FALSE - character-set-server = utf8mb4 - collation-server = utf8mb4_unicode_ci - - [mysql] - default-character-set = utf8mb4 - ``` -11. Restart the MariaDB server: - ``` - sudo service mysql restart - ``` - -## Setting up ERPNext - -### Installing prerequisites - -1. Install the following dependencies using the `apt` package manager before continuing with the installation of ERPNext: - ``` - sudo apt install -y apt-transport-https build-essential curl mariadb-client python3-setuptools python3-dev python3-mysqldb libffi-dev python3-pip libcurl4 dnsmasq fontconfig git htop libcrypto++-dev libfreetype6-dev liblcms2-dev libldap2-dev libcups2-dev pv libjpeg8-dev libtiff5-dev tcl8.6-dev tk8.6-dev libssl-dev libdate-manip-perl zlib1g-dev libsasl2-dev libwebp-dev libxext6 libxrender1 libxslt1-dev libxslt1.1 libffi-dev logwatch ntpdate postfix python3-dev python-tk screen vim xfonts-75dpi xfonts-base - ``` -2. Continue to install the required Python dependencies and upgrade `pip`: - ``` - sudo -H python3 -m pip install --upgrade setuptools cryptography psutil - ``` -3. Download a script to add the NodeSource repository to your system and save it locally: - ``` - curl -sL https://deb.nodesource.com/setup_12.x -o nodesource_setup.sh - ``` -4. Run the script to configure the NodeSource repository with the `apt` package manager: - ``` - sudo bash nodesource_setup.sh - ``` -5. Install NodeSource using `apt`: - ``` - sudo apt install nodejs - ``` -6. Install `yarn` using `npm`: - ``` - sudo npm install -g yarn - ``` -7. ERPNext uses the `wkhtmltopdf` tool to convert HTML content into PDF files using the Qt WebKit rendering engine for generating printable invoices, quotations, and other reports. Install it by changing into the `/tmp` directory and downloading the required package: - ``` - cd /tmp && wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb - ``` -8. Install the downloaded package using `dpkg`: - ``` - sudo dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb - ``` -9. Copy all the relevant binary files to the `/usr/bin` directory: - ``` - sudo cp /usr/local/bin/wkhtmlto* /usr/bin/ - ``` -10. Make the files executable: - ``` - sudo chmod a+x /usr/bin/wkhtmlto* - ``` -11. Return to the `/home` directory of the user: - ``` - cd /home/timmy - ``` - -### Installing Redis™ - -ERPNext uses the caching features of [Redis™](https://redis.io/) to increase database performance. - -1. Install it using the `apt` package manager: - ``` - sudo apt install redis-server - ``` -2. Configure Redis™ to start automatically during system boot: - ``` - sudo systemctl enable redis-server.service - ``` - -### Installing the Frappe Bench CLI - -As the ERPNext stack's major prerequisites are installed, go on by installing the Frappe `bench` command-line interface. It has been designed to assist users with installing, configuring, and managing applications using the [Frappe Framework](https://frappeframework.com/), like ERPNext. - -1. Clone the `bench` [GitHub repository](https://github.com/frappe/bench) using `git`: - ``` - git clone https://github.com/frappe/bench /home/timmy/.bench --depth 1 --branch master - ``` -2. Install the `bench` CLI using `pip3`: - ``` - sudo pip3 install -e /home/timmy/.bench - ``` - -### Installing the Frappe framework - -1. Increase Ubuntu's file limit, which may be necessary for successfully installing the Frappe Framework. Use the following command: - ``` - echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p - ``` -2. Initialize the Frappe framework using the following command. Remember to replace `/home/timmy` with the proper home path of your user: - ``` - bench init /home/timmy/frappe-bench --frappe-path https://github.com/frappe/frappe --frappe-branch version-12 --python python3 - ``` - - Once the installation is completed, you will see an output like the following example: - - ``` - ✨ Done in 94.7s - Done in 96.74s. - INFO:bench.utils:setting up backups - no crontab for timmy - SUCCESS: Bench /home/timmy/frappe-bench initialized - ``` - -### Installing ERPNext web application - -1. Change into the directory into which `frappe-bench` has been installed: - ``` - cd /home/timmy/frappe-bench - ``` -2. Download ERPNext using the `bench` command-line interface: - ``` - bench get-app ERPNext https://github.com/frappe/erpnext --branch version-12 - ``` -3. Create a new site for your ERPNext installation: - ``` - bench new-site your_erpnext_domain --admin-password 'a_secure_erpnext_admin_password' --mariadb-root-username timmy --mariadb-root-password 'your_mariadb_root_password' - ``` - - The site creation may take a moment, and you can follow the progress in the status bars: - - ``` - Installing frappe... - Updating DocTypes for frappe : [========================================] - Updating country info : [========================================] - ``` -4. Install ERPNext on your new site using `bench`: - ``` - bench --site your_erpnext_domain install-app ERPNext - ``` - - Once again you can follow the process in the status bar: - - ``` - Installing ERPNext... - Updating DocTypes for ERPNext : [========================================] - Updating customizations for Address - ``` -6. Test the installation of the site using `bench`: - ``` - bench start - ``` - - Bench will deploy a test environment and you can access ERPNext at `http://your_erpnext_domain:8000`. If you open this URL in your web browser, the ERPNext login screen displays: - - - - Press `CTRL + C` in your terminal to stop the test environment. - -## Getting production-ready - -Our test environment has proven that our ERPNext installation is working, but some additional steps are required to secure it and make it production-ready. We are again using the `bench` command-line tool to install the following tools on the machine: - -- **Fail2Ban**, a useful tool that analyses server log files for recurring patterns of failures, allowing us to block IPs trying to run brute force attacks against a server. -- **Nginx**, a versatile web server that will be used as a proxy to redirect all requests on the standard HTTP (Port 80) and HTTPS (Port 443) to the ERPNext application listening on port 8000. -- **Supervisor**, a service that ensures all required processes of ERPNext are constantly up and running. In case of any failure, it will restart them. - -1. Execute the following command from the `frappe-bench` directory of your user. Run `bench` with these parameters and replace `timmy` with the name of your user owning the production environment: - ``` - sudo bench setup production timmy - ``` - - It creates the following configuration files: - - **Nginx:** Two configuration files: `/etc/nginx/nginx.conf`, and `/etc/nginx/conf.d/frappe-bench.conf` - - **Fail2Ban:** One proxy jail (`/etc/fail2ban/jail.d/nginx-proxy.conf`), and one filter configuration (`/etc/fail2ban/filter.d/nginx-proxy.conf`) - - The default values configured in these files are suitable for an essential start and the goals of this tutorial. However, depending on your workload, you may tweak them further. -2. Use TLS to encrypt the connection between clients and the server for increased security. For this purpose, install [`certbot`](https://certbot.eff.org) on the machine. `certbot` is a tool that can manage the request and renewal of Let's Encrypt certificates and the automatic configuration of Nginx. Add the certbot packet archive to the `apt` package manage: - ``` - sudo add-apt-repository universe - sudo add-apt-repository ppa:certbot/certbot - sudo apt update - ``` -3. Install `certbot` using `apt`: - ``` - sudo apt install certbot python3-certbot-nginx - ``` -4. Run `certbot` to obtain a Let's Encrypt TLS certificate and to reconfigure Nginx to use it: - ``` - sudo certbot --nginx - ``` - - When prompted, enter your email address, agree to the terms of service, and choose to redirect all requests to HTTPS. - Certbot will then request the certificate and update the Nginx configuration accordingly. A message displays once the configuration is done: - - ``` - IMPORTANT NOTES: - - Congratulations! Your certificate and chain have been saved at: - /etc/letsencrypt/live/your_erpnext_domain/fullchain.pem - Your key file has been saved at: - /etc/letsencrypt/live/your_erpnext_domain/privkey.pem - [...] - ``` - -## Configuring ERPNext - -1. Open a web browser on your local computer and point it to `https://your_erpnext_domain/`. The login page displays. Enter the username **Administrator** and the password defined during the setup. Then click **Login**: - - - You are now logged into the ERPNext installation wizard. -2. Choose your language, then click **Next**: - -3. Set your country, timezone, and currency, then click **Next**: - -4. Configure your first user account. Enter your full name, your e-mail address, and a secret password. Click **Next** to proceed: - -5. Select your domains. Domains include a predefined set of modules that are designed for different usage types. You can choose one or several domains. If you are not sure which to one to choose, select **Distribution** and click **Next** to go to the following step: - -6. Configure your brand: Enter your company name and an abbreviation of it. Once done click **Next** to continue: - -7. Enter the information about what your company does, your bank's name, the charts template to use, as well as information on your financial year. Then click **Complete Setup**: - - - ERPNext configures your parameters. The configuration may take a moment. The status bar gives you information about the progress of this task: - - - - The ERPNext dashboard displays. You can see an overview of all available categories: - - -8. Click **Getting Started** to launch the configuration of your newly installed application. ERPNext provides wizards to customize all parameters towards the business needs of your company: - - -## Going further - -You have installed, configured, and secured a complete ERPNext 12 application. In the next step, you may want to configure it to your business needs. For more information regarding the configuration and maintenance of the application, refer to the [official ERPNext handbook](https://docs.erpnext.com/docs/user/manual/en). \ No newline at end of file diff --git a/tutorials/jitsi-debian-stretch/assets/scaleway-jitsi-meet-conf-call-2.webp b/tutorials/jitsi-debian-stretch/assets/scaleway-jitsi-meet-conf-call-2.webp deleted file mode 100644 index ff594b1b22..0000000000 Binary files a/tutorials/jitsi-debian-stretch/assets/scaleway-jitsi-meet-conf-call-2.webp and /dev/null differ diff --git a/tutorials/jitsi-debian-stretch/assets/scaleway-jitsi_home_2.webp b/tutorials/jitsi-debian-stretch/assets/scaleway-jitsi_home_2.webp deleted file mode 100644 index 1c148a2d9c..0000000000 Binary files a/tutorials/jitsi-debian-stretch/assets/scaleway-jitsi_home_2.webp and /dev/null differ diff --git a/tutorials/jitsi-debian-stretch/index.mdx b/tutorials/jitsi-debian-stretch/index.mdx deleted file mode 100644 index 84daa8dab8..0000000000 --- a/tutorials/jitsi-debian-stretch/index.mdx +++ /dev/null @@ -1,90 +0,0 @@ ---- -meta: - title: Installing Jitsi Meet on Debian Stretch - description: This page shows you how to install Jitsi Meet Videoconferencing on Debian Stretch -content: - h1: Installing Jitsi Meet on Debian Stretch - paragraph: This page shows you how to install Jitsi Meet Videoconferencing on Debian Stretch -categories: - - instances -tags: media Jitsi-Meet Debian-Stretch -dates: - validation: 2024-11-18 ---- - - -Jitsi Meet is a free and fully encrypted open-source video conferencing solution. - -The tool provides features such as: -* Sharing of desktops, presentations, and more -* Inviting users to a conference via a simple, custom URL -* Editing documents together using Etherpad -* Trading messages and emojis while video conferencing, with integrated chat. - - - -- A Scaleway account logged into the [console](https://console.scaleway.com) -- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization -- An [SSH key](/organizations-and-projects/how-to/create-ssh-key/) -- An [Instance](/instances/how-to/create-an-instance/) running on Debian Stretch (9.0) with **at least 4 GB of RAM**. -- A [domain or subdomain](/domains-and-dns/quickstart/) pointed to your Instance - -## Installing Jitsi Meet - -1. Configure the hostname of the server corresponding to your domain/subdomain name: - ``` - hostnamectl set-hostname jitsi - sed -i 's/^127.0.1.1.*$/127.0.1.1 jitsi.mydomain.tld jitsi/g' /etc/hosts - ``` -2. Start by updating the software already installed on the system: - ``` - apt update && apt upgrade -y - ``` -3. Install Java 8 on the server: - ``` - apt install -y openjdk-8-jre-headless - ``` -4. Setup the `JAVA_HOME` environment variable: - ``` - echo "JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" | tee -a /etc/profile - source /etc/profile - ``` -5. Install a [Nginx](https://nginx.org) web server before installing Jitsi Meet. The Jitsi installation tool will take care of the configuration of Nginx, if it is present on the system. Run the following commands to install and enable Nginx: - ``` - apt install -y nginx - systemctl start nginx.service - systemctl enable nginx.service - ``` - - - If Nginx or Apache is not present on the system, Jitsi Meet will automatically install [Jetty](https://www.eclipse.org/jetty/) during the installation. - -6. Download the APT key and setup the repositories of Jitsi, to install the software via `apt`: - ``` - wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add - - sh -c "echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list" - apt update -y - ``` -7. Launch the installation of Jitsi Meet: - ``` - apt install -y jitsi-meet - ``` - - When asked, enter: - - - The FQDN of your Instance. For example `jitsi.mydomain.tld` and press Enter. - - When asked about the SSL certificate choose the `Generate a new self-signed certificate (You will later get a chance to obtain a Let's Encrypt certificate)` option and press Enter. -8. Run the following script to generate a [Let's Encrypt](https://letsencrypt.org) SSL certificate for your Instance: - ``` - /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh - ``` - - When asked, enter: - - - Your e-mail address to receive notifications regarding your certificate and press enter to request the certificate. -9. The Jitsi Meet Instance is configured now and ready for a first conference call. Open a web browser and type the FQDN of your Instance, for example: `https://jitsi.mydomain.tld`. The following screen will appear: - - - - Enter a name for your conference and press `Go` to enter the conference room. It is now possible to share the link, set a password, configure the audio and video quality, and more for the conference. - - \ No newline at end of file diff --git a/tutorials/jitsi-ubuntu-bionic/assets/scaleway-jitsi-meet-conf-call.webp b/tutorials/jitsi-ubuntu-bionic/assets/scaleway-jitsi-meet-conf-call.webp deleted file mode 100644 index c8e9440445..0000000000 Binary files a/tutorials/jitsi-ubuntu-bionic/assets/scaleway-jitsi-meet-conf-call.webp and /dev/null differ diff --git a/tutorials/jitsi-ubuntu-bionic/assets/scaleway-jitsi_home.webp b/tutorials/jitsi-ubuntu-bionic/assets/scaleway-jitsi_home.webp deleted file mode 100644 index c969cc800f..0000000000 Binary files a/tutorials/jitsi-ubuntu-bionic/assets/scaleway-jitsi_home.webp and /dev/null differ diff --git a/tutorials/jitsi-ubuntu-bionic/assets/scaleway-jitsi_hostname.webp b/tutorials/jitsi-ubuntu-bionic/assets/scaleway-jitsi_hostname.webp deleted file mode 100644 index 4585e39028..0000000000 Binary files a/tutorials/jitsi-ubuntu-bionic/assets/scaleway-jitsi_hostname.webp and /dev/null differ diff --git a/tutorials/jitsi-ubuntu-bionic/index.mdx b/tutorials/jitsi-ubuntu-bionic/index.mdx deleted file mode 100644 index 94c35f5450..0000000000 --- a/tutorials/jitsi-ubuntu-bionic/index.mdx +++ /dev/null @@ -1,97 +0,0 @@ ---- -meta: - title: Installing Jitsi Meet on Ubuntu Bionic Beaver (18.04 LTS) - description: Learn how to install Jitsi Meet videoconferencing on Ubuntu Bionic Beaver (18.04 LTS) with this step-by-step guide. -content: - h1: Installing Jitsi Meet on Ubuntu Bionic Beaver (18.04 LTS) - paragraph: Learn how to install Jitsi Meet videoconferencing on Ubuntu Bionic Beaver (18.04 LTS) with this step-by-step guide. -categories: - - instances -tags: media videoconferencing Jitsi-Meet Ubuntu Bionic-Beaver -dates: - validation: 2024-06-17 - posted: 2020-03-16 - validation_frequency: 24 ---- - -Jitsi Meet serves as an open-source video conferencing solution, designed to facilitate virtual meetings for remote teams. The software emphasizes quality in both video and audio performance and ensures security through fully encrypted connections, employing TLS/SSL protocols and [Let's Encrypt](https://letsencrypt.org/) certificates. - -Jitsi Meet provides features such as: - -* **Desktop and content sharing:** Facilitate meetings by sharing desktops, presentations, and other content. -* **Simplified conference invitations:** Invite participants to your conference using a straightforward, custom URL. -* **Collaborative document editing:** Enhance collaboration by editing documents in real-time using Etherpad during meetings. -* **Integrated chat with messaging and emojis:** Support communication by exchanging messages and emojis within the video conferencing interface. Jitsi Meet features a user-friendly chat function to facilitate interactions. - -In summary, Jitsi Meet provides a competitive alternative to commercial solutions, offering advanced features with a focus on security for remote teams in need of a reliable video conferencing solution. - - - -- A Scaleway account logged into the [console](https://console.scaleway.com) -- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization -- An [SSH key](/organizations-and-projects/how-to/create-ssh-key/) -- An [Instance](/instances/how-to/create-an-instance/) running on Ubuntu Bionic Beaver with **at least 4 GB of RAM**. -- A [domain or subdomain](/domains-and-dns/quickstart/) pointed to your Instance - - - This tutorial describes the installation of Jitsi Meet on Ubuntu Bionic Beaver. If you prefer, you can [install Jitsi Meet on Debian Buster](/tutorials/jitsi-debian/), instead. - - -## Installing Jitsi Meet - -1. [Connect to your Instance via SSH](/instances/how-to/create-an-instance/). -2. Configure the hostname of the server corresponding to your domain/subdomain name. Replace `jitsi.mydomain.tld` with the subdomain pointed to your Instance. - ``` - hostnamectl set-hostname jitsi - sed -i 's/^127.0.1.1.*$/127.0.1.1 jitsi.mydomain.tld jitsi/g' /etc/hosts - ``` -3. Update the software already installed on the system: - ``` - apt update && apt upgrade -y - ``` -4. Install a [Nginx](https://nginx.org) server before installing Jitsi Meet. The Nginx server will serve as a reverse proxy for the Jitsi web interface. The Jitsi installation tool will take care of the configuration of Nginx, if it is present on the system. Run the following commands to install and enable Nginx: - ``` - apt install -y nginx - systemctl start nginx.service - systemctl enable nginx.service - ``` - - - If Nginx or Apache is not present on the system, Jitsi Meet will automatically install [Jetty](https://www.eclipse.org/jetty/) during the installation. - - -5. Download the APT key and set up the repositories of Jitsi, to install the software with `apt`. - ``` - wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add - - sh -c "echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list" - apt update -y - ``` -6. Launch the installation of Jitsi Meet. - ``` - apt install -y jitsi-meet - ``` - - During the installation, you will be prompted to: - - - Enter the FQDN of your Instance. For example `jitsi.mydomain.tld` and press **Enter**: - - - - - Choose the SSL certificate option `Generate a new self-signed certificate (You will later get a chance to obtain a Let's Encrypt certificate)` and press **Enter**. -7. Run the script `/usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh` to obtain a [Let's Encrypt](https://letsencrypt.org) SSL certificate for your Instance: - ``` - /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh - ``` - - During the certificate request, you are asked to enter your e-mail address to receive notifications regarding your certificate. -8. Your private Jitsi Meet Instance is ready for a first conference call. Open a web browser and type the FQDN of your Instance, for example: `https://jitsi.mydomain.tld`. The following screen will appear: - - - Enter a name for your conference and press `Go` to enter the conference room. It is now possible to share the conference link, set a password, configure the audio and video quality, and more. - - Jitsi requires access to your camera and microphone. Authorize the use of these devices on your computer when prompted to do so by your web browser. - - - - -For more information about Jitsi Meet and the advanced configuration of the tool, refer to the [official Jitsi documentation](https://jitsi.github.io/handbook/docs/intro/). \ No newline at end of file diff --git a/tutorials/jitsi-ubuntu-focal-fossa/assets/scaleway-jitsi-meet-conf-call.webp b/tutorials/jitsi-ubuntu-focal-fossa/assets/scaleway-jitsi-meet-conf-call.webp deleted file mode 100644 index 663dfcd3f2..0000000000 Binary files a/tutorials/jitsi-ubuntu-focal-fossa/assets/scaleway-jitsi-meet-conf-call.webp and /dev/null differ diff --git a/tutorials/jitsi-ubuntu-focal-fossa/assets/scaleway-jitsi_home.webp b/tutorials/jitsi-ubuntu-focal-fossa/assets/scaleway-jitsi_home.webp deleted file mode 100644 index 150e56c6d6..0000000000 Binary files a/tutorials/jitsi-ubuntu-focal-fossa/assets/scaleway-jitsi_home.webp and /dev/null differ diff --git a/tutorials/jitsi-ubuntu-focal-fossa/index.mdx b/tutorials/jitsi-ubuntu-focal-fossa/index.mdx deleted file mode 100644 index 6b0f7a06b9..0000000000 --- a/tutorials/jitsi-ubuntu-focal-fossa/index.mdx +++ /dev/null @@ -1,89 +0,0 @@ ---- -meta: - title: Installing Jitsi Meet on Ubuntu 20.04 LTS (Focal Fossa) on Scaleway Instances - description: Discover how to install Jitsi Meet for video conferencing on Ubuntu 20.04 LTS (Focal Fossa) using Scaleway Instances. This detailed guide provides step-by-step instructions for a smooth setup process. -content: - h1: Installing Jitsi Meet on Ubuntu 20.04 LTS (Focal Fossa) on Scaleway Instances - paragraph: Discover how to install Jitsi Meet for video conferencing on Ubuntu 20.04 LTS (Focal Fossa) using Scaleway Instances. This detailed guide provides step-by-step instructions for a smooth setup process. -categories: - - instances - - domains-and-dns -tags: media Jitsi-Meet videoconferencing -dates: - validation: 2025-01-02 - posted: 2022-11-17 ---- - -Jitsi Meet is a fully encrypted, open-source video conferencing tool. - -It provides features like: -* screen sharing -* presentations -* inviting users to a conference through a custom URL -* editing documents together using Etherpad -* integrated chat - - - -- A Scaleway account logged into the [console](https://console.scaleway.com) -- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization -- An [SSH key](/organizations-and-projects/how-to/create-ssh-key/) -- An [Instance](/instances/how-to/create-an-instance/) running on Ubuntu Focal Fossa with **at least 4 GB of RAM**. -- A [domain or subdomain](/domains-and-dns/quickstart/) pointed to your Instance - - - This tutorial shows the installation of Jitsi Meet on Ubuntu Focal Fossa. If you prefer the installation of Jitsi Meet on Ubuntu Bionic Beaver, follow [this tutorial](/tutorials/jitsi-ubuntu-bionic/). - - -### Installing Jitsi Meet - -1. Configure the hostname of the server corresponding to your domain or subdomain. - ``` - hostnamectl set-hostname jitsi - sed -i 's/^127.0.1.1.*$/127.0.1.1 jitsi.mydomain.tld jitsi/g' /etc/hosts - sed -i 's/^127.0.0.1.*$/127.0.0.1 localhost jitsi.mydomain.tld jitsi/g' /etc/hosts - ``` -2. Update the APT package cache and upgrade the software installed on the Instance to the latest version available on the Debian repositories. - ``` - apt update && apt upgrade - ``` -3. Install an [Nginx](https://nginx.org) web server. The Jitsi installation tool handles the Nginx configuration if it is present on the system. - ``` - apt install -y nginx - systemctl start nginx.service - systemctl enable nginx.service - ``` - - - If you have not installed Nginx or Apache, Jitsi Meet will automatically install [Jetty](https://www.eclipse.org/jetty/). - - -4. Download and install the Prosody package repository. - ``` - echo deb http://packages.prosody.im/debian $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list - wget https://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add - - apt install lua5.2 - ``` -5. Download the APT key and set up the repositories of Jitsi: - ``` - curl https://download.jitsi.org/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg' - echo 'deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list > /dev/null - apt update - ``` -6. Launch the installation of Jitsi Meet. - ``` - apt install -y jitsi-meet - ``` - - When asked: - - - The FQDN of your Instance. For example `jitsi.mydomain.tld` and press **Enter**. - - When asked about the SSL certificate choose the `Let's Encrypt certificates` option and press **Enter**. - - Enter your email address. - - Enter your phone number (optional). -7. Open a web browser and type the FQDN of your Instance, for example: `https://jitsi.mydomain.tld`. The following screen displays: - -8. Enter a name for your conference and press `Start meeting` to enter the conference room. - - -For more information about Jitsi Meet and the advanced configuration of the tool, refer to the [official Jitsi documentation](https://jitsi.github.io/handbook/docs/intro/). \ No newline at end of file diff --git a/tutorials/powerdns-ubuntu-bionic/assets/scaleway-powerdns_admin_api.webp b/tutorials/powerdns-ubuntu-bionic/assets/scaleway-powerdns_admin_api.webp deleted file mode 100644 index 1103c3b321..0000000000 Binary files a/tutorials/powerdns-ubuntu-bionic/assets/scaleway-powerdns_admin_api.webp and /dev/null differ diff --git a/tutorials/powerdns-ubuntu-bionic/assets/scaleway-powerdns_admin_dashboard.webp b/tutorials/powerdns-ubuntu-bionic/assets/scaleway-powerdns_admin_dashboard.webp deleted file mode 100644 index 918bf98d12..0000000000 Binary files a/tutorials/powerdns-ubuntu-bionic/assets/scaleway-powerdns_admin_dashboard.webp and /dev/null differ diff --git a/tutorials/powerdns-ubuntu-bionic/assets/scaleway-powerdns_admin_login.webp b/tutorials/powerdns-ubuntu-bionic/assets/scaleway-powerdns_admin_login.webp deleted file mode 100644 index 49f9d3ce47..0000000000 Binary files a/tutorials/powerdns-ubuntu-bionic/assets/scaleway-powerdns_admin_login.webp and /dev/null differ diff --git a/tutorials/powerdns-ubuntu-bionic/assets/scaleway-powerdns_admin_manage_zone.webp b/tutorials/powerdns-ubuntu-bionic/assets/scaleway-powerdns_admin_manage_zone.webp deleted file mode 100644 index 172290b86c..0000000000 Binary files a/tutorials/powerdns-ubuntu-bionic/assets/scaleway-powerdns_admin_manage_zone.webp and /dev/null differ diff --git a/tutorials/powerdns-ubuntu-bionic/index.mdx b/tutorials/powerdns-ubuntu-bionic/index.mdx deleted file mode 100644 index d0fdeccaf6..0000000000 --- a/tutorials/powerdns-ubuntu-bionic/index.mdx +++ /dev/null @@ -1,203 +0,0 @@ ---- -meta: - title: Installing PowerDNS on Ubuntu Jammy Jellyfish (22.04 LTS) - description: This page shows you how to install a PowerDNS server on Ubuntu Linux with a MariaDB backend -content: - h1: Installing PowerDNS on Ubuntu Jammy Jellyfish (22.04 LTS) - paragraph: This page shows you how to install a PowerDNS server on Ubuntu Linux with a MariaDB backend -tags: dns ubuntu PowerDNS server MariaDB -categories: - - Instances -dates: - validation: 2024-10-15 - posted: 2020-09-10 ---- - -The PowerDNS authoritative server is an open-source DNS server written in C++. An authoritative DNS server contains a database of public IP addresses and their associated domain names, serving the purpose of resolving those common names into machine-understandable IP addresses. - -PowerDNS runs on most Linux distributions, including Ubuntu. This tutorial demonstrates how to install PowerDNS authoritative server with a **MariaDB backend** and **PowerDNS Admin** frontend, running on **Ubuntu 22.04 LTS (Jammy Jellyfish)**. - - - -- A Scaleway account logged into the [console](https://console.scaleway.com) -- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization -- An [SSH key](/organizations-and-projects/how-to/create-ssh-key/) -- At least 2 [Instances](/instances/how-to/create-an-instance/) running on Ubuntu Jammy Jellyfish (22.04 LTS) - -## Installing PowerDNS - - - This section covers the basic installation of PowerDNS. Execute these steps on both your primary and secondary Instances. - - -1. Log into your Instance using SSH: - ``` - ssh root@ - ``` -2. Update the `apt` package cache and upgrade the software to the latest version available: - ``` - apt update && apt upgrade -y - ``` -3. Install MariaDB using the `apt` package manager: - ``` - apt install mariadb-server -y - ``` - -4. Initialize the database server by running the interactive setup wizard: - ``` - mysql_secure_installation - ``` - - You will be prompted with the following questions: - - - Enter current password for root: Press `Enter` if none is set. - - Set root password? `Y` - - Type in the new MariaDB root password and confirm it. - - Remove anonymous users? `Y` - - Disallow root login remotely? `Y` - - Remove test database and access to it? `Y` - - Reload privilege tables now? `Y` - -5. Install PowerDNS and the MySQL backend: - ``` - apt install pdns-server pdns-backend-mysql -y - ``` - - Confirm that you want to use `dbconfig-common` to automatically configure the database. - - During the installation, you'll be asked to enter a password for the MySQL backend user. Press `Enter` to generate a random password automatically. - -## Configuring the primary Instance - -On the primary Instance, three main options need to be configured in the `pdns.conf` configuration file: `allow-axfr-ips`, `api`, and `master`. - -1. Open the PowerDNS configuration file: - ``` - nano /etc/powerdns/pdns.conf - ``` - -2. Configure **zone transfers** to other hosts by editing the `allow-axfr-ips` block. In this example, we set up one primary (`ns1.example.com` with IP `192.0.2.1`) and one secondary (`ns2.example.com` with IP `192.0.2.2`) DNS server: - ``` - allow-axfr-ips=192.0.2.2 - ``` - -3. Enable the **API** and set an `api-key`: - ``` - api=yes - api-key= - ``` - -4. Specify that this Instance is the **primary** server: - ``` - master=yes - ``` - -5. Save the file and restart the PowerDNS server to apply the configuration: - ``` - systemctl restart pdns.service - ``` - -## Configuring the secondary Instance - -For the secondary Instance, configure PowerDNS to act as a secondary server. - - - If you have more than one secondary Instance, repeat these steps and change the DNS hostnames accordingly (e.g., `ns3.example.com`). - - -1. Open the PowerDNS configuration file on the secondary Instance: - ``` - nano /etc/powerdns/pdns.conf - ``` - -2. Enable the **slave** mode and configure it to regularly refresh its data with the `slave-cycle-interval` option: - ``` - slave=yes - slave-cycle-interval=60 - ``` - -3. Add the primary Instance as a **supermaster** to the MariaDB backend. Connect to MariaDB and insert the necessary values: - ``` - mysql -p -u root - ``` - - ``` - insert into pdns.supermasters values ('192.0.2.1', 'ns2.example.com', 'admin'); - quit; - ``` - -4. Restart the PowerDNS service on the secondary Instance: - ``` - systemctl restart pdns.service - ``` - -## Testing replication - -1. On the primary Instance, create a test DNS zone: - ``` - pdnsutil create-zone example.com - ``` - -2. Add the primary NS entry: - ``` - pdnsutil add-record example.com @ NS ns1.example.com - ``` - -3. Add the secondary NS entry: - ``` - pdnsutil add-record example.com @ NS ns2.example.com - ``` - -4. Increase the zone's serial number to prepare for the zone transfer: - ``` - pdnsutil increase-serial example.com - ``` - -5. Send a `NOTIFY` message to the secondary Instance: - ``` - pdns_control notify example.com - ``` - -6. Verify the replication by querying the secondary Instance: - ``` - dig NS example.com @ns2.example.com - ``` - -## Setting up a graphical interface (PowerDNS Admin) - -1. Install Docker prerequisites: - ``` - apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y - ``` - -2. Download and install Docker's official GPG key: - ``` - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - - ``` - -3. Add Docker’s official repository: - ``` - add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" - ``` - -4. Update the package list and install Docker: - ``` - apt update && apt install docker-ce docker-ce-cli containerd.io -y - ``` - -5. Run PowerDNS Admin using Docker: - ``` - docker run --net=host -d -v pda-data:/data ngoduykhanh/powerdns-admin:latest - ``` - -6. Open your Instance IP in a web browser: `http://`. Create a user account and log in. - -7. On your first login, enter the API credentials for your PowerDNS Instance. - -8. After logging in, you can manage your DNS zones through the PowerDNS Admin web interface. - -## Conclusion - -You have successfully installed a replicated PowerDNS server with a MariaDB backend on Ubuntu 22.04 LTS. Additionally, you have set up PowerDNS Admin, a web-based interface to manage your DNS zones. - -For more advanced configuration options, refer to the [PowerDNS documentation](https://doc.powerdns.com/authoritative/) and the [PowerDNS Admin project](https://github.com/PowerDNS-Admin/PowerDNS-Admin) for further customization. diff --git a/tutorials/setup-cockroachdb-cluster/assets/scaleway-schema-cockroach-db.webp b/tutorials/setup-cockroachdb-cluster/assets/scaleway-schema-cockroach-db.webp deleted file mode 100644 index 190f0343e2..0000000000 Binary files a/tutorials/setup-cockroachdb-cluster/assets/scaleway-schema-cockroach-db.webp and /dev/null differ diff --git a/tutorials/setup-cockroachdb-cluster/index.mdx b/tutorials/setup-cockroachdb-cluster/index.mdx deleted file mode 100644 index 8a4b231f20..0000000000 --- a/tutorials/setup-cockroachdb-cluster/index.mdx +++ /dev/null @@ -1,349 +0,0 @@ ---- -meta: - title: Installing a multi-node Cockroach database with HA Proxy - description: Discover how to configure a multi-mode CockroachDB cluster with HA proxy. -content: - h1: Installing a multi-node Cockroach database with HA Proxy - paragraph: Discover how to configure a multi-mode CockroachDB cluster with HA proxy. -tags: Cockroach cockroachDB HA-proxy -categories: - - instances - - postgresql-and-mysql -dates: - validation: 2025-04-22 - posted: 2018-04-10 ---- - -In this tutorial, you will gain knowledge on how to deploy a multi-node Cockroach Database, which is a distributed SQL database system capable of handling data in a highly scalable and resilient manner. Additionally, you will also learn how to integrate the use of HAProxy, a popular open-source load-balancing software, to improve the performance and availability of your Cockroach Database. By following this tutorial, you will be able to set up a robust and efficient database system for your applications. - - - -- A Scaleway account logged into the [console](https://console.scaleway.com) -- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization -- An [SSH key](/organizations-and-projects/how-to/create-ssh-key/) -- An [Instance](/instances/how-to/create-an-instance/) running on Ubuntu 16.04 - -## What is CockroachDB and why you should use it - -In a traditional SQL setup, all the complexity of replication needs to be managed by the system administrators. This task is quite substantial and can increase the cost of running your infrastructure in case of a mistake. - -CockroachDB is designed to avoid this kind of misconfiguration problem by having a design that is reliable by default and ready to be used with minimal configuration. - -### Architecture of CockroachDB - -CockroachDB is a distributed SQL database built on top of a transactional and consistent key-value store. The primary design goals for the application are: - -- support for [ACID transactions](https://en.wikipedia.org/wiki/ACID) -- horizontal scalability -- survivability - -Below you find a schema of the architecture of CockroachDB: - - - -- **SQL**: The SQL layer helps developers run SQL queries as in a traditional environment. It provides all the familiar terms and concepts such as schema, tables, and indexes. CockroachDB uses its own SQL feature set. Refer to the [Cockroach documentation](https://www.cockroachlabs.com/docs/stable/sql-feature-support.html) for the complete feature set. -- **Distributed Key-Value Store**: The SQL layer communicates with the distributed key-value store so that we can develop large tables and indexes such as HBase, BigTable, and others. -- **Distributed Transactions**: Transactions are the core part of this application, their implementation of this feature manages the transition from SQL to stores and ranges. -- **Node**: Nodes are the servers that store your data. They can either be virtual or physical machines. The distributed key-value store routes messages to the different nodes of our cluster. -- **Store**: Each node can contain one or more stores, and each store can hold many ranges. [RocksDB](http://rocksdb.org/), an open-source storage engine manages them. -- **Range**: Ranges are the lowest level of key-value data. Each store contains ranges, and each range covers a segment of the larger key-space. Together they form the entire monolithic sorted map. - -## Installation of CockroachDB - -1. [Spin up](/instances/how-to/create-an-instance/) at least three Instances to guarantee redundancy and fault tolerance. We use [Ubuntu Xenial (16.04)](https://www.ubuntu.com/) in this example. -2. Once the servers have booted we install CockroachDB on them: - ``` - wget -qO- https://binaries.cockroachdb.com/cockroach-latest.linux-amd64.tgz | tar xvz - ``` -3. We copy the binary into the `PATH`. It makes it easy to execute cockroach commands from any shell: - ``` - cp -i cockroach-latest.linux-amd64/cockroach /usr/local/bin - ``` - - - It is recommended to run CockroachDB on Instances with at least 1 GB of RAM for optimal performance. - - -## Creation of certificates - -SSL certificates are needed to encrypt the connection between our different Instances. It is possible to either use the `cockroach cert` commands or an alternative like OpenSSL. The example below makes use of `cockroach cert`: - -### Create a certificate and safe directory for the CA key. - -Start by creating the required directories to store the certificates: - - ``` - mkdir certs - mkdir cr-keys - ``` - -### Create the CA key pair: - -Create the Certificate Authority (CA) certificate and key: `ca.crt` and `ca.key`. - - ``` - cockroach cert create-ca --certs-dir=certs --ca-key=cr-keys/ca.key - ``` - - - Keep this key secret. It is the key of your Certificate Authority and can be used to issue certificates that are signed by your server. - - -### Creation of a client key pair for the root user: - -Generate the key pair for the `root` user: `client.root.crt` and `client.root.key`. These files are used to secure the communication between the built-in SQL shell and the cluster. - - ``` - cockroach cert create-client root --certs-dir=certs --ca-key=cr-keys/ca.key - ``` - - - In later steps, we use the root user's certificate to run `cockroachDB` client commands from a local machine. The root user's certificate and the key have to be copied to a remote node as well if you plan to run commands directly as root on that node (for local debugging). - - -### Create a key pair for the nodes: - -1. Create a node certificate and key for each node of our cluster: `node.crt` and `node.key`. They will be used to secure communication between our different nodes: - ``` - cockroach cert create-node --certs-dir=certs --ca-key=cr-keys/ca.key - ``` -2. Create the remote directory and copy the files to the first node: - ``` - ssh @ "mkdir certs" - scp certs/ca.crt certs/node.crt certs/node.key @:~/certs - ``` -3. Delete the local files so that we can create the remaining certificates for our other nodes: - ``` - rm certs/node.crt certs/node.key - ``` - - - This step is required as the new files will also be named `node.crt` and `node.key`. An alternative method to create the files without deleting the original files is to use the `--overwrite` attribute which overwrites the existing files. - -4. Create the key pair for the second node: - ``` - cockroach cert create-node --certs-dir=certs --ca-key=cr-keys/ca.key - ``` -5. Upload the files to the remote node: - ``` - ssh @ "mkdir certs" - scp certs/ca.crt certs/node.crt certs/node.key @:~/certs - ``` - - Repeat these steps for each additional node that we want to use in our cluster. - - - It is recommended to use at least three nodes to have redundancy and replication services of CockroachDB enabled. It is possible to launch an unlimited number of nodes to scale your cluster as the workload grows. - - -## Start the Instances - -Start the cockroachDB daemon on the different nodes by typing the following command (This example is for the first node, you have to replace the parameter `--host=node1_address` with the IP of `node2` and `node3` on the two other Instances): - - ``` - cockroach start --certs-dir=certs --host= --join=:26257,:26257,:26257 --cache=25% --max-sql-memory=25% --background - ``` - -Repeat this step on each node to start the server (do not forget to edit the IP settings according to each node). - -## Initialize the cluster - -Once we have started the different Instances of Cockroach, they will not automatically form a cluster. We have to initialize it by running the following command: - - ``` - cockroach init --certs-dir=certs --host=
- ``` - -The following message displays on the first node: - - ``` - build: CCL v1.1.6 @ 2018/03/12 17:58:05 (go1.8.3) - admin: https://10.10.193.23:8080 - sql: postgresql://root@10.10.193.23:26257? application_name=cockroach&sslmode=verify-full&sslrootcert=certs%2Fca.crt - logs: /root/cockroach-data/logs - store[0]: path=/root/cockroach-data - status: initialized new cluster - clusterID: 4c613798-eb26-412b-8a3a-55654a446188 - nodeID: 1 - build: CCL v1.1.6 @ 2018/03/12 17:58:05 (go1.8.3) - ``` - -On the other nodes, a message appears, confirming that they have joined the cluster: - - ``` - status: initialized new node, joined pre-existing cluster - clusterID: 4c613798-eb26-412b-8a3a-55654a446188 - nodeID: 3 - ``` - -It is possible to verify the status of the cluster from the admin interface of Cockroach DB, available at `https://:8080`. Some statistics of the different nodes connected to our cluster are visible. - - - The administration interface is available on any of the nodes. - - - - Your browser may show a warning about the connection to this site. This message is due to the self-signed certificate that is used by cockroachDB. You can ignore the advice and configure your web browser to accept the certificate. - - -## Synchronizing time - -The clocks of your nodes have to be synchronized to ensure that the replication of your cluster works well. -If a node is out of sync with at least half of the other nodes in the cluster (a default offset of 500ms is set), it will shut itself down . - -It is therefore recommended to synchronize the clock of your nodes with a time server. - -We configure `ntp` with the time servers of Scaleway and Ubuntu in this example: - -1. Install the ntp client: - ``` - sudo apt-get install ntp - ``` -2. Stop the ntp service: - ``` - sudo service ntp stop - ``` -3. Edit the file `/etc/ntp.conf` in your favorite text editor and remove any lines starting with `server` or `pool`. Then add the following content to the file: - ``` - server ntp.int.scaleway.com iburst - server ntp.ubuntu.com iburst - ``` -4. Restart the service: - ``` - sudo service ntp start - ``` -5. Verify that the node is using the correct NTP server: - - ``` - sudo ntpq -p - ``` - - The active NTP server is displayed with an asterisk. - - - You should complete these steps on all of your nodes to make sure the clocks are synchronized. - - -## Test your cluster - -1. On the primary node, launch the SQL client of CockroachDB: - ``` - cockroach sql --certs-dir=certs --host=
- ``` -2. Create a `cockroachtest` database on the node: - ``` - CREATE DATABASE cockroachtest; - ``` -3. Quit the SQL client with `\q` or by pressing `CRTL+C`. -4. Verify that the database has been replicated, by connecting to another node of the cluster: - ``` - cockroach sql --certs-dir=certs --host=
- ``` -5. Do a listing of the databases, which includes `cockroachtest`: - ``` - > SHOW DATABASES; - ``` - - It will return something like: - - ``` - +--------------------+ - | Database | - +--------------------+ - | crdb_internal | - | information_schema | - | cockroachtest | - | pg_catalog | - | system | - +--------------------+ - (5 rows) - ``` - -## Scale the cluster - -Your database needs more computing power? Scale it easily by adding additional nodes to the cluster. - -Launch additional nodes like the ones you have configured during the initial setup of your cluster. - -## Configure HAproxy - -The cluster is now ready to be used. We can use any of the nodes as an endpoint to our databases, but the load is not being distributed automatically between the nodes. CockroachDB provides built-in support for HAproxy, which allows us to equally distribute the load on any of the nodes. - -A Load Balancer increases the **Performance** and **Reliability** of an application. - - - For performance and availability reasons it is not recommended to run the HAproxy on the same node as your cockroachDB. - - -1. Start by running the `cockroach gen haproxy` command on the primary node to generate automatically the configuration file for HAproxy: - ``` - cockroach gen haproxy --certs-dir=certs --host=
--port=26257 - ``` - - It generates an `haproxy.cfg` file with the details of your cluster already configured. It looks like the following example: - - ``` - global - maxconn 4096 - - defaults - mode tcp - timeout connect 10s - timeout client 1m - timeout server 1m - - listen psql - bind :26257 - mode tcp - balance roundrobin - server cockroach1 :26257 - server cockroach2 :26257 - server cockroach3 :26257 - ``` -2. Copy the file to the instance used for HAproxy: - - ``` - scp haproxy.cfg @:~/ - ``` -3. Connect to the machine via SSH and install the proxy on it: - - ``` - sudo apt-get install haproxy - ``` -4. Start HAproxy with our configuration file: - ``` - haproxy -f haproxy.cfg - ``` - - The Load Balancer distributes the requests sent to our cluster equally between the different nodes. -5. Test the configuration of cockroachDB from the primary node: - ``` - cockroach sql --certs-dir=certs --host= - ``` -6. To check to which node you are connected, type the following command: - ``` - > SHOW node_id; - ``` - - The result will look like: - - ``` - +---------+ - | node_id | - +---------+ - | 2 | - +---------+ - (1 row) - ``` - - It shows us the ID of the node to which we are connected. - - - In this setup, the Load Balancer is a single point of failure. If the Load Balancer fails, our cluster becomes unavailable. It is therefore recommended to configure at least two load balancers and to use round-robin DNS to maximize the availability. - - -## Conclusion - -We were able to configure a highly available CockroachDB cluster in this tutorial. As you can see it is easy to configure and provides excellent possibilities to automatize the distribution of your databases, combined with the possibility to scale your cluster at any time if your requirements grow. - -If you want to explore all configuration options, you can find more information in the [documentation of CockroachDB](https://www.cockroachlabs.com/docs/stable/). \ No newline at end of file diff --git a/tutorials/visualize-timeseries-data-timescaledb-grafana/assets/scaleway-grafana_dashboard.webp b/tutorials/visualize-timeseries-data-timescaledb-grafana/assets/scaleway-grafana_dashboard.webp deleted file mode 100644 index 13a6f24262..0000000000 Binary files a/tutorials/visualize-timeseries-data-timescaledb-grafana/assets/scaleway-grafana_dashboard.webp and /dev/null differ diff --git a/tutorials/visualize-timeseries-data-timescaledb-grafana/assets/scaleway-grafana_db.webp b/tutorials/visualize-timeseries-data-timescaledb-grafana/assets/scaleway-grafana_db.webp deleted file mode 100644 index d9cbd41055..0000000000 Binary files a/tutorials/visualize-timeseries-data-timescaledb-grafana/assets/scaleway-grafana_db.webp and /dev/null differ diff --git a/tutorials/visualize-timeseries-data-timescaledb-grafana/assets/scaleway-grafana_login.webp b/tutorials/visualize-timeseries-data-timescaledb-grafana/assets/scaleway-grafana_login.webp deleted file mode 100644 index db516973ee..0000000000 Binary files a/tutorials/visualize-timeseries-data-timescaledb-grafana/assets/scaleway-grafana_login.webp and /dev/null differ diff --git a/tutorials/visualize-timeseries-data-timescaledb-grafana/index.mdx b/tutorials/visualize-timeseries-data-timescaledb-grafana/index.mdx deleted file mode 100644 index ef285e48d3..0000000000 --- a/tutorials/visualize-timeseries-data-timescaledb-grafana/index.mdx +++ /dev/null @@ -1,274 +0,0 @@ ---- -meta: - title: Visualizing time-Series data with TimescaleDB and Grafana - description: This page shows how to visualize time-series data with TimescaleDB and Grafana -content: - h1: Visualizing time-Series data with TimescaleDB and Grafana - paragraph: This page shows how to visualize time-series data with TimescaleDB and Grafana -categories: - - postgresql-and-mysql -tags: time-Series TimescaleDB Grafana Database -dates: - validation: 2024-10-03 - posted: 2019-12-10 - validation_frequency: 18 ---- - -TimescaleDB is a time series database built on PostgreSQL. - -A time-series database typically stores “time-series data”, as the name indicates. It can be seen as a sequence of data points, that measure the same thing over time and store the measurement results in time order. - -Each of these measurements is paired with a timestamp, defined by a name and a set of labeled dimensions (or “tags”). - -Time-series data is everywhere around us and an important part of our everyday life. Whether it is a factory that measures the production output of a specific machine, a farmer observing the humidity of the soil, or a city measuring the regularity between trains, all of this is time-series data. - -In this tutorial, we use a [Database for PostgreSQL](https://www.scaleway.com/en/database/) with the TimescaleDB extension and a Dataset of the air quality at the [Franklin D. Roosevelt Metro station]() in Paris, provided by [RATP](https://dataratp2.opendatasoft.com/explore/dataset/qualite-de-lair-mesuree-dans-la-station-franklin-d-roosevelt-2021-maintenant/information/), the Parisian transport authority. This kind of data is a perfect example of a time-series database, as it monitors certain values over a period of time. Other usages could include data from diverse backgrounds, such as weather data, economic information, or productivity information of an assembly line. - - - -- A Scaleway account logged into the [console](https://console.scaleway.com) -- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization -- An [Instance](/instances/how-to/create-an-instance/) running on Ubuntu Bionic Beaver (18.04) or later to host the Grafana interface -- A [Database for PostgreSQL](/managed-databases-for-postgresql-and-mysql/how-to/create-a-database/) -- `sudo` privileges or access to the root user - -## Creating a new database - -1. Connect to the Scaleway console and click the **Managed Databases** section. -2. Click on your Database Instance. -3. Click the **Managed Databases** tab, then on **+ Create Database**. -4. Enter the name of the new database. In this tutorial, we use `airquality`. -5. Click the **Users** tab, followed by and **Update Permissions**. -6. Grant your user permissions to the newly created `airquality` database. - -## Enabling the TimescaleDB extension - -1. Connect to your Database using the `psql` client: - ``` - psql -h --port -d airquality -U - ``` - - Enter the password for your database user when prompted. - - Replace `rdb_host` with your Database Instance's IP address and `rdb_port` with the port, which can be found under **Endpoint** on the Database information page. Replace `` with the name of the user you granted access to `airquality`. - - -2. Enable the `timescaledb` extension for your database. - ``` - CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE; - ``` - - The following output displays in your terminal: - - ``` - WARNING: - WELCOME TO - _____ _ _ ____________ - |_ _(_) | | | _ \ ___ \ - | | _ _ __ ___ ___ ___ ___ __ _| | ___| | | | |_/ / - | | | | _ ` _ \ / _ \/ __|/ __/ _` | |/ _ \ | | | ___ \ - | | | | | | | | | __/\__ \ (_| (_| | | __/ |/ /| |_/ / - |_| |_|_| |_| |_|\___||___/\___\__,_|_|\___|___/ \____/ - Running version 1.5.1 - For more information on TimescaleDB, please visit the following links: - - 1. Getting started: https://docs.timescale.com/getting-started - 2. API reference documentation: https://docs.timescale.com/api/latest - 3. How TimescaleDB is designed: https://docs.timescale.com/introduction/architecture - - Note: TimescaleDB collects anonymous reports to better understand and assist our users. - For more information and how to disable, please see our docs https://docs.timescaledb.com/using-timescaledb/telemetry. - - CREATE EXTENSION - ``` - -## Prepare the table for TimescaleDB - -1. Create a table called `airquality`, which will be used to store the information. - ``` - CREATE TABLE airquality( - DATETIME TIMESTAMP WITH TIME ZONE NOT NULL, - NO INTEGER, - NO2 INTEGER, - PM10 INTEGER, - CO2 INTEGER, - TEMP NUMERIC(4,1), - HUMI NUMERIC(4,1) - ); - ``` - - The command above creates a new table called `airquality` with seven columns: - - - `DATETIME` contains a timestamp which includes the time zone. - - `NO` contains the average [NO](https://en.wikipedia.org/wiki/Nitric_oxide) concentration in µg/m3. - - `NO2` contains the average [NO2](https://en.wikipedia.org/wiki/Nitrogen_dioxide) concentration in µg/m3. - - `PM10` contains the average [PM10](https://en.wikipedia.org/w/index.php?title=PM10) particles concentration in in µg/m3 - - `CO2` contains the average [CO2](https://en.wikipedia.org/wiki/Carbon_dioxide) concentration in ppm. - - `TEMP` contains the average ambient temperature in °C. - - `HUMI` contains the relative humidity in %. -2. Convert the table you created into a TimescaleDB [hypertable](https://docs.timescale.com/latest/introduction/architecture/#hypertables). - ``` - SELECT create_hypertable('airquality', 'datetime'); - ``` - - The following output displays in the terminal window: - - ``` - airquality=> SELECT create_hypertable('airquality', 'datetime'); - create_hypertable - ------------------------- - (1,public,airquality,t) - (1 row) - ``` - -## Adding and removing data - -1. Add a sample row to the database. The `RETURNING` statement visualizes the data added to the table: - ``` - INSERT INTO airquality(DATETIME,NO,NO2,PM10,CO2,TEMP,HUMI) VALUES (NOW(),4,38,14,398,27.0,47.4) RETURNING *; - ``` - - An output like the following displays: - - ``` - datetime | no | no2 | pm10 | co2 | temp | humi - -------------------------------+----+-----+------+-----+------+------ - 2019-12-10 15:31:28.116471+00 | 4 | 38 | 14 | 398 | 27.0 | 47.4 - (1 row) - - INSERT 0 1 - ``` -2. Remove the data from the table. The following command deletes all data where the value for `temp` is larger than `26`: - ``` - DELETE FROM airquality WHERE temp > 26; - DELETE 1 - ``` - - Run a [garbage collection](https://www.postgresql.org/docs/current/sql-vacuum.html) using the `VACCUM` command to clean up the table and to free unused space: - - ``` - VACUUM airquality; - ``` - - Manually adding data works for a small-scale database, but when it comes to dealing with timescale data you have large sets of data. - -### Importing the dataset - -In this tutorial, we use an [air quality dataset](https://dataratp2.opendatasoft.com/explore/dataset/qualite-de-lair-mesuree-dans-la-station-franklin-d-roosevelt-2021-maintenant/information/) from a Parisian metro station. The data is provided by Paris' transport authority [RATP](https://dataratp2.opendatasoft.com/explore/?sort=modified). - -1. [Download](https://dataratp2.opendatasoft.com/explore/dataset/qualite-de-lair-mesuree-dans-la-station-franklin-d-roosevelt-2021-maintenant/export/) the sample data in CSV-format on your local computer. -2. Convert the downloaded CSV file into an SQL database file: - ``` - cat qualite-de-lair-mesuree-dans-la-station-franklin-d-roosevelt.csv | awk -F';' '{ printf "INSERT INTO airquality(DATETIME,NO,NO2,PM10,CO2,TEMP,HUMI) VALUES (\x27%s\x27,\x27%s\x27,\x27%s\x27,\x27%s\x27,\x27%s\x27,\x27%s\x27,\x27%s\x27);",$1,$2,$3,$4,$5,$6,$7;print ""}' > airquality.sql - ``` -3. Import the file to your database: - ``` - psql -h --port -d airquality -U < airquality.sql - ``` - -## Querying Data - -Now that you have a large dataset available, you can query the data using the `psql` client. - -1. Connect to your database. - ``` - psql -h --port -d airquality -U - ``` -2. To receive a list of the 10 most recent entries in the database run the following command. - ``` - SELECT * FROM airquality ORDER BY datetime DESC LIMIT 10; - ``` - - A list like the following displays: - - ``` - datetime | no | no2 | pm10 | co2 | temp | humi - ------------------------+----+-----+------+-----+------+------ - 2019-12-02 00:00:00+00 | 12 | 42 | 25 | | 14.8 | 36.3 - 2019-12-01 23:00:00+00 | 11 | 40 | 23 | | 15.0 | 36.6 - 2019-12-01 22:00:00+00 | 14 | 42 | 23 | | 15.0 | 38.1 - 2019-12-01 21:00:00+00 | 29 | 48 | 26 | | 14.4 | 41.7 - 2019-12-01 20:00:00+00 | 21 | 43 | 30 | | 13.9 | 42.3 - 2019-12-01 19:00:00+00 | 18 | 40 | 31 | | 14.1 | 42.3 - 2019-12-01 18:00:00+00 | 17 | 40 | 29 | | 14.2 | 41.8 - 2019-12-01 17:00:00+00 | 16 | 39 | 27 | | 14.6 | 40.9 - 2019-12-01 16:00:00+00 | 15 | 40 | 26 | | 15.0 | 41.4 - 2019-12-01 15:00:00+00 | 13 | 40 | 20 | | 14.8 | 41.8 - (10 rows) - ``` -3. Run the following command to retrieve the average temperature on all data: - ``` - SELECT percentile_cont(0.5) - WITHIN GROUP (ORDER BY temp) - FROM airquality; - ``` - - An output like the following displays: - - ``` - percentile_cont - ----------------- - 18.7 - (1 row) - ``` - -For more information on how to read data from your database, refer to TimescaleDB's [read data documentation page](https://docs.timescale.com/latest/using-timescaledb/reading-data). - -## Visualizing data with Grafana - -You can visualize the time-series data by creating a dashboard using [Grafana](https://grafana.com/), an open-source analytics & monitoring solution. - -1. Create a new [Instance](https://www.scaleway.com/en/virtual-instances/) running on Ubuntu Bionic (18.04) from your [Scaleway console](https://console.scaleway.com/dashboard) -2. Log into the Instance [using SSH](/instances/how-to/connect-to-instance/). -3. Add the Grafana repository to the `apt` package cache. - ``` - add-apt-repository "deb https://packages.grafana.com/oss/deb stable main" - ``` -4. Install the GPG key of Grafana to validate the packages. - ``` - wget -q -O - https://packages.grafana.com/gpg.key | apt-key add - - ``` -5. Update the `apt` package cache. - ``` - apt update - ``` -6. Install Grafana using `apt`. - ``` - apt install grafana - ``` -7. Reload the `systemd` daemon, enable the Grafana service to start the application automatically during system boot, and start the application manually. - ``` - systemctl daemon-reload && systemctl enable grafana-server.service && systemctl start grafana-server.service - ``` -8. Open a web browser and point it to `http://:3000/`. - - Replace `` with the IP address of your Instance. - -9. The Grafana login screen displays. Log yourself into Grafana using the username and password `admin`: - - - Upon the first connection, you will be asked to set a new password. -10. Enter it twice and validate the form. The default dashboard displays. -11. Click **Add Datasource** to configure a new datasource. -12. Enter the credentials of your Database Instance: - - - - **Host**: Enter the IP address and the port of your Database Instance separated by a double point. - - **Managed Databases**: The name of the database (for example, `airquality`) - - **User**: The database user - - **Password**: The database password - - **SSL Mode**: The desired SSL validation mode. Set the value to `required`. - - **Version**: This value must correspond to the PostgreSQL version of your Database Instance - - **TimescaleDB**: Enable this value -13. Click **Save & Test** to test the database connection and save the values. -14. Click the Grafana logo to return to the base dashboard. -15. Create a JSON configuration to query the database in Grafana. -16. Click **+ Create** > **Import** and click **Import .json File** to upload the previously downloaded configuration file to Grafana. - - Grafana starts to generate graphs from the time-series data stored in TimescaleDB. You can now browse the data in a visual interface and edit the queries of the database according to your needs: - - - -## Conclusion - -You now have configured a Timescale database, imported time-series data, and learned how to query, modify, and visualize the data using Grafana. For more information about TimescaleDB, refer to the [official Documentation](https://docs.timescale.com/). \ No newline at end of file