From ccaaf71a9f72b9d014f6bf16a3b7948d18190cb5 Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Mon, 18 Nov 2024 16:07:33 +0100 Subject: [PATCH 1/4] feat(tutorial): content refresh tutorials --- .../abort-multipart-upload-minio/index.mdx | 4 +- .../index.mdx | 2 +- tutorials/bind-dns-server/index.mdx | 147 +++++++----- tutorials/configure-apache-kafka/index.mdx | 222 ++++++++---------- .../index.mdx | 9 +- tutorials/configure-nodemcu-iot-hub/index.mdx | 6 +- .../index.mdx | 2 +- tutorials/configure-vm-hyperv/index.mdx | 7 +- .../index.mdx | 2 +- .../index.mdx | 2 +- tutorials/create-valheim-server/index.mdx | 6 +- .../deploy-angular-application/index.mdx | 198 ++++++++-------- .../index.mdx | 214 ++++++++--------- tutorials/dhcpcd-dedibox/index.mdx | 2 +- .../index.mdx | 2 +- .../index.mdx | 19 +- tutorials/jitsi-debian-stretch/index.mdx | 2 +- tutorials/jump-desktop/index.mdx | 6 +- tutorials/prestashop-dedibox/index.mdx | 33 +-- 19 files changed, 431 insertions(+), 454 deletions(-) diff --git a/tutorials/abort-multipart-upload-minio/index.mdx b/tutorials/abort-multipart-upload-minio/index.mdx index b0b871f235..2f131a3593 100644 --- a/tutorials/abort-multipart-upload-minio/index.mdx +++ b/tutorials/abort-multipart-upload-minio/index.mdx @@ -9,12 +9,10 @@ tags: minio multipart-uploads categories: - object-storage dates: - validation: 2024-05-13 + validation: 2024-11-18 hero: assets/scaleway_minio.webp --- -## Object Storage - Multipart Upload Overview - [Multipart Uploads](/storage/object/api-cli/multipart-uploads/) allows you to upload large files (up to 5 TB) to the Object Storage platform in multiple parts. This allows faster, more flexible uploads. If you do not complete a multipart upload, all the uploaded parts will still be stored and counted as part of your storage usage. Multipart uploads can be aborted manually [via the API and CLI](/storage/object/api-cli/multipart-uploads/#aborting-a-multipart-upload) or automatically using a [Lifecycle rule](/storage/object/api-cli/lifecycle-rules-api/#setting-rules-for-incomplete-multipart-uploads). diff --git a/tutorials/backup-synology-nas-s3-hyper-backup/index.mdx b/tutorials/backup-synology-nas-s3-hyper-backup/index.mdx index e457d93977..3311811487 100644 --- a/tutorials/backup-synology-nas-s3-hyper-backup/index.mdx +++ b/tutorials/backup-synology-nas-s3-hyper-backup/index.mdx @@ -10,7 +10,7 @@ categories: tags: synology backup hyperbackup nas hero: assets/scaleway-hyper-backup.webp dates: - validation: 2024-05-13 + validation: 2024-11-18 posted: 2019-12-03 --- diff --git a/tutorials/bind-dns-server/index.mdx b/tutorials/bind-dns-server/index.mdx index 156834365f..4bfdfe32a0 100644 --- a/tutorials/bind-dns-server/index.mdx +++ b/tutorials/bind-dns-server/index.mdx @@ -9,7 +9,7 @@ tags: dns bind categories: - domains-and-dns dates: - validation: 2024-05-13 + validation: 2024-11-18 posted: 2018-12-05 --- @@ -26,12 +26,21 @@ DNS (Domain Name System) is a service that translates the IP address of computer ## Installing BIND -Install BIND and its related tools. +1. Install the latest version of BIND 9.20 and related tools: ``` apt-get install bind9 bind9utils bind9-doc dnsutils ``` +2. Verify the installed version: + ``` + named -v + ``` + The expected output should be: + ``` + BIN 9.20.x + ``` + -## Configuring BIND on the primary Instance +## Configuring the primary DNS server 1. Edit the `name.conf.local` file: ``` @@ -48,52 +57,61 @@ Install BIND and its related tools. // organization //include "/etc/bind/zones.rfc1918"; - zone "scw-domain.ml" IN { - type master; - file "/etc/bind/db.scw-domain.ml"; - allow-update { 51.15.250.21; }; - allow-transfer { 51.15.250.21; }; - notify yes; - }; + zone "example.com" IN { + type master; + file "/etc/bind/db.example.com"; + allow-update { 192.0.2.2; }; + allow-transfer { 192.0.2.2; }; + notify yes; + }; ``` 3. Create your zone file. A zone file must contain at least an SOA, an NS, and an A record or CNAME. ``` - nano db.scw-domain.ml + sudo nano /etc/bind/db.example.com ``` 4. Paste the following: ``` - ; - ; BIND data file for local loopback interface - ; $TTL 10800 - scw-domain.ml. IN SOA ns1.scw-domain.ml. admin.scw-domain.ml. ( - 2018120615 ; Serial - 10800 ; Refresh - 3600 ; Retry - 2419200 ; Expire - 604800 ) ; Negative Cache TTL - ; + @ IN SOA ns1.example.com. admin.example.com. ( + 2024111801 ; Serial + 10800 ; Refresh + 3600 ; Retry + 604800 ; Expire + 86400 ) ; Negative Cache TTL - ; Nameserver + ; Name servers + @ IN NS ns1.example.com. + @ IN NS ns2.example.com. + + ; A and AAAA records + ns1 IN A 192.0.2.1 + ns2 IN A 192.0.2.2 + + ; Example host + www IN A 192.0.2.3 + www IN AAAA 2001:db8::1 + ``` + +5. Enable DNSSEC (optional but recommended): + ``` + sudo dnssec-keygen -a RSASHA256 -b 2048 -n ZONE example.com + sudo dnssec-signzone -o example.com /etc/bind/db.example.com- + ``` - scw-domain.ml. IN NS ns1.scw-domain.ml. - scw-domain.ml. IN NS ns2.scw-domain.ml. - ns1 86400 IN A 51.15.242.21 - ns1 86400 IN AAAA 2001:bc8:4400:2c00::14:229 - ns2 86400 IN A 51.15.250.21 - ns2 86400 IN AAAA 2001:bc8:4400:2c00::2c:1f - www 86400 IN A 51.15.242.21 - www 86400 IN AAAA 2001:bc8:4400:2c00::14:229 +6. Restart the BIND server: + ``` + systemctl restart bind9 ``` -## Configuring Bind on the secondary Instance +## Configuring the secondary DNS server 1. Edit the `name.conf.local` file: ``` cd /etc/bind nano named.conf.local ``` -2. Paste the following: + +2. Add the slave zone definition: ``` // // Do any local configuration here @@ -102,34 +120,55 @@ Install BIND and its related tools. // Consider adding the 1918 zones here, if they are not used in your // organization //include "/etc/bind/zones.rfc1918"; - zone "scw-domain.ml" IN { - type slave; - file "/etc/bind/db.scw-domain.ml"; - masters { 51.15.242.21; }; - allow-transfer { none; }; - allow-notify { 127.0.0.1; 51.15.242.21; 51.15.250.21; 2001:bc8:4400:2c00::14:229; }; - }; + zone "example.com" IN { + type slave; + file "/etc/bind/db.example.com"; + masters { 192.0.2.1; }; + allow-transfer { none; }; + }; ``` -3. On the primary machine, restart the service to verify that the zone replication works properly. + + Replace `example.com` and the IP address of your primary server. + + +3. Restart the BIND service. ``` service bind9 restart ``` -The following output displays in the syslog file of the secondary machine: +### Testing the Configuration + +1. Check the primary DNS server: + ```bash + dig @192.0.2.1 www.example.com + ``` + +2. Verify the secondary DNS server: + ```bash + dig @192.0.2.2 www.example.com + ``` + + Expected output for both: + ``` + ;; ANSWER SECTION: + www.example.com. 86400 IN A 192.0.2.3 + ``` + +3. Test zone replication: + Restart the primary DNS server and check the logs on the secondary server: + ```bash + sudo tail -f /var/log/syslog + ``` + +## Security and best Practices + +- Use `allow-transfer` and `allow-update` directives to limit who can query or modify your DNS zones. +- Sign your zones using DNSSEC to protect against DNS spoofing and man-in-the-middle attacks. +- Use `rndc` or log analysis tools to monitor DNS queries and server performance. -``` -tail /var/log/syslog -Jan 11 17:24:22 bind-client named[11492]: client @0x7fa0d00c7260 51.15.242.21#42782: received notify for zone 'scw-domain.ml' -Jan 11 17:24:22 bind-client named[11492]: zone scw-domain.ml/IN: notify from 51.15.242.21#42782: zone is up to date -Jan 11 17:24:22 bind-client named[11492]: client @0x7fa0d003b900 2001:bc8:4400:2c00::14:229#53121: received notify for zone 'scw-domain.ml' -Jan 11 17:24:22 bind-client named[11492]: zone scw-domain.ml/IN: notify from 2001:bc8:4400:2c00::14:229#53121: zone is up to date -``` +## Conclusion -You can try to resolve hostnames on both servers by typing `dig www.scw-domain.ml @ns1.scw-domain.ml` & `dig www.scw-domain.ml @ns2.scw-domain.ml` +You have successfully configured a DNS server using BIND 9.20. You can now resolve domain names within your infrastructure or serve DNS queries to external clients. -You should see in the answer section the following: -``` -;; ANSWER SECTION: -www.scw-domain.ml. 86400 IN A 51.15.242.21 -``` +For more advanced configurations and features, refer to the [official BIND 9.20 documentation](https://kb.isc.org/docs/isc-bind-9). diff --git a/tutorials/configure-apache-kafka/index.mdx b/tutorials/configure-apache-kafka/index.mdx index 888663d809..a7feeef265 100644 --- a/tutorials/configure-apache-kafka/index.mdx +++ b/tutorials/configure-apache-kafka/index.mdx @@ -10,7 +10,7 @@ categories: - kubernetes - instances dates: - validation: 2024-05-13 + validation: 2024-11-18 posted: 2018-04-07 --- @@ -63,78 +63,69 @@ Kafka is built in Scala and Java and can run on any platform that is capable of For security reasons, it is not recommended to run your applications as root user. You should create a dedicated Kafka user and run the application with user privileges. -1. Update the system and download a Java environment as Kafka relies on it: +1. Update the system and download a Java environment as Kafka relies on it. Kafka 3.8.1 requires Java 11 or later. Install OpenJDK 17: ``` - apt update && apt upgrade - apt install openjdk-11-jdk + apt update && apt upgrade + apt install openjdk-17-jdk ``` - - Kafka relies on [ZooKeeper](https://zookeeper.apache.org/) to coordinate and synchronize information between the different Kafka nodes. The Kafka package comes pre-packed with a ZooKeeper application, but as it is available in Ubuntu's repository we can install it easily with `apt`. -2. Install `ZooKeeper` - ``` - apt install zookeeperd +2. Download Kafka and extract it ``` -3. Download Kafka and extract it - ``` - wget https://downloads.apache.org/kafka/3.7.0/kafka-3.7.0-src.tgz - tar -zxf kafka-3.7.0-src.tgz - mv kafka-3.6.0-src /usr/local/kafka + wget https://downloads.apache.org/kafka/3.8.1/kafka_2.13-3.8.1.tgz + tar -zxf kafka_2.13-3.8.1.tgz + mv kafka_2.13-3.8.1 /usr/local/kafka mkdir /tmp/kafka-logs ``` -4. Enter the Kafka directory and start the Gradle daemon - ``` - cd /usr/local/kafka - ./gradlew jar - ``` -5. Start the ZooKeeper service: - ``` - /usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties - ``` -6. Open another terminal session and start the first Kafka broker - ``` - /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties - ``` - - Kafka stores the data in topics. Topics can be seen as a table in a database or a folder in a file system. It contains the messages sent to Kafka. -7. Create the first topic - ``` - /usr/local/kafka/$ bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 - ``` - - This command will create a topic `test` by passing via the ZooKeeper instance running on `localhost:9092` and we get a response: `Created topic "test"`. - -Our first Kafka broker is ready now to receive some messages. +3. Configure Kafka for KRaft Mode (ZooKeeper-less) and initialize the Kafka cluster: + ```bash + /usr/local/kafka/bin/kafka-storage.sh format -t -c /usr/local/kafka/config/kraft/server.properties + ``` + + Replace `` with a unique identifier for your cluster. + + + Edit the `server.properties` file: + ```properties + process.roles=broker,controller + node.id=1 + controller.quorum.voters=1@localhost:9093,2@localhost:9094,3@localhost:9095 + listeners=PLAINTEXT://localhost:9092,CONTROLLER://localhost:9093 + listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT + inter.broker.listener.name=PLAINTEXT + log.dirs=/tmp/kafka-logs + ``` + +4. Start the Kafka Broker: + ```bash + /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/kraft/server.properties + ``` + +## Creating a topic + +Create a topic named `test` using the following command: +```bash +/usr/local/kafka/bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1 +``` +You should see the response: `Created topic "test"`. ## Sending messages -Kafka comes with a command line tool that can to send messages to our broker. - -1. Send the first messages - ``` - /usr/local/kafka/bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092 - ``` -2. Type some messages that we can send to Kafka: - ``` - This is a test message - This is another test message - ``` - - It is possible to exit the tool by pressing on `CTRL+C`. +Use the Kafka producer tool to send messages: +```bash +/usr/local/kafka/bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092 +``` +Type messages and press `CTRL+C` to exit: +``` +This is a test message +This is another test message +``` ## Starting a consumer -1. As we have sent some messages to Kafka, start a consumer - ``` - /usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning - ``` - - The messages that we have sent previously to Kafka will appear on the client: - - ``` - This is a test message - This is another test message - ``` -2. Exit the tool by pressing `CTRL+C` on your keyboard. +Use the Kafka consumer tool to read messages: +```bash +/usr/local/kafka/bin/kafka-console-consumer.sh --topic test --bootstrap-server localhost:9092 --from-beginning +``` +The messages you sent will appear. Press `CTRL+C` to exit. ## Starting a multi-broker cluster @@ -144,71 +135,56 @@ _If you configure Kafka for testing purposes you can run the different brokers o We will setup a cluster consisting of three Kafka brokers. This will allow us to keep the cluster running even if one broker fails. -1. First, we have to clone the configuration files +1. Clone the configuration files: ``` - cp /usr/local/kafka/config/server.properties /usr/local/kafka/config/server-1.properties - cp /usr/local/kafka/config/server.properties /usr/local/kafka/config/server-2.properties + cp /usr/local/kafka/config/kraft/server.properties /usr/local/kafka/config/server-1.properties + cp /usr/local/kafka/config/kraft/server.properties /usr/local/kafka/config/server-2.properties ``` - Now we have to edit the configuration files to configure some parameters give a unique identifier to each instance. -2. Modify the following parameters in `server-1.properties` - ``` - broker.id=1 - listeners=PLAINTEXT://localhost:9093 - log.dir=/tmp/kafka-logs-1 - ``` -3. Edit the file `server-2.properties` as follows - ``` - broker.id=2 - listeners=PLAINTEXT://localhost:9094 - log.dir=/tmp/kafka-logs-2 - ``` -4. Zookeeper and our first node are already started, start the two new nodes: - ``` - /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server-1.properties & - /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server-2.properties & - ``` -5. Create a topic that is replicated on the three brokers: - ``` - /usr/local/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic replicated-topic - ``` - Our cluster is running now and has its fist topic `replicated-topic`. -6. Run the following command to check the status of the cluster: - ``` - /usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic replicated-topic - Topic:replicated-topic PartitionCount:1 ReplicationFactor:3 Configs: - Topic: replicated-topic Partition: 0 Leader: 0 Replicas: 0,1,2 Isr: 0,1,2 - ``` - - Since our cluster has only one topic, there is only one line. Here is the information on how to read it: - - **"Leader"** is the responsible node for reads and writes on the given partition. Each node will be a leader for a randomly chosen part of partitions. - - **"Replicas"** contains the list of nodes that replicate the log for this partition. This listing contains all nodes, no matter if they are the leader or if they are currently reachable (they might be out of sync). - - **"Isr"** contains the set of "in-sync" replicas. This is the subset of replicas that are currently active and connected to the leader. -7. Our cluster is up and running now. Let's feed some test messages to it: - ``` - /usr/local/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic replicated-topic - ``` - - Type some messages and press `CTRL+C` to exit the `producer`: - - ``` - This is a first test message - This is a second test message - ... - ``` -8. Let us consume the data - ``` - /usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic replicated-topic - ``` - - The messages will appear on the screen. To exit the `consumer` press on `CTRL+C`on your keyboard. - - ``` - This is a first test message - This is a second test message - ... - ``` +2. Modify each configuration file: + - `server-1.properties`: + ```properties + node.id=2 + listeners=PLAINTEXT://localhost:9094 + log.dirs=/tmp/kafka-logs-1 + ``` + - `server-2.properties`: + ```properties + node.id=3 + listeners=PLAINTEXT://localhost:9095 + log.dirs=/tmp/kafka-logs-2 + ``` + +3. Start additional brokers: + ```bash + /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server-1.properties & + /usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server-2.properties & + ``` + +4. Create a replicated topic: + ```bash + /usr/local/kafka/bin/kafka-topics.sh --create --topic replicated-topic --bootstrap-server localhost:9092 --partitions 1 --replication-factor 3 + ``` + +5. Check cluster status: + ```bash + /usr/local/kafka/bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic replicated-topic + ``` + +## Security best practices + +1. Enable TLS/SSL to configure secure communication: + ```properties + listeners=SSL://localhost:9092 + ssl.keystore.location=/path/to/keystore.jks + ssl.keystore.password=your-keystore-password + ssl.key.password=your-key-password + ssl.truststore.location=/path/to/truststore.jks + ssl.truststore.password=your-truststore-password + ``` + +2. Use SASL or OAuth2 for authentication and define ACLs for resource access. ## Importing and exporting data with Kafka Connect diff --git a/tutorials/configure-dvc-with-object-storage/index.mdx b/tutorials/configure-dvc-with-object-storage/index.mdx index 2d928cac83..d9ac1ca55a 100644 --- a/tutorials/configure-dvc-with-object-storage/index.mdx +++ b/tutorials/configure-dvc-with-object-storage/index.mdx @@ -9,7 +9,7 @@ tags: amazon-s3 dvc machine-learning data-science categories: - object-storage dates: - validation: 2024-05-13 + validation: 2024-11-18 posted: 2023-06-05 --- @@ -85,7 +85,7 @@ In this tutorial, you learn how to use [Scaleway Object Storage](https://www.sca ```bash git push ``` - + ## Pushing data to Scaleway Object Storage 1. Run the following command to add your bucket as remote storage for your data: @@ -135,6 +135,5 @@ In this tutorial, you learn how to use [Scaleway Object Storage](https://www.sca ## Going further -Refer to the [official DVC documentation](https://dvc.org/doc) for more information on configuration and use cases. - -Refer to the [official Git documentation](https://git-scm.com/doc) for more information and tutorials on version control. \ No newline at end of file +* Refer to the [official DVC documentation](https://dvc.org/doc) for more information on configuration and use cases. +* Refer to the [official Git documentation](https://git-scm.com/doc) for more information and tutorials on version control. \ No newline at end of file diff --git a/tutorials/configure-nodemcu-iot-hub/index.mdx b/tutorials/configure-nodemcu-iot-hub/index.mdx index 7790461311..a1ea8afc3c 100644 --- a/tutorials/configure-nodemcu-iot-hub/index.mdx +++ b/tutorials/configure-nodemcu-iot-hub/index.mdx @@ -5,16 +5,14 @@ meta: content: h1: Configuring a NodeMCU device with IoT Hub paragraph: Discover how to make a NodeMCU device communicate with Scaleway IoT Hub -categories: +categories: - iot-hub dates: - validation: 2024-05-13 + validation: 2024-11-18 tags: iot iot-hub NodeMCU Arduino-IDE hero: assets/scaleway_nodemcu.webp --- -## NodeMCU - Overview - Scaleway's IoT Hub lets your connected devices share messages. In this tutorial, we use a [NodeMCU](https://www.nodemcu.com/index_en.html) embedded Microcontroller ([ESP8266](https://en.wikipedia.org/wiki/ESP8266)) with WiFi, and a DHT11 temperature sensor, to collect temperature and humidity information. We use the Arduino IDE to configure the microcontroller and transfer the data via WiFi to the IoT Hub. The data is then retrieved from the IoT Hub by [Node-RED](https://nodered.org/) to allow visualization in a dashboard. diff --git a/tutorials/configure-realtime-alerting-slack/index.mdx b/tutorials/configure-realtime-alerting-slack/index.mdx index 9c39bce6a5..5a5c95b35c 100644 --- a/tutorials/configure-realtime-alerting-slack/index.mdx +++ b/tutorials/configure-realtime-alerting-slack/index.mdx @@ -10,7 +10,7 @@ hero: assets/scaleway_iot_slack.webp categories: - iot-hub dates: - validation: 2024-05-13 + validation: 2024-11-18 posted: 2020-11-17 --- diff --git a/tutorials/configure-vm-hyperv/index.mdx b/tutorials/configure-vm-hyperv/index.mdx index 84d464742f..05ab04c25a 100644 --- a/tutorials/configure-vm-hyperv/index.mdx +++ b/tutorials/configure-vm-hyperv/index.mdx @@ -9,7 +9,7 @@ tags: hyper-v dedibox virtual-machine categories: - dedibox dates: - validation: 2024-05-13 + validation: 2024-11-18 posted: 2020-01-23 --- @@ -23,8 +23,9 @@ It is available since the release of Windows Server 2012. - A [Scaleway Dedibox](http://www.scaleway.com/en/dedibox) server that fulfills the hardware requirements of the [HyperV version](https://docs.microsoft.com/en-us/windows-server/virtualization/hyper-v/system-requirements-for-hyper-v-on-windows) you have - At least one [failover IP](/dedibox-network/ip-failover/concepts/#failover-ips) with a [virtual MAC address](/dedibox-network/ip-failover/concepts/#virtual-mac-address) - - This tutorial is based on the 2019 version of HyperV running on [Windows Server 2019](https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2019). + + - Microsoft has discontinued the free standalone Hyper-V Server product. The last version, Hyper-V Server 2019, reached the end of mainstream support in January 2024, with extended support continuing until January 2029. + - Hyper-V remains available as a role within Windows Server operating systems. This tutorial is based on the 2019 version of HyperV running on [Windows Server 2019](https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2019). ## Installing HyperV diff --git a/tutorials/configuring-loadbalancer-wordpress/index.mdx b/tutorials/configuring-loadbalancer-wordpress/index.mdx index 0fd07ae153..5cf9fbcb04 100644 --- a/tutorials/configuring-loadbalancer-wordpress/index.mdx +++ b/tutorials/configuring-loadbalancer-wordpress/index.mdx @@ -10,7 +10,7 @@ categories: - instances tags: WordPress Load-Balancer dates: - validation: 2024-05-13 + validation: 2024-11-18 posted: 2019-04-08 --- diff --git a/tutorials/create-openwrt-image-for-scaleway/index.mdx b/tutorials/create-openwrt-image-for-scaleway/index.mdx index 7dfaf1b604..d39963f48c 100644 --- a/tutorials/create-openwrt-image-for-scaleway/index.mdx +++ b/tutorials/create-openwrt-image-for-scaleway/index.mdx @@ -10,7 +10,7 @@ categories: - instances tags: openwrt qcow2 dates: - validation: 2024-05-13 + validation: 2024-11-18 posted: 2022-10-24 --- diff --git a/tutorials/create-valheim-server/index.mdx b/tutorials/create-valheim-server/index.mdx index 34101498c7..41111c9ebb 100644 --- a/tutorials/create-valheim-server/index.mdx +++ b/tutorials/create-valheim-server/index.mdx @@ -8,14 +8,12 @@ content: tags: gaming Valheim hero: assets/scaleway_valheim.webp dates: - validation: 2024-05-13 + validation: 2024-11-18 categories: - instances --- -## Valheim Server - Overview - -[Valheim](https://www.valheimgame.com/) is a survival and sandbox video game that was released in early access on 2 February 2021 for Windows and Linux on Steam. Within only one month after its release the game sold more than 5 million copies and is one of the most played games on Steam. +Valheim is a survival and sandbox video game that was released in early access on 2 February 2021 for Windows and Linux on Steam. Within only one month after its release the game sold more than 5 million copies and is one of the most played games on Steam. Players of the game are Vikings in an afterlife where they have to complete missions like crafting tools, building shelters, and fighting enemies to survive. The game has multiple biomes available, such as meadows, swamps, ashlands, mountains, and oceans. Each of these biomes is unique and comes with its own difficulty level - which means players are confronted with different items and enemies. Players can travel through these biomes by either foot or boat. The game supports multiplayer mode with up to ten concurrent players. diff --git a/tutorials/deploy-angular-application/index.mdx b/tutorials/deploy-angular-application/index.mdx index 5bc20c4b3d..4c837b449f 100644 --- a/tutorials/deploy-angular-application/index.mdx +++ b/tutorials/deploy-angular-application/index.mdx @@ -1,133 +1,123 @@ --- -meta: - title: Creating and deploying an Angular application on Serverless Containers - description: This page shows how to create and deploy an Angular application on Serverless Containers. +title: Creating and deploying an Angular application on Serverless Containers +description: This page shows how to create and deploy an Angular 18 application on Scaleway Serverless Containers. content: - h1: Creating and deploying an Angular application on Serverless Containers - paragraph: This page shows how to create and deploy an Angular application on Serverless Containers. + h1: Creating and deploying an Angular application on Scaleway Serverless Containers + paragraph: This page shows how to create and deploy an Angular 18 application on Scaleway Serverless Containers. tags: serverless angular docker categories: - containers dates: - validation: 2024-05-13 + validation: 2024-11-18 posted: 2022-04-26 +``` + --- -Angular is a development platform that can scale from single-developer projects to enterprise-level applications. The platform is built on TypeScript, a superset of JavaScript, and provides features such as: -* A component-based framework for building scalable web applications -* A collection of libraries that cover a wide variety of features, including routing, forms management, client-server communication, and more -* A suite of developer tools to develop, build, test, and update code. +Angular 18 is the latest development platform that scales from single-developer projects to enterprise-level applications. The platform provides enhanced performance, better server-side rendering, and a robust component-based framework. + +### Prerequisites - A Scaleway account logged into the [console](https://console.scaleway.com) -- [Owner](/identity-and-access-management/iam/concepts/#owner) status or [IAM permissions](/identity-and-access-management/iam/concepts/#permission) allowing you to perform actions in the intended Organization +- [Owner](/identity-and-access-management/iam/concepts/#owner) status or [IAM permissions](/identity-and-access-management/iam/concepts/#permission) for your organization - An [SSH key](/identity-and-access-management/organizations-and-projects/how-to/create-ssh-key/) - A [Container Registry namespace](/containers/container-registry/how-to/create-namespace/) -- Installed Angular on your local computer -- Installed Docker on your local machine to build and push the Docker image +- Installed [Angular 18](https://angular.dev/installation) and [Node.js](https://nodejs.org/en/learn/getting-started/how-to-install-nodejs) on your local machine +- Installed [Docker](/tutorials/install-docker-ubuntu-jammy-jellyfish/) for building and pushing the Docker image -Make sure `angular-cli` is installed on your local machine. If you have not installed it yet, run `sudo apt install angular-cli` on Ubuntu/Debian Linux-based machines or install it using Homebrew on macOS: `brew install angular-cli`. +Make sure `@angular/cli` version 18 or higher is installed on your local machine. If you have not installed it yet, run `npm install -g @angular/cli@latest`. -## Creating a demo application - -1. Run the command below to create a new Angular application. It initializes a new project and creates the files required to build the application. - ``` - ng new demo-app - ``` -2. Enter the application directory: - ``` - cd demo-app - ``` - Run the command `ls` to see a list of the applications' files: - ``` - README.md node_modules src tsconfig.spec.json - angular.json package-lock.json tsconfig.app.json - karma.conf.js package.json tsconfig.json - ``` -3. Type the following command to run the development server: - ``` - ng serve - ``` -4. Open a web browser and point it to `http://localhost:4200` to see the Angular application: - - - Press `CTRL+C` in your terminal to stop the development server. -5. Add an `nginx-configuration.conf` file inside the `demo-app` directory and add the following content to it: - ```sh - # Expires map - map $sent_http_content_type $expires { - default off; - text/html epoch; - text/css max; - application/json max; - application/javascript max; - ~image/ max; - } - - server { - listen 80; - location / { - root /usr/share/nginx/html; - index index.html index.htm; - try_files $uri $uri/ /index.html =404; - } - expires $expires; - gzip on; - } - ``` - - The configuration file above contains information about expiration headers for images and other content (CSS, HTML, etc.) and switches `gzip` compression on to improve the performance of the application. -6. Create a Dockerfile named `Dockerfile` in the applications directory and copy the following information into it: - ``` - # Build and compile the frontend - FROM node:latest as build-stage - WORKDIR /app - COPY package*.json /app/ - RUN npm install -g @angular/cli - RUN npm install - COPY ./ /app/ - RUN ng build --output-path=./dist/out --configuration production - # Get the compiled app ready to be served with Nginx - FROM nginx:latest - COPY --from=build-stage /app/dist/out/ /usr/share/nginx/html -COPY ./nginx-configuration.conf /etc/nginx/conf.d/default.conf - ``` - -## Building and publishing the Docker image +### Creating a demo application + +1. Initialize the Angular application: + ```bash + ng new demo-app + ``` +2. Enter into the application directory: + ```bash + cd demo-app + ``` +3. Run the development server: + ```bash + ng serve + ``` +4. Open `http://localhost:4200` in your browser to verify the application. Press `CTRL+C` to stop the server. + +5. Add an NGINX configuration file `nginx-configuration.conf` inside the `demo-app` directory with the following content: + ```nginx + map $sent_http_content_type $expires { + default off; + text/html epoch; + text/css max; + application/json max; + application/javascript max; + ~image/ max; + } + + server { + listen 80; + location / { + root /usr/share/nginx/html; + index index.html index.htm; + try_files $uri $uri/ /index.html =404; + } + expires $expires; + gzip on; + } + ``` + +6. Create a Dockerfile. [Learn more about creating Dockerfiles](https://docs.docker.com/get-started/docker-concepts/building-images/writing-a-dockerfile/) + ``` + # Build and compile the frontend + FROM node:18-alpine as build-stage + WORKDIR /app + COPY package*.json /app/ + RUN npm install -g @angular/cli + RUN npm install + COPY ./ /app/ + RUN ng build --output-path=./dist/out --configuration production + + # Serve with NGINX + FROM nginx:stable + COPY --from=build-stage /app/dist/out/ /usr/share/nginx/html + COPY ./nginx-configuration.conf /etc/nginx/conf.d/default.conf + ``` + +--- + +### Building and Publishing the Docker Image - Make sure that you have [connected your namespace](/containers/container-registry/how-to/connect-docker-cli/) to the Docker CLI before running the following steps. +Ensure you have [connected your namespace](/containers/container-registry/how-to/connect-docker-cli/) to the Docker CLI before proceeding. -1. Run the following command to build the Docker image: - ``` - docker build -t demo-app:latest . - ``` +1. Build the Docker image: + ```bash + docker build -t demo-app:latest . + ``` 2. Tag the Docker image: - ``` - docker tag demo-app:latest rg.fr-par.scw.cloud/demo-namespace/demo-app:latest - ``` + ```bash + docker tag demo-app:latest rg.fr-par.scw.cloud/demo-namespace/demo-app:latest + ``` + Replace `demo-namespace` with your namespace name. - - * Make sure you replace `demo-namespace` with the name of your [Container Registry namespace](/containers/container-registry/how-to/create-namespace/). - * Make sure that the [privacy settings](/containers/container-registry/how-to/manage-image-privacy-settings/) of your namespace are set to **public**. - -3. Push the image to the registry: - ``` - docker push rg.fr-par.scw.cloud/demo-namespace/demo-app:latest - ```` +3. Push the image to the Scaleway registry: + ```bash + docker push rg.fr-par.scw.cloud/demo-namespace/demo-app:latest + ``` ## Deploying the application on Serverless Containers -1. Click **Containers** in the Serverless section of the side menu of the Scaleway console. A list of your container namespaces displays. +1. Click Containers in the Serverless section of the side menu of the Scaleway console. A list of your container namespaces displays. 2. Click the name of the namespace in which you want to deploy the application. The list of your containers displays. - If you do not have a container namespace yet, click **+ Create a namespace** to create a new one. + If you do not have a container namespace yet, click + Create a namespace to create a new one. -3. Click **Deploy a Container**. The container deployment wizard displays. +3. Click Deploy a Container. The container deployment wizard displays. Provide the following information to deploy the container: - Choose the pushed image in your registry's namespace and set the port value to 80. @@ -136,9 +126,13 @@ COPY ./nginx-configuration.conf /etc/nginx/conf.d/default.conf - Define the container's resources - Configure the scaling of your application - Leave the other options at their default values -4. Click **Deploy a Container** to deploy your application. Your application displays in the list of containers: +4. Click Deploy a Container to deploy your application. Your application displays in the list of containers: -5. Click on the container's name. The container information page displays. Click the **Container Settings** tab. The container endpoint displays in the container information block. +5. Click on the container's name. The container information page displays. Click the Container Settings tab. The container endpoint displays in the container information block. -Copy the endpoint URL and open it in a web browser. The Angular application displays. It can now automatically scale based on the application's load and within the ranges set for the deployment. \ No newline at end of file +Copy the endpoint URL and open it in a web browser. The Angular application displays. It can now automatically scale based on the application's load and within the ranges set for the deployment. + + + Remember that Scaleway enforces a DNS query rate limit of 20 queries per second per container instance. Ensure your application adheres to this limit. + diff --git a/tutorials/deploy-hasura-engine-database-postgresql/index.mdx b/tutorials/deploy-hasura-engine-database-postgresql/index.mdx index 5be908cfb5..d96a602fdc 100644 --- a/tutorials/deploy-hasura-engine-database-postgresql/index.mdx +++ b/tutorials/deploy-hasura-engine-database-postgresql/index.mdx @@ -23,133 +23,105 @@ In this tutorial, you will learn how to get started with Hasura GraphQL Engine u - A Scaleway account logged into the [console](https://console.scaleway.com) - [Owner](/identity-and-access-management/iam/concepts/#owner) status or [IAM permissions](/identity-and-access-management/iam/concepts/#permission) allowing you to perform actions in the intended Organization - A [Scaleway Database for PostgreSQL](https://www.scaleway.com/en/database/) -- Installed [Docker](https://docs.docker.com/install/) on your local computer +- Installed [Docker](https://docs.docker.com/get-docker/) on your local computer +- Basic understanding of Docker, PostgreSQL, and GraphQL ## Linking Hasura GraphQL engine with a Database for PostgreSQL Hasura provides a pre-configured [repository](https://github.com/hasura/graphql-engine/tree/stable/install-manifests) to deploy the application in a few simple steps in a Docker container. -1. Download the Docker `docker-run.sh` script using `wget`. - ``` - wget https://raw.githubusercontent.com/hasura/graphql-engine/stable/install-manifests/docker-run/docker-run.sh - ``` -2. The `run-docker.sh` script contains a sample Docker command to run in it. Open the script in a text editor and modify the database URL and network configuration in the script. - ```bash - #! /bin/bash - docker run -d -p 8080:8080 \ - -e HASURA_GRAPHQL_DATABASE_URL=postgres://username:password@hostname:port/dbname \ - -e HASURA_GRAPHQL_ENABLE_CONSOLE=true \ - hasura/graphql-engine:latest - ``` - Replace the part `postgres://username:password@hostname:port/dbname` with the login credentials of your managed PostgreSQL database for the `HASURA_GRAPHQL_DATABASE_URL` variable. - - - If your password contains special characters (e.g. #, %, $, @, etc.), you need to [URL encode](https://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_reserved_characters) them in the `HASURA_GRAPHQL_DATABASE_URL` environment variable (e.g. `%40` for @). - - - You can find the credentials of your database in your Scaleway console in the Database section: - - - The modified file should look like the following example: - - ``` - #! /bin/bash - docker run -d -p 8080:8080 \ - -e HASURA_GRAPHQL_DATABASE_URL=postgres://hasura:p4ssw0rd@195.154.69.220:21568/hasura \ - -e HASURA_GRAPHQL_ENABLE_CONSOLE=true \ - hasura/graphql-engine:latest - ``` -3. Make the script executable and run the modified script to start Hasura GraphQL Engine: - ``` - ./docker-run.sh - ``` - - Docker will download the container and start it. -4. Check if the container is running using the `docker ps` command: - ```bash - docker ps - CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES - 01fd79964ade hasura/graphql-engine:latest "graphql-engine serve" 6 seconds ago Up 5 seconds 0.0.0.0:8080->8080/tcp dreamy_lalande - ``` -5. Open the Hasura Console in your web browser by pointing it to [`http://localhost:8080/console`](http://localhost:8080/console). The console displays: - - - Your Hasura GraphQL Engine is ready now. - -## Making your first GraphQL query - -1. Create a table from the Hasura console. Click **Data** -> **Create table** and create two new tables called `author` and `book` with the following columns to create a simple library indexing system: - ```graphql - author ( - id SERIAL PRIMARY KEY, - name TEXT - ) - - book ( - id SERIAL PRIMARY KEY, - title TEXT, - summary TEXT, - rating INT, - author_id INT - ) - ``` - For example the configuration of the `book` table: - -2. Add some Sample data by clicking on the **Insert Row** tab on each of the newly created tables. -3. Query the data using GraphQL commands from the GraphQL tab in the console. - - For example, to query all rows in the `book` table: - ``` - { - book { - id - title - summary - rating - author_id - } - } - ``` - - You will see an output like the following: - - - To add a new author to the database, run the following command: - ``` - mutation add_author { - insert_author( - objects: [ - { name: "Jarrad Higgins" } - ] - ) { - affected_rows - returning { - id - name - } - } - } - ``` - - In the output, the ID (here, `5`) of the new author displays: - ``` - { - "data": { - "insert_author": { - "affected_rows": 1, - "returning": [ - { - "id": 5, - "name": "Jarrad Higgins" - } - ] - } - } - } - ``` +1. Download the latest `docker-run.sh` script from Hasura’s repository: + ```bash + wget https://raw.githubusercontent.com/hasura/graphql-engine/stable/install-manifests/docker-run/docker-run.sh + ``` + +2. Update the `docker-run.sh` script with your PostgreSQL database credentials: + + Open the file in a text editor and locate the `HASURA_GRAPHQL_DATABASE_URL` environment variable. Replace `postgres://username:password@hostname:port/dbname` with your database credentials. + + ```bash + #! /bin/bash + docker run -d -p 8080:8080 \ + -e HASURA_GRAPHQL_DATABASE_URL=postgres://youruser:yourpassword@yourhost:5432/yourdatabase \ + -e HASURA_GRAPHQL_ENABLE_CONSOLE=true \ + -e HASURA_GRAPHQL_ADMIN_SECRET=youradminsecret \ + hasura/graphql-engine:latest + ``` + + + If your database password contains special characters like `@` or `#`, ensure they are [URL-encoded](https://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_reserved_characters). + + +3. Run the script: + ```bash + chmod +x docker-run.sh + ./docker-run.sh + ``` + +4. Verify the Hasura container is running: + ```bash + docker ps + ``` + The output should show the Hasura container running on port `8080`. + +5. Access the Hasura Console by opening `http://localhost:8080/console` in your browser. You need to use the `HASURA_GRAPHQL_ADMIN_SECRET` value to log in. + + +### Setting Up Your First Tables and Queries + +1. Create tables in the Hasura Console: + - Click Data -> Create Table. + - Define the `author` and `book` tables with the following schema: + ```graphql + author ( + id SERIAL PRIMARY KEY, + name TEXT + ) + + book ( + id SERIAL PRIMARY KEY, + title TEXT, + summary TEXT, + rating INT, + author_id INT REFERENCES author(id) + ) + ``` + +2. Insert sample data by going to the Insert Row tab for each table and add sample data. + +3. Use the GraphQL tab in the Hasura Console to query data. For example: + ```graphql + { + book { + id + title + summary + rating + author { + name + } + } + } + ``` + + The response will include data from your database. + +4. Add a new author using a mutation: + ```graphql + mutation addAuthor { + insert_author(objects: [{ name: "John Doe" }]) { + returning { + id + name + } + } + } + ``` + + The response will include the new author's ID and name. ## Conclusion -You have now deployed Hasura GraphQL Engine using Docker, connected it to a Scaleway [Database for PostgreSQL](https://www.scaleway.com/en/database/), and taken your first steps with GraphQL. +You’ve successfully deployed Hasura GraphQL Engine 3.0 using Docker, linked it to a Scaleway Database for PostgreSQL, and run your first GraphQL queries. -To learn more about Hasura GraphQL Engine, refer to the [official documentation](https://hasura.io/docs/1.0/graphql/manual/api-reference/graphql-api/query.html). \ No newline at end of file +For further learning, explore the [Hasura documentation](https://hasura.io/docs/latest/) or Scaleway’s [PostgreSQL resources](https://www.scaleway.com/en/docs/managed-databases/postgresql-and-mysql/). \ No newline at end of file diff --git a/tutorials/dhcpcd-dedibox/index.mdx b/tutorials/dhcpcd-dedibox/index.mdx index 85c695c358..9200c2ea2f 100644 --- a/tutorials/dhcpcd-dedibox/index.mdx +++ b/tutorials/dhcpcd-dedibox/index.mdx @@ -9,7 +9,7 @@ tags: dedibox dedicated-servers DHCPCD categories: - dedibox dates: - validation: 2024-05-13 + validation: 2024-11-13 posted: 2021-03-12 --- diff --git a/tutorials/encode-videos-using-serverless-jobs/index.mdx b/tutorials/encode-videos-using-serverless-jobs/index.mdx index d2cb14f1be..043bfc64be 100644 --- a/tutorials/encode-videos-using-serverless-jobs/index.mdx +++ b/tutorials/encode-videos-using-serverless-jobs/index.mdx @@ -11,7 +11,7 @@ categories: - jobs - object-storage dates: - validation: 2024-05-15 + validation: 2024-11-18 posted: 2024-05-15 --- diff --git a/tutorials/get-started-crossplane-kubernetes/index.mdx b/tutorials/get-started-crossplane-kubernetes/index.mdx index 7642efaf80..166c289f7c 100644 --- a/tutorials/get-started-crossplane-kubernetes/index.mdx +++ b/tutorials/get-started-crossplane-kubernetes/index.mdx @@ -34,21 +34,26 @@ In this tutorial, you will learn how to install Upbound Universal Crossplane (UX Run the following command to download and install the Upbound `up` command-line interface: - ``` - curl -sL "https://cli.upbound.io" | sh + ```bash + curl -sL "https://cli.upbound.io/stable/up" | sh sudo mv up /usr/local/bin/ ``` - This tutorial uses `curl` but other command-line tools are available. You can refer to the [official Upbound documentation](https://docs.upbound.io/cli/#install-the-up-command-line) for more information. ## Installing Upbound Universal Crossplane -Open a terminal and run the following `up uxp install` command to install [Upbound Universal Crossplane (UXP)](https://docs.upbound.io/uxp/). You should have an output similar to the following: +Run the following `up uxp install` command to install the latest stable version of [Upbound Universal Crossplane (UXP)](https://docs.upbound.io/uxp/). Ensure you have version `1.12.0` or higher: + ```bash + up uxp install ``` - UXP 1.9.0-up.3 installed + + You should see an output like the following: + + ```plaintext + UXP 1.12.0 installed ``` ## Installing the provider into your Kubernetes cluster @@ -70,7 +75,6 @@ Open a terminal and run the following `up uxp install` command to install [Upbou 4. Run the following command to install the provider into the Kubernetes cluster using the previously set Kubernetes configuration file. - ``` cat < 3. Download the Jump Desktop version that is compatible with your operating system. diff --git a/tutorials/prestashop-dedibox/index.mdx b/tutorials/prestashop-dedibox/index.mdx index 6c9005e181..34f6693271 100644 --- a/tutorials/prestashop-dedibox/index.mdx +++ b/tutorials/prestashop-dedibox/index.mdx @@ -10,11 +10,11 @@ categories: hero: assets/scaleway_prestashop.webp tags: dedibox prestashop e-commerce ecommerce dates: - validation: 2024-05-13 + validation: 2024-11-13 posted: 2020-08-07 --- -[PrestaShop](https://www.prestashop.com/en) is a popular open-source e-commerce solution used by more than 300,000 shops worldwide and available in about 60 different languages. The software is written in the PHP programming language and uses the MySQL database management system to store its data. It is published under the Open Software License (OSL). +PrestaShop is a popular open-source e-commerce solution used by more than 300,000 shops worldwide and available in about 60 different languages. The software is written in the PHP programming language and uses the MySQL database management system to store its data. It is published under the Open Software License (OSL). The application comes with several hundred built-in features for managing products, payments, shipping options, suppliers, and more. It uses a template system to allow users to customize their stores towards additional add-on modules available in the PrestaShop Addon marketplace, a platform enabling third-party developers to publish and sell additional themes and modules to shop owners. @@ -25,7 +25,9 @@ In this tutorial, you will learn how to install and configure PrestaShop on Ubun - A Scaleway account logged into the [console](https://console.scaleway.com) - [Owner](/identity-and-access-management/iam/concepts/#owner) status or [IAM permissions](/identity-and-access-management/iam/concepts/#permission) allowing you to perform actions in the intended Organization - An [SSH key](/identity-and-access-management/organizations-and-projects/how-to/create-ssh-key/) -- A [Dedibox](https://www.scaleway.com/en/dedibox/) dedicated server running on Ubuntu Focal Fossa (20.04) +- A [Dedibox](https://www.scaleway.com/en/dedibox/) server running Ubuntu Jammy Jellyfish (22.04 LTS) +- PHP version 7.4 or 8.0 installed (PrestaShop 8.x is not compatible with PHP 8.1, which is the default for Ubuntu 22.04). +- MariaDB or MySQL database installed and configured. - Configured an A-record pointing to your server's IP address - `sudo` privileges or access to the root user @@ -36,21 +38,20 @@ In this tutorial, you will learn how to install and configure PrestaShop on Ubun apt update && apt -y upgrade apt -y install apt-transport-https ``` -2. Download the pre-required packages and repositories to install PHP. Then, update the APT package cache. - ``` - add-apt-repository ppa:ondrej/php - apt-get update - ``` -3. Install the `nginx` web server, PHP, and `unzip` using `apt`. Install the `php8.1-curl` package separately. + +2. Install the `nginx` web server, PHP, and `unzip` using `apt`. ``` - apt install nginx php8.1-fpm php8.1-xml php8.1-zip php8.1-gd php8.1-mysql php8.1-intl unzip wget - apt install php8.1-curl + sudo apt update && sudo apt -y upgrade + sudo apt -y install software-properties-common apt-transport-https + sudo add-apt-repository ppa:ondrej/php + sudo apt update + sudo apt -y install nginx php7.4-fpm php7.4-xml php7.4-zip php7.4-gd php7.4-mysql php7.4-intl php7.4-curl unzip wget ``` -4. Create a directory for PrestaShop in the document root of Nginx: +3. Create a directory for PrestaShop in the document root of Nginx: ``` mkdir /var/www/html/eshop ``` -5. Create an Nginx configuration file for your PrestaShop. In this tutorial, we assume our shop's domain name will be `eshop.example.com` - replace it with the domain name you want to use for your shop. +4. Create an Nginx configuration file for your PrestaShop. In this tutorial, we assume our shop's domain name will be `eshop.example.com` - replace it with the domain name you want to use for your shop. ``` nano /etc/nginx/sites-available/eshop.example.com ``` @@ -70,7 +71,7 @@ In this tutorial, you will learn how to install and configure PrestaShop on Ubun location ~ \.php$ { include snippets/fastcgi-php.conf; - fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; + fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; } location ~ /\.ht { @@ -95,12 +96,12 @@ In this tutorial, you will learn how to install and configure PrestaShop on Ubun 9. Download the [latest version](https://prestashop.com/prestashop-edition-basic/) of PrestaShop from the official website. At the time of writing this tutorial, it is version 1.7.8.5, and we will use it here. Replace the link with the latest version if required. ```sh no-copy cd /tmp - wget https://assets.prestashop3.com/dst/edition/corporate/8.1.1/prestashop_edition_basic_version_8.1.1.zip + wget https://github.com/PrestaShop/PrestaShop/releases/download/8.1.6/prestashop_8.1.6.zip unzip prestashop_*.zip unzip prestashop.zip -d /var/www/html/eshop + rm prestashop_*.zip rm Install_PrestaShop.html rm index.php - rm prestashop*.zip ``` 10. Set the ownership of the extracted files to the Nginx user and group: ``` From df0455c94ab819fb8d70f0b5f4fbab3bb2c50914 Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Mon, 18 Nov 2024 16:11:12 +0100 Subject: [PATCH 2/4] Update tutorials/deploy-angular-application/index.mdx --- tutorials/deploy-angular-application/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorials/deploy-angular-application/index.mdx b/tutorials/deploy-angular-application/index.mdx index 4c837b449f..e6970e744f 100644 --- a/tutorials/deploy-angular-application/index.mdx +++ b/tutorials/deploy-angular-application/index.mdx @@ -21,7 +21,7 @@ Angular 18 is the latest development platform that scales from single-developer - A Scaleway account logged into the [console](https://console.scaleway.com) -- [Owner](/identity-and-access-management/iam/concepts/#owner) status or [IAM permissions](/identity-and-access-management/iam/concepts/#permission) for your organization +- [Owner](/identity-and-access-management/iam/concepts/#owner) status or [IAM permissions](/identity-and-access-management/iam/concepts/#permission) allowing you to perform actions in the intended Organization ``` - An [SSH key](/identity-and-access-management/organizations-and-projects/how-to/create-ssh-key/) - A [Container Registry namespace](/containers/container-registry/how-to/create-namespace/) - Installed [Angular 18](https://angular.dev/installation) and [Node.js](https://nodejs.org/en/learn/getting-started/how-to-install-nodejs) on your local machine From 9940e2cff0983fe47e74050c06780a4180aac39c Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Mon, 18 Nov 2024 16:10:09 +0100 Subject: [PATCH 3/4] fix(gen): typo --- tutorials/deploy-angular-application/index.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tutorials/deploy-angular-application/index.mdx b/tutorials/deploy-angular-application/index.mdx index e6970e744f..7bc372895f 100644 --- a/tutorials/deploy-angular-application/index.mdx +++ b/tutorials/deploy-angular-application/index.mdx @@ -112,10 +112,10 @@ Ensure you have [connected your namespace](/containers/container-registry/how-to ## Deploying the application on Serverless Containers -1. Click Containers in the Serverless section of the side menu of the Scaleway console. A list of your container namespaces displays. +1. Click **Containers** in the Serverless section of the side menu of the Scaleway console. A list of your container namespaces displays. 2. Click the name of the namespace in which you want to deploy the application. The list of your containers displays. - If you do not have a container namespace yet, click + Create a namespace to create a new one. + If you do not have a container namespace yet, click **+ Create a namespace** to create a new one. 3. Click Deploy a Container. The container deployment wizard displays. @@ -126,9 +126,9 @@ Ensure you have [connected your namespace](/containers/container-registry/how-to - Define the container's resources - Configure the scaling of your application - Leave the other options at their default values -4. Click Deploy a Container to deploy your application. Your application displays in the list of containers: +4. Click **Deploy a Container** to deploy your application. Your application displays in the list of containers: -5. Click on the container's name. The container information page displays. Click the Container Settings tab. The container endpoint displays in the container information block. +5. Click on the container's name. The container information page displays. Click the **Container Settings** tab. The container endpoint displays in the container information block. Copy the endpoint URL and open it in a web browser. The Angular application displays. It can now automatically scale based on the application's load and within the ranges set for the deployment. From 6c277033bde4649e1a1ff2e03dc8de89544be701 Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Tue, 19 Nov 2024 10:56:36 +0100 Subject: [PATCH 4/4] Apply suggestions from code review Co-authored-by: nerda-codes <87707325+nerda-codes@users.noreply.github.com> --- tutorials/create-valheim-server/index.mdx | 2 +- tutorials/deploy-angular-application/index.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tutorials/create-valheim-server/index.mdx b/tutorials/create-valheim-server/index.mdx index 41111c9ebb..51141f5883 100644 --- a/tutorials/create-valheim-server/index.mdx +++ b/tutorials/create-valheim-server/index.mdx @@ -13,7 +13,7 @@ categories: - instances --- -Valheim is a survival and sandbox video game that was released in early access on 2 February 2021 for Windows and Linux on Steam. Within only one month after its release the game sold more than 5 million copies and is one of the most played games on Steam. +Valheim is a survival and sandbox video game that was released in early access on February 2nd, 2021 for Windows and Linux on Steam. Within only one month after its release the game sold more than 5 million copies and is one of the most played games on Steam. Players of the game are Vikings in an afterlife where they have to complete missions like crafting tools, building shelters, and fighting enemies to survive. The game has multiple biomes available, such as meadows, swamps, ashlands, mountains, and oceans. Each of these biomes is unique and comes with its own difficulty level - which means players are confronted with different items and enemies. Players can travel through these biomes by either foot or boat. The game supports multiplayer mode with up to ten concurrent players. diff --git a/tutorials/deploy-angular-application/index.mdx b/tutorials/deploy-angular-application/index.mdx index 7bc372895f..df6d59bdbc 100644 --- a/tutorials/deploy-angular-application/index.mdx +++ b/tutorials/deploy-angular-application/index.mdx @@ -21,7 +21,7 @@ Angular 18 is the latest development platform that scales from single-developer - A Scaleway account logged into the [console](https://console.scaleway.com) -- [Owner](/identity-and-access-management/iam/concepts/#owner) status or [IAM permissions](/identity-and-access-management/iam/concepts/#permission) allowing you to perform actions in the intended Organization ``` +- [Owner](/identity-and-access-management/iam/concepts/#owner) status or [IAM permissions](/identity-and-access-management/iam/concepts/#permission) allowing you to perform actions in the intended Organization - An [SSH key](/identity-and-access-management/organizations-and-projects/how-to/create-ssh-key/) - A [Container Registry namespace](/containers/container-registry/how-to/create-namespace/) - Installed [Angular 18](https://angular.dev/installation) and [Node.js](https://nodejs.org/en/learn/getting-started/how-to-install-nodejs) on your local machine