diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 37e8b416..3c95fe4d 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -12,7 +12,6 @@ }, "vscode": { "extensions": [ - "bierner.markdown-mermaid", "davidanson.vscode-markdownlint", "ms-python.python" ] diff --git a/.github/workflows/cleanup_acceptance.yaml b/.github/workflows/cleanup_acceptance.yaml index dbf68d63..35d24c80 100644 --- a/.github/workflows/cleanup_acceptance.yaml +++ b/.github/workflows/cleanup_acceptance.yaml @@ -7,7 +7,7 @@ on: jobs: cleanup: runs-on: ubuntu-latest - container: quay.io/hypernode/deploy:4-php8.3-node20 + container: quay.io/hypernode/deploy:latest-php8.3-node20 environment: acceptance steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index bade73a2..621666f4 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -12,7 +12,7 @@ env: jobs: build: runs-on: ubuntu-latest - container: quay.io/hypernode/deploy:4-php8.3-node20 + container: quay.io/hypernode/deploy:latest-php8.3-node20 steps: - uses: actions/checkout@v3 with: @@ -47,7 +47,7 @@ jobs: name: acceptance url: ${{ steps.get_brancher_hostname.outputs.BRANCHER_URL }} if: github.ref != 'refs/heads/master' - container: quay.io/hypernode/deploy:4-php8.3-node20 + container: quay.io/hypernode/deploy:latest-php8.3-node20 steps: - uses: actions/checkout@v3 with: @@ -102,7 +102,7 @@ jobs: name: production url: https://docs.hypernode.io if: github.ref == 'refs/heads/master' - container: quay.io/hypernode/deploy:4-php8.3-node20 + container: quay.io/hypernode/deploy:latest-php8.3-node20 steps: - uses: actions/checkout@v3 - name: download build artifact diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml new file mode 100644 index 00000000..a97363c7 --- /dev/null +++ b/.github/workflows/lint.yaml @@ -0,0 +1,29 @@ +name: Run linting and suggest changes + +on: + pull_request: + +permissions: + contents: read + pull-requests: write + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ['3.10'] + + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + pip install -r requirements/base.txt + - name: Check markdown format + run: mdformat docs/ + - uses: parkerbxyz/suggest-changes@v1 + with: + event: 'REQUEST_CHANGES' diff --git a/README.md b/README.md index 8dacb025..b19b6d2b 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,14 @@ ## Generating new docs -``` bash +```bash DOC_URL=https://support.hypernode.com/en/ecommerce/magento-1/how-to-enable-mysql-query-logging-for-magento-1-x bin/download_doc --output-dir=docs/ecommerce-applications $DOC_URL ``` ## Setting up the project -``` bash +```bash mkvirtualenv hypernode-docs-next echo "export PYTHONPATH=$(pwd)" >> $VIRTUAL_ENV/bin/postactivate workon hypernode-docs-next @@ -19,33 +19,38 @@ pre-commit install ## Building the docs -``` bash +```bash bin/build_docs ``` ## Serving the docs -``` bash +```bash bin/serve_docs ``` + ## Setup Frontend step by step + ``` clone the repository pip install -r requirements/development.txt bin/build_docs bin/serve_docs ``` + in another terminal run -``` bin/watch ``` +`bin/watch` open localhost and now you can make changes in style and refresh the page without rebuilding when you're working on scss to compile it automatically run + ``` npx sass --watch docs/_static/scss:docs/_static/css ``` or as a production build: + ``` npx sass --style compressed --no-source-map docs/_static/scss:docs/_static/css ``` @@ -57,6 +62,7 @@ Deploys automatically after merging branchers to master. ### Deploy with Hypernode Deploy To deploy to a local Hypernode Docker environment: + ``` $ docker pull docker.hypernode.com/byteinternet/hypernode-buster-docker:latest $ docker run docker.hypernode.com/byteinternet/hypernode-buster-docker:latest @@ -66,6 +72,7 @@ $ # Note the IP address, it should be 172.17.0.2 (otherwise refer to deploy.php) Next make sure your `~/.ssh/yourdeploykey` equivalent can log in to the Docker host (172.17.0.2) as the app user. You can add it to the `/data/web/.ssh/authorized_keys` file on in the instance manually. Then deploy to your local Hypernode Docker: + ``` docker run --rm -it --env SSH_PRIVATE_KEY="$(cat ~/.ssh/yourdeploykey | base64)" -v ${PWD}:/build quay.io/hypernode/deploy:latest hypernode-deploy build -vvv # First build the artifact docker run --rm -it --env SSH_PRIVATE_KEY="$(cat ~/.ssh/yourdeploykey | base64)" -v ${PWD}:/build quay.io/hypernode/deploy:latest hypernode-deploy deploy docker -vvv # Then perform the deploy @@ -74,6 +81,7 @@ docker run --rm -it --env SSH_PRIVATE_KEY="$(cat ~/.ssh/yourdeploykey | base64)" ## Building the manpage deb The docs are also packaged as a debian package named `hndocsnext` so that on a Hypernode you can run `man hypernode` (or `hypernode-manual`) and page through a `manpage` version of the Hypernode docs. To build that debian package on a Debian machine you can run these commands: + ``` # First create the cow environment export ARCH=amd64 @@ -91,16 +99,19 @@ gbp buildpackage --git-pbuilder --git-dist=$DIST --git-arch=$ARCH --git-ignore-b ``` Then after building the Deb you could install it with dpkg. For example: + ``` dpkg -i ../hndocsnext_20230121.173551_all.deb ``` And test it out with: + ``` man hypernode ``` To inspect the contents of the deb archive you can run: + ``` # dpkg -L hndocsnext /. diff --git a/docs/_templates/layout.html b/docs/_templates/layout.html index 4e8ec106..d9349314 100644 --- a/docs/_templates/layout.html +++ b/docs/_templates/layout.html @@ -279,13 +279,13 @@

Need support?

-

Join our
Feedback Group

+

Join our
Beta Test Group

-

read more

+

Read more

diff --git a/docs/about-hypernode/billing/how-to-choose-and-order-a-hypernode-plan.md b/docs/about-hypernode/billing/how-to-choose-and-order-a-hypernode-plan.md index ebb3ad51..e3404d7c 100644 --- a/docs/about-hypernode/billing/how-to-choose-and-order-a-hypernode-plan.md +++ b/docs/about-hypernode/billing/how-to-choose-and-order-a-hypernode-plan.md @@ -68,8 +68,6 @@ DigitalOcean and Amazon both have data centers all over the world. You can order a Hypernode plan via our [order page](https://www.hypernode.com/magento-cloud-hosting/#plans). The Control Panel is our default panel, which means all new Hypernode plans and trials will be booted in the Control Panel. -**Please note:** if you are a Service Panel user (i.e. you use the Dutch panel), please order your new plans directly via [this page in the Service Panel](https://service.byte.nl/planinfo/order-selection/). This is to prevent plans from being booted in the wrong system. - ## Tips For Ordering a Hypernode - Choose a logical name. IE: If your site is example.com, order example.hypernode.com diff --git a/docs/about-hypernode/security-policies/one-of-your-magento-extensions-is-vulnerable.md b/docs/about-hypernode/security-policies/one-of-your-magento-extensions-is-vulnerable.md index 7ca8cd3c..ddd55f78 100644 --- a/docs/about-hypernode/security-policies/one-of-your-magento-extensions-is-vulnerable.md +++ b/docs/about-hypernode/security-policies/one-of-your-magento-extensions-is-vulnerable.md @@ -22,7 +22,7 @@ This can include creditcard theft, sending email spam in your name, stealing cus ## Special attention to online credit card theft -A hot topic over the past few years are digital skimmers. A hacker group (also know as Magecart) use code inserted into websites to steal credit card details. As of October 2018 more than 20 extensions have been abused by hackers. Details can be found[in this blog explaining the attack method PHP Object Injection (POI)](https://sansec.io/labs/2018/10/23/magecart-extension-0days/). Former Hypernode owner Willem will update the list of vulnerable extensions regularly. +A hot topic over the past few years are digital skimmers. A hacker group (also know as Magecart) use code inserted into websites to steal credit card details. As of October 2018 more than 20 extensions have been abused by hackers. Details can be found [in this blog explaining the attack method PHP Object Injection (POI)](https://sansec.io/labs/2018/10/23/magecart-extension-0days/). Former Hypernode owner Willem will update the list of vulnerable extensions regularly. ## How do I fix it? diff --git a/docs/about-hypernode/security-policies/security-hall-of-fame.md b/docs/about-hypernode/security-policies/security-hall-of-fame.md index dd81f6b1..865390fa 100644 --- a/docs/about-hypernode/security-policies/security-hall-of-fame.md +++ b/docs/about-hypernode/security-policies/security-hall-of-fame.md @@ -29,7 +29,7 @@ We would like to thank the following individuals and/or organizations, who have | [Pethuraj M](https://www.pethuraj.com/) | 1 July 2020 | Reported a flaw in our password reset flow | | [Miguel Santareno](https://www.linkedin.com/in/miguelsantareno/) | 14 May 2020 | Reported information leakage from marketing sites. | | [Gaurav Kumar](https://www.facebook.com/drago4344) and [Shivam Dattana](https://www.facebook.com/profile.php?id=100010397858328) / [Team Bugmania](https://www.openbugbounty.org/researchers/bugmania/) | 28 September 2019 | Reported a Cross site scripting (XSS) on magereport.com. | -| [Mike de Landgraaf](https://www.linkedin.com/in/mdelandgraaf/) / [MDL Online](https://mdlonline.com/) | 21 March 2019 | Reported a misconfiguration that allowed user impersonation on Hypernode hosted webshops. | +| [Mike de Landgraaf](https://www.linkedin.com/in/mdelandgraaf/) / MDL Online | 21 March 2019 | Reported a misconfiguration that allowed user impersonation on Hypernode hosted webshops. | | [Maksym Bendeberia](https://www.linkedin.com/in/jogspokoen/) / [WebSafety Ninja](https://websafety.ninja/) | 12 March 2019 | Reported information leakage from an internal deployment server. | | [Jan Piet van Dijk](https://www.linkedin.com/in/janpietvandijk/) / [Interwijs B.V.](https://www.interwijs.nl/) | 28 August 2018 | Reported a privilege escalation on Hypernode, leading to a local root exploit. | | [Wijnand Wieskamp](https://www.linkedin.com/in/wijnand-wieskamp-8a784313/) / [Crystalsoft B.V.](https://www.crystalsoft.nl/) | 1 June 2018 | Reported a misconfiguration that allowed a Hypernode’s preconfigured security settings to be bypassed. | diff --git a/docs/about-hypernode/support/how-to-handle-os-and-room-change-upgrade.md b/docs/about-hypernode/support/how-to-handle-os-and-room-change-upgrade.md new file mode 100644 index 00000000..26e899c4 --- /dev/null +++ b/docs/about-hypernode/support/how-to-handle-os-and-room-change-upgrade.md @@ -0,0 +1,183 @@ +--- +myst: + html_meta: + description: Learn how our Xgrade process work and how to make sure your Hypernode + is ready for the Debian Bookworm upgrade + title: How does the Xgrade process works +--- + +# What is the Xgrade process of Hypernode? + +An Xgrade is an automated process that allows your server to be upgraded or downgraded without any manual actions. Additionally, an Xgrade enables migration to one of our other providers. + +## How does an Xgrade to Debian Bookworm or R405 work, and does it involve downtime? + +An Xgrade to Debian Bookworm or R405 (which can be performed together) is carried out by our automation. Below are the relevant steps in the process: + +1. Ensure a new Hypernode is created. +1. Configure the new Hypernode (Operating system, MySQL, PHP, Varnish, etc.). +1. Synchronize data (everything within the "/" and "/data" partition). +1. Stop all services on the current Hypernode. +1. Synchronize any new data that has been written. +1. Perform checks to ensure all processes are complete. +1. Send a "Hypernode migrated" event. +1. Destroy the old Hypernode. + +As you can see, a completely new Hypernode is created with the correct configurations, whether for a Debian Bookworm or an R405 Xgrade. The first synchronization of data will then take place. The duration of this synchronization depends on the amount and type of data. Typically, we calculate about 1 GB per minute, but this may vary. + +At a certain point, all services will be stopped to prevent new orders from being placed and to ensure no data is lost. A second synchronization will then take place to transfer any newly written data. After this, our automation will conduct various checks before finalizing the migration to Debian Bookworm or R405 (or a combination of both). + +## What should be checked or adjusted before the Xgrade? (e.g., Node.js and TLS configuration) + +### Nodejs + +Before scheduling a Xgrade to Debian Bookworm/R405, you must check which Node.js version you are using. This is necessary because Node.js versions 6 and 10 are no longer supported on the new operating system. Standard Magento 2 does not make use of Nodejs, but if you use another CMS or have custom scripts that require them, you may need to update your setup. + +You can check your Node.js version in two ways; within the Control Panel, Or through the CLI: +Within the Control Panel: Navigate to Settings → Development. + +``` +app@uaifqk-hnvandijk-magweb-cmbl:~$ hypernode-systemctl settings nodejs_version +nodejs_version is set to value 16 +``` + +If necessary, you can update Node.js by following these steps: + +``` +app@uaifqk-hnvandijk-magweb-cmbl:~$ hypernode-systemctl settings nodejs_version 16 +Operation was successful and is being processed. Please allow a few minutes for the settings to be applied. Run 'livelog' to see the progress. +``` + +### TLS configuration + +With the upgrade to Debian Bookworm, the TLS configurations will also change. We have chosen to phase out outdated TLS versions 1.0 and 1.1. Additionally, the "modern" TLS configuration will now only support TLS 1.3. + +Below are the TLS configurations for Debian Buster: + +Intermediate TLS configuration: + +``` +# intermediate configuration +# nginx 1.16.1 | intermediate profile | OpenSSL 1.1.1d +# Oldest compatible clients: Firefox 27, Android 4.4.2, Chrome 31, Edge 12, IE 11 (Win7), Java 8u31, OpenSSL 1.0.1, Opera 20, Safari 9 +# https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_.28default.29 +ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; +ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA; +ssl_prefer_server_ciphers on; +# Diffie-Hellman parameter for DHE ciphersuites +ssl_dhparam /etc/nginx/dhparams.pem; + +ssl_stapling on; +ssl_stapling_verify on; +``` + +Modern TLS configuration: + +``` +# intermediate configuration +# nginx 1.22.1 | intermediate profile | OpenSSL 3.0.11 +# Oldest compatible clients: Firefox 27, Android 4.4.2, Chrome 31, Edge, IE 11 on Windows 7, Java 8u31, OpenSSL 1.0.1, Opera 20, and Safari 9 +# https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility +ssl_protocols TLSv1.2 TLSv1.3; +ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305; +ssl_prefer_server_ciphers off; +# Diffie-Hellman parameter for DHE ciphersuites +ssl_dhparam /etc/nginx/dhparams.pem; + +ssl_stapling on; +ssl_stapling_verify on; +``` + +And here are the new TLS configurations for Debian Bookworm: + +Intermediate TLS configuration: + +``` +# intermediate configuration +# nginx 1.22.1 | intermediate profile | OpenSSL 3.0.11 +# Oldest compatible clients: Firefox 27, Android 4.4.2, Chrome 31, Edge, IE 11 on Windows 7, Java 8u31, OpenSSL 1.0.1, Opera 20, and Safari 9 +# https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility +ssl_protocols TLSv1.2 TLSv1.3; +ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305; +ssl_prefer_server_ciphers off; +# Diffie-Hellman parameter for DHE ciphersuites +ssl_dhparam /etc/nginx/dhparams.pem; + +ssl_stapling on; +ssl_stapling_verify on; +``` + +Modern TLS configuration: + +``` +# modern configuration +# nginx 1.22.1 | modern profile | OpenSSL 3.0.11 +# Oldest compatible clients: Firefox 63, Android 10.0, Chrome 70, Edge 75, Java 11, OpenSSL 1.1.1, Opera 57, and Safari 12.1 +# https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility +ssl_protocols TLSv1.3; +ssl_prefer_server_ciphers off; +ssl_stapling on; +ssl_stapling_verify on; +``` + +If you need to adjust the TLS configuration, you can do so using the "Hypernode-manage-vhost" command. + +``` +hmv hnvandijk.nl --ssl-config modern +``` + +Please see the actual `--ssl-config` flag: + +``` + --ssl-config {modern,intermediate} + Use the given Mozilla SSL standard config +``` + +Additionally, you may need to modify the Modern_ssl_config using "hypernode-systemctl". + +``` +app@uaifqk-hnvandijk-magweb-cmbl:~$ hypernode-systemctl settings modern_ssl_config_enabled +false true +``` + +# What needs to be adjusted after the Xgrade? When can it be performed? (IP changes) + +If you choose to Xgrade to R405, you will receive a new IP address from our automation system. You must update this IP address in the DNS settings for both the non-www and www records of your domain. This information will be sent to the email address associated with the Hypernode owner. + +My domain is at Hypernode, can we automate this? Yes, you can enable the "Synchronize DNS" option in our DNS manager. Our automation will update the DNS settings for you after the Xgrade. + +We make use of Cloudflare, would we be able to "automate" this proces? Sure! You can enable CNAME Flattening, which ensures that both the non-www and www records point to the Hypernode hostname. For example: + +## Non-www + +``` +CNAME hnvandijk.nl ---> hnvandijk.hypernode.io +``` + +## www + +``` +CNAME www.hnvandijk.nl ---> hnvandijk.hypernode.io +``` + +We can schedule the Xgrade at a time that suits you! However, we can only provide the new IP address in advance if the Xgrade is performed during our standard working hours (09:00–18:00). + +## I have a dedicated machine instead of a cloud environment. What does this mean? + +If you have a dedicated machine and need an OS upgrade, you will be migrated to a different machine. This means you will receive a new IP address. The new machine will be set up at the TBBM data center, and we can only provide the new IP address during our standard working hours. + +The OS upgrade process itself is the same as for a cloud environment. + +## Additional Questions + +- An Xgrade to R405 does not incur additional costs, you will not be charged extra. + +- An Xgrade from Hetzner to TBBM also incurs no extra costs, you will not be charged extra. + +## More Information + +https://changelog.hypernode.com/release-9961-akeneo-7-0-is-now-available-on-the-platform/ + +https://changelog.hypernode.com/release-9956-hypernode-on-debian-bookworm/ + +https://changelog.hypernode.com/sunsetting-node-js-versions-6-and-10/ diff --git a/docs/best-practices/database/how-to-run-rabbitmq-on-hypernode.md b/docs/best-practices/database/how-to-run-rabbitmq-on-hypernode.md index 014cf022..99d5b294 100644 --- a/docs/best-practices/database/how-to-run-rabbitmq-on-hypernode.md +++ b/docs/best-practices/database/how-to-run-rabbitmq-on-hypernode.md @@ -85,7 +85,7 @@ To configure RabbitMQ in Magento 2, you can run the following command: ```bash bin/magento setup:config:set \ - --amqp-host="rabbitmqmaster" \ + --amqp-host="rabbitmq" \ --amqp-port="5672" \ --amqp-user="guest" \ --amqp-password="guest" \ diff --git a/docs/best-practices/performance/how-to-improve-your-magento-search.md b/docs/best-practices/performance/how-to-improve-your-magento-search.md index ac7da291..af4a1614 100644 --- a/docs/best-practices/performance/how-to-improve-your-magento-search.md +++ b/docs/best-practices/performance/how-to-improve-your-magento-search.md @@ -25,7 +25,7 @@ Another alternative is Sphinx Search. Sphinx is an open source search engine tha ## ElasticSearch -While previously it was already possible to use ElasticSearch with your Hypernode by connecting to an external search provider, we have now made it possible to use ElasticSearch for search in your shop out of the box on Hypernode without requiring any external service or configuration. In[this article](../../hypernode-platform/tools/how-to-use-elasticsearch-on-hypernode.md) we’ll explain a bit more about ElasticSearch and how to enable and configure it. +While previously it was already possible to use ElasticSearch with your Hypernode by connecting to an external search provider, we have now made it possible to use ElasticSearch for search in your shop out of the box on Hypernode without requiring any external service or configuration. In [this article](../../hypernode-platform/tools/how-to-use-elasticsearch-on-hypernode.md) we’ll explain a bit more about ElasticSearch and how to enable and configure it. Please note that due to the relatively heavy resource requirements for ElasticSearch this feature can only be enabled on every plan except the formerly known Grow plan. If you are on a smaller plan and previously already depended on an external paid ElasticSearch provider now might be a good time to consider simplifying your setup. @@ -34,7 +34,6 @@ Please note that due to the relatively heavy resource requirements for ElasticSe If you are on a lower plan, you’ll need to either upgrade, or make use of an external search provider. There a several companies you can choose for a monthly subscription: - [Bonsai.io](https://bonsai.io/) -- [Qbox.io](https://qbox.io/) - [Elastic.co](https://www.elastic.co/cloud/as-a-service) **If you choose Bonsai, we have made a special deal with Bonsai. Please send a mail to support@hypernode.com for a discount code.** diff --git a/docs/best-practices/performance/how-to-optimize-your-images.md b/docs/best-practices/performance/how-to-optimize-your-images.md index e431f0df..43b14884 100644 --- a/docs/best-practices/performance/how-to-optimize-your-images.md +++ b/docs/best-practices/performance/how-to-optimize-your-images.md @@ -15,7 +15,7 @@ redirect_from: If you want a faster shop, you have probably looked at [Google Pagespeed Insights](https://developers.google.com/speed/pagespeed/insights/) for useful suggestions. It probably told you to optimize your images. Which means, reducing the size-on-disk without losing quality. This is a very cumbersome process if you do this by hand (opening in Photoshop, saving-as, etcetera). But it is very easy if you use Hypernode. If you follow this article, **it will take you only a couple of minutes to set up automatic image optimization**. -Thanks to Peter Jaap for doing the [initial research](https://www.byte.nl/blog/afbeeldingen-optimaliseren-magento-bespaart-veel-webruimte/) (in Dutch). +Thanks to Peter Jaap for doing the initial research. > [@Hypernode_com](https://twitter.com/Hypernode_com) hypernode-image-optimizer is pretty effective "Optimization profit over all files: 502812 KB (82%)". Thanks for that! > diff --git a/docs/best-practices/security/how-to-fix-malicious-javascript-credit-card-hijack.md b/docs/best-practices/security/how-to-fix-malicious-javascript-credit-card-hijack.md index 40dbeb65..b2190d43 100644 --- a/docs/best-practices/security/how-to-fix-malicious-javascript-credit-card-hijack.md +++ b/docs/best-practices/security/how-to-fix-malicious-javascript-credit-card-hijack.md @@ -26,7 +26,7 @@ With this relatively new way of hacking, malware is added in the browser of your In 2015 we analyzed the malware and found out that a staggering amount of 3500 Magento shops are part of a zombie network that interfere credit card credentials, and send this data to so called command&control servers. (Command&control servers are a network of servers where hackers collect this sort of data). This was the first time we encountered an automated credit card fraud on this scale. It’s obvious hackers have massively improved in becoming more professional in automating large-scale credit card fraud. -[Read more about Credit card Hijack](https://www.byte.nl/blog/widespread-credit-card-hijacking-discovered) +[Read more about Credit card Hijack](../../best-practices/security/how-to-fix-malicious-javascript-credit-card-hijack.md#what-is-credit-card-hijack) We suspect this leak has been made possible due to unpatched Magento shops. So if you haven’t completely patched your Magento shop yet, make sure you do. Use Magereport.com to check if there are any patches not yet installed. diff --git a/docs/best-practices/testing/hypernode-docker.md b/docs/best-practices/testing/hypernode-docker.md index 4d40d4df..98c51afe 100644 --- a/docs/best-practices/testing/hypernode-docker.md +++ b/docs/best-practices/testing/hypernode-docker.md @@ -13,8 +13,6 @@ redirect_from: The official Hypernode Docker image for Magento development is now available. This image can be used to set up a fast and easy local development environment for Hypernode, or as a build machine in a CI environment representative of the production environment. The image contains the exact same packages and configuration as a real Hypernode except for some Docker specific tweaks. By testing and developing against this image you can be sure that when you deploy to a Hypernode in production there will be no surprises because of different software versions or configurations. -Interested in a case study? Read [this article](https://blog.guapa.nl/local-development-with-the-hypernode-docker-container-linux/) about the Hypernode docker of one of our partners! - ## About the Hypernode Docker Image We build this image multiple times a day (every time we do a [release](https://changelog.hypernode.com/)) by applying our configuration management on the [phusion/baseimage-docker](https://github.com/phusion/baseimage-docker) ["fat" container](https://blog.phusion.nl/2015/01/20/baseimage-docker-fat-containers-treating-containers-vms/). By treating the Docker as a lightweight VM instead of as a vehicle for a single process we stay close to what an actual Hypernode actually looks like. No micro-services or a multi-container application, but a single instance with minimal network overhead and all batteries included. diff --git a/docs/best-practices/usage/hypernode-magerun.md b/docs/best-practices/usage/hypernode-magerun.md index a3485d17..ffa32945 100644 --- a/docs/best-practices/usage/hypernode-magerun.md +++ b/docs/best-practices/usage/hypernode-magerun.md @@ -72,7 +72,7 @@ Outputs or saves a http.magerunmaps boilerplate containing your store setup for n98-magerun hypernode:varnish:config-save ``` -Fetches the VCL configuration from turpentine and applies it. Make sure [turpentine is installed and configured](https://support.hypernode.com/knowledgebase/varnish-on-hypernode/) correctly. +Fetches the VCL configuration from turpentine and applies it. Make sure [turpentine is installed and configured](../../ecommerce-applications/magento-1/how-to-configure-varnish-for-magento-1-x.md#configure-turpentine) correctly. ### Flush all URL's in Varnish cache @@ -120,7 +120,7 @@ Building a .deb for release: ./build.sh ``` -Then if everything is alright, upload the new version to your repository with something like [dput](http://manpages.ubuntu.com/manpages/precise/man1/dput.1.html) +Then if everything is alright, upload the new version to your repository with something like [dput](https://manpages.ubuntu.com/manpages/plucky/en/man1/dput.1.html) ## n98-magerun2 compatibility diff --git a/docs/conf.py b/docs/conf.py index c689cbc9..f0a19823 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -48,7 +48,6 @@ "hypernode.sphinx.extensions.updated_at", "hypernode.sphinx.extensions.meta_robots", "hypernode.sphinx.extensions.github_actions_logging", - "sphinxcontrib.mermaid", ] # Add any paths that contain templates here, relative to this directory. diff --git a/docs/ecommerce-applications/magento-1/how-to-clean-the-magento-1-x-logs.md b/docs/ecommerce-applications/magento-1/how-to-clean-the-magento-1-x-logs.md index 2a229864..72747f64 100644 --- a/docs/ecommerce-applications/magento-1/how-to-clean-the-magento-1-x-logs.md +++ b/docs/ecommerce-applications/magento-1/how-to-clean-the-magento-1-x-logs.md @@ -65,4 +65,4 @@ Scroll down to select ‘Empty’ from the dropdown ‘With selected’ and clic ## Turn Off Database Logging -If you don’t need any database logging it can be worthwhile to disable all logging. To do so, install the [`disablelog extension by Yireo`](https://www.yireo.com/software/magento-extensions). For shops that are heavy on the database, this can help reduce the amount of update/insert queries and therefore reducing load times. +If you don’t need any database logging it can be worthwhile to disable all logging. To do so, install the [`disablelog extension by Yireo`](https://github.com/yireo-magento1/Yireo_DisableLog). For shops that are heavy on the database, this can help reduce the amount of update/insert queries and therefore reducing load times. diff --git a/docs/ecommerce-applications/magento-1/how-to-create-a-sitemap-xml-for-magento-1-x.md b/docs/ecommerce-applications/magento-1/how-to-create-a-sitemap-xml-for-magento-1-x.md index 83602cb4..9e9df489 100644 --- a/docs/ecommerce-applications/magento-1/how-to-create-a-sitemap-xml-for-magento-1-x.md +++ b/docs/ecommerce-applications/magento-1/how-to-create-a-sitemap-xml-for-magento-1-x.md @@ -120,11 +120,3 @@ We've seen one or two special cases where creating a sitemap was extremely slow. 1 ``` - -## Additional Links - -There is lots of information about setting up and pushing your sitemap to Google and other search indexes. See: - -- -- -- diff --git a/docs/ecommerce-applications/magento-1/how-to-install-magento-1-on-hypernode.md b/docs/ecommerce-applications/magento-1/how-to-install-magento-1-on-hypernode.md index a6f5486c..1c707853 100644 --- a/docs/ecommerce-applications/magento-1/how-to-install-magento-1-on-hypernode.md +++ b/docs/ecommerce-applications/magento-1/how-to-install-magento-1-on-hypernode.md @@ -14,7 +14,7 @@ redirect_from: Although Magento 1 has been End of Life since June 30 2020, it is still possible to host your Magento 1 store at Hypernode by using OpenMage. OpenMage is a free of charge fork of Magento 1, and allows store owners to continue the use of Magento 1 as a stable and secure eCommerce platform for the next years to come. -OpenMage can be installed by using their [documentation](https://www.openmage.org/magento-lts/install.html). Don't implement OpenMage on production nodes without testing OpenMage first on a [Development plan](../../hypernode-platform/tools/how-to-use-hypernode-development-plans.md). +OpenMage can be installed by using their [documentation](https://docs.openmage.org/users/install/use-composer/#configuration). Don't implement OpenMage on production nodes without testing OpenMage first on a [Development plan](../../hypernode-platform/tools/how-to-use-hypernode-development-plans.md). Would you rather install the officially supported Magento 2? Installing Magento 2 on Hypernode can be done by following the steps in the article: [Installing Magento 2 on Hypernode](../../ecommerce-applications/magento-2/how-to-install-magento-2-on-hypernode.md) diff --git a/docs/ecommerce-applications/magento-2/how-to-configure-remote-storage-for-magento-2-x.md b/docs/ecommerce-applications/magento-2/how-to-configure-remote-storage-for-magento-2-x.md index 0209c1dd..43efdd47 100644 --- a/docs/ecommerce-applications/magento-2/how-to-configure-remote-storage-for-magento-2-x.md +++ b/docs/ecommerce-applications/magento-2/how-to-configure-remote-storage-for-magento-2-x.md @@ -22,47 +22,76 @@ This can be useful for many reasons, such as: Configuring Magento 2 to start storing files in your bucket is done using a single command. -**AWS S3** +**Hypernode Object Storage and other S3 compatible providers** + +If you're using Hypernode Object Storage or a different provider than AWS S3, you need to specify the `--remote-storage-endpoint` option. ```bash bin/magento setup:config:set \ --remote-storage-driver="aws-s3" \ - --remote-storage-bucket="my_bucket_name" \ - --remote-storage-region="my-aws-region" \ + --remote-storage-bucket="main" \ + --remote-storage-region="EU" \ --remote-storage-key="abcd1234" \ - --remote-storage-secret="abcd1234" + --remote-storage-secret="1234abcd" \ + --remote-storage-endpoint="https://my-s3-compatible.endpoint.com" ``` -**Other S3 compatible providers** +For Hypernode Object Storage, use `main` as the bucket name and `EU` as the region. You can retrieve the remaining parameters by running `hypernode-object-storage info --with-credentials`. -If you're using a different provider than AWS S3, you need to specify the `--remote-storage-endpoint` option. +```console +app@testapp ~ # hypernode-object-storage info --with-credentials ++--------------------------------------+----------------+---------+-------------+-------------------------------------+---------------+---------------+ +| UUID | Name | Plan | Hypernodes | Management URL | Access Key | Secret Key | ++--------------------------------------+----------------+---------+-------------+-------------------------------------+---------------+---------------+ +| 12345678-9012-3456-b7e3-19ab43df4a23 | testappbucket1 | OS200GB | testapp | https://example.ams.objectstore.eu | abcd1234 | 1234abcd | ++--------------------------------------+----------------+---------+-------------+-------------------------------------+---------------+---------------+ +``` + +If you're using a different object storage provider, replace these values with the relevant details from your provider. + +**AWS S3** + +If you're using an AWS S3 bucket, you only need your bucket name, AWS region, and access and secret keys. ```bash bin/magento setup:config:set \ --remote-storage-driver="aws-s3" \ --remote-storage-bucket="my_bucket_name" \ - --remote-storage-region="provider-region" \ + --remote-storage-region="my-aws-region" \ --remote-storage-key="abcd1234" \ - --remote-storage-secret="abcd1234" \ - --remote-storage-endpoint="https://my-s3-compatible.endpoint.com" + --remote-storage-secret="1234abcd" ``` -## Syncing the files +## Syncing the files (efficiently) -Instead of running (which is Magento's official way to do this): +Magento provides an official method for syncing files using the following command (not recommended): ```bash bin/magento remote-storage:sync ``` -One can run the following instead to really speed up the process: +However, for better performance, you can use the following alternative: + +```bash +hypernode-object-storage objects sync pub/media/ s3://my_bucket_name/media/ +hypernode-object-storage objects sync var/import_export s3://my_bucket_name/import_export +``` + +The `hypernode-object-storage objects sync` command runs the sync process in the background +and provides the Process ID (PID). You can monitor the sync progress using: + +```bash +hypernode-object-storage objects show PID +``` + +Alternatively, you can use the AWS CLI directly: ```bash aws s3 sync pub/media/ s3://my_bucket_name/media/ aws s3 sync var/import_export s3://my_bucket_name/import_export ``` -This is much faster than Magento's built-in sync, because `aws s3 sync` uploads files concurrently. +Both methods are significantly faster than Magento’s built-in sync, as aws s3 sync handles uploads concurrently. ## The storage flag file in the bucket @@ -70,109 +99,12 @@ Magento's S3 implementation creates a test file called `storage.flag`, which is ## Serving assets from your S3 bucket -To start serving media assets from your S3 bucket, you need to make some adjustments to your nginx configuration. Create the following file at `/data/web/nginx/example.com/server.assets.conf` for each relevant vhost: - -```nginx -set $backend "haproxy"; - -location @object_storage_fallback { - # Proxy to object storage - set $bucket "my_bucket_name"; - proxy_cache_key "$bucket$uri"; - proxy_cache_valid 200 302 7d; - proxy_cache_methods GET HEAD; - proxy_cache_background_update on; - proxy_cache_use_stale updating; - proxy_cache asset_cache; - resolver 8.8.8.8; - proxy_pass https://$bucket.s3.amazonaws.com$uri; - proxy_pass_request_body off; - proxy_pass_request_headers off; - proxy_intercept_errors on; - proxy_hide_header "x-amz-id-2"; - proxy_hide_header "x-amz-request-id"; - proxy_hide_header "x-amz-storage-class"; - proxy_hide_header "x-amz-server-side-encryption"; - proxy_hide_header "Set-Cookie"; - proxy_ignore_headers "Set-Cookie"; - add_header Cache-Control "public"; - add_header X-Frame-Options "SAMEORIGIN"; - add_header X-Cache-Status $upstream_cache_status; - expires +1y; - - # If object storage fails, fallback to PHP handler - error_page 404 = @asset_fallback; - error_page 403 = @asset_fallback; -} +To serve media assets directly from your S3 bucket, you need to adjust your nginx configuration. +Fortunately, `hypernode-manage-vhosts` [simplifies this process for you](../../hypernode-platform/nginx/hypernode-managed-vhosts.md#object-storage-and-hypernode-managed-vhosts). -location @php_asset_fallback { - # Handle with phpfpm - rewrite ^/media /get.php?$args last; - rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last; - echo_exec @phpfpm; -} - -location @haproxy { - # Handle with haproxy - include /etc/nginx/proxy_to_haproxy.conf; - proxy_pass http://127.0.0.1:8080; -} - -location @asset_fallback { - try_files "" $asset_fallback_handler; -} - -location ~ ^/static/ { - expires max; - - # Remove signature of the static files that is used to overcome the browser cache - location ~ ^/static/version\d*/ { - rewrite ^/static/version\d*/(.*)$ /static/$1 last; - } - - location ~* \.(ico|jpg|jpeg|png|gif|svg|svgz|webp|avif|avifs|js|css|eot|ttf|otf|woff|woff2|html|json|webmanifest)$ { - add_header Cache-Control "public"; - add_header X-Frame-Options "SAMEORIGIN"; - expires +1y; - - try_files $uri $uri/ @asset_fallback; - } - location ~* \.(zip|gz|gzip|bz2|csv|xml)$ { - add_header Cache-Control "no-store"; - add_header X-Frame-Options "SAMEORIGIN"; - expires off; - - try_files $uri $uri/ @asset_fallback; - } - try_files $uri $uri/ @asset_fallback; - add_header X-Frame-Options "SAMEORIGIN"; -} - -location /media/ { - try_files $uri $uri/ @asset_fallback; - - location ~ ^/media/theme_customization/.*\.xml { - deny all; - } - - location ~* \.(ico|jpg|jpeg|png|gif|svg|svgz|webp|avif|avifs|js|css|swf|eot|ttf|otf|woff|woff2)$ { - add_header Cache-Control "public"; - add_header X-Frame-Options "SAMEORIGIN"; - expires +1y; - try_files $uri $uri/ @object_storage_fallback; - } - location ~* \.(zip|gz|gzip|bz2|csv|xml)$ { - add_header Cache-Control "no-store"; - add_header X-Frame-Options "SAMEORIGIN"; - expires off; - try_files $uri $uri/ @object_storage_fallback; - } - add_header X-Frame-Options "SAMEORIGIN"; -} -``` +### Configuring Amazon S3 bucket policies -Make sure to change the string `my_bucket_name` to the name of your bucket and keep in mind that your bucket URL might be different depending on your AWS region. For example, you might need to change it from `https://$bucket.s3.amazonaws.com$uri` to `https://s3.amazonaws.com/$bucket$uri` instead. -Furthermore, ensure that your S3 bucket policies are configured correctly, so that only `/media` is publicly readable. For example: +If you’re using Amazon S3, ensure that your S3 bucket policies are properly configured so that only the `/media` directory is publicly accessible. For example: ```json { diff --git a/docs/ecommerce-applications/magento-2/how-to-create-a-robots-txt-for-magento-2-x.md b/docs/ecommerce-applications/magento-2/how-to-create-a-robots-txt-for-magento-2-x.md index 8b385939..082c6e14 100644 --- a/docs/ecommerce-applications/magento-2/how-to-create-a-robots-txt-for-magento-2-x.md +++ b/docs/ecommerce-applications/magento-2/how-to-create-a-robots-txt-for-magento-2-x.md @@ -118,5 +118,4 @@ Disallow: / ## Additional resources - -- - diff --git a/docs/ecommerce-applications/magento-2/how-to-enable-the-magento-2-api.md b/docs/ecommerce-applications/magento-2/how-to-enable-the-magento-2-api.md index 16d62b78..a38dae45 100644 --- a/docs/ecommerce-applications/magento-2/how-to-enable-the-magento-2-api.md +++ b/docs/ecommerce-applications/magento-2/how-to-enable-the-magento-2-api.md @@ -13,7 +13,7 @@ redirect_from: # How to Enable the Magento 2 API -To enable the Magento API, first [**create the correct users**](https://www.yireo.com/tutorials/magebridge/administration/596-step-by-step-create-a-magento-api-user). +To enable the Magento API, first create the correct users. The Magento API is supposed to work out-of-the box on Hypernodes, but due to clean-url-rewrites sometimes the API does not work and returns a 404 error. To resolve this issue, some additional configuration is required. diff --git a/docs/ecommerce-applications/shopware-6/how-to-configure-remote-storage-for-shopware-6-x.md b/docs/ecommerce-applications/shopware-6/how-to-configure-remote-storage-for-shopware-6-x.md new file mode 100644 index 00000000..16094165 --- /dev/null +++ b/docs/ecommerce-applications/shopware-6/how-to-configure-remote-storage-for-shopware-6-x.md @@ -0,0 +1,105 @@ +--- +myst: + html_meta: + description: Configure remote storage for Shopware 6.x. Learn how to configure + Shopware 6 to start storing files in your bucket. + title: How to Configure Remote Storage for Shopware 6.x | Hypernode +--- + +# How to Configure Remote Storage for Shopware 6.x + +Shopware 6.x supports remote storage for different types of files, allowing you to store assets such as product images, documents, and other media in an external storage service instead of the local server. + +Using remote object storage in Shopware 6 provides several benefits, including: + +- Offloading storage from your server, reducing the load on your server, and improving performance. +- Allows you to make use of [horizontal scaling](../../hypernode-platform/autoscaling/how-does-horizontal-autoscaling-work), as you can easily add more servers without having to worry about syncing files between them. +- Allows for effortless storage capacity scaling, as you can easily increase the storage capacity of your remote storage location. +- Serving assets from a CDN, which can improve the performance of your website. + +## Configuring the application + +Configuring Shopware 6 to start storing files in your bucket is done by modifying the the general bundle configuration file located at `config/packages/shopware.yml` in your shopware root directory. + +**Hypernode Object Storage** + +If you're using Hypernode Object Storage, you need to make sure that the configuration file contains the following: + +```yaml +shopware: + filesystem: + public: + type: 'amazon-s3' + config: + bucket: 'main' + region: 'EU' + endpoint: 'management url' + use_path_style_endpoint: true + credentials: + key: 'access key' + secret: 'secret key' +``` + +You can get the required management URL, access key, and secret key by running `hypernode-object-storage info` with the `--with-credentials` flag: + +```console +app@testapp ~ # hypernode-object-storage info --with-credentials ++--------------------------------------+----------------+---------+-------------+-------------------------------------+---------------+---------------+ +| UUID | Name | Plan | Hypernodes | Management URL | Access Key | Secret Key | ++--------------------------------------+----------------+---------+-------------+-------------------------------------+---------------+---------------+ +| 12345678-9012-3456-b7e3-19ab43df4a23 | testappbucket1 | OS200GB | testapp | https://example.ams.objectstore.eu | abcd1234 | abcd1234 | ++--------------------------------------+----------------+---------+-------------+-------------------------------------+---------------+---------------+ +``` + +**AWS S3** + +If you're using the AWS S3 service, your configuration file should include the following: + +```yaml +shopware: + filesystem: + public: + type: 'amazon-s3' + config: + bucket: 'your bucket name' + region: 'your aws region' + credentials: + key: 'your aws access key' + secret: 'your aws secret key' +``` + +### Shopware remote storage documentation + +For more details on configuring remote storage in Shopware, you can refer to the official [Shopware Filesystem documentation](https://developer.shopware.com/docs/guides/hosting/infrastructure/filesystem.html) + +## Syncing the files + +You can use the following to sync the files between your local and remote storage: + +```bash +hypernode-object-storage objects sync public/media/ s3://bucket_name/media/ +``` + +In the case of Hypernode Object Storage, the bucket name will always be `main`. + +The `hypernode-object-storage objects sync` command runs the sync process in the background +and provides the Process ID (PID). You can monitor the sync progress using: + +```bash +hypernode-object-storage objects show PID +``` + +Alternatively, you can use the AWS CLI directly: + +```bash +aws s3 sync public/media/ s3://bucket_name/media/ +``` + +## Serving assets from your S3 bucket + +To serve media assets directly from your S3 bucket, you need to adjust your nginx configuration. +Fortunately, `hypernode-manage-vhosts` [simplifies this process for you](../../hypernode-platform/nginx/hypernode-managed-vhosts.md#object-storage-and-hypernode-managed-vhosts). + +### Configuring Amazon S3 bucket policies + +If you’re using Amazon S3, ensure that your S3 bucket has ACLs enabled. diff --git a/docs/ecommerce-applications/shopware-6/how-to-configure-varnish-for-shopware-6.md b/docs/ecommerce-applications/shopware-6/how-to-configure-varnish-for-shopware-6.md index 2633e132..f81ccfa1 100644 --- a/docs/ecommerce-applications/shopware-6/how-to-configure-varnish-for-shopware-6.md +++ b/docs/ecommerce-applications/shopware-6/how-to-configure-varnish-for-shopware-6.md @@ -15,7 +15,7 @@ redirect_from: Customers with Hypernode Pelican, Falcon (formerly known as Professional) and Eagle (formerly known as Excellence) plans can use Varnish to boost their shop. This article explains how you can configure Varnish for your Hypernode. -Although Varnish is extremely awesome when it get's to speeding up websites, Varnish is a complex technique that needs some experience to set it up. We'd recommend to first test varnish on a [staging environment](how-to-use-a-basic-staging-environment-with-shopware-6.md) or a[development plan](../../hypernode-platform/tools/how-to-use-hypernode-development-plans.md) before implementing varnish on a live node. +Although Varnish is extremely awesome when it get's to speeding up websites, Varnish is a complex technique that needs some experience to set it up. We'd recommend to first test varnish on a [staging environment](how-to-use-a-basic-staging-environment-with-shopware-6.md) or a [development plan](../../hypernode-platform/tools/how-to-use-hypernode-development-plans.md) before implementing varnish on a live node. ## Step One: Enable Varnish on the Hypernode diff --git a/docs/getting-started/how-to-order/how-to-order-a-domain-presence-plan.md b/docs/getting-started/how-to-order/how-to-order-a-domain-presence-plan.md index 7bbae718..b53b487c 100644 --- a/docs/getting-started/how-to-order/how-to-order-a-domain-presence-plan.md +++ b/docs/getting-started/how-to-order/how-to-order-a-domain-presence-plan.md @@ -30,7 +30,8 @@ To order a domain at Hypernode you need a Presence plan. We offer two different To order one of these plans, please follow the steps below: -1. Go to +1. Log into the [Hypernode control panel](https://my.hypernode.com/domain/) +1. Go to the 'Domains' tab and press Order domain 1. Enter the domain name that you want to register with/transfer to Hypernode. 1. When you want to transfer a domain, our ordering system will recognize you want to order an existing domain and will ask you if you want to transfer the domain. This step will not initiate a transfer. If you want to transfer the domain to Hypernode you can choose the option 'Domein + hosting verhuizen' if you only want to order a Presence Plan but you have no plans for transferring the domain name you can choose the option 'Hosting only verhuizen' 1. Select the plan you need. diff --git a/docs/hypernode-deploy/applications/config-for-magento-2.md b/docs/hypernode-deploy/applications/config-for-magento-2.md index 52d7419c..495e1369 100644 --- a/docs/hypernode-deploy/applications/config-for-magento-2.md +++ b/docs/hypernode-deploy/applications/config-for-magento-2.md @@ -17,8 +17,6 @@ return $configuration; By using the Magento2 ApplicationTemplate, a bunch of default configuration gets set in Hypernode Deploy, and should work out-of-the-box for most magento 2 stores. -These are the steps that will be executed by running your deployment: - ## Advanced However, for advanced configurations you can override most steps and variables set my Hypernode Deploy: diff --git a/docs/hypernode-deploy/applications/config-for-shopware-6.md b/docs/hypernode-deploy/applications/config-for-shopware-6.md index 56eb206b..bc9c1ae5 100644 --- a/docs/hypernode-deploy/applications/config-for-shopware-6.md +++ b/docs/hypernode-deploy/applications/config-for-shopware-6.md @@ -1 +1,18 @@ # Config for Shopware 6 + +This is a sample configuration that suffices for most Shopware 6 installations: + +```php +addStage('production', 'shopware6.komkommer.store'); +$productionStage->addServer('appname.hypernode.io'); + +return $configuration; +``` + +By using the Shopware6 ApplicationTemplate, a bunch of default configuration gets set in Hypernode Deploy, and should work out-of-the-box for most shopware 6 stores. diff --git a/docs/hypernode-deploy/getting-started/configure-ci-cd.md b/docs/hypernode-deploy/getting-started/configure-ci-cd.md index fdf97af9..005dd4e0 100644 --- a/docs/hypernode-deploy/getting-started/configure-ci-cd.md +++ b/docs/hypernode-deploy/getting-started/configure-ci-cd.md @@ -103,8 +103,8 @@ env: jobs: build: runs-on: ubuntu-latest - # Here we use the Hypernode Deploy v4 image with PHP 8.3 and Node.js 20 - container: quay.io/hypernode/deploy:4-php8.3-node20 + # Here we use the latest Hypernode Deploy image with PHP 8.3 and Node.js 20 + container: quay.io/hypernode/deploy:latest-php8.3-node20 steps: - uses: actions/checkout@v2 - uses: actions/cache@v2 @@ -137,8 +137,8 @@ jobs: deploy: needs: build runs-on: ubuntu-latest - # Here we use the Hypernode Deploy v4 image with PHP 8.3 and Node.js 20 - container: quay.io/hypernode/deploy:4-php8.3-node20 + # Here we use the latest Hypernode Deploy image with PHP 8.3 and Node.js 20 + container: quay.io/hypernode/deploy:latest-php8.3-node20 steps: - uses: actions/checkout@v2 - name: download build artifact diff --git a/docs/hypernode-deploy/getting-started/install-and-configure-hypernode-deploy.md b/docs/hypernode-deploy/getting-started/install-and-configure-hypernode-deploy.md index 7a3c8c7d..c9d4f514 100644 --- a/docs/hypernode-deploy/getting-started/install-and-configure-hypernode-deploy.md +++ b/docs/hypernode-deploy/getting-started/install-and-configure-hypernode-deploy.md @@ -47,3 +47,14 @@ More configurations can be found at: ``` In the next step we're going to configure a CI/CD pipeline to let Hypernode Deploy execute the `deploy.php` configuration. + +## Override Deployer variables + +Some varaibles are automatically set, for example the default timeout of every task, you can change this by simply adding a `set` in our `deploy.php` as can be shown here: + +```php +use function Deployer\set; + +// Change the default timeout from 300 seconds to 900 seconds +set('default_timeout', 900); +``` diff --git a/docs/hypernode-deploy/pipelines/bitbucket-pipelines.md b/docs/hypernode-deploy/pipelines/bitbucket-pipelines.md index 0d269f06..080a585e 100644 --- a/docs/hypernode-deploy/pipelines/bitbucket-pipelines.md +++ b/docs/hypernode-deploy/pipelines/bitbucket-pipelines.md @@ -58,7 +58,8 @@ Create the file `bitbucket-pipelines.yml` with the contents below. This workflow will be used in other workflows. ```yaml -image: quay.io/hypernode/deploy:4-php8.3-node20 +# Here we use the latest Hypernode Deploy image with PHP 8.3 and Node.js 20 +image: quay.io/hypernode/deploy:latest-php8.3-node20 definition: steps: @@ -74,10 +75,7 @@ definition: Don't forget to set the specifications of the image to what your project needs. The same goes for the deploy steps. For example, if your project needs PHP 8.3 and Node.js 20, set the image to: ```yaml -jobs: - build: - container: quay.io/hypernode/deploy:4-php8.3-node20 - ... +image: quay.io/hypernode/deploy:latest-php8.3-node20 ``` ```` diff --git a/docs/hypernode-deploy/pipelines/github-actions.md b/docs/hypernode-deploy/pipelines/github-actions.md index 4fa86330..0815ca34 100644 --- a/docs/hypernode-deploy/pipelines/github-actions.md +++ b/docs/hypernode-deploy/pipelines/github-actions.md @@ -57,7 +57,8 @@ on: jobs: build: runs-on: ubuntu-latest - container: quay.io/hypernode/deploy:4-php8.3-node20 + # See https://quay.io/repository/hypernode/deploy?tab=tags for all possible tags. + container: quay.io/hypernode/deploy:latest-php8.3-node20 steps: - uses: actions/checkout@v3 - uses: actions/cache@v3 @@ -82,7 +83,7 @@ For example, if your project needs PHP 8.3 and Node.js 20, set the image to: ```yaml jobs: build: - container: quay.io/hypernode/deploy:4-php8.3-node20 + container: quay.io/hypernode/deploy:latest-php8.3-node20 ... ``` ```` @@ -112,7 +113,7 @@ jobs: environment: name: production url: https://www.example.com - container: quay.io/hypernode/deploy:4-php8.3-node20 + container: quay.io/hypernode/deploy:latest-php8.3-node20 steps: - uses: actions/checkout@v3 - name: download build artifact @@ -156,7 +157,7 @@ jobs: environment: name: acceptance url: https://acceptance.example.com - container: quay.io/hypernode/deploy:4-php8.3-node20 + container: quay.io/hypernode/deploy:latest-php8.3-node20 steps: - uses: actions/checkout@v3 - name: download build artifact diff --git a/docs/hypernode-deploy/pipelines/gitlab-ci.md b/docs/hypernode-deploy/pipelines/gitlab-ci.md index 779d40bc..4c47aac8 100644 --- a/docs/hypernode-deploy/pipelines/gitlab-ci.md +++ b/docs/hypernode-deploy/pipelines/gitlab-ci.md @@ -49,7 +49,7 @@ This sets the container image, defines the CI/CD stages and defines the build st ```yaml # See https://quay.io/repository/hypernode/deploy?tab=tags for all possible tags. -image: quay.io/hypernode/deploy:4-php8.3-node20 +image: quay.io/hypernode/deploy:latest-php8.3-node20 stages: - build @@ -72,7 +72,7 @@ build: Don't forget to set the specifications of the image to what your project needs. For example, if your project needs PHP 8.3 and Node.js 16, set the image to: ```yaml -image: quay.io/hypernode/deploy:3-php8.3-node16 +image: quay.io/hypernode/deploy:latest-php8.3-node16 ``` ```` diff --git a/docs/hypernode-platform/autoscaling/how-does-horizontal-autoscaling-work.md b/docs/hypernode-platform/autoscaling/how-does-horizontal-autoscaling-work.md index bc1408e5..b10ce8c5 100644 --- a/docs/hypernode-platform/autoscaling/how-does-horizontal-autoscaling-work.md +++ b/docs/hypernode-platform/autoscaling/how-does-horizontal-autoscaling-work.md @@ -202,7 +202,7 @@ More information about [Elasticsearch on Hypernode](../../hypernode-platform/too #### Make sure RabbitMQ configured properly -Please make sure RabbitMQ host is set to `rabbitmqmaster` in the Magento 2 configuration file at `/app/etc/env.php` +Please make sure RabbitMQ host is set to `rabbitmq` in the Magento 2 configuration file at `/app/etc/env.php` More information about [RabbitMQ on Hypernode](../../best-practices/database/how-to-run-rabbitmq-on-hypernode.md) There is a rabbitmq user provisioned by Hypernode called `hypernode-admin` as a non-default user, but you can also configure RabbitMQ with a new different user of your own. @@ -212,7 +212,7 @@ For example, you can run the following command to change your RabbitMQ config in ```bash bin/magento setup:config:set \ - --amqp-host="rabbitmqmaster" \ + --amqp-host="rabbitmq" \ --amqp-user="my_rabbitmq_user" \ --amqp-password="my_rabbitmq_password" ``` diff --git a/docs/hypernode-platform/dns/dns-for-control-panel-users.md b/docs/hypernode-platform/dns/dns-for-control-panel-users.md index a2125fda..8aee4f3d 100644 --- a/docs/hypernode-platform/dns/dns-for-control-panel-users.md +++ b/docs/hypernode-platform/dns/dns-for-control-panel-users.md @@ -153,7 +153,7 @@ With an SPF record you can define which mail servers are allowed to send email f ## DNS Caching -DNS Caching means that the content of a DNS record is stored on a server between your computer and the authoritative name server. Some providers store this data longer than specified in the TTL, so it can take up to a day for the changes to your DNS record to take effect everywhere. This is something to keep in mind when changing DNS settings. There is very little you can do about it that the whole world does not immediately see your new site (most of it), but as a developer it is of course annoying. Fortunately, there is a (local) solution, namely the hosts file. This is a file where you can enter hostnames and IP addresses yourself. This way you can link a domain name to an IP address so that when you visit this domain name, the DNS server is no longer consulted and you are always referred to the same IP address.Please see[this article](../../best-practices/testing/how-to-test-your-website-by-changing-your-hosts-file.md) for more information about the host file. +DNS Caching means that the content of a DNS record is stored on a server between your computer and the authoritative name server. Some providers store this data longer than specified in the TTL, so it can take up to a day for the changes to your DNS record to take effect everywhere. This is something to keep in mind when changing DNS settings. There is very little you can do about it that the whole world does not immediately see your new site (most of it), but as a developer it is of course annoying. Fortunately, there is a (local) solution, namely the hosts file. This is a file where you can enter hostnames and IP addresses yourself. This way you can link a domain name to an IP address so that when you visit this domain name, the DNS server is no longer consulted and you are always referred to the same IP address.Please see [this article](../../best-practices/testing/how-to-test-your-website-by-changing-your-hosts-file.md) for more information about the host file. ### DKIM and DMARC diff --git a/docs/hypernode-platform/dns/how-to-set-up-your-spf-records-for-hypernode.md b/docs/hypernode-platform/dns/how-to-set-up-your-spf-records-for-hypernode.md index 2d96d473..d1e9fd53 100644 --- a/docs/hypernode-platform/dns/how-to-set-up-your-spf-records-for-hypernode.md +++ b/docs/hypernode-platform/dns/how-to-set-up-your-spf-records-for-hypernode.md @@ -133,7 +133,7 @@ The From header is part of the message body and is only used for display purpose There are web based tools available that can help you generate an SPF record. As there are always corner cases which the generator does not take into account, blindly generating an SPF record with one of these tools and copy paste it in your DNS zone is never a good idea. If you know what you are doing however, this generators can be of great assistance. -The best generators we’ve found so far are the one on[spfwizard.net](https://www.spfwizard.net), and the one on [unlock the inbox.](https://www.unlocktheinbox.com/spfwizard/) Both tools are free of use for anyone. +The best generators we’ve found so far are the one on [spfwizard.net](https://www.spfwizard.net), and the one on [unlock the inbox.](https://www.unlocktheinbox.com/spfwizard/) Both tools are free of use for anyone. ### Finding your current SPF record diff --git a/docs/hypernode-platform/email/how-to-set-up-your-dns-for-using-office365.md b/docs/hypernode-platform/email/how-to-set-up-your-dns-for-using-office365.md index 6beb398e..0a5c503d 100644 --- a/docs/hypernode-platform/email/how-to-set-up-your-dns-for-using-office365.md +++ b/docs/hypernode-platform/email/how-to-set-up-your-dns-for-using-office365.md @@ -17,9 +17,9 @@ When you want to use Office365 and your domain is registered with Hypernode or h ## Validation Record -When you add your domain to Office365 they wil provide you with a verification string that you need to add to the DNS for your domain, the string will look something like this \*MS=ms#########.\*You need to add this at a TXT record. To do so login to your [Service Panel](https://auth.byte.nl/)and follow the next steps: +When you add your domain to Office365 they wil provide you with a verification string that you need to add to the DNS for your domain, the string will look something like this \*MS=ms#########.\*You need to add this at a TXT record. To do so login to your [Service Panel](https://my.hypernode.com/)and follow the next steps: -1. Log in to the Service Panel (service.byte.nl). +1. Log in to the Service Panel (my.hypernode.com). 1. Select the domain from the domain overview. 1. Click the tab **Instellingen**. 1. Then select **DNS**. diff --git a/docs/hypernode-platform/nginx/how-to-redirect-from-or-to-www.md b/docs/hypernode-platform/nginx/how-to-redirect-from-or-to-www.md index 556ca2db..379558b3 100644 --- a/docs/hypernode-platform/nginx/how-to-redirect-from-or-to-www.md +++ b/docs/hypernode-platform/nginx/how-to-redirect-from-or-to-www.md @@ -20,8 +20,6 @@ There are some restrictions when choosing your base URL. If you use the wwwizer servers, which are sometimes used when your domain is not hosted at Hypernode and thus the DNS can’t be automagically changed in case of up or downgrades, your domain will always redirect to [www](http://www). -For Service Panel customers only: when your domain is hosted at Hypernode, simply link it to your Hypernode through the [Service Panel](https://service.byte.nl/) - More info can be found [on our page about setting your DNS](../dns/how-to-manage-your-dns-settings-for-hypernode.md). ## Redirect From Apex to WWW diff --git a/docs/hypernode-platform/nginx/hypernode-managed-vhosts.md b/docs/hypernode-platform/nginx/hypernode-managed-vhosts.md index 96cfc519..9c2c1aac 100644 --- a/docs/hypernode-platform/nginx/hypernode-managed-vhosts.md +++ b/docs/hypernode-platform/nginx/hypernode-managed-vhosts.md @@ -16,46 +16,6 @@ The Hypernode Managed Vhosts (HMV) system is an easy to use, yet powerful, syste The main advantage of HMV is that it separates your Nginx config into a global folder, containing configuration for all server blocks, and domain specific configs, giving you more control and reducing unexpected side-effects of domain specific configurations. -## Enabling Managed Vhosts - -The Hypernode Managed Vhosts (HMV) system is currently enabled by default on all new booted Hypernodes. - -However if you have a Hypernode created before 01-05-2020 your Hypernode may still be running in 'legacy' mode. To enable the HMV you can run the command: - -`hypernode-systemctl settings managed_vhosts_enabled True`. - -This will convert your current legacy config into the HMV config. It will also convert all currently active vhosts into managed vhosts. - -Please note that while switching to HMV is very easy, there are a few things to check after switching to make sure everything works, as not every setting is automatically transferred. - -Run `hypernode-manage-vhosts --list` to get an overview of your current configuration and use the list below to check if it's correct. Not everything will apply to your Hypernode. - -- Make sure your domain is the default server instead of the Hypernode. You can do this by running the following command: - -`hypernode-manage-vhosts www.example.com --default-server` - -- Configure the vhosts to only use HTTPS. If you already have an SSL certificate configured and you don't want to use Let's Encrypt, use this command: - -`hypernode-manage-vhosts www.example.com --https --force-https --ssl-noclobber` - -This will make sure you won't overwrite the existing SSL certificate. - -If you do want to configure Let's Encrypt for the vhost you can use this command: - -`hypernode-manage-vhosts www.example.com --https --force-https` - -- If you make use of Varnish, make sure to enable Varnish for the specific vhosts: - -`hypernode-manage-vhosts www.example.com --varnish` - -- Want to redirect all traffic over www? Set up your naked domains to be wwwizers, with this command: - -`hypernode-manage-vhosts --type wwwizer [example.com](//example.com)` - -Please make sure to also double check your custom Nginx configurations, as these might not be converted automatically. - -You can always use `hypernode-manage-vhosts --help` to get more information on the different configurations. - ## Managing Vhosts Once the Hypernode Managed Vhosts (HMV) system is enabled, you can start defining and configuring your vhosts. On new booted Hypernodes there will be one vhosts by default: example.hypernode.io. @@ -124,6 +84,32 @@ Once the command is processed you could list all the vhosts to check if Varnish To disable Varnish for a vhost, use the following command: `hypernode-manage-vhosts example.com --disable-varnish` +## Object Storage and Hypernode Managed Vhosts + +If you're using object storage with Magento 2.x or Shopware 6.x you can use HMV to adjust your nginx config to serve assets directly from your bucket. + +If you're using Hypernode's object storage solution, simply run the following command for the relevant vhosts: + +```bash +hypernode-manage-vhosts example.com --object-storage +``` + +### Using a custom object storage solution + +If you're using a custom storage provider, such as Amazon S3, you'll need to specify the bucket name and URL manually: + +```bash +hypernode-manage-vhosts example.com --object-storage --object-storage-bucket mybucket --object-storage-url https://example_url.com +``` + +### Switching back to Hypernode defaults + +If you previously set a custom bucket and URL but want to revert to Hypernode's default object storage, use the `--object-storage-defaults` flag: + +```bash +hypernode-manage-vhosts example.com --object-storage-defaults +``` + ## Managing Configuration Files ### Vhost-specific configuration @@ -146,3 +132,43 @@ If you are running into issues (e.g. SSL or other configuration errors) with Hyp `hypernode-manage-vhosts --all` This regenerates the HMV configuration based on what is set in `hypernode-manage-vhosts --list` and in our experience resolves most basic issues with Hypernode Managed Vhosts. + +## Enabling Managed Vhosts + +The Hypernode Managed Vhosts (HMV) system is currently enabled by default on all new booted Hypernodes. + +However if you have a Hypernode created before 01-05-2020 your Hypernode may still be running in 'legacy' mode. To enable the HMV you can run the command: + +`hypernode-systemctl settings managed_vhosts_enabled True`. + +This will convert your current legacy config into the HMV config. It will also convert all currently active vhosts into managed vhosts. + +Please note that while switching to HMV is very easy, there are a few things to check after switching to make sure everything works, as not every setting is automatically transferred. + +Run `hypernode-manage-vhosts --list` to get an overview of your current configuration and use the list below to check if it's correct. Not everything will apply to your Hypernode. + +- Make sure your domain is the default server instead of the Hypernode. You can do this by running the following command: + +`hypernode-manage-vhosts www.example.com --default-server` + +- Configure the vhosts to only use HTTPS. If you already have an SSL certificate configured and you don't want to use Let's Encrypt, use this command: + +`hypernode-manage-vhosts www.example.com --https --force-https --ssl-noclobber` + +This will make sure you won't overwrite the existing SSL certificate. + +If you do want to configure Let's Encrypt for the vhost you can use this command: + +`hypernode-manage-vhosts www.example.com --https --force-https` + +- If you make use of Varnish, make sure to enable Varnish for the specific vhosts: + +`hypernode-manage-vhosts www.example.com --varnish` + +- Want to redirect all traffic over www? Set up your naked domains to be wwwizers, with this command: + +`hypernode-manage-vhosts --type wwwizer [example.com](//example.com)` + +Please make sure to also double check your custom Nginx configurations, as these might not be converted automatically. + +You can always use `hypernode-manage-vhosts --help` to get more information on the different configurations. diff --git a/docs/hypernode-platform/object-storage/getting-started-with-object-storage.md b/docs/hypernode-platform/object-storage/getting-started-with-object-storage.md index 77f27b1d..fe8ac4b4 100644 --- a/docs/hypernode-platform/object-storage/getting-started-with-object-storage.md +++ b/docs/hypernode-platform/object-storage/getting-started-with-object-storage.md @@ -11,7 +11,7 @@ redirect_from: Hypernode Object Storage provides an option to store media files, assets, backups, documents, etc in a persistent, remote storage container. -Object storage eliminates redundancy and provides a centralized, scalable solution for storing application assets, session data, and backups. +Object Storage eliminates redundancy and provides a centralized, scalable solution for storing application assets, session data, and backups. By default, media files are stored in the same filesystem that contains the application. This is inefficient for complex, multi-server configurations, and can result in degraded performance when sharing resources. @@ -36,15 +36,15 @@ hypernode-object-storage --help 1. Fill in the prompts with a name and desired storage. 1. Confirm your order and give it a few minutes before your storage is ready. -Note: You can use one object storage across multiple Hypernodes. But you can only use one object storage space per Hypernode. +Note: You can use one Object Storage across multiple Hypernodes. But you can only use one Object Storage space per Hypernode. If you receive this error, please make sure to enable "Allow billing through CLI in the relevant Hypernode settings page" ``` -You do not have permission to order object storage for this Hypernode. Please ask the Hypernode owner to enable 'Allow billing through the CLI' in the Control Panel settings or via the API +You do not have permission to order Object Storage for this Hypernode. Please ask the Hypernode owner to enable 'Allow billing through the CLI' in the Control Panel settings or via the API ``` -### Retrieve object storage +### Retrieve Object Storage 1. Run `hypernode-object-storage info` 1. If you want to retrieve your credentials for the workspace pass in the flag `--with-credentials`. @@ -63,6 +63,63 @@ app@testhypernode ~ # hypernode-object-storage info You can use the credentials and the URL now to configure remote storage for your application with the help of [this document](../../ecommerce-applications/magento-2/how-to-configure-remote-storage-for-magento-2-x.md). +### Cancel/Delete Object Storage + +1. To cancel an Object Storage, you can ssh into the Hypernode that is linked to that Object Storage. +1. Run `hypernode-object-storage cancel` + +Note: The cancellation will be in effect from the end of the month. +Also if you change your mind or forgot to pull some data. It will still be available for 7 days after the cancellation. You can always reach out to the support team for help if that happens. +### Managing objects in object storage + +You can manage your objects using the `hypernode-object-storage objects` subcommand. +It supports all common operations--listing, copying, moving, and deleting files--while also allowing you to sync files in the background and monitor the progress of an ongoing sync. + +```console +app@testhypernode ~ # hypernode-object-storage objects --help +usage: hypernode-object-storage objects [-h] {sync,cp,ls,mv,rm,show} ... + +Manage objects in object storage + +positional arguments: + {sync,cp,ls,mv,rm,show} + sync Synchronize files between a local directory and an object storage location + cp Copy a file or object from one location to another + ls List objects in an S3 bucket or folder + mv Move or rename a file or object + rm Delete an object from S3 + show Display the current status of an ongoing sync process + +options: + -h, --help show this help message and exit +``` + +It is important to note that `hypernode-object-storage objects` supports all optional flags available in `aws s3`, allowing you to customize its behavior for advanced configurations. + +#### Syncing files and monitoring progress + +Syncing files between your local directory and object storage is simple. Run the following command: + +```console +app@testhypernode ~ # hypernode-object-storage objects sync /example/local/path/ s3://example/bucket/uri/ +Syncing objects from /example/local/path/ to s3://example/bucket/uri/... +Sync process started with PID 1234 in the background. +``` + +The `sync` operation runs in the background, and you can monitor its progress by using the `show` command, for example: + +```console +app@testhypernode ~ # hypernode-object-storage objects show 1234 +Completed 9.7 GiB/~30.0 GiB (118.2 MiB/s) with ~5 file(s) remaining (calculating...) +``` + +If you run the `show` command after the sync operation has finished, you’ll see output like this: + +```console +app@testhypernode ~ # hypernode-object-storage objects show 1234 +Process 1234 does not exist anymore +``` + ## UI option - Control Panel Coming soon diff --git a/docs/hypernode-platform/php/how-to-override-php-settings.md b/docs/hypernode-platform/php/how-to-override-php-settings.md index 5ce315a8..999b4913 100644 --- a/docs/hypernode-platform/php/how-to-override-php-settings.md +++ b/docs/hypernode-platform/php/how-to-override-php-settings.md @@ -45,7 +45,7 @@ With a few easy steps, you can override php settings when running in PHP-FPM mod Any subsequent PHP installations such as WordPress in a `~/public/blog/` directory, will not be affected by the changes in this `.user.ini` If you wish to change the settings for both directories, you'll have to install two separate `.user.ini` files, or place the `.user.ini` file in your `~/public/` directory. This will affect all PHP scripts running on your Hypernode. -More info can be found on the[PHP documentation page](http://php.net/manual/en/configuration.file.per-user.php). +More info can be found on the [PHP documentation page](http://php.net/manual/en/configuration.file.per-user.php). ## Changing your PHP settings diff --git a/docs/hypernode-platform/ssl/how-to-validate-your-ssl-certificate-and-more-frequently-asked-questions-about-ssl.md b/docs/hypernode-platform/ssl/how-to-validate-your-ssl-certificate-and-more-frequently-asked-questions-about-ssl.md index a8faa679..f1af4e19 100644 --- a/docs/hypernode-platform/ssl/how-to-validate-your-ssl-certificate-and-more-frequently-asked-questions-about-ssl.md +++ b/docs/hypernode-platform/ssl/how-to-validate-your-ssl-certificate-and-more-frequently-asked-questions-about-ssl.md @@ -17,7 +17,7 @@ redirect_from: ## What Kind of Certificates Can I Order via Hypernode? -At Hypernode you can request various SSL certificates via the [Service Panel](https://auth.byte.nl/login/). There are three types of certificates: +At Hypernode you can request various SSL certificates via the [Service Panel](https://my.hypernode.com/login/). There are three types of certificates: - SSL single certificate; you can use this on a single domain for the naked domain and the www domain (example.com and [www.example.com](http://www.example.com)). - SSL wildcard certificate; You can use this to secure all subdomains (\* .example.nl) for your domain name, but also on [www.example.nl](http://www.example.nl) and the naked domain (ie example.nl). However, this certificate does not work on \*. \*. example.nl. diff --git a/docs/hypernode-platform/tools/how-to-deploy-your-application-using-hypernode-deploy-v1.md b/docs/hypernode-platform/tools/how-to-deploy-your-application-using-hypernode-deploy-v1.md index 2c88efbe..9bf09e71 100644 --- a/docs/hypernode-platform/tools/how-to-deploy-your-application-using-hypernode-deploy-v1.md +++ b/docs/hypernode-platform/tools/how-to-deploy-your-application-using-hypernode-deploy-v1.md @@ -49,7 +49,7 @@ bin/magento app:config:dump Strip the configuration files so that 'app/etc/config.php' contains only the essential configuration. Add 'app/etc/config.php' to your Git repo history, but not 'app/etc/env.php' because this file only needs to live on the server. -Read more about dumping Magento configuration in the [devdocs of Magento](https://devdocs.magento.com/guides/v2.3/config-guide/cli/config-cli-subcommands-config-mgmt-export.html). +Read more about dumping Magento configuration in the [devdocs of Magento](https://experienceleague.adobe.com/en/docs/commerce-operations/configuration-guide/cli/configuration-management/export-configuration). ## Create Hypernode Deploy configuration file @@ -138,9 +138,9 @@ For Magento 2 your first build will fail due to missing configuration. Login to ## Create Github configuration file -Now it's time to create your CI configuration file. You can either start from scratch or use the [Hypernode Deploy Github configuration starter template](https://github.com/ByteInternet/hypernode-deploy-configuration/blob/master/templates/github-pipelines.yml). +Now it's time to create your CI configuration file. You can either start from scratch or use the [Hypernode Deploy Github how-to page](../../hypernode-deploy/pipelines/github-actions.md). -The CI configuration file needs to make use of the Hypernode Deploy image in order to run your CI/CD pipelines succesfully. We serve multiple flavors of the Hypernode Deploy image, one for every PHP + NodeJS version combination. See [Docker Hub](https://hub.docker.com/r/hypernode/deploy/tags) for all supported flavors. As new PHP / Node versions come out, we'll bake more images to support those. +The CI configuration file needs to make use of the Hypernode Deploy image in order to run your CI/CD pipelines succesfully. We serve multiple flavors of the Hypernode Deploy image, one for every PHP + NodeJS version combination. See [our image repository](https://quay.io/repository/hypernode/deploy?tab=tags&tag=latest) for all supported flavors. As new PHP / Node versions come out, we'll bake more images to support those. Choose a version of the hypernode/deploy image that best reflects your application needs. Here's an example of a `.github/workflows/deploy.yml` file that uses the PHP 8.3 + Node 20 flavor and is configured with a configuration for the staging environment, containing a build step and deploy step to perform the deployment to the configured staging server. It uses the configuration provided in `deploy.php` to perform the steps. @@ -166,7 +166,7 @@ defaults: jobs: build: runs-on: ubuntu-latest - container: quay.io/hypernode/deploy:4-php8.3-node20 + container: quay.io/hypernode/deploy:latest-php8.3-node20 steps: - uses: actions/checkout@v2 - uses: actions/cache@v2 @@ -186,7 +186,7 @@ jobs: deploy_staging: needs: build runs-on: ubuntu-latest - container: quay.io/hypernode/deploy:4-php8.3-node20 + container: quay.io/hypernode/deploy:latest-php8.3-node20 steps: - uses: actions/checkout@v2 - name: download build artifact diff --git a/docs/hypernode-platform/tools/how-to-migrate-your-shop-to-hypernode.md b/docs/hypernode-platform/tools/how-to-migrate-your-shop-to-hypernode.md index e68df284..4ebc43be 100644 --- a/docs/hypernode-platform/tools/how-to-migrate-your-shop-to-hypernode.md +++ b/docs/hypernode-platform/tools/how-to-migrate-your-shop-to-hypernode.md @@ -97,7 +97,7 @@ Please follow these steps: ## Done Migrating? -Done? Now it's time to[check if everything works](../../best-practices/testing/how-to-check-if-everything-works.md) as it should! +Done? Now it's time to [check if everything works](../../best-practices/testing/how-to-check-if-everything-works.md) as it should! ## Tips and Tricks diff --git a/docs/hypernode-platform/varnish/how-to-enable-varnish-on-hypernode.md b/docs/hypernode-platform/varnish/how-to-enable-varnish-on-hypernode.md index 7b206c58..03085c6e 100644 --- a/docs/hypernode-platform/varnish/how-to-enable-varnish-on-hypernode.md +++ b/docs/hypernode-platform/varnish/how-to-enable-varnish-on-hypernode.md @@ -25,13 +25,6 @@ At Hypernode it’s possible to enable Varnish 4.0 or 6.0 via the Control Panel, - Select the Hypernode - Click on "Enable Varnish" -**Enable Varnish via the [Service Panel](https://service.byte.nl/)** - -- Log in on the Service Panel -- Go to the tab "Instellingen" -- Click on "Varnish" -- Use the switch to enable Varnish - **Configure Varnish 6.0 via the [hypernode-systemctl tool](../tools/how-to-use-the-hypernode-systemctl-cli-tool.md)** `hypernode-systemctl settings varnish_version 6.0` diff --git a/docs/services/control-panel/how-to-link-your-domain-to-your-hypernode.md b/docs/services/control-panel/how-to-link-your-domain-to-your-hypernode.md index ff065776..8e1ef9ac 100644 --- a/docs/services/control-panel/how-to-link-your-domain-to-your-hypernode.md +++ b/docs/services/control-panel/how-to-link-your-domain-to-your-hypernode.md @@ -43,7 +43,7 @@ When you link your domain to your Hypernode, you mark your domain as being in us This way we know which domains are used on a node that is being migrated or upgraded, so we are able to take action. When you sync a domain, we automatically add a CNAME- and A-record that points to your Hypernode to the DNS. If the IP address of the Hypernode has changed, we correct this by updating the DNS records of the domain(s) on our name servers. -To make this work your domains should be hosted at Hypernode, so [order your domain](https://www.byte.nl/hosting/domeinnaam) or migrate it to Hypernode. +To make this work your domains should be hosted at Hypernode, so [order your domain](https://my.hypernode.com/) or migrate it to Hypernode. If your domains are not hosted at Hypernode, read the documentation about [how to configure your DNS for Hypernode](../../hypernode-platform/dns/how-to-manage-your-dns-settings-for-hypernode.md). diff --git a/docs/services/control-panel/how-to-order-a-hypernode-and-transfer-ownership-to-a-customer.md b/docs/services/control-panel/how-to-order-a-hypernode-and-transfer-ownership-to-a-customer.md index 97984c0e..b02ba2d8 100644 --- a/docs/services/control-panel/how-to-order-a-hypernode-and-transfer-ownership-to-a-customer.md +++ b/docs/services/control-panel/how-to-order-a-hypernode-and-transfer-ownership-to-a-customer.md @@ -13,7 +13,7 @@ redirect_from: # How To Order a Hypernode and Transfer Ownership To a Customer -Need a (new) hosting plan for your Magento, Shopware or Akeneo shop? You’ve come to the right place. Hypernode has been developed in close consultation with e-commerce developers, with the objective of having e-commerce web shops perform to their best advantage and to make its development several times easier. An overview of all hosting plans can be found on[our website](https://www.hypernode.com/magento-hosting-plans/). +Need a (new) hosting plan for your Magento, Shopware or Akeneo shop? You’ve come to the right place. Hypernode has been developed in close consultation with e-commerce developers, with the objective of having e-commerce web shops perform to their best advantage and to make its development several times easier. An overview of all hosting plans can be found on [our website](https://www.hypernode.com/magento-hosting-plans/). This article will explain how to order a Hypernode and how this plan can be transferred to your customer on our Control Panel. @@ -36,8 +36,6 @@ To order a new Hypernode plan, follow these steps: 1. Check if all information is correct and place your order. 1. The new Hypernode plan will be booted and you will receive an email when it's ready. -Please note: if you are a Service Panel user (i.e. you use the Dutch panel), please order your new plans directly via [this page in the Service Panel](https://service.byte.nl/planinfo/order-selection/). This is to prevent plans from being booted in the wrong system. - ## Step 2: Tips For Ordering a Hypernode - Choose a logical name. IE: If your site is example.com, order example.hypernode.com diff --git a/docs/services/domain-procedures/how-to-transfer-your-domain-name-to-another-provider-service-panel.md b/docs/services/domain-procedures/how-to-transfer-your-domain-name-to-another-provider-service-panel.md index 66132c7e..670c3504 100644 --- a/docs/services/domain-procedures/how-to-transfer-your-domain-name-to-another-provider-service-panel.md +++ b/docs/services/domain-procedures/how-to-transfer-your-domain-name-to-another-provider-service-panel.md @@ -23,7 +23,7 @@ To transfer your domain name to another hosting provider, take the following ste Most domain names need an authorization code or token to initiate the transfer. This code or token will be emailed to your customer account  registrant email address when you cancel your subscription: -- Log on to the [Service Panel](https://auth.byte.nl/) with your customer number and password +- Log on to the [Control Panel](https://my.hypernode.com/) with your customer number and password - Click the domain you wish to transfer - Click “Opzeggen” under the tab ‘Administratief’. - Choose: “Ik wil het domein wegverhuizen naar een andere provider” diff --git a/docs/services/magereport/magereport-premium.md b/docs/services/magereport/magereport-premium.md index 99d1be4b..d2636ecd 100644 --- a/docs/services/magereport/magereport-premium.md +++ b/docs/services/magereport/magereport-premium.md @@ -47,7 +47,7 @@ This check tells you how big your var/log directory has gotten. We recommend kee ### Disk Usage -A full disk slows your Hypernode down. You can always [upgrade to a bigger node](https://service.byte.nl/planinfo/), but in most cases cleaning up your disk is sufficient. More information about cleaning up your disk is explained in [How to Free up Disk Space.](../../hypernode-platform/tools/how-to-free-up-disk-space) +A full disk slows your Hypernode down. You can always [upgrade to a bigger node](https://www.hypernode.com/en/plans-and-prices/), but in most cases cleaning up your disk is sufficient. More information about cleaning up your disk is explained in [How to Free up Disk Space.](../../hypernode-platform/tools/how-to-free-up-disk-space) ### Bot Traffic diff --git a/docs/troubleshooting/performance/how-to-debug-out-of-memory-oom-events.md b/docs/troubleshooting/performance/how-to-debug-out-of-memory-oom-events.md index e23deb40..10a64cb6 100644 --- a/docs/troubleshooting/performance/how-to-debug-out-of-memory-oom-events.md +++ b/docs/troubleshooting/performance/how-to-debug-out-of-memory-oom-events.md @@ -28,7 +28,7 @@ The default is to be more restrictive, as, on average, that seems to be the most This configurable setting can be set using the [hypernode-api](https://community.hypernode.io/#/Documentation/hypernode-api/README) or the [hypernode-systemctl](https://community.hypernode.io/#/Documentation/hypernode-api/settings/README) command-line tool from the Hypernode. -If you want to enable or disable this setting, you can do so with the command below. But before you do, read[this changelog](https://changelog.hypernode.com/changelog/release-5874-better-out-of-memory-pattern-detection-for-preventive-non-essential-process-slaying/) for an in-depth explanation of what the setting exactly entails. +If you want to enable or disable this setting, you can do so with the command below. But before you do, read [this changelog](https://changelog.hypernode.com/changelog/release-5874-better-out-of-memory-pattern-detection-for-preventive-non-essential-process-slaying/) for an in-depth explanation of what the setting exactly entails. ```bash hypernode-systemctl settings permissive_memory_management --value True diff --git a/requirements/base.txt b/requirements/base.txt index e961ec16..6e5b5a97 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -10,7 +10,6 @@ mdformat-frontmatter==0.4.1 sphinx-notfound-page==0.8.3 sphinx-sitemap==2.4.0 GitPython==3.1.30 -sphinxcontrib-mermaid==0.7.1 # hypernode/ requirements beautifulsoup4==4.11.1